FairRoot/PandaRoot
outdated/run/plot_pid.C
Go to the documentation of this file.
1 int plot_pid()
2 {
3  gStyle->SetHistMinimumZero();
4 
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");
8 
9 
10  TH1F *hMomentum = new TH1F("hMomentum","Momentum",100,0,10);
11  simtree->Draw("PidChargedCand.GetMomentum().Mag()>>hMomentum","","goff");
12 
13  TH1F *hTheta = new TH1F("hTheta","Theta",100,0,180);
14  simtree->Draw("PidChargedCand.GetMomentum().Theta()*TMath::RadToDeg()>>hTheta","","goff");
15 
16  TH1F *hPhi = new TH1F("hPhi","Phi",100,-180,180);
17  simtree->Draw("PidChargedCand.GetMomentum().Phi()*TMath::RadToDeg()>>hPhi","","goff");
18 
19  TH1F *hMvdHits = new TH1F("hMvdHits","Number of MVD hits",15,-0.5,14.5);
20  simtree->Draw("PidChargedCand.GetMvdHits()>>hMvdHits","","goff");
21 
22  TH1F *hMvdDEDX = new TH1F("hMvdDEDX","MVD DEDX [MeV/cm]",200,0.,40.);
23  simtree->Draw("PidChargedCand.GetMvdDEDX()*1000>>hMvdDEDX","","goff");
24 
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");
27 
28  TH1F *hSttDEDX = new TH1F("hSttDEDX","STT DEDX [u.a.]",200,0.,50.);
29  simtree->Draw("PidChargedCand.GetSttMeanDEDX()>>hSttDEDX","PidChargedCand.GetTrackBranch()==51","goff");
30 
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");
33 
34  TH1F *hFtsDEDX = new TH1F("hFtsDEDX","FTS DEDX [u.a.]",200,0.,50.);
35  simtree->Draw("PidChargedCand.GetSttMeanDEDX()>>hFtsDEDX","PidChargedCand.GetTrackBranch()==56","goff");
36 
37  TH1F *hGemHits = new TH1F("hGemHits","Number of GEM hits",10,-0.5,9.5);
38  simtree->Draw("PidChargedCand.GetGemHits()>>hGemHits","","goff");
39 
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");
42 
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");
45 
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");
48 
49  TH1F *hTofQ = new TH1F("hTofQ","SciTil Quality",200,0.,20.);
50  simtree->Draw("PidChargedCand.GetTofQuality()>>hTofQ","PidChargedCand.GetTrackBranch()==51&&PidChargedCand.GetTofIndex()>-1","goff");
51 
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");
54 
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");
57 
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");
60 
61  TH1F *hFTofQ = new TH1F("hFTofQ","FTOF Quality",200,0.,2000.);
62  simtree->Draw("PidChargedCand.GetTofQuality()>>hFTofQ","PidChargedCand.GetTrackBranch()==56&&PidChargedCand.GetTofIndex()>-1","goff");
63 
64  TH1F *hDrcThetaC = new TH1F("hDrcThetaC","DIRC Cherenkov angle",100,0.,1.);
65  simtree->Draw("PidChargedCand.GetDrcThetaC()>>hDrcThetaC","PidChargedCand.GetDrcIndex()>-1","goff");
66 
67  TH1F *hDrcThetaCErr = new TH1F("hDrcThetaCErr","DIRC Cherenkov angle error",100,0.,1.);
68  simtree->Draw("PidChargedCand.GetDrcThetaCErr()>>hDrcThetaCErr","PidChargedCand.GetDrcIndex()>-1","goff");
69 
70  TH1F *hDrcQ = new TH1F("hDrcQ","DIRC Quality",100,0,.00001);
71  simtree->Draw("PidChargedCand.GetDrcQuality()>>hDrcQ","PidChargedCand.GetDrcIndex()>-1","goff");
72 
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");
75 
76  TH1F *hDiscThetaC = new TH1F("hDiscThetaC","DISC Cherenkov angle",100,0.,1.);
77  simtree->Draw("PidChargedCand.GetDiscThetaC()>>hDiscThetaC","PidChargedCand.GetDiscIndex()>-1","goff");
78 
79  TH1F *hDiscThetaCErr = new TH1F("hDiscThetaCErr","DISC Cherenkov angle error",100,0.,1.);
80  simtree->Draw("PidChargedCand.GetDiscThetaCErr()>>hDiscThetaCErr","PidChargedCand.GetDiscIndex()>-1","goff");
81 
82  TH1F *hDiscQ = new TH1F("hDiscQ","DISC Quality",100,0,.01);
83  simtree->Draw("PidChargedCand.GetDiscQuality()>>hDiscQ","PidChargedCand.GetDiscIndex()>-1","goff");
84 
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");
87 
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");
90 
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");
93 
94  TH1F *hEmcQ = new TH1F("hEmcQ","EMC Quality",100,0,20.);
95  simtree->Draw("PidChargedCand.GetEmcQuality()>>hEmcQ","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51","goff");
96 
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");
99 
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");
102 
103  TH1F *hEmcModule = new TH1F("hEmcModule","EMC Module",10,-0.5,9.5);
104  simtree->Draw("PidChargedCand.GetEmcModule()>>hEmcModule","PidChargedCand.GetEmcIndex()>-1","goff");
105 
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");
108 
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");
111 
112  TH1F *hEmcLat = new TH1F("hEmcLat","EMC Lat",100,0.,1);
113  simtree->Draw("PidChargedCand.GetEmcClusterLat()>>hEmcLat","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51","goff");
114 
115  TH1F *hEmcE1 = new TH1F("hEmcE1","EMC E1",100,0.,1);
116  simtree->Draw("PidChargedCand.GetEmcClusterE1()>>hEmcE1","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51","goff");
117 
118  TH1F *hEmcE9 = new TH1F("hEmcE9","EMC E9",100,0.,1);
119  simtree->Draw("PidChargedCand.GetEmcClusterE9()>>hEmcE9","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51","goff");
120 
121  TH1F *hEmcE25 = new TH1F("hEmcE25","EMC E25",100,0.,1);
122  simtree->Draw("PidChargedCand.GetEmcClusterE25()>>hEmcE25","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==51","goff");
123 
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");
126 
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");
129 
130  TH1F *hFscQ = new TH1F("hFscQ","FSC Quality",100,0,20.);
131  simtree->Draw("PidChargedCand.GetEmcQuality()>>hFscQ","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56","goff");
132 
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");
135 
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");
138 
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");
141 
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");
144 
145  TH1F *hFscLat = new TH1F("hFscLat","FSC Lat",100,0.,1);
146  simtree->Draw("PidChargedCand.GetEmcClusterLat()>>hFscLat","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56","goff");
147 
148  TH1F *hFscE1 = new TH1F("hFscE1","FSC E1",100,0.,1);
149  simtree->Draw("PidChargedCand.GetEmcClusterE1()>>hFscE1","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56","goff");
150 
151  TH1F *hFscE9 = new TH1F("hFscE9","FSC E9",100,0.,1);
152  simtree->Draw("PidChargedCand.GetEmcClusterE9()>>hFscE9","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56","goff");
153 
154  TH1F *hFscE25 = new TH1F("hFscE25","FSC E25",100,0.,1);
155  simtree->Draw("PidChargedCand.GetEmcClusterE25()>>hFscE25","PidChargedCand.GetEmcIndex()>-1&&PidChargedCand.GetTrackBranch()==56","goff");
156 
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");
159 
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");
162 
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");
165 
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");
168 
169  TH1F *hMuoModule = new TH1F("hMuoModule","MUO Module",6,-1.5,4.5);
170  simtree->Draw("PidChargedCand.GetMuoModule()>>hMuoModule","PidChargedCand.GetMuoIndex()>-1","goff");
171 
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");
174 
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");
177 
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");
180 
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");
183 
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");
186 
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");
189 
190 
191  file_out->cd();
192 
193  hMomentum->Write();
194  hTheta->Write();
195  hPhi->Write();
196  hMvdHits->Write();
197  hMvdDEDX->Write();
198  hSttHits->Write();
199  hSttDEDX->Write();
200  hFtsHits->Write();
201  hFtsDEDX->Write();
202  hGemHits->Write();
203  hTofTof->Write();
204  hFTofTof->Write();
205  hTofLength->Write();
206  hFTofLength->Write();
207  hTofM2->Write();
208  hFTofM2->Write();
209  hTofQ->Write();
210  hFTofQ->Write();
211  hDrcThetaC->Write();
212  hDrcThetaCErr->Write();
213  hDrcQ->Write();
214  hDrcNPhotons->Write();
215  hDiscThetaC->Write();
216  hDiscThetaCErr->Write();
217  hDiscQ->Write();
218  hDiscNPhotons->Write();
219  hEmcRawEnergy->Write();
220  hEmcCalEnergy->Write();
221  hEmcQ->Write();
222  hEmcNCrystals->Write();
223  hEmcNBumps->Write();
224  hEmcModule->Write();
225  hEmcZ20->Write();
226  hEmcZ53->Write();
227  hEmcLat->Write();
228  hEmcE1->Write();
229  hEmcE9->Write();
230  hEmcE25->Write();
231  hFscRawEnergy->Write();
232  hFscCalEnergy->Write();
233  hFscQ->Write();
234  hFscNCrystals->Write();
235  hFscNBumps->Write();
236  hFscZ20->Write();
237  hFscZ53->Write();
238  hFscLat->Write();
239  hFscE1->Write();
240  hFscE9->Write();
241  hFscE25->Write();
242  hMuoNLayers->Write();
243  hMuoQ->Write();
244  hMuoIron->Write();
245  hMuoMomentumIn->Write();
246  hMuoModule->Write();
247  hMuoHits->Write();
248  hFMuoNLayers->Write();
249  hFMuoQ->Write();
250  hFMuoIron->Write();
251  hFMuoMomentumIn->Write();
252  hFMuoHits->Write();
253 
254  cout << " Test passed" << endl;
255  cout << " All ok " << endl;
256  return 0;
257 }
TTree * simtree
Definition: runPULL1.C:21
int plot_pid()