ROOT logo
//DEFINITION OF A FEW CONSTANTS
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

const Float_t phimin = 0.;
const Float_t phimax = 2.*TMath::Pi();
const Float_t etamin = -0.9;
const Float_t etamax = 0.9;

const Int_t   mintrackrefsTPC = 0;
const Int_t   mintrackrefsITS = 0;

void AddTaskPWG4HighPtSpectra(TString year = "2011", char *prodType = "LHC11h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0, UInt_t triggerMask = AliVEvent::kMB,Bool_t bSelectHijingParticles = kFALSE,Bool_t usePythiaxsec = kFALSE)
{
  int cent = 10;

  if(year.Contains("2011")) {
    AddTaskPWG4HighPtSpectra2011(prodType,isPbPb,iAODanalysis,bSelectHijingParticles,usePythiaxsec);
  }
  else {

    AliPWG4HighPtSpectra *taskSpectra00cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    AliPWG4HighPtSpectra *taskSpectra01cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    //  AliPWG4HighPtSpectra *taskSpectra02cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,2,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    //  AliPWG4HighPtSpectra *taskSpectra10cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,1,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    //  AliPWG4HighPtSpectra *taskSpectra20cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,2,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    AliPWG4HighPtSpectra *taskSpectra70cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    AliPWG4HighPtSpectra *taskSpectra71cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
    AliPWG4HighPtSpectra *taskSpectra72cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);

    if(isPbPb) {
      for(cent=0; cent<4; cent++) {
	AliPWG4HighPtSpectra *taskSpectra00 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	AliPWG4HighPtSpectra *taskSpectra01 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	//      AliPWG4HighPtSpectra *taskSpectra02 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,2,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	//      AliPWG4HighPtSpectra *taskSpectra10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,1,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	//      AliPWG4HighPtSpectra *taskSpectra20 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,2,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	AliPWG4HighPtSpectra *taskSpectra70 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	AliPWG4HighPtSpectra *taskSpectra71 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
	AliPWG4HighPtSpectra *taskSpectra72 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,triggerMask,bSelectHijingParticles,iAODanalysis,usePythiaxsec);
      }
    }
  }
}

void AddTaskPWG4HighPtSpectraQA_AOD(char *prodType = "LHC11h",Bool_t isPbPb=kTRUE, UInt_t triggerMask = AliVEvent::kMB,Bool_t bSelectHijingParticles = kFALSE,Bool_t usePythiaxsec = kFALSE)
{
  Int_t filterMask1; //standard global tracks
  Int_t filterMask2; //complementary tracks
  Int_t filterMask; //the sum: hybrid tracks

  Bool_t bIncludeNoITS = kFALSE;

  TString strRunPeriod = TString(prodType);
  strRunPeriod.ToLower();

  if (strRunPeriod == "lhc10h" || strRunPeriod == "lhc11h" ||
      strRunPeriod == "lhc12a" || strRunPeriod == "lhc12b" || strRunPeriod == "lhc12c" || strRunPeriod == "lhc12d" ||
      strRunPeriod == "lhc12e" || strRunPeriod == "lhc12f" || strRunPeriod == "lhc12g" || strRunPeriod == "lhc12g" ||
      strRunPeriod == "lhc12h" || strRunPeriod == "lhc12i" ||
      strRunPeriod == "lhc13b" || strRunPeriod == "lhc13c" || strRunPeriod == "lhc13d" || strRunPeriod == "lhc13e" ||
      strRunPeriod == "lhc13f" || strRunPeriod == "lhc13g" ||
      strRunPeriod == "lhc12a15e" || strRunPeriod == "lhc13b4" || strRunPeriod == "lhc13b4_fix" ||
      strRunPeriod == "lhc13b4_plus" || strRunPeriod == "lhc12a15f" || strRunPeriod.Contains("lhc12a17") || strRunPeriod.Contains("lhc14a1")) {
    filterMask  = 768;
    filterMask1 = 256;
    filterMask2 = 512;
    bIncludeNoITS = kFALSE;
    if(strRunPeriod == "lhc10h") bIncludeNoITS = kTRUE;
  }
  else if (strRunPeriod == "lhc11a" || strRunPeriod == "lhc10hold" || strRunPeriod == "lhc12a15a" || strRunPeriod.Contains("lhc11a2")) {
    filterMask  = 272;
    filterMask1 = 16;
    filterMask2 = 256;
    bIncludeNoITS = kTRUE;
  }
  else {
    ::Error("AddTaskPWG4HighPtSpectra","Period string not of predefined type. Add it to the list in this macro.");
    return NULL;
  }

  AliPWG4HighPtSpectra   *taskSpectraSUM   = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,10,0,0,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask ); //Sum: the hybrid tracks.
  AliPWG4HighPtSpectra   *taskSpectraRESTR = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,10,0,5,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask1); //With SPD and ITS refit.
  AliPWG4HighPtSpectra   *taskSpectraNOSPD = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,10,7,5,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask2); //Only ITS refit, not SPD.
  if(isPbPb) { //also vary the centrality
    AliPWG4HighPtSpectra *taskSpectraCent0 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,0 ,0,0,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask );
    AliPWG4HighPtSpectra *taskSpectraCent1 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,1 ,0,0,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask );
    AliPWG4HighPtSpectra *taskSpectraCent2 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,2 ,0,0,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask );
    AliPWG4HighPtSpectra *taskSpectraCent3 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,3 ,0,0,triggerMask,bSelectHijingParticles,kTRUE,usePythiaxsec,filterMask );
  }
}

void AddTaskPWG4HighPtSpectra2011(char *prodType = "LHC10h", Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0, Bool_t bSelHijingParticles = kFALSE, Bool_t usePythiaxsec = kFALSE)
{

  int cent = 10;

  UInt_t iPhysicsSelectionFlag = AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral;
  UInt_t iPhysicsSelectionFlagEMCEJE = AliVEvent::kEMCEJE;

  AliPWG4HighPtSpectra *taskSpectra00cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra01cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra70cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra71cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra72cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra05cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,5,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra74cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,4,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra75cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,5,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectra40cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,4,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);

  AliPWG4HighPtSpectra *taskSpectraEMCJE00cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE01cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE70cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE71cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE72cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE05cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,5,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE74cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,4,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE75cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,5,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
  AliPWG4HighPtSpectra *taskSpectraEMCJE40cent10 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,4,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);


  if(isPbPb) {
    for(cent=0; cent<4; cent++) {

      AliPWG4HighPtSpectra *taskSpectra00 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra01 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra70 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra71 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra72 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra05 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,5,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra74 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,4,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra75 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,5,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectra40 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,4,0,iPhysicsSelectionFlag,bSelHijingParticles,iAODanalysis,usePythiaxsec);

      AliPWG4HighPtSpectra *taskSpectraEMCJE00 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE01 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,1,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE70 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE71 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,1,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE72 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,2,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE05 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,0,5,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE74 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,4,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE75 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,7,5,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);
      AliPWG4HighPtSpectra *taskSpectraEMCJE40 = ConfigureTaskPWG4HighPtSpectra(prodType,isPbPb,cent,4,0,iPhysicsSelectionFlagEMCEJE,bSelHijingParticles,iAODanalysis,usePythiaxsec);

    }

  }

}


