Difference between revisions of "Analysis TTreeFormat"

From GlueXWiki
Jump to: navigation, search
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)
};