Muon Working Group nanoDST's Tutorial
LAST UPDATE (january 2005)
- (Frederic) january 18th, 2005 - Update page structure and nanoDST variables.
- (Frederic) march 5th, 2004 - Update nanoDST and picoDST documentation.
This tutorial aims to help beginners to run through the MWG nanoDSTs code:
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=10000): if | event Zvertex | < vertexcut (in cm),
keep event and proceed.
- mintrackcut (default=0): 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.
- ghostsel (default=1): if ghostsel=1 reject particle with ghostflag=1.
- 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=true): 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
Provide information about new framework variables only (go to old framework information).
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 (gap0), station 2 (gap0),
station 3 (gap0) or new kalman projection at gap0 (arr=0,1,2,3,4).
- float get_px, get_py, get_pz (short st, int i)
= ith track x, y, z momentum at station 0 (vertex), station 1 (gap0), station 2 (gap0),
station 3 (gap0) or new kalman projection at gap0 (st=0,1,2,3,4).
- 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 hit bit pattern.
- 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.
- float get_TMutTrk_status(int i)
= return ith track status.
- int get_ndf(int i)
= ith number of degrees of freedom.
- float get_muIDOOchi(short iroad, int i)
= ith track's iroadth road chi2 information.
- int get_muIDOOhits(short iroad, int i)
= ith track's iroadth road hits information.
- bool is_muIDOOhit(int i, int plane, int orient)
= true if, for ith track's road, orientth tube of
planeth plane is hit.
- 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).
- float get_muID_proj_hit_dist(short gap,short orient,short hit,const unsigned int itrk) = return distance between the current road and its associated clusters (hit<10), starting from the closest.
- float get_muID_proj_hit_size(short gap,short orient,short hit,const unsigned int itrk) .
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_ndf (int idimu)
= idimuth reduced number of degrees of freedom.
- 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 .
- float get_vtx_bp_xpos, get_vtx_bp_ypos, get_vtx_bp_zpos (int idimu) = idimuth x,y,z vertex BP information.
- float get_vtx_bp_dca (int idimu)
= idimuth dca vertex BP information.
Page maintained by Frédéric