ROOT logo
/********************************************************* 
   processJETrackQA: 
   Post processing macro for the JET Track QA


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


const Float_t ptmin =  0.0 ;
void processJETrackQA(TString strFileIn   = "AnalysisResults.root", 
		      TString suffix      = "eps",
		      Int_t cent          = 10, 
		      Int_t trig          = 1, 
		      Bool_t bESD         = kFALSE, 
		      Int_t run           = 0, 
		      const char *outfile ="JETrackQA_output.root") {

  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(0);

  TString prefix = "fig_je_TrackQA_";

  TString strTrigger = "";
  if(trig==1) strTrigger = "kCentral";
  if(trig==2) strTrigger = "kSemiCentral";
  if(trig==3) strTrigger = "kMBkCentralkSemiCentral";
  if(trig==4) strTrigger = "kEMCEJE";
  if(trig==5) strTrigger = "kINT7";
  if(trig==6) strTrigger = "kMB";

  TString strTrigger2 = "";
  if(trig==1) strTrigger2 = "kCentral";
  if(trig==2) strTrigger2 = "kSemiCentral";
  if(trig==3) strTrigger2 = "kMBkCentralSemiCentral";
  if(trig==4) strTrigger2 = "kEMCEJE";
  if(trig==5) strTrigger2 = "kINT7";
  if(trig==6) strTrigger2 = "kMB";

  Int_t globStTrackType = 0;
  Int_t globStCuts = 5;
  Int_t globCnoSPDTrackType = 7;
  Int_t globCnoSPDCuts = 5;

  TFile * f1 = TFile::Open(strFileIn.Data());

  //Load histograms
  TList *histsGlobSt = 0x0;
  histsGlobSt = (TList*)f1->Get(Form("PWG4_HighPtTrackQACent%dTrackType%dCuts%d%s/qa_histsQAtrackCent%dType%dcuts%d%s",cent,globStTrackType,globStCuts,strTrigger.Data(),cent,globStTrackType,globStCuts,strTrigger2.Data()));

  if(!histsGlobSt) {
    Printf(">>>> ERROR: histsGlobSt is not Available");
    return;
  }

  TH1F *fNEventSelGlobSt = histsGlobSt->FindObject("fNEventSel");
  float NEventsGlobSt = fNEventSelGlobSt->GetEntries();

  TList *histsGlobCnoSPD = 0x0;
  histsGlobCnoSPD = (TList*)f1->Get(Form("PWG4_HighPtTrackQACent%dTrackType%dCuts%d%s/qa_histsQAtrackCent%dType%dcuts%d%s",cent,globCnoSPDTrackType,globCnoSPDCuts,strTrigger.Data(),cent,globCnoSPDTrackType,globCnoSPDCuts,strTrigger2.Data()));
  //histsGlobCnoSPD->Print();
  TH1F *fNEventSelGlobCnoSPD = histsGlobCnoSPD->FindObject("fNEventSel");
  float NEventsGlobCnoSPD = fNEventSelGlobCnoSPD->GetEntries();

  if(NEventsGlobSt==0)
    NEventsGlobSt=0.1;
  if(NEventsGlobCnoSPD==0)
    NEventsGlobCnoSPD=0.1;

  //---------------------------------------------------------------------------------------------------
  //                       phi distribution of hybrid tracks
  //---------------------------------------------------------------------------------------------------

  TH2F *fPtPhiGlobSt = histsGlobSt->FindObject("fPtPhi");
  TH2F *fPtPhiGlobCnoSPD = histsGlobCnoSPD->FindObject("fPtPhi");
  fPtPhiGlobSt->SetXTitle("p_{T,track} [GeV]");
  fPtPhiGlobSt->SetYTitle("#varphi");
  fPtPhiGlobCnoSPD->SetXTitle("p_{T,track} [GeV]");
  fPtPhiGlobCnoSPD->SetYTitle("#varphi");

  TCanvas *c2 =new TCanvas("c2","c2: Phi",600,450);
  Int_t binMin = 1;
  if(ptmin>0.) binMin = fPtPhiGlobSt->GetXaxis()->FindBin(ptmin+0.00001);
  TH1D *fPhiGlobSt = fPtPhiGlobSt->ProjectionY("fPhiGlobSt",binMin,fPtPhiGlobSt->GetNbinsX());
  TH1D *fPhiGlobCnoSPD = fPtPhiGlobCnoSPD->ProjectionY("fPhiGlobCnoSPD",binMin,fPtPhiGlobSt->GetNbinsX());

  fPhiGlobSt->SetLineColor(2);
  fPhiGlobSt->SetLineWidth(3);

  fPhiGlobCnoSPD->SetLineStyle(1);
  fPhiGlobCnoSPD->SetLineColor(4);
  fPhiGlobCnoSPD->SetLineWidth(3);

  TH1D *fPhiGlobSum = fPhiGlobSt->Clone();
  fPhiGlobSum->SetTitle("fPhiGlobSum");
  fPhiGlobSum->SetName("fPhiGlobSum");
  fPhiGlobSum->Add(fPhiGlobCnoSPD);

  fPhiGlobSt->Scale(1./NEventsGlobSt,"width");
  fPhiGlobCnoSPD->Scale(1./NEventsGlobSt,"width");
  fPhiGlobSum->Scale(1./NEventsGlobSt,"width");

  gPad->SetLeftMargin(0.2);
  gPad->SetRightMargin(0.02);
  gPad->SetBottomMargin(0.12);

  TH1F *frame2 = gPad->DrawFrame(0.,0.,2.*TMath::Pi(),fPhiGlobSum->GetBinContent(fPhiGlobSum->GetMaximumBin())*1.5);
  frame2->SetXTitle("#varphi");
  frame2->SetYTitle("#frac{1}{N_{evts}} #frac{dN}{d#varphi}");
  frame2->GetXaxis()->SetTitleSize(0.06);
  frame2->GetYaxis()->SetTitleSize(0.06);
  frame2->GetXaxis()->SetTitleOffset(0.75);
  frame2->GetYaxis()->SetTitleOffset(1.4);

  fPhiGlobSt->DrawCopy("same");
  fPhiGlobCnoSPD->DrawCopy("same");
 
  fPhiGlobSum->SetLineColor(1);
  fPhiGlobSum->SetMarkerColor(1);
  fPhiGlobSum->DrawCopy("same");

  TLegend *leg2 = NULL;
  if(run>0) leg2 = new TLegend(0.22,0.65,0.88,0.88,Form("Hybrid tracks. run:%d",run));
  else leg2 = new TLegend(0.22,0.65,0.88,0.88,"Hybrid tracks");
  leg2->SetFillColor(10);
  leg2->SetBorderSize(0);
  leg2->SetFillStyle(0);
  leg2->SetTextSize(0.06);
  leg2->AddEntry(fPhiGlobSt,"Restricted Tracks","l");
  leg2->AddEntry(fPhiGlobCnoSPD,"Complementary Tracks","l");
  leg2->AddEntry(fPhiGlobSum,"Sum","l");
  leg2->Draw();

  TLatex textNEvents;
  textNEvents.SetNDC();
  textNEvents.DrawLatex(0.52,0.42,Form("#it{N}_{events} = %.0f",NEventsGlobSt));

  c2->SaveAs(Form("%sPhiCent%d%sRun%d.%s",prefix.Data(),cent,strTrigger.Data(),run,suffix.Data()));

  //---------------------------------------------------------------------------------------------------
  //                       pt distribution of hybrid tracks
  //---------------------------------------------------------------------------------------------------

  TCanvas *c1 =new TCanvas("c1","c1: Phi",600,450);
  Int_t binMin = 1;
  if(ptmin>0.) binMin = fPtPhiGlobSt->GetXaxis()->FindBin(ptmin+0.00001);
  TH1D *fPtGlobSt = fPtPhiGlobSt->ProjectionX("fPtGlobSt");
  TH1D *fPtGlobCnoSPD = fPtPhiGlobCnoSPD->ProjectionX("fPtGlobCnoSPD");

  fPtGlobSt->SetLineColor(2);
  fPtGlobSt->SetLineWidth(3);

  fPtGlobCnoSPD->SetLineStyle(1);
  fPtGlobCnoSPD->SetLineColor(4);
  fPtGlobCnoSPD->SetLineWidth(3);

  TH1D *fPtGlobSum = fPtGlobSt->Clone();
  fPtGlobSum->SetTitle("fPtGlobSum");
  fPtGlobSum->SetName("fPtGlobSum");
  fPtGlobSum->Add(fPtGlobCnoSPD);

  fPtGlobSt->Scale(1./NEventsGlobSt,"width");
  fPtGlobCnoSPD->Scale(1./NEventsGlobSt,"width");
  fPtGlobSum->Scale(1./NEventsGlobSt,"width");

  gPad->SetLeftMargin(0.2);
  gPad->SetRightMargin(0.02);
  gPad->SetBottomMargin(0.12);

  TH1F *frame1 = gPad->DrawFrame(0.,1e-7,100.,fPtGlobSum->GetBinContent(fPtGlobSum->GetMaximumBin())*1.5);
  frame1->SetXTitle("p_{T} [GeV]");
  frame1->SetYTitle("#frac{1}{N_{evts}}#frac{dN}{dp_{T}} [GeV^{-1}]");
  frame1->GetXaxis()->SetTitleSize(0.06);
  frame1->GetYaxis()->SetTitleSize(0.06);
  frame1->GetXaxis()->SetTitleOffset(0.75);
  frame1->GetYaxis()->SetTitleOffset(1.4);

  gPad->SetLogy();

  fPtGlobSt->DrawCopy("same");
  fPtGlobCnoSPD->DrawCopy("same");
 
  fPtGlobSum->SetLineColor(1);
  fPtGlobSum->SetMarkerColor(1);
  fPtGlobSum->DrawCopy("same");

  TLegend *leg1 = NULL;
  if(run>0) leg1 = new TLegend(0.35,0.65,0.88,0.88,Form("Hybrid tracks. run:%d",run));
  else leg1 = new TLegend(0.35,0.65,0.88,0.88,"Hybrid tracks");
  leg1->SetFillColor(10);
  leg1->SetBorderSize(0);
  leg1->SetFillStyle(0);
  leg1->SetTextSize(0.06);
  leg1->AddEntry(fPtGlobSt,"Restricted Tracks","l");
  leg1->AddEntry(fPtGlobCnoSPD,"Complementary Tracks","l");
  leg1->AddEntry(fPtGlobSum,"Sum","l");
  leg1->Draw();

  TLatex textNEvents;
  textNEvents.SetNDC();
  textNEvents.DrawLatex(0.55,0.45,Form("#it{N}_{events} = %.0f",NEventsGlobSt));

  c1->SaveAs(Form("%sPtCent%d%sRun%d.%s",prefix.Data(),cent,strTrigger.Data(),run,suffix.Data()));

  //---------------------------------------------------------------------------------------------------
  //                       pT resolution
  //---------------------------------------------------------------------------------------------------


  TProfile *fProfPtPtSigma1PtGlobSt = histsGlobSt->FindObject("fProfPtPtSigma1Pt");
  TProfile *fProfPtPtSigma1PtGlobCnoSPD = histsGlobCnoSPD->FindObject("fProfPtPtSigma1Pt");

  fProfPtPtSigma1PtGlobSt->SetTitle("fProfPtPtSigma1PtGlobSt");
  fProfPtPtSigma1PtGlobSt->SetName("fProfPtPtSigma1PtGlobSt");
  fProfPtPtSigma1PtGlobCnoSPD->SetTitle("fProfPtPtSigma1PtGlobCnoSPD");
  fProfPtPtSigma1PtGlobCnoSPD->SetName("fProfPtPtSigma1PtGlobCnoSPD");

  for(Int_t i =1 ; i<fProfPtPtSigma1PtGlobSt->GetNbinsX(); i++) {
    if(fProfPtPtSigma1PtGlobSt->GetBinEffectiveEntries(i)<10.) {
      fProfPtPtSigma1PtGlobSt->SetBinContent(i,0);
      fProfPtPtSigma1PtGlobSt->SetBinError(i,0);
    }
    if(fProfPtPtSigma1PtGlobCnoSPD->GetBinEffectiveEntries(i)<10.) {
      fProfPtPtSigma1PtGlobCnoSPD->SetBinContent(i,0);
      fProfPtPtSigma1PtGlobCnoSPD->SetBinError(i,0);
    }
  }

  TCanvas *c3 =new TCanvas("c3","c3: pT resolution",600,450);
  gPad->SetLeftMargin(0.12);
  gPad->SetRightMargin(0.02);
  gPad->SetBottomMargin(0.12);
  TH1F *frame3 = gPad->DrawFrame(0.,0.,100.,0.3);
  frame3->SetXTitle("#it{p}_{T,track} [GeV/c]");
  frame3->SetYTitle("#it{p}_{T,track}#sigma(1/#it{p}_{T,track})");
  frame3->GetXaxis()->SetTitleSize(0.06);
  frame3->GetYaxis()->SetTitleSize(0.06);
  frame3->GetXaxis()->SetTitleOffset(0.8);
  frame3->GetYaxis()->SetTitleOffset(0.8);

  fProfPtPtSigma1PtGlobSt->SetLineColor(2);
  fProfPtPtSigma1PtGlobSt->SetLineWidth(3);
  fProfPtPtSigma1PtGlobSt->SetMarkerStyle(21);
  fProfPtPtSigma1PtGlobSt->SetMarkerColor(2);

  fProfPtPtSigma1PtGlobCnoSPD->SetLineColor(4);
  fProfPtPtSigma1PtGlobCnoSPD->SetLineWidth(3);
  fProfPtPtSigma1PtGlobCnoSPD->SetMarkerStyle(24);
  fProfPtPtSigma1PtGlobCnoSPD->SetMarkerColor(4);

  fProfPtPtSigma1PtGlobSt->DrawCopy("same");
  fProfPtPtSigma1PtGlobCnoSPD->DrawCopy("same");

  TLegend *leg3 = NULL;
  if(run>0) leg3 = new TLegend(0.16,0.6,0.88,0.88,Form("Hybrid tracks. run:%d",run));
  else leg3 = new TLegend(0.16,0.6,0.88,0.88,"Hybrid tracks");
  leg3->SetFillColor(10);
  leg3->SetBorderSize(0);
  leg3->SetFillStyle(0);
  leg3->SetTextSize(0.06);
  leg3->AddEntry(fProfPtPtSigma1PtGlobSt,"Restricted Tracks","lp");
  leg3->AddEntry(fProfPtPtSigma1PtGlobCnoSPD,"Complementary Tracks","lp");
  leg3->Draw();

  c3->SaveAs(Form("%sPtResolutionCent%d%sRun%d.%s",prefix.Data(),cent,strTrigger.Data(),run,suffix.Data()));

  //---------------------------------------------------------------------------------------------------
  //                       WRITE OUTPUT TO ROOT FILE
  //---------------------------------------------------------------------------------------------------

  // Modifed by satya to have unique name of objects and same name of file
  //
  //  TFile *histOut = new TFile(Form("%sHybridCent%d%sRun%d.root",prefix.Data(),cent,strTrigger.Data(),run),"RECREATE");

 

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

  fPtGlobSt->SetName(Form("%s%s",prefix.Data(), fPtGlobSt->GetName()));
  fPtGlobSt->Write();
  fPtGlobCnoSPD->SetName(Form("%s%s",prefix.Data(), fPtGlobCnoSPD->GetName()));
  fPtGlobCnoSPD->Write();
  fPtGlobSum->SetName(Form("%s%s",prefix.Data(), fPtGlobSum->GetName()));
  fPtGlobSum->Write();
  fPhiGlobSt->SetName(Form("%s%s",prefix.Data(), fPhiGlobSt->GetName()));
  fPhiGlobSt->Write();
  fPhiGlobCnoSPD->SetName(Form("%s%s",prefix.Data(), fPhiGlobCnoSPD->GetName()));
  fPhiGlobCnoSPD->Write();
  fPhiGlobSum->SetName(Form("%s%s",prefix.Data(), fPhiGlobSum->GetName()));
  fPhiGlobSum->Write();
  fProfPtPtSigma1PtGlobSt->SetName(Form("%s%s",prefix.Data(), fProfPtPtSigma1PtGlobSt->GetName()));
  fProfPtPtSigma1PtGlobSt->Write();
  fProfPtPtSigma1PtGlobCnoSPD->SetName(Form("%s%s",prefix.Data(), fProfPtPtSigma1PtGlobCnoSPD->GetName()));
  fProfPtPtSigma1PtGlobCnoSPD->Write();

  fout->Close();


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