Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:32:13

0001 #ifndef MaterialBudgetTree_h
0002 #define MaterialBudgetTree_h 1
0003 
0004 #include "TFile.h"
0005 #include "TTree.h"
0006 #include "G4ThreeVector.hh"
0007 
0008 #include "Validation/Geometry/interface/MaterialBudgetFormat.h"
0009 
0010 class MaterialBudgetTree : public MaterialBudgetFormat {
0011 public:
0012   MaterialBudgetTree(std::shared_ptr<MaterialBudgetData> data, const std::string& fileName);
0013   ~MaterialBudgetTree() override {}
0014 
0015   void fillStartTrack() override;
0016   void fillPerStep() override;
0017   void fillEndTrack() override;
0018   void endOfRun() override;
0019 
0020 private:
0021   void book();  // user booking
0022   std::unique_ptr<TFile> theFile;
0023   std::unique_ptr<TTree> theTree;
0024   std::string fname, tmpName;
0025 
0026   static const int MAXSTEPS = 10000;
0027 
0028   float t_MB;
0029   float t_IL;
0030 
0031   int t_ParticleID;
0032   float t_ParticlePt;
0033   float t_ParticleEta;
0034   float t_ParticlePhi;
0035   float t_ParticleEnergy;
0036   float t_ParticleMass;
0037 
0038   int t_Nsteps;
0039 
0040   float t_DeltaMB[MAXSTEPS];
0041   float t_DeltaMB_SUP[MAXSTEPS];
0042   float t_DeltaMB_SEN[MAXSTEPS];
0043   float t_DeltaMB_CAB[MAXSTEPS];
0044   float t_DeltaMB_COL[MAXSTEPS];
0045   float t_DeltaMB_ELE[MAXSTEPS];
0046   float t_DeltaMB_OTH[MAXSTEPS];
0047   float t_DeltaMB_AIR[MAXSTEPS];
0048 
0049   float t_DeltaIL[MAXSTEPS];
0050   float t_DeltaIL_SUP[MAXSTEPS];
0051   float t_DeltaIL_SEN[MAXSTEPS];
0052   float t_DeltaIL_CAB[MAXSTEPS];
0053   float t_DeltaIL_COL[MAXSTEPS];
0054   float t_DeltaIL_ELE[MAXSTEPS];
0055   float t_DeltaIL_OTH[MAXSTEPS];
0056   float t_DeltaIL_AIR[MAXSTEPS];
0057 
0058   double t_InitialX[MAXSTEPS];
0059   double t_InitialY[MAXSTEPS];
0060   double t_InitialZ[MAXSTEPS];
0061   double t_FinalX[MAXSTEPS];
0062   double t_FinalY[MAXSTEPS];
0063   double t_FinalZ[MAXSTEPS];
0064 
0065   int t_VolumeID[MAXSTEPS];
0066   const char* t_VolumeName[MAXSTEPS];
0067   int t_VolumeCopy[MAXSTEPS];
0068   float t_VolumeX[MAXSTEPS];
0069   float t_VolumeY[MAXSTEPS];
0070   float t_VolumeZ[MAXSTEPS];
0071   float t_VolumeXaxis1[MAXSTEPS];
0072   float t_VolumeXaxis2[MAXSTEPS];
0073   float t_VolumeXaxis3[MAXSTEPS];
0074   float t_VolumeYaxis1[MAXSTEPS];
0075   float t_VolumeYaxis2[MAXSTEPS];
0076   float t_VolumeYaxis3[MAXSTEPS];
0077   float t_VolumeZaxis1[MAXSTEPS];
0078   float t_VolumeZaxis2[MAXSTEPS];
0079   float t_VolumeZaxis3[MAXSTEPS];
0080 
0081   int t_MaterialID[MAXSTEPS];
0082   const char* t_MaterialName[MAXSTEPS];
0083   float t_MaterialX0[MAXSTEPS];
0084   float t_MaterialLambda0[MAXSTEPS];
0085   float t_MaterialDensity[MAXSTEPS];  // g/cm3
0086   int t_ParticleStepID[MAXSTEPS];
0087   float t_ParticleStepInitialPt[MAXSTEPS];
0088   float t_ParticleStepInitialEta[MAXSTEPS];
0089   float t_ParticleStepInitialPhi[MAXSTEPS];
0090   float t_ParticleStepInitialEnergy[MAXSTEPS];
0091   float t_ParticleStepInitialPx[MAXSTEPS];
0092   float t_ParticleStepInitialPy[MAXSTEPS];
0093   float t_ParticleStepInitialPz[MAXSTEPS];
0094   float t_ParticleStepInitialBeta[MAXSTEPS];
0095   float t_ParticleStepInitialGamma[MAXSTEPS];
0096   float t_ParticleStepInitialMass[MAXSTEPS];
0097   float t_ParticleStepFinalPt[MAXSTEPS];
0098   float t_ParticleStepFinalEta[MAXSTEPS];
0099   float t_ParticleStepFinalPhi[MAXSTEPS];
0100   float t_ParticleStepFinalEnergy[MAXSTEPS];
0101   float t_ParticleStepFinalPx[MAXSTEPS];
0102   float t_ParticleStepFinalPy[MAXSTEPS];
0103   float t_ParticleStepFinalPz[MAXSTEPS];
0104   float t_ParticleStepFinalBeta[MAXSTEPS];
0105   float t_ParticleStepFinalGamma[MAXSTEPS];
0106   float t_ParticleStepFinalMass[MAXSTEPS];
0107   int t_ParticleStepPreInteraction[MAXSTEPS];
0108   int t_ParticleStepPostInteraction[MAXSTEPS];
0109 };
0110 
0111 #endif