CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GflashHistogram.cc
Go to the documentation of this file.
2 
4 
6 
7  if(instance_ == 0) instance_ = new GflashHistogram();
8  return instance_;
9 
10 }
11 
13  theStoreFlag(false)
14 {
15 }
16 
17 void GflashHistogram::bookHistogram(std::string histFileName)
18 {
19  histFile_ = new TFile(histFileName.c_str(),"RECREATE");
20 
21  TH1::AddDirectory(kTRUE);
22 
23  histFile_->mkdir("GflashEMShowerProfile");
24  histFile_->cd("GflashEMShowerProfile");
25 
26  em_incE = new TH1F("em_incE","Incoming energy at Ecal;E (GeV);Number of Events",500,0.0,500.0);
27  em_ssp_rho = new TH1F("em_ssp_rho","Shower starting position;#rho (cm);Number of Events",100,100.0,200.0);
28  em_ssp_z = new TH1F("em_ssp_z","Shower starting position;z (cm);Number of Events",800,-400.0,400.0);
29  em_long = new TH1F("em_long","Longitudinal Profile;Radiation Length;Number of Spots",100,0.0,50.0);
30  em_lateral = new TH2F("em_lateral","Lateral Profile vs. Shower Depth;Radiation Length;Moliere Radius",100,0.0,50.0,100,0.0,3.0);
31  em_long_sd = new TH1F("em_long_sd","Longitudinal Profile in Sensitive Detector;Radiation Length;Number of Spots",100,0.0,50.0);
32  em_lateral_sd = new TH2F("em_lateral_sd","Lateral Profile vs. Shower Depth in Sensitive Detector;Radiation Length;Moliere Radius",100,0.0,50.0,100,0.0,3.0);
33  em_nSpots_sd = new TH1F("em_nSpots_sd","Number of Gflash Spots in Sensitive Detector;Number of Spots;Number of Events",1000,0.0,100000);
34 
35  histFile_->mkdir("GflashHadronShowerModel");
36  histFile_->cd("GflashHadronShowerModel");
37 
38  preStepPosition = new TH1F("preStepPosition","PreStep Position Shower",500,120.0,270.);
39  postStepPosition = new TH1F("postStepPosition","PostStep Position Shower",500,120.0,270.);
40  deltaStep = new TH1F("deltaStep","Delta Step",200,0.0,100.);
41  kineticEnergy = new TH1F("kineticEnergy","Kinetic Energy",200,0.0,200.);
42  energyLoss = new TH1F("energyLoss","Energy Loss",200,0.0,200.);
43  energyRatio = new TH1F("energyRatio","energyLeading/energyTotal",200,0.0,1.);
44 
45  histFile_->mkdir("GflashHadronShowerProfile");
46  histFile_->cd("GflashHadronShowerProfile");
47 
48  rshower = new TH1F("rshower","Lateral Lever" ,200,0.,100.);
49  lateralx = new TH1F("lateralx","Lateral-X Distribution" ,200,-100.,100.);
50  lateraly = new TH1F("lateraly","Lateral-Y Distribution" ,200,-100.,100.);
51  gfhlongProfile = new TH2F("gfhlongProfile","Longitudinal Profile (all hits)",160,0.0,160.,60,125,245);
52 
53  histFile_->mkdir("GflashWatcher");
54  histFile_->cd("GflashWatcher");
55 
56  g4vertexTrack = new TH1F("g4vertexTrack","Vertex of Track",300,0.0,300.);
57  g4stepCharge = new TH2F("g4stepCharge","Geant4 Step Charge",300,120.,420,5,-2.5,2.5);
58  g4nSecondary = new TH1F("g4nSecondary","number of Secondaries",100,0.0,100.);
59  g4pidSecondary = new TH1F("g4pidSecondary","PID of Secondaries",3000,-500.0,2500.);
60 
61  g4energySecondary = new TH1F("g4energySecondary","Kinetic Energy of Secondaries",300,0.0,15.);
62  g4energyPi0 = new TH1F("g4energyPi0","Kinetic Energy of Pi0",300,0.0,15.);
63  g4energyElectron = new TH1F("g4energyElectron","Kinetic Energy of Electron",300,0.0,15.);
64  g4energyPhoton = new TH1F("g4energyPhoton","Kinetic Energy of Photon",300,0.0,15.);
65 
66  g4totalEnergySecPhoton = new TH1F("g4totalEnergySecPhoton","Total Kinetic Energy of Sec Photon",300,0.0,3.);
67  g4totalEnergySecElectron = new TH1F("g4toalEnergySecElectron","Total Kinetic Energy of Sec Electron",300,0.0,3.);
68  g4totalEnergySecPi0 = new TH1F("g4totalEnergySecPi0","Total Kinetic Energy of Sec Pi0",300,0.0,30.);
69 
70  g4energyEM = new TH1F("energyEM","EM Energy",600,0.0,150.0);
71  g4energyHad = new TH1F("energyHad","Had Energy",600,0.0,150.0);
72  g4energyTotal = new TH1F("energyTotal","Total Energy",600,0.0,150.0);
73  g4energyEMMip = new TH1F("energyEMMip","EM Energy (MIP)",100,0.0,2.0);
74  g4energyHadMip = new TH1F("energyHadMip","Had Energy (MIP)",600,0.0,150.0);
75  g4energyMip = new TH1F("energyMip","Total Energy (MIP)",600,0.0,150.0);
76  g4energyEMvsHad = new TH2F("energyEMvsHad","EM Energy",600,0.0,150.0,600,0.0,150.0);
77 
78  g4energySensitiveEM = new TH1F("energySensitiveEM","Sensitive EM Energy",600,0.0,150.0);
79  g4energySensitiveHad = new TH1F("energySensitiveHad","Sensitive Had Energy",600,0.0,150.0);
80  g4energySensitiveTotal = new TH1F("energySensitiveTotal","Sensitive Total Energy",600,0.0,150.0);
81  g4energyHybridTotal = new TH1F("energyHybridTotal","Hybrid Total Energy",600,0.0,150.0);
82  g4energySensitiveEMMip = new TH1F("energySensitiveEMMip","Sensitive EM Energy (MIP)",100,0.0,2.0);
83  g4energySensitiveEMvsHad = new TH2F("energySensitiveEMvsHad","Sensitive EM Energy vs Had",600,0.0,150.0,600,0.0,150.0);
84 
85  g4energyEMProfile = new TH2F("energyEMProfile","EM Energy Profile",600,0.0,150.0,60,125,245);
86  g4energyHadProfile = new TH2F("energyHadProfile","Had Energy Profile",600,0.0,150.0,60,125,245);
87  g4energyTotalProfile = new TH2F("energyTotalProfile","Total Energy Profile",600,0.0,150.0,60,125,245);
88  g4energyHybridProfile = new TH2F("energyHybridProfile","Hybrid Energy Profile",600,0.0,150.0,60,125,245);
89 
90  g4ssp = new TH1F("g4ssp","Shower Starting Position",160,120.0,280.);
91  g4energy = new TH1F("g4energy","Energy at Shower Starting Position",600,0.0,150.0);
92  g4energyLoss = new TH1F("g4energyLoss","Energy Loss",600,0.0,150.);
93  g4momentum = new TH1F("g4momentum","Momentum/GeV at Shower Starting Position",300,0.0,150.0);
94  g4charge = new TH1F("g4charge","Track Charge at Shower Starting Position",10,-5.0,5.0);
95 
96  g4rshower = new TH2F("g4rshower","rshower",200,0.,40,25,125.,250);
97  g4rshowerR1 = new TH2F("g4rshowerR1","rshower vs depth ssp=127-129",200,0.,40,40,0.0,160.);
98  g4rshowerR2 = new TH2F("g4rshowerR2","rshower vs depth ssp=131-133",200,0.,40,40,0.0,160.);
99  g4rshowerR3 = new TH2F("g4rshowerR3","rshower vs depth ssp=173-175",200,0.,40,40,0.0,160.);
100 
101  g4lateralXY = new TH2F("g4lateralXY","Lateral Profile XY",160,-40.,40,25,125.,250);
102  g4lateralRZ = new TH2F("g4lateralRZ","Lateral Profile RZ",160,-40.,40,25,125.,250);
103  g4spotXY = new TH2F("g4spotXY","x-y of spots in global coordinate",800,-400.,400.,800,-400.0,400.0);
104  g4spotRZ = new TH2F("g4spotRZ","r-z of spots in global coordinate",1200,-1500.,1500.,400,.0,400.0);
105  g4spotRZ0 = new TH2F("g4spotRZ0","all r-z of spots in global coordinate",1200,-1500.,1500.,400,.0,400.0);
106 
107  g4stepRho = new TH1F("g4stepRho","rho of Geant4 Step",200,120.,320.);
108  g4trajectoryPhi0 = new TH1F("g4trajectoryPhi0","trajectory Phi0",2000,-5.,5.);
109 
110  g4trajectoryXY = new TH2F("g4trajectoryXY","trajectory x-y",800,-400.0,400.0,800,-400.0,400.0);
111  g4trajectoryRZ = new TH2F("g4trajectoryRZ","trajectory r-z ",1200,-600.0,600.0,400,0.0,400.0);
112 
113  g4longProfile = new TH2F("g4longProfile","Longitudinal Profile (all hits)",160,0.0,160.,60,125,245);
114  g4longDetector = new TH2F("g4longDetector","Longitudinal Profile (hits inisde detectors)",160,0.0,160.,60,125,245);
115  g4longSensitive = new TH2F("g4longSensitive","Longitudinal Profile (Sensitive)",160,0.0,160.,60,125,245);
116 
117 }
118 
119 
121 
122  histFile_->cd();
123  histFile_->Write();
124  histFile_->Close();
125 
126 }
127 
static GflashHistogram * instance()
TH1F * g4energySecondary
TH2F * g4energyHybridProfile
TH1F * g4totalEnergySecPhoton
TH1F * g4energySensitiveHad
TH1F * g4energySensitiveEM
static GflashHistogram * instance_
TH1F * g4energySensitiveEMMip
TH2F * g4energyEMProfile
TH1F * g4totalEnergySecElectron
TH1F * g4energySensitiveTotal
void bookHistogram(std::string histFileName="gflash_histogram.root")
TH1F * g4totalEnergySecPi0
TH2F * g4energyTotalProfile
TH2F * g4energyHadProfile
TH1F * g4energyHybridTotal
TH2F * g4energySensitiveEMvsHad