Manual
The output files of this analysis are organized as follows:
<analysis-dir>/output/<sim-set>/<rn>/SexaquarkResults_<v0-option>_<index>.root
<analysis-dir>/output/<sim-set>/<rn>/AnalysisResults_<v0-option>_<index>.root
where:
<analysis-dir>
: main analysis directory,/home/ceres/borquez/work/analysis
<sim-set>
: could bedata
,only_bkg
,only_V0s
,signal+bkg
<rn>
: run number<v0-option>
:TrueV0s
,CustomV0s
,OfficialV0s
.<index>
: 3-digit number
SexaquarkResults.root
contain a TTree
called "Sexaquarks"
, which contains the information of the formed anti-sexaquark candidates and both of the V0s that form it, assuming the anti-sexaquark + neutron -> neutral kaon short + anti-lambda reaction channel.
AnalysisResults.root
contain a TList
called "Trees"
, which contains a TTree
called "Events"
, which contains the information of every generated event: the MC particles, the reconstructed tracks and the V0s formed with the chosen <v0-option>
.
There are certain branches in the "Sexaquarks"
tree (within a SexaquarkResults_<v0-option>_<index>.root
file) that index to a position in the vectors of the "Events"
tree (within the analogous AnalysisResults_<v0-option>_<index>.root
).
How to read a SexaquarkResults
file
The structure of the Sexaquarks
tree is a flat format, i.e., each entry (or row) corresponds to a different anti-sexaquark candidate.
The branches of this tree, that contain the information of the reconstructed candidate, are:
event
: event number (entry number in the analogousAnalysisResults_<v0-option>_<index>.root
file)Idx_V0A
: index of first daughter (in the V0s vector atAnalysisResults_<v0-option>_<index>.root
)Idx_V0B
: index of second daughter (in the V0s vector atAnalysisResults_<v0-option>_<index>.root
)E
: energyPx
: x-component of the momentumPy
: y-component of the momentumPz
: z-component of the momentumM
: inv. mass, reconstructed by assuming nucleon at rest. When kinematics don’t allow the subtraction of the neutron invariant mass in the conservation of energy (resulting in a negative value inside the square root), the mass is arbitrarily set to -1.X
: x-coordinate of secondary vertexY
: y-coordinate of secondary vertexZ
: z-coordinate of secondary vertexDCA
: distance of closest approach between the V0s that form the anti-sexaquark, after being propagated to a common vertexisSignal
:kTRUE
if signal,kFALSE
if background
The remaining branches of this tree, that contain the information of the V0s (V0A
and V0B
) that form the current candidate on that row, are:
V0<A,B>_Idx_Pos
: index of positive daughter (in the tracks vector atAnalysisResults_<v0-option>_<index>.root
)V0<A,B>_Idx_Neg
: index of negative daughter (in the tracks vector atAnalysisResults_<v0-option>_<index>.root
)V0<A,B>_Px
: x-component of the momentumV0<A,B>_Py
: y-component of the momentumV0<A,B>_Pz
: z-component of the momentumV0<A,B>_X
: x-coordinate of V0V0<A,B>_Y
: y-coordinate of V0V0<A,B>_Z
: z-coordinate of V0V0<A,B>_Pos_Px
: x-component of positive track momentum at V0 positionV0<A,B>_Pos_Py
: y-component of positive track momentum at V0 positionV0<A,B>_Pos_Pz
: z-component of positive track momentum at V0 positionV0<A,B>_Neg_Px
: x-component of negative track momentum at V0 positionV0<A,B>_Neg_Py
: y-component of negative track momentum at V0 positionV0<A,B>_Neg_Pz
: z-component of negative track momentum at V0 positionV0<A,B>_isSignal
:kTRUE
if signal,kFALSE
if backgroundV0<A,B>_E_asK0
: energy of V0, assuming it’s a K0V0<A,B>_E_asAL
: energy of V0, assuming it’s an anti-lambdaV0<A,B>_couldBeK0
:kTRUE
if K0 candidate,kFALSE
if notV0<A,B>_couldBeAL
:kTRUE
if anti-lambda candidate,kFALSE
if notV0<A,B>_onFlyStatus
:kTRUE
if comes from the on-the-fly finder,kFALSE
if notV0<A,B>_Chi2
: chi2 value from the Kalman Filter (?)V0<A,B>_DCA_Daughters
: distance of closest approach between daughtersV0<A,B>_IP_wrtPV
: impact parameter w.r.t. Primary VertexV0<A,B>_CPA_wrtPV
: cosine of pointing angle w.r.t. Primary VertexV0<A,B>_ArmAlpha
: Armenteros-Podolanski variable alphaV0<A,B>_ArmPt
: Armenteros-Podolanski variable PtV0<A,B>_DecayLength
: distance between PV and V0
You can also access information of the positive and negative daughters of each V0, with the following branches:
V0<A,B>_<Pos,Neg>_isDuplicate
:kTRUE
if the particle is a duplicate particle,kFALSE
if it was the best match with its respective MCV0<A,B>_<Pos,Neg>_Rec_Px
: x-component of the reconstructed momentum of the trackV0<A,B>_<Pos,Neg>_Rec_Py
: y-component of the reconstructed momentum of the trackV0<A,B>_<Pos,Neg>_Rec_Pz
: z-component of the reconstructed momentum of the track
How to read an AnalysisResults
file
The structure of the Events
tree is in a vector format, which you can load from the TList
called Trees
.
Variables and vectors with MC particle information:
N_MCGen
: (int) number of MC particles, which corresponds to the size of each vector in this paragraphMC_Px
: (vector of float) x-component of true momentumMC_Py
: (vector of float) y-component of true momentumMC_Pz
: (vector of float) z-component of true momentumMC_X
: (vector of float) x-coordinate of generation vertexMC_Y
: (vector of float) y-coordinate of generation vertexMC_Z
: (vector of float) z-coordinate of generation vertexMC_PID
: (vector of int) PDG codeMC_Mother
: (vector of int) index of mother, 0 if anti-sexaquark, -1 if particle is a primary, -2 if mother not relevantMC_FirstDau
: (vector of int) index of first daughter, -1 if no daughters, -2 if daughter is not relevantMC_LastDau
: (vector of int) index of last daughter, -1 if no daughters, -2 if daughter is not relevantMC_Gen
: (vector of int) generation (to diff. between daughters and grandaughters) (only valid for signal particles)MC_Status
: (vector of int) MC status codeMC_isSignal
: (vector of bool) kTRUE if it belongs to anti-sexaquark signal, kFALSE if background
Variables and vectors of MC Rec. Tracks:
N_MCRec
: (int) number of MC reconstructed tracks, which corresponds to the size of each vector in this paragraphIdx_True
: (vector of int) index of true MC particleRec_Px
: (vector of float) x-component of reconstructed momentumRec_Py
: (vector of float) y-component of reconstructed momentumRec_Pz
: (vector of float) z-component of reconstructed momentumRec_Charge
: (vector of short) measured chargeRec_NSigmaPion
: (vector of float) absolute value of likeness to be a charged pion (closer to 0, the most likely)Rec_NSigmaKaon
: (vector of float) absolute value of likeness to be a charged kaonRec_NSigmaProton
: (vector of float) absolute value of likeness to be a proton or anti-protonRec_isDuplicate
: (vector of bool) kTRUE if track is a duplicate, kFALSE if notRec_isSignal
: (vector of bool) kTRUE if it belongs to anti-sexaquark signal, kFALSE if background
Variables and vectors of V0s:
N_V0s
: (int) number of formed V0s, which corresponds to the size of each vector in this paragraphIdx_Pos
: (vector of int) index of positive daughterIdx_Neg
: (vector of int) index of negative daughterV0_Px
: (vector of float) x-component of V0 momentumV0_Py
: (vector of float) y-component of V0 momentumV0_Pz
: (vector of float) z-component of V0 momentumV0_X
: (vector of float) x-coordinate of V0V0_Y
: (vector of float) y-coordinate of V0V0_Z
: (vector of float) z-coordinate of V0Pos_Px
: (vector of float) x-component of positive track momentum at V0 positionPos_Py
: (vector of float) y-component of positive track momentum at V0 positionPos_Pz
: (vector of float) z-component of positive track momentum at V0 positionNeg_Px
: (vector of float) x-component of negative track momentum at V0 positionNeg_Py
: (vector of float) y-component of negative track momentum at V0 positionNeg_Pz
: (vector of float) z-component of negative track momentum at V0 positionV0_isSignal
: (vector of bool) kTRUE if signal, kFALSE if backgroundV0_E_asK0
: (vector of float) energy of V0, assuming it’s a K0V0_E_asAL
: (vector of float) energy of V0, assuming it’s an anti-lambdaV0_couldBeK0
: (vector of bool) kTRUE if K0 candidate, kFALSE if notV0_couldBeAL
: (vector of bool) kTRUE if anti-lambda candidate, kFALSE if notV0_onFlyStatus
: (vector of bool) kTRUE if comes from the on-the-fly finder, kFALSE if notV0_Chi2
: (vector of float) chi2 value from the Kalman Filter (?)V0_DCA_Daughters
: (vector of float) distance of closest approach between daughtersV0_IP_wrtPV
: (vector of float) impact parameter w.r.t. Primary VertexV0_CPA_wrtPV
: (vector of float) cosine of pointing angle w.r.t. Primary VertexV0_ArmAlpha
: (vector of float) Armenteros-Podolanski variable alphaV0_ArmPt
: (vector of float) Armenteros-Podolanski variable PtV0_DecayLength
: (vector of float) distance between PV and V0
Using C++ and ROOT, you can follow the example of /home/ceres/borquez/work/analysis/SexaquarkFinder.cxx
and /home/ceres/borquez/work/analysis/macros/include/TreeFunctions.hxx
on how to read the Events
vectors and variables. It would be also possible to read it using Python and Uproot, but that’s work in progress…