ROOT logo
/***************************************************************
 processHFEQAtask:

 Post Processing of HF QA task in Analysis QA train 
 
 Modification Done // sjena
 To save file and putting an unique naming convention

***************************************************************/

void processHFEQAtask(const char *fnamedata = "AnalysisResults.root", 
		      TString suffix = "eps",
		      const char * outfile = "HFEQAtask_output.root") {

  const char *fnamedir  = "t131073f16s0p1TPC110r60p80ITS4Pi2DCAr100z200TOF30TPCe50V0D2er8i0t-20t50";
  const char *fnamelist = "list_t131073f16s0p1TPC110r60p80ITS4Pi2DCAr100z200TOF30TPCe50V0D2er8i0t-20t50";


  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libCORRFW.so");
  gSystem->Load("libTENDER.so");
  gSystem->Load("libPWGPP.so");
  gSystem->Load("libPWGflowBase.so");
  gSystem->Load("libPWGflowTasks.so");
  gSystem->Load("libPWGHFhfe.so");

  
  gStyle->SetPalette(1);
  gStyle->SetOptStat(1111);
  gStyle->SetPadBorderMode(0);
  gStyle->SetCanvasColor(10);
  gStyle->SetPadLeftMargin(0.13);
  gStyle->SetPadRightMargin(0.13);
  gStyle->SetPadBottomMargin(0.13);
  gStyle->SetPadTopMargin(0.13);

  
  //////////////////////
  // Data
  //////////////////////
  TFile *indata = TFile::Open(fnamedata);
  indata->ls();
  TDirectoryFile *d = (TDirectoryFile *) indata->Get(fnamedir);

  if(!d) {
    Printf("FATAL: %s :  Not found", fnamedir);
    Printf("Exiting <<<<<<<<<<<<<<<< processHFEQAtask >>>>>>>>>>>>>");
    return;
  }

  TList *qadata = (TList *) d->Get(fnamelist);

  
  if(!qadata) {
    Printf("FATAL: %s :  Not found", fnamelist);
    Printf("Exiting <<<<<<<<<<<<<<<< processHFEQAtask >>>>>>>>>>>>>");
    return;
  }



  TList *qaadata = (TList *)qadata->FindObject("HFEpidQA");
 
  if(!qaadata) {
    Printf("FATAL: HFEpidQA   Not found");
    Printf("Exiting <<<<<<<<<<<<<<<< processHFEQAtask >>>>>>>>>>>>>");
    return;
  }


  // Make Plots for TPC
  AliHFEtpcPIDqa *tpcqadata = (AliHFEtpcPIDqa *)qaadata->FindObject("TPCQA");
  AliHFEcollection *collectiontpc = tpcqadata->GetHistograms();
  THnSparseF *tpcsparseF = (THnSparseF *) collectiontpc->Get("tpcnSigma");
 
  // Make Plots for TOF
  AliHFEtofPIDqa *tofqadata = (AliHFEtofPIDqa *)qaadata->FindObject("TOFQA");
  AliHFEcollection *collectiontof = tofqadata->GetHistoCollection();
  THnSparseF *tofsparseF = (THnSparseF *) collectiontof->Get("tofnSigma");
  THnSparseF *toftpcsparseF = (THnSparseF *) collectiontof->Get("tofMonitorTPC");
  

  ////////////////
  // Projection
  /////////////////

  TAxis *pidaxistpc = tpcsparseF->GetAxis(0);
  TAxis *pidaxistof = tofsparseF->GetAxis(0);
  TAxis *pidaxistoftpc = toftpcsparseF->GetAxis(0);

  TAxis *stepaxistpc = tpcsparseF->GetAxis(3);
  TAxis *stepaxistof = tofsparseF->GetAxis(3);
  TAxis *stepaxistoftpc = toftpcsparseF->GetAxis(3);

  TAxis *centralityaxistpc = tpcsparseF->GetAxis(4);
  TAxis *centralityaxistof = tofsparseF->GetAxis(4);
  TAxis *centralityaxistoftpc = toftpcsparseF->GetAxis(4);

  stepaxistpc->SetRange(1,1);
  stepaxistof->SetRange(1,1);
  stepaxistoftpc->SetRange(2,2);

  Int_t nbinsc = centralityaxistpc->GetNbins();
  printf("There are %d centrality bins \n",nbinsc);
  

  //
  centralityaxistpc->SetRange(8,9);
  centralityaxistof->SetRange(8,9);
  centralityaxistoftpc->SetRange(8,9);
  stepaxistoftpc->SetRange(1,1);  
  TH2D *toftpc2Dsumper = toftpcsparseF->Projection(2,1);
  toftpc2Dsumper->SetName("toftpc2Dsumper_21"); 
  TH2D *tof2Dsumper = tofsparseF->Projection(2,1);
  tof2Dsumper->SetName("tof2Dsumper_21");

  stepaxistof->SetRange(2,2);
  TH2D *tof2Dsumbper = tofsparseF->Projection(2,1);
  tof2Dsumbper->SetName("tof2Dsumbper_21");

  TH2D *tpc2Dsumper = tpcsparseF->Projection(2,1);
  tpc2Dsumper->SetName("toftpc2Dsumper_21");

  stepaxistpc->SetRange(2,2);
  TH2D *tpc2Dsumbper = tpcsparseF->Projection(2,1);
  tpc2Dsumbper->SetName("tpc2Dsumbper_21");

  //
  centralityaxistpc->SetRange(0,1);
  centralityaxistof->SetRange(0,1);
  centralityaxistoftpc->SetRange(0,1);
  stepaxistpc->SetRange(1,1);
  stepaxistof->SetRange(1,1);
  stepaxistoftpc->SetRange(1,1);
  TH2D *toftpc2Dsumc = toftpcsparseF->Projection(2,1);
  toftpc2Dsumc->SetName("toftpc2Dsumc_21");

  TH2D *tof2Dsumc = tofsparseF->Projection(2,1);
  tof2Dsumc->SetName("tof2Dsumc_21");

  stepaxistof->SetRange(2,2);

  TH2D *tof2Dsumbc = tofsparseF->Projection(2,1);
  tof2Dsumbc->SetName("tof2Dsumbc_21");

  TH2D *tpc2Dsumc = tpcsparseF->Projection(2,1);
  tpc2Dsumc->SetName("tpc2Dsumc_21");

  stepaxistpc->SetRange(2,2);
  TH2D *tpc2Dsumbc = tpcsparseF->Projection(2,1);
  tpc2Dsumbc->SetName("tpc2Dsumbc_21");

  
  ///////////////
  // Plots
  ///////////////

  //added by sjena 
  TFile *fout = TFile::Open(outfile,"UPDATE");
  fout->ls();
  
  TDirectoryFile *cdd = NULL;
  cdd = (TDirectoryFile*)fout->Get("HF");
  if(!cdd) {
    Printf("Warning: HF <dir> doesn't exist, creating a new one");
    cdd = (TDirectoryFile*)fout->mkdir("HF");
  }
  cdd->cd();
  cdd->ls();



  // Draw Plots
  TCanvas *cElectronsTPCper = new TCanvas("ElectronTPCPID_70-90%", "ElectronTPCPID_70-90%");
  cElectronsTPCper->Divide(3,1);
  cElectronsTPCper->cd(1);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tof2Dsumper->SetStats(0);
  tof2Dsumper->SetTitle("TOF 70-90% Pb-Pb");
  tof2Dsumper->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tof2Dsumper->GetYaxis()->SetTitle("TOF time_{e} - expected time|_{e}  (#sigma)");
  tof2Dsumper->GetXaxis()->SetRangeUser(0.3,10.0);
  tof2Dsumper->GetXaxis()->SetTitleSize(0.05);
  tof2Dsumper->GetYaxis()->SetTitleSize(0.05);
  tof2Dsumper->Draw("colz");
  
  //Added By Satya
  tof2Dsumper->SetName(Form("fig_hf_1_%s", tof2Dsumper->GetName()));
  tof2Dsumper->Write();

  cElectronsTPCper->cd(2);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tof2Dsumbper->SetStats(0);
  tof2Dsumbper->SetTitle("TOF cut 70-90% Pb-Pb");
  tof2Dsumbper->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tof2Dsumbper->GetYaxis()->SetTitle("TOF time_{e} - expected time|_{e}  (#sigma)");
  tof2Dsumbper->GetXaxis()->SetRangeUser(0.3,10.0);
  tof2Dsumbper->GetXaxis()->SetTitleSize(0.05);
  tof2Dsumbper->GetYaxis()->SetTitleSize(0.05);
  tof2Dsumbper->Draw("colz");


  //Added By Satya
  tof2Dsumbper->SetName(Form("fig_hf_2_%s", tof2Dsumbper->GetName()));
  tof2Dsumbper->Write();

  cElectronsTPCper->cd(3);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tpc2Dsumper->SetStats(0);
  tpc2Dsumper->SetTitle("TPC 70-90% Pb-Pb");
  tpc2Dsumper->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tpc2Dsumper->GetYaxis()->SetTitle("TPC dE/dx - expected dE/dx|_{e}  (#sigma)");
  tpc2Dsumper->GetXaxis()->SetRangeUser(0.3,10.0);
  tpc2Dsumper->GetXaxis()->SetTitleSize(0.05);
  tpc2Dsumper->GetYaxis()->SetTitleSize(0.05);
  tpc2Dsumper->Draw("colz");
  //Added by satya

  
  tpc2Dsumper->SetName(Form("fig_hf_3_%s", tpc2Dsumper->GetName()));
  tpc2Dsumper->Write();

  cElectronsTPCper->SaveAs(Form("fig_hf_ElectronTPCPID_70-90.%s",suffix.Data()));



  TCanvas *cElectronsTPCc = new TCanvas("ElectronTPCPID_0-10%", "ElectronTPCPID_0-10%");
  cElectronsTPCc->Divide(3,1);
  cElectronsTPCc->cd(1);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tof2Dsumc->SetStats(0);
  tof2Dsumc->SetTitle("TOF 0-10% Pb-Pb");
  tof2Dsumc->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tof2Dsumc->GetYaxis()->SetTitle("TOF time_{e} - expected time|_{e}  (#sigma)");
  tof2Dsumc->GetXaxis()->SetRangeUser(0.3,10.0);
  tof2Dsumc->GetXaxis()->SetTitleSize(0.05);
  tof2Dsumc->GetYaxis()->SetTitleSize(0.05);
  tof2Dsumc->Draw("colz");

  tof2Dsumc->SetName(Form("fig_hf_4_%s", tof2Dsumc->GetName()));
  tof2Dsumc->Write();

  cElectronsTPCc->cd(2);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tof2Dsumbc->SetStats(0);
  tof2Dsumbc->SetTitle("TOF cut 0-10% Pb-Pb");
  tof2Dsumbc->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tof2Dsumbc->GetYaxis()->SetTitle("TOF time_{e} - expected time|_{e}  (#sigma)");
  tof2Dsumbc->GetXaxis()->SetRangeUser(0.3,10.0);
  tof2Dsumbc->GetXaxis()->SetTitleSize(0.05);
  tof2Dsumbc->GetYaxis()->SetTitleSize(0.05);
  tof2Dsumbc->Draw("colz");

  tof2Dsumbc->SetName(Form("fig_hf_5_%s", tof2Dsumbc->GetName()));
  tof2Dsumbc->Write();

  cElectronsTPCc->cd(3);
  gPad->SetLogz();
  gPad->SetLogx();
  gPad->SetTicks();
  tpc2Dsumc->SetStats(0);
  tpc2Dsumc->SetTitle("TPC 0-10% Pb-Pb");
  tpc2Dsumc->GetXaxis()->SetTitle("p_{t} (GeV/c)");
  tpc2Dsumc->GetYaxis()->SetTitle("TPC dE/dx - expected dE/dx|_{e}  (#sigma)");
  tpc2Dsumc->GetXaxis()->SetRangeUser(0.3,10.0);
  tpc2Dsumc->GetXaxis()->SetTitleSize(0.05);
  tpc2Dsumc->GetYaxis()->SetTitleSize(0.05);
  tpc2Dsumc->Draw("colz");
  // Added by satya

  tpc2Dsumc->SetName(Form("fig_hf_6_%s", tpc2Dsumc->GetName()));
  tpc2Dsumc->Write();

  cElectronsTPCc->SaveAs(Form("fig_hf_ElectronTPCPID_0-10.%s",suffix.Data()));

  fout->Close();


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