ROOT logo
/***************************************************
processJETriggerQA:
To procees JE Triggere QA wagon's output

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



const Float_t ptmin =  0. ; //lower cutoff of jet pt spectrum

void processJETriggerQA_V2(TString strFileIn    = "AnalysisResults.root", 
			   TString suftype      = "eps",
			   Float_t jetR         = 0.2, 
			   Float_t minTrkPT     = 0.15, 
			   Float_t minClusterET = 0.3, 
			   Int_t run            = 0,
			   TString trigsuffix   = "",
			   const char* outfile  = "JETriggerQA_outfile.root"
			   ){

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

  TString prefix = "fig_je_TriggerQA_";

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

  if(!trigsuffix=="" || !trigsuffix=="EJE" || !trigsuffix=="EGA")
  {cout << "Unknown trigger suffix. It should be either empty, EJE or EGA." << endl; return;}

  //Load histogram list
  TString folder = Form("TriggerQA_Jet_AKTFullR%02d0_PicoTracks_pT%04d_CaloClustersCorr_ET%04d_pt_scheme_Jet_AKTChargedR%02d0_PicoTracks_pT%04d_CaloClustersCorr_ET%04d_pt_scheme_TC%s/TriggerQA_Jet_AKTFullR%02d0_PicoTracks_pT%04d_CaloClustersCorr_ET%04d_pt_scheme_Jet_AKTChargedR%02d0_PicoTracks_pT%04d_CaloClustersCorr_ET%04d_pt_scheme_TC%s", 
       TMath::Nint(jetR*10), TMath::Nint(minTrkPT*1000), TMath::Nint(minClusterET*1000),
       TMath::Nint(jetR*10), TMath::Nint(minTrkPT*1000), TMath::Nint(minClusterET*1000),trigsuffix.Data(),
       TMath::Nint(jetR*10), TMath::Nint(minTrkPT*1000), TMath::Nint(minClusterET*1000),  
       TMath::Nint(jetR*10), TMath::Nint(minTrkPT*1000), TMath::Nint(minClusterET*1000),trigsuffix.Data());
  TList *histList = 0x0;
  histList =  (TList*)f1->Get(folder);
  if(histList==0){
    cout << "Could not find " << folder << " in " << strFileIn << endl;
    return;
  }

  //---------------------------------------------------------------------------------------------------
  //       jet histograms
  //---------------------------------------------------------------------------------------------------

  const Int_t kJetType = 2;
  TString suffix[kJetType] = {"Charged","Full"};
  TH3F *h3PtEtaPhiJet[kJetType];
  TH1F *hPtJet[kJetType];
  TH2F *hEtaPhiJet[kJetType];
  TH2F *hRhoCent[kJetType];

  TH1F *hNEventSel = histList->FindObject("fhNEvents");
  Float_t nEvents  = hNEventSel->GetBinContent(2);

  TProfile *hTriggerbit = histList->FindObject("fhTriggerbit");
  UInt_t triggerbit = hTriggerbit->GetBinContent(1);

  for(Int_t itype = 0; itype < kJetType; itype++){

     h3PtEtaPhiJet[itype] = (TH3F*)  histList->FindObject(Form("fh3PtEtaPhiJet%s",suffix[itype].Data()));
     if(! h3PtEtaPhiJet[itype]) continue;

     //jet pt spectra
     Int_t binMin = 1;
     if(ptmin>0.) binMin = h3PtEtaPhiJet[itype]->GetXaxis()->FindBin(ptmin+0.00001);
     h3PtEtaPhiJet[itype]->GetXaxis()->SetRange(binMin, h3PtEtaPhiJet[itype]->GetNbinsX());

     hPtJet[itype] = (TH1F*) h3PtEtaPhiJet[itype]->Project3D("x");
     if(nEvents>0)
     hPtJet[itype]->Scale(1./nEvents,"width");
     SetHist((TH1F*) hPtJet[itype],"p_{T,corr}^{jet} (GeV)","1/N_{evt} dN/dp_{T,corr}^{jet} (GeV^{-1})");
     hPtJet[itype]->SetName(Form("hPtJet%s",suffix[itype].Data())); 

     //eta versus phi
     hEtaPhiJet[itype] = (TH2F*) h3PtEtaPhiJet[itype]->Project3D("yz");
     SetHist((TH1F*) hEtaPhiJet[itype],"#varphi^{jet} (rad)","#eta^{jet}");
     hEtaPhiJet[itype]->SetName(Form("hEtaPhiJet%s",suffix[itype].Data()));
  }

  for(Int_t itype = 0; itype < kJetType; itype++){
  //rho versus centrality
    hRhoCent[itype] = (TH2F*) histList->FindObject(Form("fHistRhovsCent%s",suffix[itype].Data()));
     if(!hRhoCent[itype]) continue;
     SetHist((TH1F*) hRhoCent[itype], "Centrality (%)", Form("%s#rho (GeV/c*rad^{-1})", (suffix[itype]=="Full")?"s":"" ));
     hRhoCent[itype]->SetName(Form("hRhoCent%s",suffix[itype].Data()));
  }

  //______________
  //Draw histograms

  TCanvas *c[100];
  TH1F *frame[100];
  Int_t nCan = 0;
  TLegend *leg; 

  TString longtrigname = "";
  UInt_t emcalPhysSelbit = 1<<31;
  if(triggerbit==AliVEvent::kAny) longtrigname = "kAny";
  else if(triggerbit==AliVEvent::kAnyINT) longtrigname = "kAnyINT";
  else if(triggerbit==emcalPhysSelbit) longtrigname = "EmcalPhysicsSelectionTask";
  else {
    if(triggerbit & AliVEvent::kCentral) longtrigname += "kCentral";
    if(triggerbit & AliVEvent::kSemiCentral) longtrigname += "kSemiCentral";
    if(triggerbit & AliVEvent::kMB)  longtrigname += "kMB";
  }

  if(trigsuffix=="EJE")  longtrigname += "AndkEMCEJE";
  if(trigsuffix=="EGA")  longtrigname += "AndkEMCEGA";
 
  for(Int_t itype = 0; itype < kJetType; itype++){ //loop over charged and full jets

     //draw pt spectrum
     if(!hPtJet[itype]) continue; 
     c[nCan] = new TCanvas(Form("c%d",nCan),Form("c%d: Pt %s jets",nCan,suffix[itype].Data()),600,450);
     SetCanvas((TCanvas*) c[nCan]);
     c[nCan]->SetLogy();

     frame[nCan] = gPad->DrawFrame(hPtJet[itype]->GetBinLowEdge(1),  
                                   1e-7,
                                   hPtJet[itype]->GetBinLowEdge(hPtJet[itype]->GetNbinsX()+1), 
                                   hPtJet[itype]->GetBinContent(hPtJet[itype]->GetMaximumBin())*2.);

     SetHist((TH1F*) frame[nCan],hPtJet[itype]->GetXaxis()->GetTitle(),hPtJet[itype]->GetYaxis()->GetTitle());
 

     hPtJet[itype]->DrawCopy("same");
 
     leg = new TLegend(0.15,0.5,0.88,0.88);
     SetLeg(leg);
     
     TString txt =  Form("%s jets AKT R=%.1f",suffix[itype].Data(),jetR);
     if(run>0) txt += Form(" run:%d",run); 
     leg->AddEntry((TObject*) 0, txt.Data(),"");
     leg->AddEntry((TObject*) 0, Form("Trigger: %s",longtrigname.Data()),"");
     leg->AddEntry((TObject*) 0, Form("p_{T,trk}> %d MeV",TMath::Nint(minTrkPT*1000)),"");
     if(itype==1) leg->AddEntry((TObject*) 0, Form("E_{T}>%d MeV",TMath::Nint(minClusterET*1000)),""); 
     leg->AddEntry((TObject*) 0, Form("#it{N}_{events} = %.0f",nEvents),"");
     leg->Draw();

     c[nCan]->SaveAs(Form("%s_Pt_AKT%02d_pT%04d_ET%04d_Run%d_Trigger%s_%s.%s",prefix.Data(),TMath::Nint(jetR*10),
			  TMath::Nint(minTrkPT*1000),TMath::Nint(minClusterET*1000), run, longtrigname.Data(), suffix[itype].Data(), suftype.Data()));

     nCan++;
  }//end of loop over charged and full jets
  //_________________
  //draw eta versus phi
  for(Int_t itype = 0; itype < kJetType; itype++){ //loop over charged and full jets
     if(!hEtaPhiJet[itype]) continue; 
     c[nCan] = new TCanvas(Form("c%d",nCan),Form("c%d: eta-phi %s jets",nCan,suffix[itype].Data()),600,450);
     SetCanvas((TCanvas*) c[nCan]);
     c[nCan]->SetRightMargin(0.15);

     frame[nCan] = gPad->DrawFrame(hEtaPhiJet[itype]->GetXaxis()->GetBinLowEdge(1),  
                                   hEtaPhiJet[itype]->GetYaxis()->GetBinLowEdge(1),
                                   hEtaPhiJet[itype]->GetXaxis()->GetBinLowEdge(hEtaPhiJet[itype]->GetNbinsX()),
                                   hEtaPhiJet[itype]->GetYaxis()->GetBinLowEdge(hEtaPhiJet[itype]->GetNbinsY()));

     SetHist((TH1F*) frame[nCan],hEtaPhiJet[itype]->GetXaxis()->GetTitle(),hEtaPhiJet[itype]->GetYaxis()->GetTitle());
 

     hEtaPhiJet[itype]->DrawCopy("same,colz");
 
     leg = new TLegend(0.15,0.5,0.88,0.88);
     SetLeg(leg);

     TString txt =  Form("%s jets AKT R=%.1f",suffix[itype].Data(),jetR);
     if(run>0) txt += Form(" run:%d",run); 
     leg->AddEntry((TObject*) 0, txt.Data(),"");
     leg->AddEntry((TObject*) 0, Form("Trigger: %s",longtrigname.Data()),"");
     leg->AddEntry((TObject*) 0, Form("p_{T,trk}> %d MeV",TMath::Nint(minTrkPT*1000)),"");
     if(itype==1) leg->AddEntry((TObject*) 0, Form("E_{T}>%d MeV",TMath::Nint(minClusterET*1000)),"");
     leg->AddEntry((TObject*) 0, Form("#it{N}_{events} = %.0f",nEvents),"");
     leg->AddEntry((TObject*) 0, Form("p_{T,corr}^{jet} > %.1f GeV", ptmin),"");
     leg->Draw();

     c[nCan]->SaveAs(Form("%s_EtaPhi_AKT%02d_pT%04d_ET%04d_Run%d_Trigger%s_%s.%s",prefix.Data(),TMath::Nint(jetR*10),
			  TMath::Nint(minTrkPT*1000),TMath::Nint(minClusterET*1000), run, longtrigname.Data(), suffix[itype].Data(), suftype.Data()));

     nCan++;
  }//end of the loop over charged and full jets
  //_________________
  //draw rho versus centrality
  for(Int_t itype = 0; itype < kJetType; itype++){ //loop over charged and full jets
     if(hRhoCent[itype]) {
       c[nCan] = new TCanvas(Form("c%d",nCan),Form("c%d: Rho-Cent",nCan),600,450);
       SetCanvas((TCanvas*) c[nCan]);
       c[nCan]->SetRightMargin(0.15);
       c[nCan]->SetLogz();
  
       frame[nCan] = gPad->DrawFrame(hRhoCent[itype]->GetXaxis()->GetBinLowEdge(1),
                                     hRhoCent[itype]->GetYaxis()->GetBinLowEdge(1),
                                     hRhoCent[itype]->GetXaxis()->GetBinLowEdge(hRhoCent[itype]->GetNbinsX()),
                                     hRhoCent[itype]->GetYaxis()->GetBinLowEdge(hRhoCent[itype]->GetNbinsY()));
  
       SetHist((TH1F*) frame[nCan],hRhoCent[itype]->GetXaxis()->GetTitle(),hRhoCent[itype]->GetYaxis()->GetTitle());
  
       hRhoCent[itype]->DrawCopy("colz");
  
       leg = new TLegend(0.15,0.5,0.88,0.88);
       SetLeg(leg);
  
       TString txt =  Form("%s jets AKT R=%.1f",suffix[itype].Data(),jetR);
       if(run>0) txt += Form(" run:%d",run); 
  
       leg->AddEntry((TObject*) 0, txt.Data(),"");
       leg->AddEntry((TObject*) 0, Form("Trigger: %s",longtrigname.Data()),"");
       leg->AddEntry((TObject*) 0, Form("#it{N}_{events} = %.0f",nEvents),"");
       leg->Draw();
  
       c[nCan]->SaveAs(Form("%s_RhoCent_AKT%02d_pT%04d_ET%04d_Run%d_Trigger%s_%s.%s",prefix.Data(),TMath::Nint(jetR*10),
			    TMath::Nint(minTrkPT*1000),TMath::Nint(minClusterET*1000), run, longtrigname.Data(), suffix[itype].Data(), suftype.Data()));
       nCan++; 
    }
  }//end of the loop over charged and full jets

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


  /* Standalone output
    TFile *histOut = new TFile(Form("%s_AKT%02d_pT%04d_ET%04d_jetPtMin%.1f_Run%d.root",prefix.Data(),
    TMath::Nint(jetR*10), TMath::Nint(minTrkPT*1000), TMath::Nint(minClusterET*1000),ptmin,run),"RECREATE");
    
    for(Int_t itype = 0; itype < kJetType; itype++){ //loop over charged and full jets
     
    if(hPtJet[itype])     hPtJet[itype]->Write();
    if(hEtaPhiJet[itype]) hEtaPhiJet[itype]->Write();
    if(hRhoCent[itype])   hRhoCent[itype]->Write();
    }
    
    histOut->Close();
  
  */

  // Common output - 
  // 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();
  
  for(Int_t itype = 0; itype < kJetType; itype++){ //loop over charged and full jets
    
    if(hPtJet[itype])     hPtJet[itype]->Write(Form("%s%d_%s",prefix.Data(), itype, hPtJet[itype]->GetName()));
    if(hEtaPhiJet[itype]) hEtaPhiJet[itype]->Write(Form("%s%d_%s",prefix.Data(), itype, hEtaPhiJet[itype]->GetName()));
    if(hRhoCent[itype])   hRhoCent[itype]->Write(Form("%s%d_%s",prefix.Data(), itype, hRhoCent[itype]->GetName()));
  }
  
  fout->Close();



}
//__________________________________________________________

void SetHist(TH1* h,TString titx, TString tity){

   h->GetXaxis()->SetTitle(titx.Data());
   h->GetYaxis()->SetTitle(tity.Data());
   h->GetXaxis()->SetTitleSize(0.06);
   h->GetYaxis()->SetTitleSize(0.06);
   h->GetYaxis()->SetTitleOffset(1.);
   h->GetXaxis()->SetTitleOffset(1.);
   h->SetLineWidth(3);

}
//_____________________________________________________________________

void SetCanvas(TCanvas* c){
   c->SetLeftMargin(0.15);
   c->SetBottomMargin(0.15);
   c->SetRightMargin(0.05);
   c->SetTopMargin(0.05);
   c->SetTickx();
   c->SetTicky();
}
//_____________________________________________________________________

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