Go to the source code of this file.
Definition at line 1 of file outdated/run/plot_pid.C.
References simtree.
3 gStyle->SetHistMinimumZero();
5 TFile *file_in = TFile::Open(
"pid_complete.root",
"READ");
6 TFile *file_out = TFile::Open(
"pid_plot.root",
"RECREATE");
7 TTree *
simtree = (TTree*)file_in->Get(
"pndsim");
10 TH1F *hMomentum =
new TH1F(
"hMomentum",
"Momentum",100,0,10);
11 simtree->Draw(
"PidChargedCand.GetMomentum().Mag()>>hMomentum",
"",
"goff");
13 TH1F *hTheta =
new TH1F(
"hTheta",
"Theta",100,0,180);
14 simtree->Draw(
"PidChargedCand.GetMomentum().Theta()*TMath::RadToDeg()>>hTheta",
"",
"goff");
16 TH1F *hPhi =
new TH1F(
"hPhi",
"Phi",100,-180,180);
17 simtree->Draw(
"PidChargedCand.GetMomentum().Phi()*TMath::RadToDeg()>>hPhi",
"",
"goff");
19 TH1F *hMvdHits =
new TH1F(
"hMvdHits",
"Number of MVD hits",15,-0.5,14.5);
20 simtree->Draw(
"PidChargedCand.GetMvdHits()>>hMvdHits",
"",
"goff");
22 TH1F *hMvdDEDX =
new TH1F(
"hMvdDEDX",
"MVD DEDX [MeV/cm]",200,0.,40.);
23 simtree->Draw(
"PidChargedCand.GetMvdDEDX()*1000>>hMvdDEDX",
"",
"goff");
25 TH1F *hSttHits =
new TH1F(
"hSttHits",
"Number of STT hits",45,-0.5,44.5);
26 simtree->Draw(
"PidChargedCand.GetSttHits()>>hSttHits",
"PidChargedCand.GetTrackBranch()==51",
"goff");
28 TH1F *hSttDEDX =
new TH1F(
"hSttDEDX",
"STT DEDX [u.a.]",200,0.,50.);
29 simtree->Draw(
"PidChargedCand.GetSttMeanDEDX()>>hSttDEDX",
"PidChargedCand.GetTrackBranch()==51",
"goff");
31 TH1F *hFtsHits =
new TH1F(
"hFtsHits",
"Number of FTS hits",80,-0.5,79.5);
32 simtree->Draw(
"PidChargedCand.GetSttHits()>>hFtsHits",
"PidChargedCand.GetTrackBranch()==56",
"goff");
34 TH1F *hFtsDEDX =
new TH1F(
"hFtsDEDX",
"FTS DEDX [u.a.]",200,0.,50.);
35 simtree->Draw(
"PidChargedCand.GetSttMeanDEDX()>>hFtsDEDX",
"PidChargedCand.GetTrackBranch()==56",
"goff");
37 TH1F *hGemHits =
new TH1F(
"hGemHits",
"Number of GEM hits",10,-0.5,9.5);
38 simtree->Draw(
"PidChargedCand.GetGemHits()>>hGemHits",
"",
"goff");
40 TH1F *hTofTof =
new TH1F(
"hTofTof",
"SciTil time-of-flight [ns]",100,0.,10.);
41 simtree->Draw(
"PidChargedCand.GetTofStopTime()>>hTofTof",
"PidChargedCand.GetTrackBranch()==51&&PidChargedCand.GetTofIndex()>-1",
"goff");
43 TH1F *hTofLength =
new TH1F(
"hTofLength",
"SciTil track length [m]",100,0.,150.);
44 simtree->Draw(
"PidChargedCand.GetTofTrackLength()>>hTofLength",
"PidChargedCand.GetTrackBranch()==51&&PidChargedCand.GetTofIndex()>-1",
"goff");
46 TH1F *hTofM2 =
new TH1F(
"hTofM2",
"SciTil mass^{2} [GeV^{2}/c^{4}]",200,-2.,2.);
47 simtree->Draw(
"PidChargedCand.GetTofM2()>>hTofM2",
"PidChargedCand.GetTrackBranch()==51&&PidChargedCand.GetTofIndex()>-1",
"goff");
49 TH1F *hTofQ =
new TH1F(
"hTofQ",
"SciTil Quality",200,0.,20.);
50 simtree->Draw(
"PidChargedCand.GetTofQuality()>>hTofQ",
"PidChargedCand.GetTrackBranch()==51&&PidChargedCand.GetTofIndex()>-1",
"goff");
52 TH1F *hFTofTof =
new TH1F(
"hFTofTof",
"FTOF time-of-flight [ns]",200,0.,50.);
53 simtree->Draw(
"PidChargedCand.GetTofStopTime()>>hFTofTof",
"PidChargedCand.GetTrackBranch()==56&&PidChargedCand.GetTofIndex()>-1",
"goff");
55 TH1F *hFTofLength =
new TH1F(
"hFTofLength",
"FTOF track length [m]",100,600.,900.);
56 simtree->Draw(
"PidChargedCand.GetTofTrackLength()>>hFTofLength",
"PidChargedCand.GetTrackBranch()==56&&PidChargedCand.GetTofIndex()>-1",
"goff");
58 TH1F *hFTofM2 =
new TH1F(
"hFTofM2",
"FTOF mass^{2} [GeV^{2}/c^{4}]",200,-2.,2.);
59 simtree->Draw(
"PidChargedCand.GetTofM2()>>hFTofM2",
"PidChargedCand.GetTrackBranch()==56&&PidChargedCand.GetTofIndex()>-1",
"goff");
61 TH1F *hFTofQ =
new TH1F(
"hFTofQ",
"FTOF Quality",200,0.,2000.);
62 simtree->Draw(
"PidChargedCand.GetTofQuality()>>hFTofQ",
"PidChargedCand.GetTrackBranch()==56&&PidChargedCand.GetTofIndex()>-1",
"goff");
64 TH1F *hDrcThetaC =
new TH1F(
"hDrcThetaC",
"DIRC Cherenkov angle",100,0.,1.);
65 simtree->Draw(
"PidChargedCand.GetDrcThetaC()>>hDrcThetaC",
"PidChargedCand.GetDrcIndex()>-1",
"goff");
67 TH1F *hDrcThetaCErr =
new TH1F(
"hDrcThetaCErr",
"DIRC Cherenkov angle error",100,0.,1.);
68 simtree->Draw(
"PidChargedCand.GetDrcThetaCErr()>>hDrcThetaCErr",
"PidChargedCand.GetDrcIndex()>-1",
"goff");
70 TH1F *hDrcQ =
new TH1F(
"hDrcQ",
"DIRC Quality",100,0,.00001);
71 simtree->Draw(
"PidChargedCand.GetDrcQuality()>>hDrcQ",
"PidChargedCand.GetDrcIndex()>-1",
"goff");
73 TH1F *hDrcNPhotons =
new TH1F(
"hDrcNPhotons",
"DIRC Number of Photons",20,-0.5,19.5);
74 simtree->Draw(
"PidChargedCand.GetDrcNumberOfPhotons()>>hDrcNPhotons",
"PidChargedCand.GetDrcIndex()>-1",
"goff");
76 TH1F *hDiscThetaC =
new TH1F(
"hDiscThetaC",
"DISC Cherenkov angle",100,0.,1.);
77 simtree->Draw(
"PidChargedCand.GetDiscThetaC()>>hDiscThetaC",
"PidChargedCand.GetDiscIndex()>-1",
"goff");
79 TH1F *hDiscThetaCErr =
new TH1F(
"hDiscThetaCErr",
"DISC Cherenkov angle error",100,0.,1.);
80 simtree->Draw(
"PidChargedCand.GetDiscThetaCErr()>>hDiscThetaCErr",
"PidChargedCand.GetDiscIndex()>-1",
"goff");
82 TH1F *hDiscQ =
new TH1F(
"hDiscQ",
"DISC Quality",100,0,.01);
83 simtree->Draw(
"PidChargedCand.GetDiscQuality()>>hDiscQ",
"PidChargedCand.GetDiscIndex()>-1",
"goff");
85 TH1F *hDiscNPhotons =
new TH1F(
"hDiscNPhotons",
"DISC Number of Photons",20,-0.5,19.5);
86 simtree->Draw(
"PidChargedCand.GetDiscNumberOfPhotons()>>hDiscNPhotons",
"PidChargedCand.GetDiscIndex()>-1",
"goff");
88 TH1F *hEmcRawEnergy =
new TH1F(
"hEmcRawEnergy",
"EMC Raw Energy",100,0,1.);
89 simtree->Draw(
"PidChargedCand.GetEmcRawEnergy()>>hEmcRawEnergy",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
91 TH1F *hEmcCalEnergy =
new TH1F(
"hEmcCalEnergy",
"EMC Cal Energy",100,0,1.);
92 simtree->Draw(
"PidChargedCand.GetEmcCalEnergy()>>hEmcCalEnergy",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
94 TH1F *hEmcQ =
new TH1F(
"hEmcQ",
"EMC Quality",100,0,20.);
95 simtree->Draw(
"PidChargedCand.GetEmcQuality()>>hEmcQ",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
97 TH1F *hEmcNCrystals =
new TH1F(
"hEmcNCrystals",
"EMC Number Of Crystals",50,-0.5,49.5);
98 simtree->Draw(
"PidChargedCand.GetEmcNumberOfCrystals()>>hEmcNCrystals",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
100 TH1F *hEmcNBumps =
new TH1F(
"hEmcNBumps",
"EMC Number Of Bumps",5,-0.5,4.5);
101 simtree->Draw(
"PidChargedCand.GetEmcNumberOfBumps()>>hEmcNBumps",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
103 TH1F *hEmcModule =
new TH1F(
"hEmcModule",
"EMC Module",10,-0.5,9.5);
104 simtree->Draw(
"PidChargedCand.GetEmcModule()>>hEmcModule",
"PidChargedCand.GetEmcIndex()>-1",
"goff");
106 TH1F *hEmcZ20 =
new TH1F(
"hEmcZ20",
"EMC Z20",100,0.,1.1);
107 simtree->Draw(
"PidChargedCand.GetEmcClusterZ20()>>hEmcZ20",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
109 TH1F *hEmcZ53 =
new TH1F(
"hEmcZ53",
"EMC Z53",100,0.,0.02);
110 simtree->Draw(
"PidChargedCand.GetEmcClusterZ53()>>hEmcZ53",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
112 TH1F *hEmcLat =
new TH1F(
"hEmcLat",
"EMC Lat",100,0.,1);
113 simtree->Draw(
"PidChargedCand.GetEmcClusterLat()>>hEmcLat",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
115 TH1F *hEmcE1 =
new TH1F(
"hEmcE1",
"EMC E1",100,0.,1);
116 simtree->Draw(
"PidChargedCand.GetEmcClusterE1()>>hEmcE1",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
118 TH1F *hEmcE9 =
new TH1F(
"hEmcE9",
"EMC E9",100,0.,1);
119 simtree->Draw(
"PidChargedCand.GetEmcClusterE9()>>hEmcE9",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
121 TH1F *hEmcE25 =
new TH1F(
"hEmcE25",
"EMC E25",100,0.,1);
122 simtree->Draw(
"PidChargedCand.GetEmcClusterE25()>>hEmcE25",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
124 TH1F *hFscRawEnergy =
new TH1F(
"hFscRawEnergy",
"FSC Raw Energy",100,0,1.);
125 simtree->Draw(
"PidChargedCand.GetEmcRawEnergy()>>hFscRawEnergy",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
127 TH1F *hFscCalEnergy =
new TH1F(
"hFscCalEnergy",
"FSC Cal Energy",100,0,1.);
128 simtree->Draw(
"PidChargedCand.GetEmcCalEnergy()>>hFscCalEnergy",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
130 TH1F *hFscQ =
new TH1F(
"hFscQ",
"FSC Quality",100,0,20.);
131 simtree->Draw(
"PidChargedCand.GetEmcQuality()>>hFscQ",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
133 TH1F *hFscNCrystals =
new TH1F(
"hFscNCrystals",
"FSC Number Of Crystals",55,-0.5,49.5);
134 simtree->Draw(
"PidChargedCand.GetEmcNumberOfCrystals()>>hFscNCrystals",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
136 TH1F *hFscNBumps =
new TH1F(
"hFscNBumps",
"FSC Number Of Bumps",5,-0.5,4.5);
137 simtree->Draw(
"PidChargedCand.GetEmcNumberOfBumps()>>hFscNBumps",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
139 TH1F *hFscZ20 =
new TH1F(
"hFscZ20",
"FSC Z20",100,0.,1.1);
140 simtree->Draw(
"PidChargedCand.GetEmcClusterZ20()>>hFscZ20",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
142 TH1F *hFscZ53 =
new TH1F(
"hFscZ53",
"FSC Z53",100,0.,0.02);
143 simtree->Draw(
"PidChargedCand.GetEmcClusterZ53()>>hFscZ53",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
145 TH1F *hFscLat =
new TH1F(
"hFscLat",
"FSC Lat",100,0.,1);
146 simtree->Draw(
"PidChargedCand.GetEmcClusterLat()>>hFscLat",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
148 TH1F *hFscE1 =
new TH1F(
"hFscE1",
"FSC E1",100,0.,1);
149 simtree->Draw(
"PidChargedCand.GetEmcClusterE1()>>hFscE1",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
151 TH1F *hFscE9 =
new TH1F(
"hFscE9",
"FSC E9",100,0.,1);
152 simtree->Draw(
"PidChargedCand.GetEmcClusterE9()>>hFscE9",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
154 TH1F *hFscE25 =
new TH1F(
"hFscE25",
"FSC E25",100,0.,1);
155 simtree->Draw(
"PidChargedCand.GetEmcClusterE25()>>hFscE25",
"PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
157 TH1F *hMuoNLayers =
new TH1F(
"hMuoNLayers",
"MUO Number Of Layers",20,-0.5,19.5);
158 simtree->Draw(
"PidChargedCand.GetMuoNumberOfLayers()>>hMuoNLayers",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
160 TH1F *hMuoQ =
new TH1F(
"hMuoQ",
"MUO Quality [cm]",100,0.,50);
161 simtree->Draw(
"sqrt(PidChargedCand.GetMuoQuality())>>hMuoQ",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
163 TH1F *hMuoIron =
new TH1F(
"hMuoIron",
"MUO Crossed Iron Thickness [cm]",100,0.,100);
164 simtree->Draw(
"PidChargedCand.GetMuoIron()>>hMuoIron",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
166 TH1F *hMuoMomentumIn =
new TH1F(
"hMuoMomentumIn",
"MUO Momentum at ingress point [GeV/c]",100,0.,10);
167 simtree->Draw(
"PidChargedCand.GetMuoIron()>>hMuoMomentumIn",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
169 TH1F *hMuoModule =
new TH1F(
"hMuoModule",
"MUO Module",6,-1.5,4.5);
170 simtree->Draw(
"PidChargedCand.GetMuoModule()>>hMuoModule",
"PidChargedCand.GetMuoIndex()>-1",
"goff");
172 TH1F *hMuoHits =
new TH1F(
"hMuoHits",
"MUO Number Of Hits",25,-0.5,24.5);
173 simtree->Draw(
"PidChargedCand.GetMuoHits()>>hMuoHits",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==51",
"goff");
175 TH1F *hFMuoNLayers =
new TH1F(
"hFMuoNLayers",
"MUO Number Of FWD Layers",20,-0.5,19.5);
176 simtree->Draw(
"PidChargedCand.GetMuoNumberOfLayers()>>hFMuoNLayers",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
178 TH1F *hFMuoQ =
new TH1F(
"hFMuoQ",
"MUO Quality [cm]",100,0.,10);
179 simtree->Draw(
"sqrt(PidChargedCand.GetMuoQuality())>>hFMuoQ",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
181 TH1F *hFMuoIron =
new TH1F(
"hFMuoIron",
"MUO Crossed Iron Thickness [cm]",100,0.,110);
182 simtree->Draw(
"PidChargedCand.GetMuoIron()>>hFMuoIron",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
184 TH1F *hFMuoMomentumIn =
new TH1F(
"hFMuoMomentumIn",
"MUO Momentum at ingress point [GeV/c]",100,0.,15);
185 simtree->Draw(
"PidChargedCand.GetMuoMomentumIn()>>hFMuoMomentumIn",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
187 TH1F *hFMuoHits =
new TH1F(
"hFMuoHits",
"MUO Number Of Hits",35,-0.5,34.5);
188 simtree->Draw(
"PidChargedCand.GetMuoHits()>>hFMuoHits",
"PidChargedCand.GetMuoIndex()>-1&&PidChargedCand.GetTrackBranch()==56",
"goff");
206 hFTofLength->Write();
212 hDrcThetaCErr->Write();
214 hDrcNPhotons->Write();
215 hDiscThetaC->Write();
216 hDiscThetaCErr->Write();
218 hDiscNPhotons->Write();
219 hEmcRawEnergy->Write();
220 hEmcCalEnergy->Write();
222 hEmcNCrystals->Write();
231 hFscRawEnergy->Write();
232 hFscCalEnergy->Write();
234 hFscNCrystals->Write();
242 hMuoNLayers->Write();
245 hMuoMomentumIn->Write();
248 hFMuoNLayers->Write();
251 hFMuoMomentumIn->Write();
254 cout <<
" Test passed" << endl;
255 cout <<
" All ok " << endl;