Difference between revisions of "Analysis TTreeFormat"
From GlueXWiki
Line 3: | Line 3: | ||
{ | { | ||
public: | public: | ||
− | //PID | + | // PID: |
Particle_t dPID; | Particle_t dPID; | ||
− | //KINEMATICS: If kinematic fit was performed, this is the kinematic fit results. Else is measured results. | + | // KINEMATICS: |
+ | //If kinematic fit was performed, this is the kinematic fit results. Else is measured results. | ||
TVector3 dPosition_Start; //the position where the particle is produced | TVector3 dPosition_Start; //the position where the particle is produced | ||
double dTime_Start; //time of the track at dPosition_Start: if value is not kinfit, is projected from measured TOF/BCAL/FCAL time | double dTime_Start; //time of the track at dPosition_Start: if value is not kinfit, is projected from measured TOF/BCAL/FCAL time | ||
Line 18: | Line 19: | ||
TMatrixDSym dCovarianceMatrix; //at dPosition_Start // Order is (px, py, pz, x, y, z, t) | TMatrixDSym dCovarianceMatrix; //at dPosition_Start // Order is (px, py, pz, x, y, z, t) | ||
− | //PID QUALITY | + | // PID QUALITY: |
unsigned int dNDF_Tracking; //NaN if neutral or decaying | unsigned int dNDF_Tracking; //NaN if neutral or decaying | ||
double dChiSq_Tracking; //NaN if neutral or decaying | double dChiSq_Tracking; //NaN if neutral or decaying | ||
Line 26: | Line 27: | ||
double dChiSq_DCdEdx; //NaN if neutral or decaying | double dChiSq_DCdEdx; //NaN if neutral or decaying | ||
− | //DEPOSITED ENERGY //0.0 if no hit | + | // DEPOSITED ENERGY: |
+ | //0.0 if no hit | ||
double ddEdx_FDC; | double ddEdx_FDC; | ||
double ddEdx_CDC; | double ddEdx_CDC; | ||
Line 33: | Line 35: | ||
double dEnergy_TOF; | double dEnergy_TOF; | ||
− | //DTREESTEP POINTERS | + | // DTREESTEP POINTERS: |
DTreeStep* dProductionStep; //the step object in which this DTreeParticle is produced (is a final-state particle) | DTreeStep* dProductionStep; //the step object in which this DTreeParticle is produced (is a final-state particle) | ||
DTreeStep* dDecayStep; //the step object in which this DTreeParticle decays (is an initial-state particle) (will be null if not a decaying particle!) | DTreeStep* dDecayStep; //the step object in which this DTreeParticle decays (is an initial-state particle) (will be null if not a decaying particle!) | ||
Line 98: | Line 100: | ||
{ | { | ||
public: | public: | ||
+ | // RUN, EVENT #'s: | ||
unsigned int locRunNumber; | unsigned int locRunNumber; | ||
unsigned int locEventNumber; | unsigned int locEventNumber; | ||
+ | // DATA: | ||
map<string, deque<const DTreeCombo*> > dTreeCombos; //string key is (D)Reaction name, deque is the particle combos | map<string, deque<const DTreeCombo*> > dTreeCombos; //string key is (D)Reaction name, deque is the particle combos | ||
deque<const DTreeParticle*> dThrownParticles; | deque<const DTreeParticle*> dThrownParticles; |
Revision as of 11:17, 12 April 2013
class DTreeParticle : public TObject { public: // PID: Particle_t dPID; // KINEMATICS: //If kinematic fit was performed, this is the kinematic fit results. Else is measured results. TVector3 dPosition_Start; //the position where the particle is produced double dTime_Start; //time of the track at dPosition_Start: if value is not kinfit, is projected from measured TOF/BCAL/FCAL time TVector3 dMomentum_Start; //momentum of the track at dPosition_Start TVector3 dPosition_End; //detected particles: the reconstructed position of the BCAL/FCAL/TOF hit; decaying particles: the point where it decays double dTime_End; //time of the track at dPosition_End TVector3 dMomentum_End; //momentum of the track at dPosition_End double dPathLength; //from dPosition_Start to dPosition_End TMatrixDSym dCovarianceMatrix; //at dPosition_Start // Order is (px, py, pz, x, y, z, t) // PID QUALITY: unsigned int dNDF_Tracking; //NaN if neutral or decaying double dChiSq_Tracking; //NaN if neutral or decaying unsigned int dNDF_Timing; double dChiSq_Timing; unsigned int dNDF_DCdEdx; //NaN if neutral or decaying double dChiSq_DCdEdx; //NaN if neutral or decaying // DEPOSITED ENERGY: //0.0 if no hit double ddEdx_FDC; double ddEdx_CDC; double dEnergy_BCAL; double dEnergy_FCAL; double dEnergy_TOF; // DTREESTEP POINTERS: DTreeStep* dProductionStep; //the step object in which this DTreeParticle is produced (is a final-state particle) DTreeStep* dDecayStep; //the step object in which this DTreeParticle decays (is an initial-state particle) (will be null if not a decaying particle!) // CUSTOM VARIABLES: map<string, double> dCustomVariables; //key is unique string, double is value map<string, const TObject*> dCustomObjects; //key is unique string, TObject* is object ClassDef(DTreeParticle, 1) };
class DTreeStep : public TObject { public: // INITIAL PARTICLES: const DTreeParticle* dInitialParticle; //if is null: decaying or beam particle not yet set! const DTreeParticle* dTargetParticle; //NULL for no target // FINAL PARTICLES: deque<DParticle_t> dFinalParticleIDs; //separate in case particle is NULL (e.g. decaying resonance) deque<const DTreeParticle*> dFinalParticles; //particle may be NULL if it is decaying or missing (especially if no kinematic fit was performed!!) // CUSTOM VARIABLES: map<string, double> dCustomVariables; //key is unique string, double is value map<string, const TObject*> dCustomObjects; //key is unique string, TObject* is object ClassDef(DTreeStep, 1) };
class DTreeCombo : public TObject { public: // STEPS: deque<const DTreeStep*> dTreeSteps; // RF: bool dRFTimeMatchQuality; //true if good (certain), false if bad (not confident in value) double dRFTime; double dRFTimeUncertainty; // UNUSED PARTICLES: vector<const DTreeParticle*> dUnusedDetectedParticles; vector<const DTreeShower*> dUnusedDetectedShowers; // KINEMATIC FIT: DKinFitType dKinematicFitType; //Defined in DKinFitResults.h //d_NoFit if not performed double dChiSq_KinematicFit; //NaN if not performed unsigned int dNDF_KinematicFit; //0 if not performed // CUSTOM VARIABLES: map<string, double> dCustomVariables; //key is unique string, double is value map<string, const TObject*> dCustomObjects; //key is unique string, TObject* is object ClassDef(DTreeCombo, 1) };
class DTreeEvent : public TObject { public: // RUN, EVENT #'s: unsigned int locRunNumber; unsigned int locEventNumber; // DATA: map<string, deque<const DTreeCombo*> > dTreeCombos; //string key is (D)Reaction name, deque is the particle combos deque<const DTreeParticle*> dThrownParticles; // CUSTOM VARIABLES: map<string, double> dCustomVariables; //key is unique string, double is value map<string, const TObject*> dCustomObjects; //key is unique string, TObject* is object ClassDef(DTreeEvent, 1) };