Muon Working Group nano/picoDST's Tutorial
LAST UPDATE (march 2004)
- (Frederic) march 5th, 2004 - Update nanoDST and picoDST documentation.
This tutorial aims to help beginners to run through the MWG nanoDSTs code:
- Short overview : provides links to nanoDST documentations
and gives some information. TO BE UPGRADED
- How to produce MWG nanoDSTs : provides information about the
nanoDST production process. Provides, in addition, some files to use as starting examples.
- MWG nanoDSTs variables : provides information about MWG variables,
and the functions to access them.
- How to produce picoDSTs : gives information about analysis macros.
Also provides a short example to analyze a nanoDST.
- dimuon picoDSTs variables : provides information about variables
stored within dimuon picoDSTs.
MWG nanoDST overview
- MWG Package Documentation : MWG_doc.ps (last update 03/03/04)
How to produce MWG nanoDSTs
- Using Fun4All:
Using Fun4All framework, one can either produce at the same time DSTs and nanoDSTs out of PRDFs
or produce nanoDSTs out of DSTs. Here are the corresponding macros:
- Fun4Muons.C : to make, at the same time, DSTs and nanoDSTs out of PRDFs.
- Fun4MWG.C : to make nanoDSTs out of DSTs.
- Raphael's tutorial web page.
- MWG.rcp: The Run Control Parameter file.
This file contains all the input parameters used to
produce the output Muon nanoDST. It is read during the execution; consequently, one doesn't have to
recompile the code when changing input parameters. Input parameters are divided into four categories:
The event selection parameters, the particle selection parameters, the dimuon parameters and the output
branches parameters.
Event selections: Event selections act as event filter. Events passing these cuts are stored
in the output nanoDST.
- vertexcut (default=40cm): if | event Zvertex | < vertexcut,
keep event and proceed.
- mintrackcut (default=1): if number of tracks >= mintrackcut,
keep event and proceed.
- maxtrackcut (default=1000): if number of tracks
<= maxtrackcut, keep event and proceed.
Particle selections: Particle selections act as particle filter within an accepted event.
Particles passing these cuts are stored in the output nanoDST.
- ptlowcut (default=0): if particle pT <= ptlowcut,
keep particle and proceed.
- pthighcut (default=1000): if particle pT >= pthighcut,
keep particle and proceed.
- minhitcut (default=0): if number of hits within the track
>= minhitcut, keep particle and proceed.
Dimuon selections: Dimuon branch processing is optionnal and controlled by dodimu. If
dimuon processing is selected, dimuons passing the cuts are stored in the output nanoDST.
- dodimu (default=false): if dodimu=true,
dimuon branch is produced.
- dimasscut (default=0.5 GeV): if dimuon mass >= dimasscut,
keep dimuon and proceed.
Output branches selections: Since Muon reconstruction can be done by either mut package or
mutoo package or both, one can produce either one or two corresponding branches in the output nanoDST.
- doframework (default=1):
- if doframework=0 produce
PHMuoTracks branch only (mut package output)
- if doframework=1 produce PHMuoTracksOO branch only (mutoo package output)
- if doframework=2 produce both branches.
MWG nanoDST variables
Muon Tracks information
- int get_npart()
= number of muon tracks within the event.
- short get_nhits(int i)
= ith track number of hits (16 hits maximum).
- int get_charge(int i)
= ith track charge.
- float get_xpos, get_ypos, get_zpos (short arr, int i)
= ith track x, y, z position at station 0 (vertex), station 1, station 2
or station 3 (arr=0,1,2,3). Only Station 0 (vertex) filled for MUTOO.
- float get_px, get_py, get_pz (short st, int i)
= ith track x, y, z momentum at station 0 (vertex), station 1, station 2
or station 3 (st=0,1,2,3). Only Station 0 (vertex) filled for MUTOO.
- float get_st1_bp_P(short arr, int i)
= ith track x, y, z (arr=0,1,2) station 1 Bent Plane momentum.
Not filled for MUTOO.
- float get_st1_bp_pos(short arr, int i)
= ith track x, y, z (arr=0,1,2) station 1 Bent Plane position.
Not filled for MUTOO.
- float get_cov(short arr1, short arr2, int i)
= ith track covariance matrix (arr1,arr2) element.
- float get_chisquare(int i)
= ith track chisquare.
- float get_ghostflag(int i)
= ith track ghostflag (0=is not a ghost, 1=is a ghost).
- int get_muTRhits(int i)
= ith track hits information.
- bool is_muTRhit(int i, int st, int gap, int plane)
= true if, for ith track, planeth cathode of
gapth gap of stth station is hit.
- int get_muIDhits(int i)
= ith track's road hits information. Not filled for MUTOO.
- bool is_muIDhit(int i, int plane, int orient)
= true if, for ith track's road, orientth tube of
planeth plane is hit. Not filled for MUTOO.
- float get_muID_gap0(short arr, int i)
= return ith track road position and direction at gap0 (x,y,z,dxdz,dydz).
Not filled for MUTOO.
- float get_muIDOOchi(short iroad, int i)
= ith track's iroadth road chi2 information. MUTOO only.
- int get_muIDOOhits(short iroad, int i)
= ith track's iroadth road hits information. MUTOO only.
- bool is_muIDOOhit(int i, int plane, int orient)
= true if, for ith track's road, orientth tube of
planeth plane is hit. MUTOO only.
- float get_muIDOO_gap0(short arr, short iroad, int i)
= return ith track iroadth road position and direction at gap0 (x,y,z,dxdz,dydz).
MUTOO only.
- float get_TMutTrk_status(int i)
= return ith track status. MUTOO only.
- short get_PID(int i)
= ith track ID. Not filled yet.
- float get_MuonConfidence(int i)
= ith track probability to be a muon. Not filled yet.
- float get_PionConfidence(int i)
= ith track probability to be a pion. Not filled yet.
Dimuons information
- int get_ndimu() = number of dimuons within the event.
- int get_ditrkIndex(short arr, int idimu)
= idimuth dimuon track indices (arr=0,1).
- float get_dimass(int idimu)
= idimuth dimuon mass.
- int get_dicharge(int idimu)
= idimuth dimuon charge (0=+-, 1=++, -1=--).
- float get_dipx, get_dipy, get_dipz (int idimu)
= idimuth dimuon x, y, z momentum.
- float get_vtx_xpos, get_vtx_ypos, get_vtx_zpos (int idimu)
= idimuth ditrack vertex position.
- float get_vtx_chisquare (int idimu)
= idimuth chisquare from vertex fit.
- float get_vtx_cov (short arr1, short arr2, int idimu)
= idimuth covariance matrix from vertex fit.
- float get_vtx_chrg_1, get_vtx_chrg_2 (int idimu)
= idimuth .
- float get_vtx_px1, get_vtx_py1, get_vtx_pz1 (int idimu)
= idimuth .
- float get_vtx_px2, get_vtx_py2, get_vtx_pz2 (int idimu)
= idimuth .
How to produce MWG picoDSTs
Macros to produce picoDSTs stand in CVS (in offline/packages/MWGpico).
- How to install MWGpico.
- >mkdir myanalysis
- >cd myanalysis
- >mkdir Sources
- >mkdir Builds
- >mkdir Libraries
- >cd Sources
- >cvs co -d . offline/packages/MWGpico
- >cd ../Builds
- >mkdir MWGpico
- >cd MWGpico
- >../../Sources/MWGpico/autogen.sh --prefix=/direct/phenix+u/[yourname]/myanalysis/Libraries
- >make; make install
- How to run MWGpico.
- From myanalysis: >cd Sources/MWGpico/macros
- >setenv LD_LIBRARY_PATH /direct/phenix+u/[yourname]/myanalysis/Libraries/lib:$LD_LIBRARY_PATH
- Change the file file.txt to load your own nanoDSTs.
- >root -b -q 'doMWGpico.C(0,"file")'
Note that one can choose to run with an "official" list of file. See MWGpico/LoadNano.h for possible choices.
dimuon picoDST variables
The core object of the dimuon picoDSTs is the dimuon. It means that, within the rootuple,
one entry corresponds to one dimuon. For each dimuon, one can find information on the
associated run, the associated event, the dimuon itself and the two associated tracks.
run information
- Run_Number
= dimuon's run number.
event information
- Evt_Number = dimuon's event number.
- Evt_Nmu = number of tracks within the event.
- Evt_bbcZ = event's BBC Z vertex.
- Evt_bbcCentrality = event's BBC centrality.
- Evt_fclCentrality = event's FCAL centrality.
- Evt_zdcCentrality = event's ZDC centrality.
- Evt_zdcEnerN = event's north ZDC energy.
- Evt_fclGreyN = event's north FCAL energy.
- Evt_pseudotrigS_2D = pseudo trigger 2 deeps South.
- Evt_pseudotrigS_1D1S = pseudo trigger 1 deep 1 shallow South.
- Evt_pseudotrigN_2D = pseudo trigger 2 deeps North.
- Evt_pseudotrigN_1D1S = pseudo trigger 1 deep 1 shallow North.
- Evt_vtxchi2 = vertex chi2 (mutoo).
- Evt_vtxooz = vertex z position (mutoo).
dimuon information
- mass = dimuon mass.
- charge = dimuon charge (0 or 1 or -1).
- rapidity = dimuon rapidity.
- pT = dimuon pT.
- p = dimuon p.
- xF = dimuon xF.
- x1 = dimuon x1.
- x2 = dimuon x2.
- costhCS = dimuon cosinus theta Collins-Soper.
- dca = DCA (Distance of Closest Approach) between the 2 tracks (à la Mike).
- xvtxbp = Bend plane x vertex (à la Mike).
- yvtxbp = Bend plane y vertex (à la Mike).
- zvtxbp = Bend plane z vertex (à la Mike).
tracks information
- Tr0_chi2 (Tr1_chi2) = track chi2.
- Tr0_px (Tr1_px) = track px.
- Tr0_py (Tr1_py) = track py.
- Tr0_pz (Tr1_pz) = track pz.
- Tr0_idhits (Tr1_idhits) = muID hit pattern.
- Tr0_idquad (Tr1_idquad) = muID quadrant at gap 0.
- Tr0_trhits (Tr1_trhits) = muTr hit pattern.
- Tr0_DS3 (Tr1_DS3) = DS3 (à la Olivier).
- Tr0_DS3ctp (Tr1_DS3ctp) = DS3 (w/ const theta & phi).
- Tr0_idchi2 (Tr1_idchi2) = muID chi2.
Page maintained by Frédéric