ROOT logo
//
// Particle cuts
//
const Double_t etamin = -0.9;
const Double_t etamax =  0.9;
const Double_t ptmin = 0.0;
const Double_t ptmax = 24.0;
const Double_t phimin = -2*TMath::Pi();
const Double_t phimax = 2*TMath::Pi();
const Double_t thetamin = 0;
const Double_t thetamax = TMath::Pi();
const Double_t zvtxmin = -10.0;
const Double_t zvtxmax =  10.0;
//
const Int_t mintrackrefsTPC = 5;
const Int_t mintrackrefsITS = 4;
const Int_t mintrackrefsTOF = 0;
const Int_t mintrackrefsMUON = 0;
const Int_t minclustersTPC = 70;
const Int_t minclustersITS = 2;
const Bool_t TPCRefit = kTRUE;
const Bool_t ITSRefit = kFALSE;
const Bool_t ischarged = kTRUE;
const Int_t  fBit = 0;
const TString centralityEstimator = "V0M";

//
// Container settings
//
// Container mutliplicity bins
const Float_t multmin_0_20 = 0;
const Float_t multmax_0_20 = 20;
const Float_t multmin_20_50 = 20;
const Float_t multmax_20_50 = 50;
const Float_t multmin_50_102 = 50;
const Float_t multmax_50_102 = 102;
//  Container Pt bins
Double_t ptmin_0_2   = 0.0;
Double_t ptmax_0_2   = 2.0;
Double_t ptmin_2_6   = 2.0;
Double_t ptmax_2_6   = 6.0;
Double_t ptmin_6_8   = 6.0;
Double_t ptmax_6_8   = 8.0;
Double_t ptmin_8_16  = 8.0;
Double_t ptmax_8_16  = 16.0;
Double_t ptmin_16_24 = 16.0;
Double_t ptmax_16_24 = 24.0;
// Container centrality bins
const Float_t centmin_0_10 = 0.;
const Float_t centmax_0_10 = 10.;
const Float_t centmin_10_60 = 10.;
const Float_t centmax_10_60 = 60.;
const Float_t centmin_60_100 = 60.;
const Float_t centmax_60_100 = 100.;