AliPWG4HighPtSpectra* ConfigureTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool_t isPbPb=kTRUE,Int_t centClass = 0, 
						     Int_t trackType = 0, Int_t cuts = 0, UInt_t triggerMask = AliVEvent::kMB,
						     Bool_t bSelectHijingParticles = kFALSE, Int_t iAODanalysis = 0,
                                                     Bool_t usePythiaxsec = kTRUE, Int_t filterMask = 0)
{

  /*
    trackType: 0 = global
               1 = TPC stand alone
               2 = TPC stand alone constrained to SPD vertex
               4 = TPC stand alone constrained to SPD vertex with QA track selection on global tracks
               5 = Hybrid tracks: constrained TPConly for which no tight ITS is available
               6 = Hybrid tracks: constrained loose global for which no tight ITS is available
    cuts:      0 (global) = standard ITSTPC2010 a la RAA analysis
               1 (global) = ITSrefit, no SPD requirements -> standard for jet analysis
               2 (global) = ITSrefit + no hits in SPD
               3 (global) = standard ITS tight cuts with nCrossed rows cut for hybrid tracks
               0 (TPC)    = standard TPC + NClusters>70
               1 (TPC)    = standard TPC + NClusters>0 --> to study new TPC QA recommendations
               0 (hybrid 5) = constrained TPConly for which no tight ITS is available
               0 (hybrid 6) = constrained loose global for which no tight ITS is available
   */

  // Creates HighPtSpectra analysis task and adds it to the analysis manager.
  
  //Load common track cut class
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");

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

  // B. Check the analysis type using the event handlers connected to the analysis
  //    manager. The availability of MC handler can also be checked here.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskPWG4HighPtSpectra", "This task requires an input event handler");
    return NULL;
  }  
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  const char *analysisType = "ESD";//"TPC"

  if( (type=="AOD" && iAODanalysis==0) || (type=="ESD" && iAODanalysis==1) ) { //check if iAODanalysis is configured correctly. TODO: this can be simplified by removing the iAODanalysis variable.
    ::Error("AddTaskPWG4HighPtSpectra", Form("Ordering to perform the analysis on wrong datatype. This is an %s!", type));
    return NULL;
  }

  // C. Create the task, add it to manager.
  //===========================================================================
 //CONTAINER DEFINITION
  Info("AliPWG4HighPtSpectra","SETUP CONTAINER");
  //the sensitive variables, their indices
  UInt_t ipt   = 0;
  UInt_t iphi  = 1;
  UInt_t ieta  = 2;
  UInt_t incls = 3;

  //Setting up the container grid... 
  UInt_t nstep = 4; //Steps/Modes for containers
  Int_t kStepReconstructed          = 0;
  Int_t kStepSecondaries            = 1;
  Int_t kStepReconstructedMC        = 2;
  Int_t kStepMCAcceptance           = 3;

  //redefine pt ranges in case of Jet-Jet production
  Float_t ptBinEdges[4][4];
  Float_t ptmin =  0.0 ;
  Float_t ptmax =  100.0 ;

  ptBinEdges[0][0] = 2.;
  ptBinEdges[0][1] = 0.2;
  ptBinEdges[1][0] = 6.;
  ptBinEdges[1][1] = 0.5;
  ptBinEdges[2][0] = 20.;
  ptBinEdges[2][1] = 2.;
  ptBinEdges[3][0] = 100.;
  ptBinEdges[3][1] = 5.;
  
  const Int_t nvar   = 4; //number of variables on the grid: pt:phi:eta:NClsIter1

  const Int_t nbin11 = round((ptBinEdges[0][0]-ptmin)/ptBinEdges[0][1]);
  const Int_t nbin12 = round((ptBinEdges[1][0]-ptBinEdges[0][0])/ptBinEdges[1][1])+nbin11;
  const Int_t nbin13 = round((ptBinEdges[2][0]-ptBinEdges[1][0])/ptBinEdges[2][1])+nbin12;
  const Int_t nbin14 = round((ptBinEdges[3][0]-ptBinEdges[2][0])/ptBinEdges[3][1])+nbin13;

  const Int_t nbin1  = nbin14; //bins in pt 
  const Int_t nbin2  =  36;    //bins in phi
  const Int_t nbin3  =  10;     //bins in eta
  const Int_t nbin4  =  1;//6;     //bins in NClsIter1: 0 70 80 90 100 120


  //arrays for the number of bins in each dimension
  Int_t iBin[nvar];
  iBin[0]=nbin1;
  iBin[1]=nbin2;
  iBin[2]=nbin3;
  iBin[3]=nbin4;
   
  //arrays for lower bounds :
  Double_t *binLim1=new Double_t[nbin1+1];
  Double_t *binLim2=new Double_t[nbin2+1];
  Double_t *binLim3=new Double_t[nbin3+1];
  Double_t *binLim4=new Double_t[nbin4+1];
  
  //values for bin lower bounds 
  for(Int_t i=0; i<=nbin1; i++) {
    if(i<=nbin11) binLim1[i]=(Double_t)ptmin + (ptBinEdges[0][0]-ptmin)/nbin11*(Double_t)i ;  
    if(i<=nbin12 && i>nbin11) binLim1[i]=(Double_t)ptBinEdges[0][0] + (ptBinEdges[1][0]-ptBinEdges[0][0])/(nbin12-nbin11)*((Double_t)i-(Double_t)nbin11) ; 
    if(i<=nbin13 && i>nbin12) binLim1[i]=(Double_t)ptBinEdges[1][0] + (ptBinEdges[2][0]-ptBinEdges[1][0])/(nbin13-nbin12)*((Double_t)i-(Double_t)nbin12) ; 
    if(i<=nbin14 && i>nbin13) binLim1[i]=(Double_t)ptBinEdges[2][0] + (ptBinEdges[3][0]-ptBinEdges[2][0])/(nbin14-nbin13)*((Double_t)i-(Double_t)nbin13) ; 
  }
  for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)phimin + (phimax-phimin)/nbin2*(Double_t)i ;
  for(Int_t i=0; i<=nbin3; i++) binLim3[i]=(Double_t)etamin + (etamax-etamin)/nbin3*(Double_t)i ;  
  binLim4[0] = 70.;//0.;
  binLim4[1] = 160.;//70.;
  // binLim4[2] = 80.;
  // binLim4[3] = 90.;
  // binLim4[4] = 100.;
  // binLim4[5] = 120.;
  // binLim4[6] = 160.;


  AliCFContainer* containerPos = new AliCFContainer("containerPos","container for positive tracks",nstep,nvar,iBin);
  //setting the bin limits
  containerPos -> SetBinLimits(ipt,binLim1);
  containerPos -> SetBinLimits(iphi,binLim2);
  containerPos -> SetBinLimits(ieta,binLim3);
  containerPos -> SetBinLimits(incls,binLim4);

  AliCFContainer* containerNeg = new AliCFContainer("containerNeg","container for negative tracks",nstep,nvar,iBin);
  //setting the bin limits
  containerNeg -> SetBinLimits(ipt,binLim1);
  containerNeg -> SetBinLimits(iphi,binLim2);
  containerNeg -> SetBinLimits(ieta,binLim3);
  containerNeg -> SetBinLimits(incls,binLim4);
  
  //CREATE THE  CUTS -----------------------------------------------
  //Use AliESDtrackCuts, only for ESD analysis
  AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
  AliESDtrackCuts *trackCutsReject = 0x0;

  if(!iAODanalysis) {
    //Standard Cuts
    //Set track cuts for global tracks
    if(trackType==0 && cuts==0) {
      // tight global tracks - RAA analysis
      trackCuts = CreateTrackCutsPWGJE(1000);
    }
    if(trackType==0 && cuts==1) {
      //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis
      trackCuts = CreateTrackCutsPWGJE(10001006);
    }
    if(trackType==0 && cuts==5) {
      //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis + NCrossedRowsCut>120 recommended in 2011
      trackCuts = CreateTrackCutsPWGJE(10001008);
    }
    
    if(trackType==0 && cuts==2) {
      //Cuts global tracks with ITSrefit requirement but without SPD
      if (!strcmp(prodType,"LHC12a15e"))
        trackCuts = CreateTrackCutsPWGJE(10011008);
      else
        trackCuts = CreateTrackCutsPWGJE(10011006);
    }
    if(trackType==7 && cuts==0) {
      // no requirements on SPD and ITSrefit failed
      trackCuts = CreateTrackCutsPWGJE(10041006);   //no ITSrefit requirement
      trackCutsReject = CreateTrackCutsPWGJE(1006); //ITSrefit requirement
      trackCutsReject->SetEtaRange(etamin,etamax);
      trackCutsReject->SetPtRange(0.15, 1e10);
    }
    if(trackType==7 && cuts==4) {
      // tight global tracks +  NCrossedRowsCut>120 recommended in 2011
      trackCuts = CreateTrackCutsPWGJE(10041008);
      trackCutsReject = CreateTrackCutsPWGJE(1008);
      trackCutsReject->SetEtaRange(-0.9,0.9);
      trackCutsReject->SetPtRange(0.15, 1e10);
    }
    if(trackType==7 && cuts==1) {
      //Cuts global tracks with ITSrefit requirement but without SPD
      trackCuts = CreateTrackCutsPWGJE(10011006);
    }
    if(trackType==7 && cuts==5) {
      // tight global tracks  + NCrossedRowsCut>120 recommended in 2011
      trackCuts = CreateTrackCutsPWGJE(10011008);
    }
  
    if(trackType==7 && cuts==2) {
      // no requirements on SPD and ITSrefit failed
      trackCuts = CreateTrackCutsPWGJE(10041006);       //no ITSrefit requirement filter 256
      trackCutsReject = CreateTrackCutsPWGJE(10001006); //ITSrefit requirement filter 16
      trackCutsReject->SetEtaRange(etamin,etamax);
      trackCutsReject->SetPtRange(0.15, 1e10);
    }
    if(trackType==7 && cuts==6) {
      // no requirements on SPD and ITSrefit failed
      trackCuts = CreateTrackCutsPWGJE(10041008);       //no ITSrefit requirement filter 256
      trackCutsReject = CreateTrackCutsPWGJE(10001008); //ITSrefit requirement filter 16
      trackCutsReject->SetEtaRange(-0.9,0.9);
      trackCutsReject->SetPtRange(0.15, 1e10);
    }
  
  
  
    if(trackType==1 && cuts==0) {
      //Set track cuts for TPConly tracks
      trackCuts = CreateTrackCutsPWGJE(2001);
    }
    if(trackType==2 && cuts==0) {
       //	      Set track cuts for TPConly constrained tracks
      trackCuts = CreateTrackCutsPWGJE(2001);
    }
    trackCuts->SetEtaRange(etamin,etamax);
    trackCuts->SetPtRange(0.15, 1e10);
  }

  // Gen-Level kinematic cuts
  AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts");
  mcKineCuts->SetPtRange(0.15,1e10);
  mcKineCuts->SetEtaRange(etamin,etamax);//-0.5,0.5);
  mcKineCuts->SetRequireIsCharged(kTRUE);

  //Acceptance Cuts
  //AliCFAcceptanceCuts *mcAccCuts = new AliCFAcceptanceCuts("mcAccCuts","MC acceptance cuts");
  // mcAccCuts->SetMinNHitITS(mintrackrefsITS);
  //mcAccCuts->SetMinNHitTPC(mintrackrefsTPC);

  TObjArray* recMCList = new TObjArray(0);
  TObjArray* secList = new TObjArray(0) ;

  printf("CREATE MC KINE CUTS\n");
  TObjArray* recList = new TObjArray(0);
  TObjArray* mcList = new TObjArray(0) ;
  mcList->AddLast(mcKineCuts);
  recList->AddLast(mcKineCuts);
  //mcList->AddLast(mcAccCuts);

  //CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK
  printf("CREATE INTERFACE AND CUTS\n");
  AliCFManager* manPos = new AliCFManager("manPos","Manager for Positive tracks") ;
  manPos->SetParticleContainer(containerPos);
  manPos->SetParticleCutsList(kStepReconstructed,recList);
  manPos->SetParticleCutsList(kStepSecondaries,secList);
  manPos->SetParticleCutsList(kStepReconstructedMC,recMCList);
  manPos->SetParticleCutsList(kStepMCAcceptance,mcList);

  AliCFManager* manNeg = new AliCFManager("manNeg","Manager for Negative tracks") ;
  manNeg->SetParticleContainer(containerNeg);
  manNeg->SetParticleCutsList(kStepReconstructed,recList);
  manNeg->SetParticleCutsList(kStepSecondaries,secList);
  manNeg->SetParticleCutsList(kStepReconstructedMC,recMCList);
  manNeg->SetParticleCutsList(kStepMCAcceptance,mcList);

  TString trigName = "";
  if (triggerMask == AliVEvent::kAnyINT)
    trigName += "kAnyINT";
  else if (triggerMask == AliVEvent::kAny)
    trigName += "kAny";
  else if(triggerMask == AliVEvent::kINT7)
    trigName += "kINT7";
  else if(triggerMask == AliVEvent::kMB)
    trigName += "kMB";
  else if(triggerMask == AliVEvent::kEMC7)
    trigName += "kEMC7";
  else if(triggerMask == AliVEvent::kEMCEJE)
    trigName += "kEMCEJE";
  else if(triggerMask == AliVEvent::kEMCEGA)
    trigName += "kEMCEGA";


  AliPWG4HighPtSpectra *taskPWG4HighPtSpectra = new AliPWG4HighPtSpectra(Form("AliPWG4HighPtSpectraCent%dTrackType%dCuts%dPSF%s",centClass,trackType,cuts,trigName.Data()));
  taskPWG4HighPtSpectra->SetTrackType(trackType);
  if(iAODanalysis)
    taskPWG4HighPtSpectra->SetFilterMask(filterMask);
  else {
    taskPWG4HighPtSpectra->SetCuts(trackCuts);
    taskPWG4HighPtSpectra->SetCutsReject(trackCutsReject);
  }
  taskPWG4HighPtSpectra->SetCFManagerPos(manPos); //here is set the CF manager +
  taskPWG4HighPtSpectra->SetCFManagerNeg(manNeg); //here is set the CF manager -
  taskPWG4HighPtSpectra->SetTriggerMask(triggerMask);
  taskPWG4HighPtSpectra->SelectHIJINGOnly(bSelectHijingParticles);
  taskPWG4HighPtSpectra->SetReadAODData(iAODanalysis==0? kFALSE : kTRUE);
  if(!usePythiaxsec)
    taskPWG4HighPtSpectra->SetNoPythiaInfo();

  if(isPbPb) {
    taskPWG4HighPtSpectra->SetIsPbPb(kTRUE);
    taskPWG4HighPtSpectra->SetCentralityClass(centClass);
  }
  //  taskPWG4HighPtSpectra->SetSigmaConstrainedMax(5.);


  // E. Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //==============================================================================

  //------ output containers ------
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  outputfile += Form(":PWG4_HighPtSpectraCent%dTrackType%dCuts%d%s",centClass,trackType,cuts,trigName.Data());

  AliAnalysisDataContainer *coutput0 = 0x0;
  AliAnalysisDataContainer *coutput1 = 0x0;
  AliAnalysisDataContainer *coutput2 = 0x0;
  AliAnalysisDataContainer *cout_cuts0 = 0x0; 

  coutput0 = mgr->CreateContainer(Form("chist0HighPtSpectraCent%dTrackType%dCuts%d%s",centClass,trackType,cuts,trigName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
  coutput1 = mgr->CreateContainer(Form("ccontainer0HighPtSpectraCent%dTrackType%dCuts%d%s",centClass,trackType,cuts,trigName.Data()), AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile);
  coutput2 = mgr->CreateContainer(Form("ccontainer1HighPtSpectraCent%dTrackType%dCuts%d%s",centClass,trackType,cuts,trigName.Data()), AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile);
  cout_cuts0 = mgr->CreateContainer(Form("qa_SpectraTrackCutsCent%dTrackType%dCuts%d%s",centClass,trackType,cuts,trigName.Data()), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer,outputfile);
  
  mgr->AddTask(taskPWG4HighPtSpectra);

  mgr->ConnectInput(taskPWG4HighPtSpectra,0,mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskPWG4HighPtSpectra,0,coutput0);
  mgr->ConnectOutput(taskPWG4HighPtSpectra,1,coutput1);
  mgr->ConnectOutput(taskPWG4HighPtSpectra,2,coutput2);
  mgr->ConnectOutput(taskPWG4HighPtSpectra,3,cout_cuts0);

  // Return task pointer at the end
  return taskPWG4HighPtSpectra;
}
 AddTaskPWG4HighPtSpectra.C:1
 AddTaskPWG4HighPtSpectra.C:2
 AddTaskPWG4HighPtSpectra.C:3
 AddTaskPWG4HighPtSpectra.C:4
 AddTaskPWG4HighPtSpectra.C:5
 AddTaskPWG4HighPtSpectra.C:6
 AddTaskPWG4HighPtSpectra.C:7
 AddTaskPWG4HighPtSpectra.C:8
 AddTaskPWG4HighPtSpectra.C:9
 AddTaskPWG4HighPtSpectra.C:10
 AddTaskPWG4HighPtSpectra.C:11
 AddTaskPWG4HighPtSpectra.C:12
 AddTaskPWG4HighPtSpectra.C:13
 AddTaskPWG4HighPtSpectra.C:14
 AddTaskPWG4HighPtSpectra.C:15
 AddTaskPWG4HighPtSpectra.C:16
 AddTaskPWG4HighPtSpectra.C:17
 AddTaskPWG4HighPtSpectra.C:18
 AddTaskPWG4HighPtSpectra.C:19
 AddTaskPWG4HighPtSpectra.C:20
 AddTaskPWG4HighPtSpectra.C:21
 AddTaskPWG4HighPtSpectra.C:22
 AddTaskPWG4HighPtSpectra.C:23
 AddTaskPWG4HighPtSpectra.C:24
 AddTaskPWG4HighPtSpectra.C:25
 AddTaskPWG4HighPtSpectra.C:26
 AddTaskPWG4HighPtSpectra.C:27
 AddTaskPWG4HighPtSpectra.C:28
 AddTaskPWG4HighPtSpectra.C:29
 AddTaskPWG4HighPtSpectra.C:30
 AddTaskPWG4HighPtSpectra.C:31
 AddTaskPWG4HighPtSpectra.C:32
 AddTaskPWG4HighPtSpectra.C:33
 AddTaskPWG4HighPtSpectra.C:34
 AddTaskPWG4HighPtSpectra.C:35
 AddTaskPWG4HighPtSpectra.C:36
 AddTaskPWG4HighPtSpectra.C:37
 AddTaskPWG4HighPtSpectra.C:38
 AddTaskPWG4HighPtSpectra.C:39
 AddTaskPWG4HighPtSpectra.C:40
 AddTaskPWG4HighPtSpectra.C:41
 AddTaskPWG4HighPtSpectra.C:42
 AddTaskPWG4HighPtSpectra.C:43
 AddTaskPWG4HighPtSpectra.C:44
 AddTaskPWG4HighPtSpectra.C:45
 AddTaskPWG4HighPtSpectra.C:46
 AddTaskPWG4HighPtSpectra.C:47
 AddTaskPWG4HighPtSpectra.C:48
 AddTaskPWG4HighPtSpectra.C:49
 AddTaskPWG4HighPtSpectra.C:50
 AddTaskPWG4HighPtSpectra.C:51
 AddTaskPWG4HighPtSpectra.C:52
 AddTaskPWG4HighPtSpectra.C:53
 AddTaskPWG4HighPtSpectra.C:54
 AddTaskPWG4HighPtSpectra.C:55
 AddTaskPWG4HighPtSpectra.C:56
 AddTaskPWG4HighPtSpectra.C:57
 AddTaskPWG4HighPtSpectra.C:58
 AddTaskPWG4HighPtSpectra.C:59
 AddTaskPWG4HighPtSpectra.C:60
 AddTaskPWG4HighPtSpectra.C:61
 AddTaskPWG4HighPtSpectra.C:62
 AddTaskPWG4HighPtSpectra.C:63
 AddTaskPWG4HighPtSpectra.C:64
 AddTaskPWG4HighPtSpectra.C:65
 AddTaskPWG4HighPtSpectra.C:66
 AddTaskPWG4HighPtSpectra.C:67
 AddTaskPWG4HighPtSpectra.C:68
 AddTaskPWG4HighPtSpectra.C:69
 AddTaskPWG4HighPtSpectra.C:70
 AddTaskPWG4HighPtSpectra.C:71
 AddTaskPWG4HighPtSpectra.C:72
 AddTaskPWG4HighPtSpectra.C:73
 AddTaskPWG4HighPtSpectra.C:74
 AddTaskPWG4HighPtSpectra.C:75
 AddTaskPWG4HighPtSpectra.C:76
 AddTaskPWG4HighPtSpectra.C:77
 AddTaskPWG4HighPtSpectra.C:78
 AddTaskPWG4HighPtSpectra.C:79
 AddTaskPWG4HighPtSpectra.C:80
 AddTaskPWG4HighPtSpectra.C:81
 AddTaskPWG4HighPtSpectra.C:82
 AddTaskPWG4HighPtSpectra.C:83
 AddTaskPWG4HighPtSpectra.C:84
 AddTaskPWG4HighPtSpectra.C:85
 AddTaskPWG4HighPtSpectra.C:86
 AddTaskPWG4HighPtSpectra.C:87
 AddTaskPWG4HighPtSpectra.C:88
 AddTaskPWG4HighPtSpectra.C:89
 AddTaskPWG4HighPtSpectra.C:90
 AddTaskPWG4HighPtSpectra.C:91
 AddTaskPWG4HighPtSpectra.C:92
 AddTaskPWG4HighPtSpectra.C:93
 AddTaskPWG4HighPtSpectra.C:94
 AddTaskPWG4HighPtSpectra.C:95
 AddTaskPWG4HighPtSpectra.C:96
 AddTaskPWG4HighPtSpectra.C:97
 AddTaskPWG4HighPtSpectra.C:98
 AddTaskPWG4HighPtSpectra.C:99
 AddTaskPWG4HighPtSpectra.C:100
 AddTaskPWG4HighPtSpectra.C:101
 AddTaskPWG4HighPtSpectra.C:102
 AddTaskPWG4HighPtSpectra.C:103
 AddTaskPWG4HighPtSpectra.C:104
 AddTaskPWG4HighPtSpectra.C:105
 AddTaskPWG4HighPtSpectra.C:106
 AddTaskPWG4HighPtSpectra.C:107
 AddTaskPWG4HighPtSpectra.C:108
 AddTaskPWG4HighPtSpectra.C:109
 AddTaskPWG4HighPtSpectra.C:110
 AddTaskPWG4HighPtSpectra.C:111
 AddTaskPWG4HighPtSpectra.C:112
 AddTaskPWG4HighPtSpectra.C:113
 AddTaskPWG4HighPtSpectra.C:114
 AddTaskPWG4HighPtSpectra.C:115
 AddTaskPWG4HighPtSpectra.C:116
 AddTaskPWG4HighPtSpectra.C:117
 AddTaskPWG4HighPtSpectra.C:118
 AddTaskPWG4HighPtSpectra.C:119
 AddTaskPWG4HighPtSpectra.C:120
 AddTaskPWG4HighPtSpectra.C:121
 AddTaskPWG4HighPtSpectra.C:122
 AddTaskPWG4HighPtSpectra.C:123
 AddTaskPWG4HighPtSpectra.C:124
 AddTaskPWG4HighPtSpectra.C:125
 AddTaskPWG4HighPtSpectra.C:126
 AddTaskPWG4HighPtSpectra.C:127
 AddTaskPWG4HighPtSpectra.C:128
 AddTaskPWG4HighPtSpectra.C:129
 AddTaskPWG4HighPtSpectra.C:130
 AddTaskPWG4HighPtSpectra.C:131
 AddTaskPWG4HighPtSpectra.C:132
 AddTaskPWG4HighPtSpectra.C:133
 AddTaskPWG4HighPtSpectra.C:134
 AddTaskPWG4HighPtSpectra.C:135
 AddTaskPWG4HighPtSpectra.C:136
 AddTaskPWG4HighPtSpectra.C:137
 AddTaskPWG4HighPtSpectra.C:138
 AddTaskPWG4HighPtSpectra.C:139
 AddTaskPWG4HighPtSpectra.C:140
 AddTaskPWG4HighPtSpectra.C:141
 AddTaskPWG4HighPtSpectra.C:142
 AddTaskPWG4HighPtSpectra.C:143
 AddTaskPWG4HighPtSpectra.C:144
 AddTaskPWG4HighPtSpectra.C:145
 AddTaskPWG4HighPtSpectra.C:146
 AddTaskPWG4HighPtSpectra.C:147
 AddTaskPWG4HighPtSpectra.C:148
 AddTaskPWG4HighPtSpectra.C:149
 AddTaskPWG4HighPtSpectra.C:150
 AddTaskPWG4HighPtSpectra.C:151
 AddTaskPWG4HighPtSpectra.C:152
 AddTaskPWG4HighPtSpectra.C:153
 AddTaskPWG4HighPtSpectra.C:154
 AddTaskPWG4HighPtSpectra.C:155
 AddTaskPWG4HighPtSpectra.C:156
 AddTaskPWG4HighPtSpectra.C:157
 AddTaskPWG4HighPtSpectra.C:158
 AddTaskPWG4HighPtSpectra.C:159
 AddTaskPWG4HighPtSpectra.C:160
 AddTaskPWG4HighPtSpectra.C:161
 AddTaskPWG4HighPtSpectra.C:162
 AddTaskPWG4HighPtSpectra.C:163
 AddTaskPWG4HighPtSpectra.C:164
 AddTaskPWG4HighPtSpectra.C:165
 AddTaskPWG4HighPtSpectra.C:166
 AddTaskPWG4HighPtSpectra.C:167
 AddTaskPWG4HighPtSpectra.C:168
 AddTaskPWG4HighPtSpectra.C:169
 AddTaskPWG4HighPtSpectra.C:170
 AddTaskPWG4HighPtSpectra.C:171
 AddTaskPWG4HighPtSpectra.C:172
 AddTaskPWG4HighPtSpectra.C:173
 AddTaskPWG4HighPtSpectra.C:174
 AddTaskPWG4HighPtSpectra.C:175
 AddTaskPWG4HighPtSpectra.C:176
 AddTaskPWG4HighPtSpectra.C:177
 AddTaskPWG4HighPtSpectra.C:178
 AddTaskPWG4HighPtSpectra.C:179
 AddTaskPWG4HighPtSpectra.C:180
 AddTaskPWG4HighPtSpectra.C:181
 AddTaskPWG4HighPtSpectra.C:182
 AddTaskPWG4HighPtSpectra.C:183
 AddTaskPWG4HighPtSpectra.C:184
 AddTaskPWG4HighPtSpectra.C:185
 AddTaskPWG4HighPtSpectra.C:186
 AddTaskPWG4HighPtSpectra.C:187
 AddTaskPWG4HighPtSpectra.C:188
 AddTaskPWG4HighPtSpectra.C:189
 AddTaskPWG4HighPtSpectra.C:190
 AddTaskPWG4HighPtSpectra.C:191
 AddTaskPWG4HighPtSpectra.C:192
 AddTaskPWG4HighPtSpectra.C:193
 AddTaskPWG4HighPtSpectra.C:194
 AddTaskPWG4HighPtSpectra.C:195
 AddTaskPWG4HighPtSpectra.C:196
 AddTaskPWG4HighPtSpectra.C:197
 AddTaskPWG4HighPtSpectra.C:198
 AddTaskPWG4HighPtSpectra.C:199
 AddTaskPWG4HighPtSpectra.C:200
 AddTaskPWG4HighPtSpectra.C:201
 AddTaskPWG4HighPtSpectra.C:202
 AddTaskPWG4HighPtSpectra.C:203
 AddTaskPWG4HighPtSpectra.C:204
 AddTaskPWG4HighPtSpectra.C:205
 AddTaskPWG4HighPtSpectra.C:206
 AddTaskPWG4HighPtSpectra.C:207
 AddTaskPWG4HighPtSpectra.C:208
 AddTaskPWG4HighPtSpectra.C:209
 AddTaskPWG4HighPtSpectra.C:210
 AddTaskPWG4HighPtSpectra.C:211
 AddTaskPWG4HighPtSpectra.C:212
 AddTaskPWG4HighPtSpectra.C:213
 AddTaskPWG4HighPtSpectra.C:214
 AddTaskPWG4HighPtSpectra.C:215
 AddTaskPWG4HighPtSpectra.C:216
 AddTaskPWG4HighPtSpectra.C:217
 AddTaskPWG4HighPtSpectra.C:218
 AddTaskPWG4HighPtSpectra.C:219
 AddTaskPWG4HighPtSpectra.C:220
 AddTaskPWG4HighPtSpectra.C:221
 AddTaskPWG4HighPtSpectra.C:222
 AddTaskPWG4HighPtSpectra.C:223
 AddTaskPWG4HighPtSpectra.C:224
 AddTaskPWG4HighPtSpectra.C:225
 AddTaskPWG4HighPtSpectra.C:226
 AddTaskPWG4HighPtSpectra.C:227
 AddTaskPWG4HighPtSpectra.C:228
 AddTaskPWG4HighPtSpectra.C:229
 AddTaskPWG4HighPtSpectra.C:230
 AddTaskPWG4HighPtSpectra.C:231
 AddTaskPWG4HighPtSpectra.C:232
 AddTaskPWG4HighPtSpectra.C:233
 AddTaskPWG4HighPtSpectra.C:234
 AddTaskPWG4HighPtSpectra.C:235
 AddTaskPWG4HighPtSpectra.C:236
 AddTaskPWG4HighPtSpectra.C:237
 AddTaskPWG4HighPtSpectra.C:238
 AddTaskPWG4HighPtSpectra.C:239
 AddTaskPWG4HighPtSpectra.C:240
 AddTaskPWG4HighPtSpectra.C:241
 AddTaskPWG4HighPtSpectra.C:242
 AddTaskPWG4HighPtSpectra.C:243
 AddTaskPWG4HighPtSpectra.C:244
 AddTaskPWG4HighPtSpectra.C:245
 AddTaskPWG4HighPtSpectra.C:246
 AddTaskPWG4HighPtSpectra.C:247
 AddTaskPWG4HighPtSpectra.C:248
 AddTaskPWG4HighPtSpectra.C:249
 AddTaskPWG4HighPtSpectra.C:250
 AddTaskPWG4HighPtSpectra.C:251
 AddTaskPWG4HighPtSpectra.C:252
 AddTaskPWG4HighPtSpectra.C:253
 AddTaskPWG4HighPtSpectra.C:254
 AddTaskPWG4HighPtSpectra.C:255
 AddTaskPWG4HighPtSpectra.C:256
 AddTaskPWG4HighPtSpectra.C:257
 AddTaskPWG4HighPtSpectra.C:258
 AddTaskPWG4HighPtSpectra.C:259
 AddTaskPWG4HighPtSpectra.C:260
 AddTaskPWG4HighPtSpectra.C:261
 AddTaskPWG4HighPtSpectra.C:262
 AddTaskPWG4HighPtSpectra.C:263
 AddTaskPWG4HighPtSpectra.C:264
 AddTaskPWG4HighPtSpectra.C:265
 AddTaskPWG4HighPtSpectra.C:266
 AddTaskPWG4HighPtSpectra.C:267
 AddTaskPWG4HighPtSpectra.C:268
 AddTaskPWG4HighPtSpectra.C:269
 AddTaskPWG4HighPtSpectra.C:270
 AddTaskPWG4HighPtSpectra.C:271
 AddTaskPWG4HighPtSpectra.C:272
 AddTaskPWG4HighPtSpectra.C:273
 AddTaskPWG4HighPtSpectra.C:274
 AddTaskPWG4HighPtSpectra.C:275
 AddTaskPWG4HighPtSpectra.C:276
 AddTaskPWG4HighPtSpectra.C:277
 AddTaskPWG4HighPtSpectra.C:278
 AddTaskPWG4HighPtSpectra.C:279
 AddTaskPWG4HighPtSpectra.C:280
 AddTaskPWG4HighPtSpectra.C:281
 AddTaskPWG4HighPtSpectra.C:282
 AddTaskPWG4HighPtSpectra.C:283
 AddTaskPWG4HighPtSpectra.C:284
 AddTaskPWG4HighPtSpectra.C:285
 AddTaskPWG4HighPtSpectra.C:286
 AddTaskPWG4HighPtSpectra.C:287
 AddTaskPWG4HighPtSpectra.C:288
 AddTaskPWG4HighPtSpectra.C:289
 AddTaskPWG4HighPtSpectra.C:290
 AddTaskPWG4HighPtSpectra.C:291
 AddTaskPWG4HighPtSpectra.C:292
 AddTaskPWG4HighPtSpectra.C:293
 AddTaskPWG4HighPtSpectra.C:294
 AddTaskPWG4HighPtSpectra.C:295
 AddTaskPWG4HighPtSpectra.C:296
 AddTaskPWG4HighPtSpectra.C:297
 AddTaskPWG4HighPtSpectra.C:298
 AddTaskPWG4HighPtSpectra.C:299
 AddTaskPWG4HighPtSpectra.C:300
 AddTaskPWG4HighPtSpectra.C:301
 AddTaskPWG4HighPtSpectra.C:302
 AddTaskPWG4HighPtSpectra.C:303
 AddTaskPWG4HighPtSpectra.C:304
 AddTaskPWG4HighPtSpectra.C:305
 AddTaskPWG4HighPtSpectra.C:306
 AddTaskPWG4HighPtSpectra.C:307
 AddTaskPWG4HighPtSpectra.C:308
 AddTaskPWG4HighPtSpectra.C:309
 AddTaskPWG4HighPtSpectra.C:310
 AddTaskPWG4HighPtSpectra.C:311
 AddTaskPWG4HighPtSpectra.C:312
 AddTaskPWG4HighPtSpectra.C:313
 AddTaskPWG4HighPtSpectra.C:314
 AddTaskPWG4HighPtSpectra.C:315
 AddTaskPWG4HighPtSpectra.C:316
 AddTaskPWG4HighPtSpectra.C:317
 AddTaskPWG4HighPtSpectra.C:318
 AddTaskPWG4HighPtSpectra.C:319
 AddTaskPWG4HighPtSpectra.C:320
 AddTaskPWG4HighPtSpectra.C:321
 AddTaskPWG4HighPtSpectra.C:322
 AddTaskPWG4HighPtSpectra.C:323
 AddTaskPWG4HighPtSpectra.C:324
 AddTaskPWG4HighPtSpectra.C:325
 AddTaskPWG4HighPtSpectra.C:326
 AddTaskPWG4HighPtSpectra.C:327
 AddTaskPWG4HighPtSpectra.C:328
 AddTaskPWG4HighPtSpectra.C:329
 AddTaskPWG4HighPtSpectra.C:330
 AddTaskPWG4HighPtSpectra.C:331
 AddTaskPWG4HighPtSpectra.C:332
 AddTaskPWG4HighPtSpectra.C:333
 AddTaskPWG4HighPtSpectra.C:334
 AddTaskPWG4HighPtSpectra.C:335
 AddTaskPWG4HighPtSpectra.C:336
 AddTaskPWG4HighPtSpectra.C:337
 AddTaskPWG4HighPtSpectra.C:338
 AddTaskPWG4HighPtSpectra.C:339
 AddTaskPWG4HighPtSpectra.C:340
 AddTaskPWG4HighPtSpectra.C:341
 AddTaskPWG4HighPtSpectra.C:342
 AddTaskPWG4HighPtSpectra.C:343
 AddTaskPWG4HighPtSpectra.C:344
 AddTaskPWG4HighPtSpectra.C:345
 AddTaskPWG4HighPtSpectra.C:346
 AddTaskPWG4HighPtSpectra.C:347
 AddTaskPWG4HighPtSpectra.C:348
 AddTaskPWG4HighPtSpectra.C:349
 AddTaskPWG4HighPtSpectra.C:350
 AddTaskPWG4HighPtSpectra.C:351
 AddTaskPWG4HighPtSpectra.C:352
 AddTaskPWG4HighPtSpectra.C:353
 AddTaskPWG4HighPtSpectra.C:354
 AddTaskPWG4HighPtSpectra.C:355
 AddTaskPWG4HighPtSpectra.C:356
 AddTaskPWG4HighPtSpectra.C:357
 AddTaskPWG4HighPtSpectra.C:358
 AddTaskPWG4HighPtSpectra.C:359
 AddTaskPWG4HighPtSpectra.C:360
 AddTaskPWG4HighPtSpectra.C:361
 AddTaskPWG4HighPtSpectra.C:362
 AddTaskPWG4HighPtSpectra.C:363
 AddTaskPWG4HighPtSpectra.C:364
 AddTaskPWG4HighPtSpectra.C:365
 AddTaskPWG4HighPtSpectra.C:366
 AddTaskPWG4HighPtSpectra.C:367
 AddTaskPWG4HighPtSpectra.C:368
 AddTaskPWG4HighPtSpectra.C:369
 AddTaskPWG4HighPtSpectra.C:370
 AddTaskPWG4HighPtSpectra.C:371
 AddTaskPWG4HighPtSpectra.C:372
 AddTaskPWG4HighPtSpectra.C:373
 AddTaskPWG4HighPtSpectra.C:374
 AddTaskPWG4HighPtSpectra.C:375
 AddTaskPWG4HighPtSpectra.C:376
 AddTaskPWG4HighPtSpectra.C:377
 AddTaskPWG4HighPtSpectra.C:378
 AddTaskPWG4HighPtSpectra.C:379
 AddTaskPWG4HighPtSpectra.C:380
 AddTaskPWG4HighPtSpectra.C:381
 AddTaskPWG4HighPtSpectra.C:382
 AddTaskPWG4HighPtSpectra.C:383
 AddTaskPWG4HighPtSpectra.C:384
 AddTaskPWG4HighPtSpectra.C:385
 AddTaskPWG4HighPtSpectra.C:386
 AddTaskPWG4HighPtSpectra.C:387
 AddTaskPWG4HighPtSpectra.C:388
 AddTaskPWG4HighPtSpectra.C:389
 AddTaskPWG4HighPtSpectra.C:390
 AddTaskPWG4HighPtSpectra.C:391
 AddTaskPWG4HighPtSpectra.C:392
 AddTaskPWG4HighPtSpectra.C:393
 AddTaskPWG4HighPtSpectra.C:394
 AddTaskPWG4HighPtSpectra.C:395
 AddTaskPWG4HighPtSpectra.C:396
 AddTaskPWG4HighPtSpectra.C:397
 AddTaskPWG4HighPtSpectra.C:398
 AddTaskPWG4HighPtSpectra.C:399
 AddTaskPWG4HighPtSpectra.C:400
 AddTaskPWG4HighPtSpectra.C:401
 AddTaskPWG4HighPtSpectra.C:402
 AddTaskPWG4HighPtSpectra.C:403
 AddTaskPWG4HighPtSpectra.C:404
 AddTaskPWG4HighPtSpectra.C:405
 AddTaskPWG4HighPtSpectra.C:406
 AddTaskPWG4HighPtSpectra.C:407
 AddTaskPWG4HighPtSpectra.C:408
 AddTaskPWG4HighPtSpectra.C:409
 AddTaskPWG4HighPtSpectra.C:410
 AddTaskPWG4HighPtSpectra.C:411
 AddTaskPWG4HighPtSpectra.C:412
 AddTaskPWG4HighPtSpectra.C:413
 AddTaskPWG4HighPtSpectra.C:414
 AddTaskPWG4HighPtSpectra.C:415
 AddTaskPWG4HighPtSpectra.C:416
 AddTaskPWG4HighPtSpectra.C:417
 AddTaskPWG4HighPtSpectra.C:418
 AddTaskPWG4HighPtSpectra.C:419
 AddTaskPWG4HighPtSpectra.C:420
 AddTaskPWG4HighPtSpectra.C:421
 AddTaskPWG4HighPtSpectra.C:422
 AddTaskPWG4HighPtSpectra.C:423
 AddTaskPWG4HighPtSpectra.C:424
 AddTaskPWG4HighPtSpectra.C:425
 AddTaskPWG4HighPtSpectra.C:426
 AddTaskPWG4HighPtSpectra.C:427
 AddTaskPWG4HighPtSpectra.C:428
 AddTaskPWG4HighPtSpectra.C:429
 AddTaskPWG4HighPtSpectra.C:430
 AddTaskPWG4HighPtSpectra.C:431
 AddTaskPWG4HighPtSpectra.C:432
 AddTaskPWG4HighPtSpectra.C:433
 AddTaskPWG4HighPtSpectra.C:434
 AddTaskPWG4HighPtSpectra.C:435
 AddTaskPWG4HighPtSpectra.C:436
 AddTaskPWG4HighPtSpectra.C:437
 AddTaskPWG4HighPtSpectra.C:438
 AddTaskPWG4HighPtSpectra.C:439
 AddTaskPWG4HighPtSpectra.C:440
 AddTaskPWG4HighPtSpectra.C:441
 AddTaskPWG4HighPtSpectra.C:442
 AddTaskPWG4HighPtSpectra.C:443
 AddTaskPWG4HighPtSpectra.C:444
 AddTaskPWG4HighPtSpectra.C:445
 AddTaskPWG4HighPtSpectra.C:446
 AddTaskPWG4HighPtSpectra.C:447
 AddTaskPWG4HighPtSpectra.C:448
 AddTaskPWG4HighPtSpectra.C:449
 AddTaskPWG4HighPtSpectra.C:450
 AddTaskPWG4HighPtSpectra.C:451
 AddTaskPWG4HighPtSpectra.C:452
 AddTaskPWG4HighPtSpectra.C:453
 AddTaskPWG4HighPtSpectra.C:454
 AddTaskPWG4HighPtSpectra.C:455
 AddTaskPWG4HighPtSpectra.C:456
 AddTaskPWG4HighPtSpectra.C:457
 AddTaskPWG4HighPtSpectra.C:458
 AddTaskPWG4HighPtSpectra.C:459
 AddTaskPWG4HighPtSpectra.C:460
 AddTaskPWG4HighPtSpectra.C:461
 AddTaskPWG4HighPtSpectra.C:462
 AddTaskPWG4HighPtSpectra.C:463
 AddTaskPWG4HighPtSpectra.C:464
 AddTaskPWG4HighPtSpectra.C:465
 AddTaskPWG4HighPtSpectra.C:466
 AddTaskPWG4HighPtSpectra.C:467
 AddTaskPWG4HighPtSpectra.C:468
 AddTaskPWG4HighPtSpectra.C:469
 AddTaskPWG4HighPtSpectra.C:470
 AddTaskPWG4HighPtSpectra.C:471
 AddTaskPWG4HighPtSpectra.C:472
 AddTaskPWG4HighPtSpectra.C:473
 AddTaskPWG4HighPtSpectra.C:474
 AddTaskPWG4HighPtSpectra.C:475
 AddTaskPWG4HighPtSpectra.C:476
 AddTaskPWG4HighPtSpectra.C:477