ROOT logo
// monitor reconstruction efficiencies for different track types
// use output of AliAnalysisTaskEfficiency
// Authors: Veronica Canoa Roman, Eva Sicking

void macrosalida(Int_t prod=0,Int_t trackType=0 )
{

  //postfix of analysis output files ("X")
  TString prodName[6]={"A","B","C","D","E","F"};
  //names of physics lists using in analysed productions (LHC11d6x)
  TString prodNameDetail[6]={"Geant4_QGSP_BERT_EMV_p02",
			     "Geant4_QGSP_BERT_CHIPS_p02",
			     "Geant4_QGSP_BERT_EMV_b01",
			     "Geant4_QGSP_BERT_CHIPS_b01",
			     "Geant4_QGSP_FTFP_BERT_b01",
			     "Geant3"};
  // name of track types
  // ITS = left over tracks from global tracking, efficiency does not make sense
  TString trackName[4]={"Global", "TPC", "ITS_SA", "ITS"};
  
  //open file
  // TFile *f = new TFile(Form("AnalysisResults%s.root",prodName[prod].Data()));
  TFile *f = new TFile(Form("AnalysisResults.root",prodName[prod].Data()));
  TList *list = (TList *)f->Get(Form("QAHists/QAHists_%s",trackName[trackType].Data()));

  //style
  gROOT->SetStyle("Plain");
  gStyle->SetOptStat(0);
  const Int_t NRGBs = 5;
  const Int_t NCont = 500;
  Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
  Double_t red[NRGBs]   = { 0.00, 0.00, 0.87, 1.00, 0.51 };
  Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
  Double_t blue[NRGBs]  = { 0.51, 1.00, 0.12, 0.00, 0.00 };
  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
  gStyle->SetNumberContours(NCont);
    

  
  // Pt efficiency histos     
  TH1F* fHistRECpt  =  (TH1F*) list->FindObject("fHistRECpt");
  TH1F* fHistMCpt   =  (TH1F*) list->FindObject("fHistMCpt");
  TH1F* fHistFAKEpt =  (TH1F*) list->FindObject("fHistFAKEpt");
  TH1F* fHistMCNRpt =  (TH1F*) list->FindObject("fHistMCNRpt");
  
    
  c1 = new TCanvas(Form("pT_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   Form("pT_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   100, 100, 1000,800 );
  c1->Divide(2,2);
  c1->cd(1);
  c1->GetPad(1)->SetLogy();
    
  fHistMCpt->SetXTitle("p_{T} [GeV]");
  fHistMCpt->SetMinimum(1);
  fHistMCpt->Draw();
  fHistMCpt->SetTitle("");
  fHistMCpt->SetLineWidth(2);
  fHistRECpt->SetLineColor(2);
  fHistRECpt->SetLineWidth(2);
  fHistRECpt->Draw("same");
  fHistFAKEpt->SetLineColor(4);
  fHistFAKEpt->SetLineWidth(2);
  fHistFAKEpt->Draw("same");
  fHistMCNRpt->SetLineColor(3);
  fHistMCNRpt->SetLineWidth(2);
  fHistMCNRpt->Draw("same");

  c1->cd(4);
  fHistPtInEff = (TH1F*) fHistMCNRpt->Clone();
  fHistPtInEff->Divide(fHistMCpt);
  fHistPtInEff->SetXTitle("p_{T} [GeV]");
  fHistPtInEff->SetTitle("Inefficiency from non-rec. MC tracks");
  fHistPtInEff->Draw();
  fHistPtInEff->SetMinimum(0);
  fHistPtInEff->SetMaximum(1);

  c1->cd(3);
  fHistPtEff = (TH1F*) fHistRECpt->Clone();
  fHistPtEff->Add(fHistFAKEpt, -1.);
  fHistPtEff->Divide(fHistMCpt);
  //    fHistPtEff->Add(fHistPtInEff);
  fHistPtEff->SetXTitle("p_{T} [GeV]");
  fHistPtEff->SetTitle("Efficiency");
  fHistPtEff->Draw();
  fHistPtEff->SetMinimum(0);
  fHistPtEff->SetMaximum(1);

  c1->cd(2);
  TLine *line = new TLine(0.07, 0.75, 0.2, 0.75);
  line->SetLineWidth(3);
  line->Draw();
  tex = new TLatex(0.25, 0.73, "MC");
  tex->SetLineWidth(2);
  tex->SetTextSize(0.08);
  tex->Draw();

  line = new TLine(0.07, 0.55, 0.2, 0.55);
  line->SetLineColor(2);
  line->SetLineWidth(3);
  line->Draw();
  tex = new TLatex(0.25, 0.53, "Reconstructed");
  tex->SetLineWidth(2);
  tex->SetTextSize(0.08);
  tex->Draw();

  line = new TLine(0.07, 0.35, 0.2, 0.35);
  line->SetLineColor(4);
  line->SetLineWidth(3);
  line->Draw();
  tex = new TLatex(0.25, 0.33, "Fake Tracks");
  tex->SetLineWidth(3);
  tex->SetTextSize(0.08);
  tex->Draw();


  line = new TLine(0.07, 0.15, 0.2, 0.15);
  line->SetLineColor(3);
  line->SetLineWidth(3);
  line->Draw();
  tex = new TLatex(0.25, 0.13, "MC not reconstructed");
  tex->SetLineWidth(2);
  tex->SetTextSize(0.08);
  tex->Draw();

  // c1->Print(Form("pT_%s_%s.png",prodNameDetail[prod].Data(),trackName[trackType].Data()));

  // Eta efficiency histos     
  c2 = new TCanvas(Form("eta_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   Form("eta_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   100, 100, 1000,600 );  
  c2->Divide(2,2);
  c2->cd(1);

  TH1F* fHistRECeta  =  (TH1F*) list->FindObject("fHistRECeta");
  TH1F* fHistMCeta   =  (TH1F*) list->FindObject("fHistMCeta");
  TH1F* fHistFAKEeta =  (TH1F*) list->FindObject("fHistFAKEeta");
  TH1F* fHistMCNReta =  (TH1F*) list->FindObject("fHistMCNReta");
  fHistMCeta->SetMinimum(0.);
  fHistMCeta->SetXTitle("#eta");
  fHistMCeta->Draw();
  fHistMCeta->SetTitle("");
  fHistRECeta->SetLineColor(2);
  fHistRECeta->Draw("same");
  fHistFAKEeta->SetLineColor(4);
  fHistFAKEeta->Draw("same");
  fHistMCNReta->SetLineColor(3);
  fHistMCNReta->Draw("same");
  c2->cd(4);
  fHistEtaInEff = (TH1F*) fHistMCNReta->Clone();
  fHistEtaInEff->Divide(fHistMCeta);
  fHistEtaInEff->SetXTitle("#eta");
  fHistEtaInEff->SetTitle("Inefficiency from non-rec. MC tracks");
  fHistEtaInEff->Draw();
  fHistEtaInEff->SetMinimum(0);
  fHistEtaInEff->SetMaximum(1);

  c2->cd(3);
  fHistEtaEff = (TH1F*) fHistRECeta->Clone();
  fHistEtaEff->Add(fHistFAKEeta, -1.);
  fHistEtaEff->Divide(fHistMCeta);
  fHistEtaEff->SetXTitle("#eta");
  fHistEtaEff->SetTitle("Efficiency");
  fHistEtaEff->Draw();
  fHistEtaEff->SetMinimum(0);
  fHistEtaEff->SetMaximum(1);

  c2->cd(2);
  TLine *line = new TLine(0.07, 0.75, 0.2, 0.75);
  line->Draw();
  line->SetLineWidth(2);
  tex = new TLatex(0.25, 0.73, "MC");
  tex->SetLineWidth(2);
  tex->Draw();

  line = new TLine(0.07, 0.55, 0.2, 0.55);
  line->SetLineColor(2);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.53, "Reconstructed");
  tex->SetLineWidth(2);
  tex->Draw();

  line = new TLine(0.07, 0.35, 0.2, 0.35);
  line->SetLineColor(4);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.33, "Fake Tracks");
  tex->SetLineWidth(2);
  tex->Draw();


  line = new TLine(0.07, 0.15, 0.2, 0.15);
  line->SetLineColor(3);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.13, "MC not reconstructed");
  tex->SetLineWidth(2);
  tex->Draw();
  
  //c2->Print(Form("eta_%s_%s.png",prodNameDetail[prod].Data(),trackName[trackType].Data()));


  // Phi efficiency histos     
  c3 = new TCanvas(Form("phi_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   Form("phi_%s_%s",prodNameDetail[prod].Data(),
			trackName[trackType].Data()),
		   100, 100, 1000,600 );  
  c3->Divide(2,2);
  c3->cd(1);

  TH1F* fHistRECphi  =  (TH1F*) list->FindObject("fHistRECphi");
  TH1F* fHistMCphi   =  (TH1F*) list->FindObject("fHistMCphi");
  TH1F* fHistFAKEphi =  (TH1F*) list->FindObject("fHistFAKEphi");
  TH1F* fHistMCNRphi =  (TH1F*) list->FindObject("fHistMCNRphi");
    
  fHistMCphi->SetMinimum(0.);
  fHistMCphi->SetXTitle("#phi");
  fHistMCphi->Draw();
  fHistMCphi->SetTitle("");
  fHistRECphi->SetLineColor(2);
  fHistRECphi->Draw("same");
  fHistFAKEphi->SetLineColor(4);
  fHistFAKEphi->Draw("same");
  fHistMCNRphi->SetLineColor(3);
  fHistMCNRphi->Draw("same");

  c3->cd(4);
    
  fHistPhiInEff = (TH1F*) fHistMCNRphi->Clone();
  fHistPhiInEff->Divide(fHistMCphi);
  fHistPhiInEff->SetXTitle("#phi");
  fHistPhiInEff->SetTitle("Inefficiency from non-rec. MC tracks");
  fHistPhiInEff->Draw();
  fHistPhiInEff->SetMinimum(0);
  fHistPhiInEff->SetMaximum(1);

  c3->cd(3);
  fHistPhiEff = (TH1F*) fHistRECphi->Clone();
  fHistPhiEff->Add(fHistFAKEphi, -1.);
  fHistPhiEff->Divide(fHistMCphi);
  fHistPhiEff->SetXTitle("#phi");
  fHistPhiEff->SetTitle("Efficiency");
  fHistPhiEff->Draw();
  fHistPhiEff->SetMinimum(0);
  fHistPhiEff->SetMaximum(1);


  c3->cd(2);
  TLine *line = new TLine(0.07, 0.75, 0.2, 0.75);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.73, "MC");
  tex->SetLineWidth(2);
  tex->Draw();

  line = new TLine(0.07, 0.55, 0.2, 0.55);
  line->SetLineColor(2);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.53, "Reconstructed");
  tex->SetLineWidth(2);
  tex->Draw();

  line = new TLine(0.07, 0.35, 0.2, 0.35);
  line->SetLineColor(4);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.33, "Fake Tracks");
  tex->SetLineWidth(2);
  tex->Draw();


  line = new TLine(0.07, 0.15, 0.2, 0.15);
  line->SetLineColor(3);
  line->SetLineWidth(2);
  line->Draw();
  tex = new TLatex(0.25, 0.13, "MC not reconstructed");
  tex->SetLineWidth(2);
  tex->Draw();

  // c3->Print(Form("phi_%s_%s.png",prodNameDetail[prod].Data(),trackName[trackType].Data()));


}
 macrosalida.C:1
 macrosalida.C:2
 macrosalida.C:3
 macrosalida.C:4
 macrosalida.C:5
 macrosalida.C:6
 macrosalida.C:7
 macrosalida.C:8
 macrosalida.C:9
 macrosalida.C:10
 macrosalida.C:11
 macrosalida.C:12
 macrosalida.C:13
 macrosalida.C:14
 macrosalida.C:15
 macrosalida.C:16
 macrosalida.C:17
 macrosalida.C:18
 macrosalida.C:19
 macrosalida.C:20
 macrosalida.C:21
 macrosalida.C:22
 macrosalida.C:23
 macrosalida.C:24
 macrosalida.C:25
 macrosalida.C:26
 macrosalida.C:27
 macrosalida.C:28
 macrosalida.C:29
 macrosalida.C:30
 macrosalida.C:31
 macrosalida.C:32
 macrosalida.C:33
 macrosalida.C:34
 macrosalida.C:35
 macrosalida.C:36
 macrosalida.C:37
 macrosalida.C:38
 macrosalida.C:39
 macrosalida.C:40
 macrosalida.C:41
 macrosalida.C:42
 macrosalida.C:43
 macrosalida.C:44
 macrosalida.C:45
 macrosalida.C:46
 macrosalida.C:47
 macrosalida.C:48
 macrosalida.C:49
 macrosalida.C:50
 macrosalida.C:51
 macrosalida.C:52
 macrosalida.C:53
 macrosalida.C:54
 macrosalida.C:55
 macrosalida.C:56
 macrosalida.C:57
 macrosalida.C:58
 macrosalida.C:59
 macrosalida.C:60
 macrosalida.C:61
 macrosalida.C:62
 macrosalida.C:63
 macrosalida.C:64
 macrosalida.C:65
 macrosalida.C:66
 macrosalida.C:67
 macrosalida.C:68
 macrosalida.C:69
 macrosalida.C:70
 macrosalida.C:71
 macrosalida.C:72
 macrosalida.C:73
 macrosalida.C:74
 macrosalida.C:75
 macrosalida.C:76
 macrosalida.C:77
 macrosalida.C:78
 macrosalida.C:79
 macrosalida.C:80
 macrosalida.C:81
 macrosalida.C:82
 macrosalida.C:83
 macrosalida.C:84
 macrosalida.C:85
 macrosalida.C:86
 macrosalida.C:87
 macrosalida.C:88
 macrosalida.C:89
 macrosalida.C:90
 macrosalida.C:91
 macrosalida.C:92
 macrosalida.C:93
 macrosalida.C:94
 macrosalida.C:95
 macrosalida.C:96
 macrosalida.C:97
 macrosalida.C:98
 macrosalida.C:99
 macrosalida.C:100
 macrosalida.C:101
 macrosalida.C:102
 macrosalida.C:103
 macrosalida.C:104
 macrosalida.C:105
 macrosalida.C:106
 macrosalida.C:107
 macrosalida.C:108
 macrosalida.C:109
 macrosalida.C:110
 macrosalida.C:111
 macrosalida.C:112
 macrosalida.C:113
 macrosalida.C:114
 macrosalida.C:115
 macrosalida.C:116
 macrosalida.C:117
 macrosalida.C:118
 macrosalida.C:119
 macrosalida.C:120
 macrosalida.C:121
 macrosalida.C:122
 macrosalida.C:123
 macrosalida.C:124
 macrosalida.C:125
 macrosalida.C:126
 macrosalida.C:127
 macrosalida.C:128
 macrosalida.C:129
 macrosalida.C:130
 macrosalida.C:131
 macrosalida.C:132
 macrosalida.C:133
 macrosalida.C:134
 macrosalida.C:135
 macrosalida.C:136
 macrosalida.C:137
 macrosalida.C:138
 macrosalida.C:139
 macrosalida.C:140
 macrosalida.C:141
 macrosalida.C:142
 macrosalida.C:143
 macrosalida.C:144
 macrosalida.C:145
 macrosalida.C:146
 macrosalida.C:147
 macrosalida.C:148
 macrosalida.C:149
 macrosalida.C:150
 macrosalida.C:151
 macrosalida.C:152
 macrosalida.C:153
 macrosalida.C:154
 macrosalida.C:155
 macrosalida.C:156
 macrosalida.C:157
 macrosalida.C:158
 macrosalida.C:159
 macrosalida.C:160
 macrosalida.C:161
 macrosalida.C:162
 macrosalida.C:163
 macrosalida.C:164
 macrosalida.C:165
 macrosalida.C:166
 macrosalida.C:167
 macrosalida.C:168
 macrosalida.C:169
 macrosalida.C:170
 macrosalida.C:171
 macrosalida.C:172
 macrosalida.C:173
 macrosalida.C:174
 macrosalida.C:175
 macrosalida.C:176
 macrosalida.C:177
 macrosalida.C:178
 macrosalida.C:179
 macrosalida.C:180
 macrosalida.C:181
 macrosalida.C:182
 macrosalida.C:183
 macrosalida.C:184
 macrosalida.C:185
 macrosalida.C:186
 macrosalida.C:187
 macrosalida.C:188
 macrosalida.C:189
 macrosalida.C:190
 macrosalida.C:191
 macrosalida.C:192
 macrosalida.C:193
 macrosalida.C:194
 macrosalida.C:195
 macrosalida.C:196
 macrosalida.C:197
 macrosalida.C:198
 macrosalida.C:199
 macrosalida.C:200
 macrosalida.C:201
 macrosalida.C:202
 macrosalida.C:203
 macrosalida.C:204
 macrosalida.C:205
 macrosalida.C:206
 macrosalida.C:207
 macrosalida.C:208
 macrosalida.C:209
 macrosalida.C:210
 macrosalida.C:211
 macrosalida.C:212
 macrosalida.C:213
 macrosalida.C:214
 macrosalida.C:215
 macrosalida.C:216
 macrosalida.C:217
 macrosalida.C:218
 macrosalida.C:219
 macrosalida.C:220
 macrosalida.C:221
 macrosalida.C:222
 macrosalida.C:223
 macrosalida.C:224
 macrosalida.C:225
 macrosalida.C:226
 macrosalida.C:227
 macrosalida.C:228
 macrosalida.C:229
 macrosalida.C:230
 macrosalida.C:231
 macrosalida.C:232
 macrosalida.C:233
 macrosalida.C:234
 macrosalida.C:235
 macrosalida.C:236
 macrosalida.C:237
 macrosalida.C:238
 macrosalida.C:239
 macrosalida.C:240
 macrosalida.C:241
 macrosalida.C:242
 macrosalida.C:243
 macrosalida.C:244
 macrosalida.C:245
 macrosalida.C:246
 macrosalida.C:247
 macrosalida.C:248
 macrosalida.C:249
 macrosalida.C:250
 macrosalida.C:251
 macrosalida.C:252
 macrosalida.C:253
 macrosalida.C:254
 macrosalida.C:255
 macrosalida.C:256
 macrosalida.C:257
 macrosalida.C:258
 macrosalida.C:259
 macrosalida.C:260
 macrosalida.C:261
 macrosalida.C:262
 macrosalida.C:263
 macrosalida.C:264
 macrosalida.C:265
 macrosalida.C:266
 macrosalida.C:267
 macrosalida.C:268
 macrosalida.C:269
 macrosalida.C:270
 macrosalida.C:271
 macrosalida.C:272
 macrosalida.C:273
 macrosalida.C:274
 macrosalida.C:275
 macrosalida.C:276
 macrosalida.C:277
 macrosalida.C:278
 macrosalida.C:279
 macrosalida.C:280
 macrosalida.C:281
 macrosalida.C:282
 macrosalida.C:283
 macrosalida.C:284
 macrosalida.C:285
 macrosalida.C:286
 macrosalida.C:287
 macrosalida.C:288
 macrosalida.C:289
 macrosalida.C:290
 macrosalida.C:291