File indexing completed on 2023-10-25 09:46:11
0001 #include <vector>
0002
0003 void PlotGraphs( TH1F* full, TH1F* fast) {
0004
0005 full->SetMarkerColor(4);
0006 full->SetLineColor(4);
0007 full->SetLineWidth(2);
0008 full->SetLineStyle(3);
0009
0010 full->Draw();
0011
0012
0013 fast->SetMarkerStyle(25);
0014 fast->SetMarkerColor(2);
0015 fast->SetLineColor(2);
0016 fast->SetLineWidth(2);
0017 fast->Draw("same");
0018
0019 }
0020
0021 void Efficiency(unsigned int iter) {
0022
0023 gROOT->Reset();
0024 TFile *f = new TFile("testGeneralTracks.root");
0025 if(f->IsZombie() ) return;
0026 f->cd("DQMData");
0027
0028 std::vector<char *> titleFull;
0029 std::vector<char *> titleFast;
0030 std::vector<char *> titleGen;
0031 titleFull.push_back("eff1Full_p_0_1");
0032 titleFull.push_back("eff1Full_p_1_2");
0033 titleFull.push_back("eff1Full_p_2_3");
0034 titleFull.push_back("eff1Full_p_3_4");
0035 titleFull.push_back("eff1Full_p_4_5");
0036 titleFull.push_back("eff1Full_p_5_6");
0037 titleFull.push_back("eff1Full_p_6_7");
0038 titleFull.push_back("eff1Full_p_7_8");
0039 titleFull.push_back("eff1Full_p_8_9");
0040 titleFull.push_back("eff1Full_p_9_10");
0041 titleFast.push_back("eff1Fast_p_0_1");
0042 titleFast.push_back("eff1Fast_p_1_2");
0043 titleFast.push_back("eff1Fast_p_2_3");
0044 titleFast.push_back("eff1Fast_p_3_4");
0045 titleFast.push_back("eff1Fast_p_4_5");
0046 titleFast.push_back("eff1Fast_p_5_6");
0047 titleFast.push_back("eff1Fast_p_6_7");
0048 titleFast.push_back("eff1Fast_p_7_8");
0049 titleFast.push_back("eff1Fast_p_8_9");
0050 titleFast.push_back("eff1Fast_p_9_10");
0051 titleGen.push_back("eff1Gen_p_0_1");
0052 titleGen.push_back("eff1Gen_p_1_2");
0053 titleGen.push_back("eff1Gen_p_2_3");
0054 titleGen.push_back("eff1Gen_p_3_4");
0055 titleGen.push_back("eff1Gen_p_4_5");
0056 titleGen.push_back("eff1Gen_p_5_6");
0057 titleGen.push_back("eff1Gen_p_6_7");
0058 titleGen.push_back("eff1Gen_p_7_8");
0059 titleGen.push_back("eff1Gen_p_8_9");
0060 titleGen.push_back("eff1Gen_p_9_10");
0061
0062 TCanvas *c = new TCanvas("c","",1000, 600);
0063 c->Divide(3,4);
0064 TH2F* effFull;
0065 TH2F* effFast;
0066 TH2F* genPlot;
0067 genPlot = (TH2F*) gDirectory->Get("genEtaP");
0068 if ( iter == 0 ) {
0069 effFull = (TH2F*) gDirectory->Get("eff0Full");
0070 effFast = (TH2F*) gDirectory->Get("eff0Fast");
0071 } else if ( iter == 1 ) {
0072 effFull = (TH2F*) gDirectory->Get("eff1Full");
0073 effFast = (TH2F*) gDirectory->Get("eff1Fast");
0074 } else if ( iter == 2 ) {
0075 effFull = (TH2F*) gDirectory->Get("eff2Full");
0076 effFast = (TH2F*) gDirectory->Get("eff2Fast");
0077 } else if ( iter == 3 ) {
0078 effFull = (TH2F*) gDirectory->Get("eff3Full");
0079 effFast = (TH2F*) gDirectory->Get("eff3Fast");
0080 } else if ( iter == 4 ) {
0081 effFull = (TH2F*) gDirectory->Get("eff4Full");
0082 effFast = (TH2F*) gDirectory->Get("eff4Fast");
0083 } else if ( iter == 5 ) {
0084 effFull = (TH2F*) gDirectory->Get("eff5Full");
0085 effFast = (TH2F*) gDirectory->Get("eff5Fast");
0086 } else if ( iter == 11 ) {
0087 effFull = (TH2F*) gDirectory->Get("eff1Full1");
0088 effFast = (TH2F*) gDirectory->Get("eff1Fast1");
0089 } else if ( iter == 12 ) {
0090 effFull = (TH2F*) gDirectory->Get("eff1Full2");
0091 effFast = (TH2F*) gDirectory->Get("eff1Fast2");
0092 }
0093 for (unsigned imom=1;imom<11;++imom) {
0094 genPlot->ProjectionX(titleGen[imom-1],10*(imom-1)+1,10*imom+1);
0095 effFull->ProjectionX(titleFull[imom-1],10*(imom-1)+1,10*imom+1);
0096 effFast->ProjectionX(titleFast[imom-1],10*(imom-1)+1,10*imom+1);
0097 TH1F* fast = (TH1F*) gDirectory->Get(titleFast[imom-1]);
0098 TH1F* full = (TH1F*) gDirectory->Get(titleFull[imom-1]);
0099 TH1F* gen = (TH1F*) gDirectory->Get(titleGen[imom-1]);
0100 fast->Divide(gen);
0101 full->Divide(gen);
0102 c->cd(imom);
0103 PlotGraphs(full,fast);
0104 }
0105
0106
0107 TH1F* fast;
0108 TH1F* full;
0109 TH1F* gen;
0110 TH1F* fastp;
0111 TH1F* fullp;
0112 TH1F* genp;
0113 genPlot->ProjectionX();
0114 effFull->ProjectionX();
0115 effFast->ProjectionX();
0116 genPlot->ProjectionY();
0117 effFull->ProjectionY();
0118 effFast->ProjectionY();
0119 if ( iter == 0 ) {
0120 fast = (TH1F*) gDirectory->Get("eff0Fast_px");
0121 full = (TH1F*) gDirectory->Get("eff0Full_px");
0122 fastp = (TH1F*) gDirectory->Get("eff0Fast_py");
0123 fullp = (TH1F*) gDirectory->Get("eff0Full_py");
0124 }else if ( iter == 1 ) {
0125 fast = (TH1F*) gDirectory->Get("eff1Fast_px");
0126 full = (TH1F*) gDirectory->Get("eff1Full_px");
0127 fastp = (TH1F*) gDirectory->Get("eff1Fast_py");
0128 fullp = (TH1F*) gDirectory->Get("eff1Full_py");
0129 } else if ( iter == 2 ) {
0130 fast = (TH1F*) gDirectory->Get("eff2Fast_px");
0131 full = (TH1F*) gDirectory->Get("eff2Full_px");
0132 fastp = (TH1F*) gDirectory->Get("eff2Fast_py");
0133 fullp = (TH1F*) gDirectory->Get("eff2Full_py");
0134 } else if ( iter == 3 ) {
0135 fast = (TH1F*) gDirectory->Get("eff3Fast_px");
0136 full = (TH1F*) gDirectory->Get("eff3Full_px");
0137 fastp = (TH1F*) gDirectory->Get("eff3Fast_py");
0138 fullp = (TH1F*) gDirectory->Get("eff3Full_py");
0139 } else if ( iter == 4 ) {
0140 fast = (TH1F*) gDirectory->Get("eff4Fast_px");
0141 full = (TH1F*) gDirectory->Get("eff4Full_px");
0142 fastp = (TH1F*) gDirectory->Get("eff4Fast_py");
0143 fullp = (TH1F*) gDirectory->Get("eff4Full_py");
0144 } else if ( iter == 5 ) {
0145 fast = (TH1F*) gDirectory->Get("eff5Fast_px");
0146 full = (TH1F*) gDirectory->Get("eff5Full_px");
0147 fastp = (TH1F*) gDirectory->Get("eff5Fast_py");
0148 fullp = (TH1F*) gDirectory->Get("eff5Full_py");
0149 } else if ( iter == 11 ) {
0150 fast = (TH1F*) gDirectory->Get("eff1Fast1_px");
0151 full = (TH1F*) gDirectory->Get("eff1Full1_px");
0152 fastp = (TH1F*) gDirectory->Get("eff1Fast1_py");
0153 fullp = (TH1F*) gDirectory->Get("eff1Full1_py");
0154 } else if ( iter == 12 ) {
0155 fast = (TH1F*) gDirectory->Get("eff1Fast2_px");
0156 full = (TH1F*) gDirectory->Get("eff1Full2_px");
0157 fastp = (TH1F*) gDirectory->Get("eff1Fast2_py");
0158 fullp = (TH1F*) gDirectory->Get("eff1Full2_py");
0159 }
0160 gen = (TH1F*) gDirectory->Get("genEtaP_px");
0161 fast->Divide(gen);
0162 full->Divide(gen);
0163 c->cd(11);
0164 PlotGraphs(full,fast);
0165
0166 genp = (TH1F*) gDirectory->Get("genEtaP_py");
0167 fastp->Divide(genp);
0168 fullp->Divide(genp);
0169 c->cd(12);
0170 PlotGraphs(fullp,fastp);
0171
0172 }
0173
0174 void Hits(unsigned int iter) {
0175
0176 gROOT->Reset();
0177 TFile *f = new TFile("testGeneralTracks.root");
0178
0179 if(f->IsZombie() ) return;
0180 f->cd("DQMData");
0181
0182 std::vector<char *> titleFull;
0183 std::vector<char *> titleFast;
0184 titleFull.push_back("HitsFull_p_0_2");
0185 titleFull.push_back("HitsFull_p_2_4");
0186 titleFull.push_back("HitsFull_p_4_6");
0187 titleFull.push_back("HitsFull_p_6_8");
0188 titleFull.push_back("HitsFull_p_8_10");
0189 titleFull.push_back("HitsFull_Eta_0.0_0.5");
0190 titleFull.push_back("HitsFull_Eta_0.5_1.0");
0191 titleFull.push_back("HitsFull_Eta_1.0_1.5");
0192 titleFull.push_back("HitsFull_Eta_1.5_2.0");
0193 titleFull.push_back("HitsFull_Eta_2.0_2.8");
0194 titleFast.push_back("HitsFast_p_0_2");
0195 titleFast.push_back("HitsFast_p_2_4");
0196 titleFast.push_back("HitsFast_p_4_6");
0197 titleFast.push_back("HitsFast_p_6_8");
0198 titleFast.push_back("HitsFast_p_8_10");
0199 titleFast.push_back("HitsFast_Eta_0.0_0.6");
0200 titleFast.push_back("HitsFast_Eta_0.6_1.2");
0201 titleFast.push_back("HitsFast_Eta_1.2_1.8");
0202 titleFast.push_back("HitsFast_Eta_1.8_2.4");
0203 titleFast.push_back("HitsFast_Eta_2.4_3.0");
0204
0205 TCanvas *c = new TCanvas("c","",1000, 600);
0206 c->Divide(3,4);
0207 TH2F* hitsFullP;
0208 TH2F* hitsFastP;
0209 TH2F* hitsFullEta;
0210 TH2F* hitsFastEta;
0211 if ( iter == 0 ) {
0212 hitsFullP = (TH2F*) gDirectory->Get("Hits0PFull");
0213 hitsFastP = (TH2F*) gDirectory->Get("Hits0PFast");
0214 hitsFullEta = (TH2F*) gDirectory->Get("Hits0EtaFull");
0215 hitsFastEta = (TH2F*) gDirectory->Get("Hits0EtaFast");
0216 }else if ( iter == 1 ) {
0217 hitsFullP = (TH2F*) gDirectory->Get("Hits1PFull");
0218 hitsFastP = (TH2F*) gDirectory->Get("Hits1PFast");
0219 hitsFullEta = (TH2F*) gDirectory->Get("Hits1EtaFull");
0220 hitsFastEta = (TH2F*) gDirectory->Get("Hits1EtaFast");
0221 } else if ( iter == 2 ) {
0222 hitsFullP = (TH2F*) gDirectory->Get("Hits2PFull");
0223 hitsFastP = (TH2F*) gDirectory->Get("Hits2PFast");
0224 hitsFullEta = (TH2F*) gDirectory->Get("Hits2EtaFull");
0225 hitsFastEta = (TH2F*) gDirectory->Get("Hits2EtaFast");
0226 } else if ( iter == 3 ) {
0227 hitsFullP = (TH2F*) gDirectory->Get("Hits3PFull");
0228 hitsFastP = (TH2F*) gDirectory->Get("Hits3PFast");
0229 hitsFullEta = (TH2F*) gDirectory->Get("Hits3EtaFull");
0230 hitsFastEta = (TH2F*) gDirectory->Get("Hits3EtaFast");
0231 } else if ( iter == 4 ) {
0232 hitsFullP = (TH2F*) gDirectory->Get("Hits4PFull");
0233 hitsFastP = (TH2F*) gDirectory->Get("Hits4PFast");
0234 hitsFullEta = (TH2F*) gDirectory->Get("Hits4EtaFull");
0235 hitsFastEta = (TH2F*) gDirectory->Get("Hits4EtaFast");
0236 } else if ( iter == 5 ) {
0237 hitsFullP = (TH2F*) gDirectory->Get("Hits5PFull");
0238 hitsFastP = (TH2F*) gDirectory->Get("Hits5PFast");
0239 hitsFullEta = (TH2F*) gDirectory->Get("Hits5EtaFull");
0240 hitsFastEta = (TH2F*) gDirectory->Get("Hits5EtaFast");
0241 }
0242 for (unsigned imom=1;imom<6;++imom) {
0243 hitsFullP->ProjectionY(titleFull[imom-1],20*(imom-1)+1,20*imom+1);
0244 hitsFastP->ProjectionY(titleFast[imom-1],20*(imom-1)+1,20*imom+1);
0245 hitsFullEta->ProjectionY(titleFull[10-imom],3*(imom-1),max((unsigned int)28,30-3*(imom-1)));
0246 hitsFastEta->ProjectionY(titleFast[10-imom],3*(imom-1),max((unsigned int)28,30-3*(imom-1)));
0247 hitsFullEta->ProjectionY("cacaFull",3*imom,30-3*imom);
0248 hitsFastEta->ProjectionY("cacaFast",3*imom,30-3*imom);
0249
0250 TH1F* fastP = (TH1F*) gDirectory->Get(titleFast[imom-1]);
0251 TH1F* fullP = (TH1F*) gDirectory->Get(titleFull[imom-1]);
0252 TH1F* fastEta = (TH1F*) gDirectory->Get(titleFast[10-imom]);
0253 TH1F* fullEta = (TH1F*) gDirectory->Get(titleFull[10-imom]);
0254 TH1F* fastEta2 = (TH1F*) gDirectory->Get("cacaFast");
0255 TH1F* fullEta2 = (TH1F*) gDirectory->Get("cacaFull");
0256 fastEta->Add(fastEta2,-1);
0257 fullEta->Add(fullEta2,-1);
0258
0259 c->cd(imom);
0260 PlotGraphs(fullP,fastP);
0261 c->cd(12-imom);
0262 PlotGraphs(fullEta,fastEta);
0263 }
0264
0265 }
0266
0267 void Layers(unsigned int iter) {
0268
0269 gROOT->Reset();
0270 TFile *f = new TFile("testGeneralTracks.root");
0271
0272 if(f->IsZombie() ) return;
0273 f->cd("DQMData");
0274
0275 std::vector<char *> titleFull;
0276 std::vector<char *> titleFast;
0277 titleFull.push_back("LayersFull_p_0_2");
0278 titleFull.push_back("LayersFull_p_2_4");
0279 titleFull.push_back("LayersFull_p_4_6");
0280 titleFull.push_back("LayersFull_p_6_8");
0281 titleFull.push_back("LayersFull_p_8_10");
0282 titleFull.push_back("LayersFull_Eta_0.0_0.5");
0283 titleFull.push_back("LayersFull_Eta_0.5_1.0");
0284 titleFull.push_back("LayersFull_Eta_1.0_1.5");
0285 titleFull.push_back("LayersFull_Eta_1.5_2.0");
0286 titleFull.push_back("LayersFull_Eta_2.0_2.8");
0287 titleFast.push_back("LayersFast_p_0_2");
0288 titleFast.push_back("LayersFast_p_2_4");
0289 titleFast.push_back("LayersFast_p_4_6");
0290 titleFast.push_back("LayersFast_p_6_8");
0291 titleFast.push_back("LayersFast_p_8_10");
0292 titleFast.push_back("LayersFast_Eta_0.0_0.6");
0293 titleFast.push_back("LayersFast_Eta_0.6_1.2");
0294 titleFast.push_back("LayersFast_Eta_1.2_1.8");
0295 titleFast.push_back("LayersFast_Eta_1.8_2.4");
0296 titleFast.push_back("LayersFast_Eta_2.4_3.0");
0297
0298 TCanvas *c = new TCanvas("c","",1000, 600);
0299 c->Divide(3,4);
0300 TH2F* layersFullP;
0301 TH2F* layersFastP;
0302 TH2F* layersFullEta;
0303 TH2F* layersFastEta;
0304 if ( iter == 0 ) {
0305 layersFullP = (TH2F*) gDirectory->Get("Layers0PFull");
0306 layersFastP = (TH2F*) gDirectory->Get("Layers0PFast");
0307 layersFullEta = (TH2F*) gDirectory->Get("Layers0EtaFull");
0308 layersFastEta = (TH2F*) gDirectory->Get("Layers0EtaFast");
0309 } else if ( iter == 1 ) {
0310 layersFullP = (TH2F*) gDirectory->Get("Layers1PFull");
0311 layersFastP = (TH2F*) gDirectory->Get("Layers1PFast");
0312 layersFullEta = (TH2F*) gDirectory->Get("Layers1EtaFull");
0313 layersFastEta = (TH2F*) gDirectory->Get("Layers1EtaFast");
0314 } else if ( iter == 2 ) {
0315 layersFullP = (TH2F*) gDirectory->Get("Layers2PFull");
0316 layersFastP = (TH2F*) gDirectory->Get("Layers2PFast");
0317 layersFullEta = (TH2F*) gDirectory->Get("Layers2EtaFull");
0318 layersFastEta = (TH2F*) gDirectory->Get("Layers2EtaFast");
0319 } else if ( iter == 3 ) {
0320 layersFullP = (TH2F*) gDirectory->Get("Layers3PFull");
0321 layersFastP = (TH2F*) gDirectory->Get("Layers3PFast");
0322 layersFullEta = (TH2F*) gDirectory->Get("Layers3EtaFull");
0323 layersFastEta = (TH2F*) gDirectory->Get("Layers3EtaFast");
0324 } else if ( iter == 4 ) {
0325 layersFullP = (TH2F*) gDirectory->Get("Layers4PFull");
0326 layersFastP = (TH2F*) gDirectory->Get("Layers4PFast");
0327 layersFullEta = (TH2F*) gDirectory->Get("Layers4EtaFull");
0328 layersFastEta = (TH2F*) gDirectory->Get("Layers4EtaFast");
0329 } else if ( iter == 5 ) {
0330 layersFullP = (TH2F*) gDirectory->Get("Layers5PFull");
0331 layersFastP = (TH2F*) gDirectory->Get("Layers5PFast");
0332 layersFullEta = (TH2F*) gDirectory->Get("Layers5EtaFull");
0333 layersFastEta = (TH2F*) gDirectory->Get("Layers5EtaFast");
0334 }
0335 for (unsigned imom=1;imom<6;++imom) {
0336 layersFullP->ProjectionY(titleFull[imom-1],20*(imom-1)+1,20*imom+1);
0337 layersFastP->ProjectionY(titleFast[imom-1],20*(imom-1)+1,20*imom+1);
0338 layersFullEta->ProjectionY(titleFull[10-imom],3*(imom-1),max((unsigned int)28,30-3*(imom-1)));
0339 layersFastEta->ProjectionY(titleFast[10-imom],3*(imom-1),max((unsigned int)28,30-3*(imom-1)));
0340 layersFullEta->ProjectionY("cacaFull",3*imom,30-3*imom);
0341 layersFastEta->ProjectionY("cacaFast",3*imom,30-3*imom);
0342 TH1F* fastP = (TH1F*) gDirectory->Get(titleFast[imom-1]);
0343 TH1F* fullP = (TH1F*) gDirectory->Get(titleFull[imom-1]);
0344 TH1F* fastEta = (TH1F*) gDirectory->Get(titleFast[10-imom]);
0345 TH1F* fullEta = (TH1F*) gDirectory->Get(titleFull[10-imom]);
0346 TH1F* fastEta2 = (TH1F*) gDirectory->Get("cacaFast");
0347 TH1F* fullEta2 = (TH1F*) gDirectory->Get("cacaFull");
0348 fastEta->Add(fastEta2,-1);
0349 fullEta->Add(fullEta2,-1);
0350
0351 c->cd(imom);
0352 PlotGraphs(fullP,fastP);
0353 c->cd(12-imom);
0354 PlotGraphs(fullEta,fastEta);
0355 }
0356
0357 }
0358
0359 void totalEfficiency(unsigned int iter) {
0360
0361 gROOT->Reset();
0362
0363 TFile *f = new TFile("testGeneralTracks.root");
0364
0365 if(f->IsZombie() ) return;
0366 f->cd("DQMData");
0367
0368 TCanvas *c = new TCanvas("c","",1000, 600);
0369 c->Divide(1,2);
0370 TH2F* iter0Fast;
0371 TH2F* iter0Full;
0372 TH2F* genPlot;
0373 genPlot = (TH2F*) gDirectory->Get("genEtaP");
0374 iter0Full = (TH2F*) gDirectory->Get("eff0Full");
0375 iter0Fast = (TH2F*) gDirectory->Get("eff0Fast");
0376
0377 TH1F* fast0;
0378 TH1F* full0;
0379 TH1F* gen;
0380 TH1F* fastp0;
0381 TH1F* fullp0;
0382 TH1F* genp;
0383 genPlot->ProjectionX();
0384 iter0Full->ProjectionX("iter0Full_px");
0385 iter0Fast->ProjectionX("iter0Fast_px");
0386 genPlot->ProjectionY();
0387 iter0Full->ProjectionY("iter0Full_py");
0388 iter0Fast->ProjectionY("iter0Fast_py");
0389 fast0 = (TH1F*) gDirectory->Get("iter0Fast_px");
0390 full0 = (TH1F*) gDirectory->Get("iter0Full_px");
0391 fastp0 = (TH1F*) gDirectory->Get("iter0Fast_py");
0392 fullp0 = (TH1F*) gDirectory->Get("iter0Full_py");
0393 gen = (TH1F*) gDirectory->Get("genEtaP_px");
0394 genp = (TH1F*) gDirectory->Get("genEtaP_py");
0395
0396
0397 fast0->Divide(gen);
0398 full0->Divide(gen);
0399 c->cd(1);
0400 PlotGraphs(full0,fast0);
0401
0402 fastp0->Divide(genp);
0403 fullp0->Divide(genp);
0404 c->cd(2);
0405 PlotGraphs(fullp0,fastp0);
0406
0407 }
0408