File indexing completed on 2023-03-17 11:27:22
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();
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];
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