00001 #ifndef SimG4Core_GFlash_GflashHistogram_H 00002 #define SimG4Core_GFlash_GflashHistogram_H 00003 00004 // created by Soon Yung Jun, Dongwook Jang, 2007/12/07 00005 00006 #include <TObject.h> 00007 #include <TFile.h> 00008 #include <TTree.h> 00009 #include <TH1F.h> 00010 #include <TH2F.h> 00011 #include <TProfile.h> 00012 #include <TString.h> 00013 00014 00015 class GflashHistogram : public TObject { 00016 00017 public: 00018 00019 static GflashHistogram* instance(); 00020 00021 GflashHistogram(); 00022 ~GflashHistogram(); 00023 00024 void bookHistogram(TString histFileName="gflash_histogram.root"); 00025 void setStoreFlag(bool flag) { theStoreFlag = flag; } 00026 bool getStoreFlag() { return theStoreFlag; } 00027 00028 // We are declaring histograms here as public 00029 // This is just for convenience. 00030 // Once we are settled down with all histograms, 00031 // probably we will make them as private 00032 00033 // add hitograms here 00034 00035 // histogram output 00036 TFile* histFile_; 00037 00038 // histograms for EM shower model in GflashEMShowerProfile 00039 TH1F* incE_atEcal; 00040 TH2F* dEdz; 00041 TH1F* dEdz_p; 00042 TH1F* dndz_spot; 00043 TH2F* rxry; 00044 TH1F* dx; 00045 TH2F* xdz; 00046 TH2F* rzSpots; 00047 TH1F* rho_ssp; 00048 TH1F* rArm; 00049 00050 // histograms for HAD shower model in GflashHadronShowerModel 00051 00052 TH1F* preStepPosition; 00053 TH1F* postStepPosition; 00054 TH1F* deltaStep; 00055 TH1F* kineticEnergy; 00056 TH1F* energyLoss; 00057 00058 // histograms for HAD shower model in GflashHadronShowerProfile 00059 00060 TH1F* rshower; 00061 TH1F* lateralx; 00062 TH1F* lateraly; 00063 TH2F* gfhlongProfile; 00064 00065 // histograms for Watcher 00066 00067 TH1F* g4vertexTrack; 00068 TH2F* g4stepCharge; 00069 TH1F* g4nSecondary; 00070 TH1F* g4pidSecondary; 00071 TH1F* g4energySecondary; 00072 TH1F* g4energyPi0; 00073 TH1F* g4energyElectron; 00074 TH1F* g4energyPhoton; 00075 00076 TH1F* g4totalEnergySecPi0; 00077 TH1F* g4totalEnergySecElectron; 00078 TH1F* g4totalEnergySecPhoton; 00079 00080 TH1F* g4energyEM; 00081 TH1F* g4energyHad; 00082 TH1F* g4energyTotal; 00083 TH1F* g4energyEMMip; 00084 TH1F* g4energyHadMip; 00085 TH1F* g4energyMip; 00086 TH2F* g4energyEMvsHad; 00087 00088 TH1F* g4energySensitiveEM; 00089 TH1F* g4energySensitiveHad; 00090 TH1F* g4energySensitiveTotal; 00091 TH1F* g4energyHybridTotal; 00092 TH1F* g4energySensitiveEMMip; 00093 TH2F* g4energySensitiveEMvsHad; 00094 00095 TH2F* g4energyEMProfile; 00096 TH2F* g4energyHadProfile; 00097 TH2F* g4energyTotalProfile; 00098 TH2F* g4energyHybridProfile; 00099 00100 TH1F* g4ssp; 00101 TH1F* g4energy; 00102 TH1F* g4energyLoss; 00103 TH1F* g4momentum; 00104 TH1F* g4charge; 00105 00106 TH2F* g4rshower; 00107 TH2F* g4rshowerR1; 00108 TH2F* g4rshowerR2; 00109 TH2F* g4rshowerR3; 00110 TH2F* g4lateralXY; 00111 TH2F* g4lateralRZ; 00112 TH2F* g4spotXY; 00113 TH2F* g4spotRZ; 00114 TH2F* g4spotRZ0; 00115 TH2F* g4trajectoryXY; 00116 TH2F* g4trajectoryRZ; 00117 00118 TH1F* g4stepRho; 00119 TH1F* g4trajectoryPhi0; 00120 00121 TH2F* g4longProfile; 00122 TH2F* g4longDetector; 00123 TH2F* g4longSensitive; 00124 00125 private: 00126 00127 static GflashHistogram* instance_; 00128 bool theStoreFlag; 00129 00130 }; 00131 00132 #endif