Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:34

0001 #ifndef GflashHistogram_H
0002 #define GflashHistogram_H
0003 
0004 // created by Soon Yung Jun, Dongwook Jang, 2007/12/07
0005 
0006 #include <TFile.h>
0007 #include <TH1F.h>
0008 #include <TH2F.h>
0009 #include <TObject.h>
0010 #include <TProfile.h>
0011 #include <TString.h>
0012 #include <TTree.h>
0013 
0014 #include <string>
0015 
0016 class GflashHistogram : public TObject {
0017 public:
0018   static GflashHistogram *instance();
0019 
0020   GflashHistogram();
0021   ~GflashHistogram() override;
0022 
0023   void bookHistogram(std::string histFileName = "gflash_histogram.root");
0024   void setStoreFlag(bool flag) { theStoreFlag = flag; }
0025   bool getStoreFlag() { return theStoreFlag; }
0026 
0027   // We are declaring histograms here as public
0028   // This is just for convenience.
0029   // Once we are settled down with all histograms,
0030   // probably we will make them as private
0031 
0032   // add hitograms here
0033 
0034   // histogram output
0035   TFile *histFile_;
0036 
0037   // histograms for EM shower model in GflashEMShowerProfile
0038   TH1F *em_incE;
0039   TH1F *em_ssp_rho;
0040   TH1F *em_ssp_z;
0041   TH1F *em_long;
0042   TH2F *em_lateral;
0043   TH1F *em_long_sd;
0044   TH2F *em_lateral_sd;
0045   TH1F *em_nSpots_sd;
0046 
0047   // histograms for HAD shower model in GflashHadronShowerModel
0048 
0049   TH1F *preStepPosition;
0050   TH1F *postStepPosition;
0051   TH1F *deltaStep;
0052   TH1F *kineticEnergy;
0053   TH1F *energyLoss;
0054   TH1F *energyRatio;
0055 
0056   // histograms for HAD shower model in GflashHadronShowerProfile
0057 
0058   TH1F *rshower;
0059   TH1F *lateralx;
0060   TH1F *lateraly;
0061   TH2F *gfhlongProfile;
0062 
0063   // histograms for Watcher
0064 
0065   TH1F *g4vertexTrack;
0066   TH2F *g4stepCharge;
0067   TH1F *g4nSecondary;
0068   TH1F *g4pidSecondary;
0069   TH1F *g4energySecondary;
0070   TH1F *g4energyPi0;
0071   TH1F *g4energyElectron;
0072   TH1F *g4energyPhoton;
0073 
0074   TH1F *g4totalEnergySecPi0;
0075   TH1F *g4totalEnergySecElectron;
0076   TH1F *g4totalEnergySecPhoton;
0077 
0078   TH1F *g4energyEM;
0079   TH1F *g4energyHad;
0080   TH1F *g4energyTotal;
0081   TH1F *g4energyEMMip;
0082   TH1F *g4energyHadMip;
0083   TH1F *g4energyMip;
0084   TH2F *g4energyEMvsHad;
0085 
0086   TH1F *g4energySensitiveEM;
0087   TH1F *g4energySensitiveHad;
0088   TH1F *g4energySensitiveTotal;
0089   TH1F *g4energyHybridTotal;
0090   TH1F *g4energySensitiveEMMip;
0091   TH2F *g4energySensitiveEMvsHad;
0092 
0093   TH2F *g4energyEMProfile;
0094   TH2F *g4energyHadProfile;
0095   TH2F *g4energyTotalProfile;
0096   TH2F *g4energyHybridProfile;
0097 
0098   TH1F *g4ssp;
0099   TH1F *g4energy;
0100   TH1F *g4energyLoss;
0101   TH1F *g4momentum;
0102   TH1F *g4charge;
0103 
0104   TH2F *g4rshower;
0105   TH2F *g4rshowerR1;
0106   TH2F *g4rshowerR2;
0107   TH2F *g4rshowerR3;
0108   TH2F *g4lateralXY;
0109   TH2F *g4lateralRZ;
0110   TH2F *g4spotXY;
0111   TH2F *g4spotRZ;
0112   TH2F *g4spotRZ0;
0113   TH2F *g4trajectoryXY;
0114   TH2F *g4trajectoryRZ;
0115 
0116   TH1F *g4stepRho;
0117   TH1F *g4trajectoryPhi0;
0118 
0119   TH2F *g4longProfile;
0120   TH2F *g4longDetector;
0121   TH2F *g4longSensitive;
0122 
0123 private:
0124   static GflashHistogram *instance_;
0125   bool theStoreFlag;
0126 };
0127 
0128 #endif