00001 #ifndef MaterialBudgetTree_h 00002 #define MaterialBudgetTree_h 1 00003 00004 #include "TFile.h" 00005 #include "TTree.h" 00006 #include "G4ThreeVector.hh" 00007 00008 #include "Validation/Geometry/interface/MaterialBudgetFormat.h" 00009 00010 //#include "HTL/Histograms.h" // Transient histograms. 00011 00012 00013 class MaterialBudgetTree : public MaterialBudgetFormat 00014 { 00015 public: 00016 00017 MaterialBudgetTree( MaterialBudgetData* data, const std::string& fileName ); 00018 virtual ~MaterialBudgetTree(){ hend(); } 00019 00020 virtual void fillStartTrack(); 00021 virtual void fillPerStep(); 00022 virtual void fillEndTrack(); 00023 00024 private: 00025 00026 virtual void book(); // user booking 00027 virtual void hend(); // user ending 00028 00029 private: 00030 TFile * theFile; 00031 TTree* theTree; 00032 00033 static const int MAXSTEPS = 10000; 00034 float t_MB; 00035 float t_IL; 00036 // float t_Eta; 00037 // float t_Phi; 00038 // rr 00039 int t_ParticleID; 00040 float t_ParticlePt; 00041 float t_ParticleEta; 00042 float t_ParticlePhi; 00043 float t_ParticleEnergy; 00044 float t_ParticleMass; 00045 // rr 00046 int t_Nsteps; 00047 float t_DeltaMB[MAXSTEPS]; 00048 float t_DeltaMB_SUP[MAXSTEPS]; 00049 float t_DeltaMB_SEN[MAXSTEPS]; 00050 float t_DeltaMB_CAB[MAXSTEPS]; 00051 float t_DeltaMB_COL[MAXSTEPS]; 00052 float t_DeltaMB_ELE[MAXSTEPS]; 00053 float t_DeltaMB_OTH[MAXSTEPS]; 00054 float t_DeltaMB_AIR[MAXSTEPS]; 00055 float t_DeltaIL[MAXSTEPS]; 00056 float t_DeltaIL_SUP[MAXSTEPS]; 00057 float t_DeltaIL_SEN[MAXSTEPS]; 00058 float t_DeltaIL_CAB[MAXSTEPS]; 00059 float t_DeltaIL_COL[MAXSTEPS]; 00060 float t_DeltaIL_ELE[MAXSTEPS]; 00061 float t_DeltaIL_OTH[MAXSTEPS]; 00062 float t_DeltaIL_AIR[MAXSTEPS]; 00063 double t_InitialX[MAXSTEPS]; 00064 double t_InitialY[MAXSTEPS]; 00065 double t_InitialZ[MAXSTEPS]; 00066 double t_FinalX[MAXSTEPS]; 00067 double t_FinalY[MAXSTEPS]; 00068 double t_FinalZ[MAXSTEPS]; 00069 // rr 00070 int t_VolumeID[MAXSTEPS]; 00071 char* t_VolumeName[MAXSTEPS]; 00072 int t_VolumeCopy[MAXSTEPS]; 00073 float t_VolumeX[MAXSTEPS]; 00074 float t_VolumeY[MAXSTEPS]; 00075 float t_VolumeZ[MAXSTEPS]; 00076 float t_VolumeXaxis1[MAXSTEPS]; 00077 float t_VolumeXaxis2[MAXSTEPS]; 00078 float t_VolumeXaxis3[MAXSTEPS]; 00079 float t_VolumeYaxis1[MAXSTEPS]; 00080 float t_VolumeYaxis2[MAXSTEPS]; 00081 float t_VolumeYaxis3[MAXSTEPS]; 00082 float t_VolumeZaxis1[MAXSTEPS]; 00083 float t_VolumeZaxis2[MAXSTEPS]; 00084 float t_VolumeZaxis3[MAXSTEPS]; 00085 int t_MaterialID[MAXSTEPS]; 00086 char* t_MaterialName[MAXSTEPS]; 00087 float t_MaterialX0[MAXSTEPS]; 00088 float t_MaterialLambda0[MAXSTEPS]; 00089 float t_MaterialDensity[MAXSTEPS]; // g/cm3 00090 int t_ParticleStepID[MAXSTEPS]; 00091 float t_ParticleStepInitialPt[MAXSTEPS]; 00092 float t_ParticleStepInitialEta[MAXSTEPS]; 00093 float t_ParticleStepInitialPhi[MAXSTEPS]; 00094 float t_ParticleStepInitialEnergy[MAXSTEPS]; 00095 float t_ParticleStepInitialPx[MAXSTEPS]; 00096 float t_ParticleStepInitialPy[MAXSTEPS]; 00097 float t_ParticleStepInitialPz[MAXSTEPS]; 00098 float t_ParticleStepInitialBeta[MAXSTEPS]; 00099 float t_ParticleStepInitialGamma[MAXSTEPS]; 00100 float t_ParticleStepInitialMass[MAXSTEPS]; 00101 float t_ParticleStepFinalPt[MAXSTEPS]; 00102 float t_ParticleStepFinalEta[MAXSTEPS]; 00103 float t_ParticleStepFinalPhi[MAXSTEPS]; 00104 float t_ParticleStepFinalEnergy[MAXSTEPS]; 00105 float t_ParticleStepFinalPx[MAXSTEPS]; 00106 float t_ParticleStepFinalPy[MAXSTEPS]; 00107 float t_ParticleStepFinalPz[MAXSTEPS]; 00108 float t_ParticleStepFinalBeta[MAXSTEPS]; 00109 float t_ParticleStepFinalGamma[MAXSTEPS]; 00110 float t_ParticleStepFinalMass[MAXSTEPS]; 00111 int t_ParticleStepPreInteraction[MAXSTEPS]; 00112 int t_ParticleStepPostInteraction[MAXSTEPS]; 00113 // rr 00114 }; 00115 00116 00117 #endif