AliCFSingleTrackEfficiencyTask *AddSingleTrackEfficiencyTask(const Bool_t readAOD = 0, // Flag to read AOD:1 or ESD:0
							     TString suffix="", // suffix for the output directory
							     AliPID::EParticleType specie=AliPID::kPion, Int_t pdgcode=0, //particle specie
							     ULong64_t triggerMask=AliVEvent::kAnyINT,
							     Bool_t useCentrality = kFALSE
							     )
{

  Info("AliCFSingleTrackEfficiencyTask","SETUP CONTAINER");

  //
  // Setting up the container
  // 
  // Variables
  const Int_t nvar = 7; // number of variables on the grid: pt, y, phi, theta, zvtx, multiplicity, centrality
  UInt_t nstep = 8;     // number of container steps
  const UInt_t ipt = 0;
  const UInt_t iy  = 1;
  const UInt_t iphi = 2;
  const UInt_t itheta = 3;
  const UInt_t izvtx = 4;
  const UInt_t imult = 5;
  const UInt_t icent = 6;
  //
  // Containter bining
  //   A1. Bins variation by hand for pt
  const Int_t nbinpt_0_2 = 8;  //bins in pt from 0 to 2 GeV
  const Int_t nbinpt_2_6 = 8;   //bins in pt from 2 to 6 GeV
  const Int_t nbinpt_6_8 = 2;   //bins in pt from 6 to 8 GeV
  const Int_t nbinpt_8_16 = 4;  //bins in pt from 8 to 16 GeV
  const Int_t nbinpt_16_24 = 1; //bins in pt from 16 to 24 GeV
  //   A2. Bins variation by hand for other variables
  const Int_t nbin2 = 9; //bins in eta
  const Int_t nbin3 = 9; //bins in phi
  const Int_t nbin4 = 9; //bins in theta
  const Int_t nbin5 = 10; //bins in zvtx
  //   A3. Bins for multiplicity
  const Int_t nbinmult = 24;  //bins in multiplicity (total number)	
  const Int_t nbinmult_0_20 = 10; //bins in multiplicity between 0 and 20
  const Int_t nbinmult_20_50 = 10; //bins in multiplicity between 20 and 50
  const Int_t nbinmult_50_102 = 4; //bins in multiplicity between 50 and 102
  //  A4. Bins for centrality
  const Int_t nbincent = 16;  //bins in centrality
  const Int_t nbincent_0_10 = 2;  //bins in centrality between 0 and 10
  const Int_t nbincent_10_60 = 10;  //bins in centrality between 10 and 60
  const Int_t nbincent_60_100 = 4;  //bins in centrality between 60 and 100

  //arrays for the number of bins in each dimension
  Int_t iBin[nvar];
  iBin[0]=nbinpt_0_2+nbinpt_2_6+nbinpt_6_8+nbinpt_8_16+nbinpt_16_24;
  iBin[1]=nbin2;
  iBin[2]=nbin3;
  iBin[3]=nbin4;
  iBin[4]=nbin5;
  iBin[5]=nbinmult;
  iBin[6]=nbincent;

  //arrays for lower bounds :
  Double_t *binLimpT = new Double_t[iBin[0]+1];
  Double_t *binLim2 = new Double_t[iBin[1]+1];
  Double_t *binLim3 = new Double_t[iBin[2]+1];
  Double_t *binLim4 = new Double_t[iBin[3]+1];
  Double_t *binLim5 = new Double_t[iBin[4]+1];
  Double_t *binLimmult = new Double_t[iBin[5]+1];
  Double_t *binLimcent = new Double_t[iBin[6]+1];

  // set the pt bins
  for(Int_t i=0; i<=nbinpt_0_2; i++) binLimpT[i]=(Double_t)ptmin_0_2 + (ptmax_0_2-ptmin_0_2)/nbinpt_0_2*(Double_t)i ;
  for(Int_t i=0; i<=nbinpt_2_6; i++) binLimpT[i+nbinpt_0_2]=(Double_t)ptmin_2_6 + (ptmax_2_6-ptmin_2_6)/nbinpt_2_6*(Double_t)i ;
  for(Int_t i=0; i<=nbinpt_6_8; i++) binLimpT[i+nbinpt_0_2+nbinpt_2_6]=(Double_t)ptmin_6_8 + (ptmax_6_8-ptmin_6_8)/nbinpt_6_8*(Double_t)i ;
  for(Int_t i=0; i<=nbinpt_8_16; i++) binLimpT[i+nbinpt_0_2+nbinpt_2_6+nbinpt_6_8]=(Double_t)ptmin_8_16 + (ptmax_8_16-ptmin_8_16)/nbinpt_8_16*(Double_t)i ;
  for(Int_t i=0; i<=nbinpt_16_24; i++) binLimpT[i+nbinpt_0_2+nbinpt_2_6+nbinpt_6_8+nbinpt_8_16]=(Double_t)ptmin_16_24 + (ptmax_16_24-ptmin_16_24)/nbinpt_16_24*(Double_t)i;

  // Other Variables
  for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)etamin + (etamax-etamin)/nbin2*(Double_t)i ;
  for(Int_t i=0; i<=nbin3; i++) binLim3[i]=(Double_t)phimin + (phimax-phimin)/nbin3*(Double_t)i ;
  for(Int_t i=0; i<=nbin4; i++) binLim4[i]=(Double_t)thetamin + (thetamax-thetamin)/nbin4*(Double_t)i ;
  for(Int_t i=0; i<=nbin5; i++) binLim5[i]=(Double_t)zvtxmin + (zvtxmax-zvtxmin)/nbin5*(Double_t)i ;

  // multiplicity bining..
  for(Int_t i=0; i<=nbinmult_0_20; i++) binLimmult[i]=(Double_t)multmin_0_20 + (multmax_0_20-multmin_0_20)/nbinmult_0_20*(Double_t)i ;
  for(Int_t i=0; i<=nbinmult_20_50; i++) binLimmult[i+nbinmult_0_20]=(Double_t)multmin_20_50 + (multmax_20_50-multmin_20_50)/nbinmult_20_50*(Double_t)i ;
  for(Int_t i=0; i<=nbinmult_50_102; i++) binLimmult[i+nbinmult_0_20+nbinmult_20_50]=(Double_t)multmin_50_102 + (multmax_50_102-multmin_50_102)/nbinmult_50_102*(Double_t)i ;

  // centrality bining
  for(Int_t i=0; i<=nbincent_0_10; i++) binLimcent[i]=(Double_t)centmin_0_10 + (centmax_0_10-centmin_0_10)/nbincent_0_10*(Double_t)i;
  for(Int_t i=0; i<=nbincent_10_60; i++) binLimcent[i+nbincent_0_10]=(Double_t)centmin_10_60 + (centmax_10_60-centmin_10_60)/nbincent_10_60*(Double_t)i;
  for(Int_t i=0; i<=nbincent_60_100; i++) binLimcent[i+nbincent_0_10+nbincent_10_60]=(Double_t)centmin_60_100 + (centmax_60_100-centmin_60_100)/nbincent_60_100*(Double_t)i;

  // Container  
  AliCFContainer* container = new AliCFContainer("container","container for tracks",nstep,nvar,iBin);
  container -> SetBinLimits(ipt,binLimpT);    // pt
  container -> SetBinLimits(iy,binLim2);      // eta
  container -> SetBinLimits(iphi,binLim3);    // phi
  container -> SetBinLimits(itheta,binLim4);  // theta
  container -> SetBinLimits(izvtx,binLim5);   // Zvtx
  container -> SetBinLimits(imult,binLimmult);// multiplicity
  container -> SetBinLimits(icent,binLimcent);// centrality

  // Variable Titles
  container -> SetVarTitle(ipt,"pt");
  container -> SetVarTitle(iy, "y");
  container -> SetVarTitle(iphi,"phi");
  container -> SetVarTitle(itheta, "theata");
  container -> SetVarTitle(izvtx, "Zvtx");
  container -> SetVarTitle(imult, "Multiplicity");
  container -> SetVarTitle(icent, "Centrality");

  // Step Titles
  container -> SetStepTitle(0, " MC Particle with Generated Cuts");
  container -> SetStepTitle(1, " MC Particle with Kine Acceptance Cuts");
  container -> SetStepTitle(2, " MC Particle with Track Ref Acceptance Cuts");
  container -> SetStepTitle(3, " Total Reconstructed  Particle ");
  container -> SetStepTitle(4, " Reco Particle With Kine Acceptance Cuts");
  container -> SetStepTitle(5, " Reco Particle to MC True pt particles ");
  container -> SetStepTitle(6, " Reco Particle With Quality Cuts");
  container -> SetStepTitle(7, " Reco PID With Quality Cuts");


  // SET TLIST FOR QA HISTOS
  TList* qaList = new TList();
  TObjArray* emptyList = new TObjArray(0);

  //CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK
  printf("CREATE INTERFACE AND CUTS\n");
  AliCFManager* man = new AliCFManager();

  man->SetNStepEvent(2);
  man->SetEventContainer(container);
  man->SetEventCutsList(0,emptyList);//evtmcList);
  man->SetEventCutsList(1,emptyList);//evtrecoList);
  
  man->SetParticleContainer(container);
  man->SetParticleCutsList(0,emptyList);//mcGenList);
  man->SetParticleCutsList(1,emptyList);//mcKineList);
  man->SetParticleCutsList(2,emptyList);//mcaccList);
  man->SetParticleCutsList(3,emptyList);//evtrecoPureList);
  man->SetParticleCutsList(4,emptyList);//recKineList);
  man->SetParticleCutsList(5,emptyList);
  man->SetParticleCutsList(6,emptyList);
  man->SetParticleCutsList(7,emptyList);
  
  // Simulated particle & event cuts
  AliSingleTrackEffCuts* cuts = new AliSingleTrackEffCuts();
  cuts->SetPtRange(ptmin,ptmax);
  cuts->SetEtaRange(etamin,etamax);
  cuts->SetIsCharged(ischarged);
  cuts->SetMinVtxContr(1);
  cuts->SetMaxVtxZ(zvtxmax);
  cuts->SetNumberOfClusters(mintrackrefsITS,mintrackrefsTPC,mintrackrefsTOF,mintrackrefsMUON);
  cuts->SetTriggerMask(triggerMask);
  cuts->SetIsAOD(readAOD);
  //
  // Pid selection here
  //
  if(pdgcode>0){
    cuts->SetUsePid(true);
    cuts->SetParticleSpecie(specie);
    cuts->SetPdgCode(pdgcode);
    // 
    const Int_t nlims=1;
    Float_t plims[nlims+1]={0.,999.}; //TPC limits in momentum [GeV/c]
    Float_t sigmas[nlims]={3.};
    cuts->SetUseTPCPid();
    cuts->SetTPCSigmaPtBins(nlims,plims,sigmas);
    cuts->SetMaximumPTPC(4.);
    // 
    const Int_t nlims2=1;
    Float_t plims2[nlims2+1]={0.,999.}; //TPC limits in momentum [GeV/c]
    Float_t sigmas2[nlims2]={3.};
    cuts->SetUseTOFPid();
    cuts->SetTOFSigmaPtBins(nlims2,plims2,sigmas2);
    cuts->SetMaximumPTOF(4.);
  }

  //
  //  Track Quality cuts via ESD track cuts
  //
  AliESDtrackCuts* QualityCuts = new AliESDtrackCuts();
  QualityCuts->SetRequireSigmaToVertex(kFALSE);
  QualityCuts->SetMinNClustersTPC(minclustersTPC);
  QualityCuts->SetMinNClustersITS(minclustersITS);
  QualityCuts->SetRequireTPCRefit(TPCRefit);
  QualityCuts->SetRequireITSRefit(ITSRefit);
  QualityCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  QualityCuts->SetMinDCAToVertexXY(0.);
  QualityCuts->SetEtaRange(etamin,etamax);
  QualityCuts->SetPtRange(ptmin,ptmax);


  //CREATE THE TASK
  printf("CREATE CF Single track task\n");

  AliCFSingleTrackEfficiencyTask *task = new AliCFSingleTrackEfficiencyTask("AliCFSingleTrackEfficiencyTask",QualityCuts,cuts);
  if(readAOD) task->SetFilterBit(kTRUE);
  else task->SetFilterBit(kFALSE);
  task->SetFilterType(fBit);
  //  task->SelectCollisionCandidates(triggerMask);//AliVEvent::kMB);
  if(useCentrality) task->SetUseCentrality(useCentrality,centralityEstimator);
  task->SetCFManager(man); //here is set the CF manager

  //
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTask", "No analysis manager to connect to.");
    return NULL;
  }

  // This task requires an ESD or AOD input handler and an AOD output handler.
  // Check this using the analysis manager.
  //===============================================================================
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddSingleTrackEfficiencyTask", "AliCFSingleTrackEfficiency task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }
  
  mgr->AddTask(task);
  printf(" Create the output container\n");

  //
  // Create and connect containers for input/output
  //
  // ----- output data -----
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  TString input1name="cchain0";
  TString output2name="HistEventsProcessed", output3name="container",output4name="list",output5name="ESDtrackCuts",output6name="MCtrackCuts";
  outputfile += ":PWGPP_CFSingleTrack";
  outputfile += suffix;
  output2name += suffix;
  output3name += suffix;
  output4name += suffix;
  output5name += suffix;
  output6name += suffix;


  // ------ input data ------
  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
  // ----- output data -----
  // output TH1I for event counting
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(output2name, TH1I::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
  // output Correction Framework Container (for acceptance & efficiency calculations)
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(output3name, AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
  // output QA histograms
  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(output4name, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
  // output ESD track cuts for book keeping
  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(output5name, AliESDtrackCuts::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
  // output event and particle selection cuts for book keeping
  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(output6name, AliSingleTrackEffCuts::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());

  mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
  mgr->ConnectOutput(task,1,coutput1);
  mgr->ConnectOutput(task,2,coutput2);
  mgr->ConnectOutput(task,3,coutput3);
  mgr->ConnectOutput(task,4,coutput4);
  mgr->ConnectOutput(task,5,coutput5);

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