ROOT logo
void SetupTrackCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
void SetupPairCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
void InitHistogramsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
void InitTreesDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
void InitCFDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);

AliESDtrackCuts *SetupESDtrackCutsDieleData(Int_t cutDefinition);

//TString namesDieleData=("basicQ+SPDfirst+pt>1+PID; basicQ+SPDany+pt>1+PID");
TString namesDieleData=("basicQ+SPDfirst+pt>1+PID");

TObjArray *arrNamesDieleData=namesDieleData.Tokenize("; ");

const Int_t nDie=arrNamesDieleData->GetEntries();

AliDielectronTaku* ConfigJpsi2ee(Int_t cutDefinition, Bool_t isAOD=kFALSE)
{
  //
  //cout<<" Setup the instance of AliDielectronTaku "<<endl;
  //
  
  // create the actual framework object
  TString name=Form("%02d",cutDefinition);
  if (cutDefinition<arrNamesDieleData->GetEntriesFast()){
    name=arrNamesDieleData->At(cutDefinition)->GetName();
  }
  AliDielectronTaku *diele = new AliDielectronTaku(Form("%s",name.Data()),
						   Form("Track cuts: %s",name.Data()));

  // cut setup
  SetupTrackCutsDieleData(diele, cutDefinition, isAOD);
  SetupPairCutsDieleData(diele, cutDefinition, isAOD);
  
  //
  // histogram setup
  // only if an AliDielectronHistos object is attached to the
  // dielelectron framework histograms will be filled
  //
  InitHistogramsDieleData(diele, cutDefinition, isAOD);
  //InitTreesDieleData(diele, cutDefinition, isAOD);

  // the last definition uses no cuts and only the QA histograms should be filled!
//   if (cutDefinition<nDie-1)
  InitCFDieleData(diele, cutDefinition, isAOD);

  AliDielectronTrackRotator *rot=new AliDielectronTrackRotator;
  rot->SetConeAnglePhi(TMath::Pi());
  rot->SetIterations(10);
  diele->SetTrackRotator(rot);
  return diele;
}

//______________________________________________________________________________________
void SetupTrackCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
{
  //
  // Setup the track cuts
  //
  cout<<" SetupTrackCutsDieleData "<<endl;
  //ESD quality cuts DielectronTrackCuts
  if (!isAOD) {
    diele->GetTrackFilter().AddCuts(SetupESDtrackCutsDieleData(cutDefinition));
  } else {
    AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("trackCuts","trackCuts");
    if (cutDefinition==0)
      trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
    else if (cutDefinition==1)
      trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
    trackCuts->SetRequireTPCRefit(kTRUE);
    trackCuts->SetRequireITSRefit(kTRUE);
    diele->GetTrackFilter().AddCuts(trackCuts);
  }

   //Pt cut ----------------------------------------------------------

  AliDielectronVarCuts *pt = new AliDielectronVarCuts("ptCut","pt cut");
  pt->AddCut(AliDielectronVarManager::kPt,0.2,10.);
  pt->AddCut(AliDielectronVarManager::kKinkIndex0,0.);
  
  //AOD additions since there are no AliESDtrackCuts -----------------
  //
  if (isAOD){
    // TPC #clusteres cut
    pt->AddCut(AliDielectronVarManager::kNclsTPC,70.,160.);
    pt->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
    //TODO: DCA cuts to be investigated!!!
//       pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
//       pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
  }
  diele->GetTrackFilter().AddCuts(pt);

  // PID cuts --------------------------------------------------------
  
  AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3 + |P|>3 + TOF nSigma |e|<3");
  pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-2.5,3.);
  pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3,3.);

  //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1.8.,1.8.,0.,0.,kTRUE);
  //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-2.,2.0.,0.,0.,kTRUE);

  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kKaon,-4.,4.,0.,0.,kTRUE);
  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kProton,-4.,4.,0.,0.,kTRUE);
  
  //pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,0.,kTRUE);
  //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1.75.,1.8.,0.,0.,kTRUE);
  //pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-1.3.,2.0.,0.,0.,kTRUE);



  //pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.);
  //pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.);
  //pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.);

  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.);

  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kPion,-3.,3.);
  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kKaon,-3.,3.);
  //pid->AddCut(AliDielectronPID::kTOF,AliPID::kProton,-3.,3.);

  diele->GetTrackFilter().AddCuts(pid);

}

//______________________________________________________________________________________
void SetupPairCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
{
  //
  // Setup the pair cuts
  //
  
  //Invariant mass and rapidity selection
  AliDielectronVarCuts *pairCut=new AliDielectronVarCuts("2<M<4+|Y|<.9","2<M<4 + |Y|<.9");
  //   pairCut->AddCut(AliDielectronVarManager::kM,2.,4.);
  pairCut->AddCut(AliDielectronVarManager::kY,-0.9,0.9);
  //pairCut->AddCut(AliDielectronVarManager::kOpeningAngle, 0, 0.1);
  //diele->GetPairFilter().AddCuts(pairCut);
  diele->GetPairPreFilter().AddCuts(pairCut);
}

//______________________________________________________________________________________
AliESDtrackCuts *SetupESDtrackCutsDieleData(Int_t cutDefinition)
{
  cout<<" SetupESDtrackCutsDieleData "<<endl;
  //
  // Setup default AliESDtrackCuts
  //
  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;

  // basic track quality cuts  (basicQ)
  esdTrackCuts->SetMaxDCAToVertexZ(3.0);
  esdTrackCuts->SetMaxDCAToVertexXY(1.0);

  esdTrackCuts->SetEtaRange( -0.9 , 0.9 );

  esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);

  //esdTrackCuts->SetPtRange(.8,1e30);
  esdTrackCuts->SetPtRange(0.2,10);
  esdTrackCuts->SetPtRange(0.2,10);

  //esdTrackCuts->SetMinNClustersTPC(120);
  esdTrackCuts->SetMinNCrossedRowsTPC(120);
  esdTrackCuts->SetMaxChi2PerClusterTPC(4);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);

  // default SPD any
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);

  if (cutDefinition==0)
    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);

  return esdTrackCuts;
}


//______________________________________________________________________________________
void InitHistogramsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
{
  //
  // Initialise the histograms
  //
  
  //Setup histogram Manager
  AliDielectronHistosTaku *histos=new AliDielectronHistosTaku(diele->GetName(),diele->GetTitle());
  
  //Initialise histogram classes
  histos->SetReservedWords("Track;Pair");
  
  //Track classes
  //to fill also track info from 2nd event loop until 2
  for (Int_t i=0; i<2; ++i){
    histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
  }
  
  //Pair classes
  // to fill also mixed event histograms loop until 10
  for (Int_t i=0; i<3; ++i){
    histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
  }
  
  //legs from pair
  for (Int_t i=0; i<3; ++i){
    histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i)));
  }
  //track rotation
//   histos->AddClass(Form("Pair_%s",PairClassName(AliDielectron::kEv1PMRot)));
//   histos->AddClass(Form("Track_Legs_%s",PairClassName(AliDielectron::kEv1PMRot)));
  
  
  //add histograms to event class
  if (cutDefinition==0) {
    histos->AddClass("Event");
    histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim);
  }
  
  //add histograms to Track classes
  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
  histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
  
  histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
  histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
  histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
                        100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);

  histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
                        200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,
			AliDielectronVarManager::kTPCsignal,kTRUE);
  histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);


  histos->UserHistogram("Track","TOF_Beta_P","TOF beta;P [GeV];TOF beta;#tracks",
                        200,0.2,20.,100,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta,kTRUE);


  histos->UserHistogram("Track","TOFnSigmaPi_P","TOF nSigmaPi;P [GeV];TOF beta;#tracks",
                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPio,kTRUE);
  histos->UserHistogram("Track","TOFnSigmaK_P","TOF nSigmaK;P [GeV];TOF beta;#tracks",
                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
  histos->UserHistogram("Track","TOFnSigmaPr_P","TOF nSigmaPr;P [GeV];TOF beta;#tracks",
                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);


      
  //add histograms to Pair classes
  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
                        201,-.01,4.01,AliDielectronVarManager::kM);
  histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
                        100,-1.,1.,AliDielectronVarManager::kY);
  histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
                        100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
  
  diele->SetHistogramManager(histos);
}


void InitCFDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
{
  //
  // Setupd the CF Manager if needed
  //
  
  AliDielectronCF *cf=new AliDielectronCF(diele->GetName(),diele->GetTitle());
  
  //pair variables
  cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 1.0, 2.0, 3.0, 5., 7.0, 10.0, 100.0");
  
  cf->AddVariable(AliDielectronVarManager::kY,"-5,-1,-0.9,-0.8,-0.7,-0.5,-0.3,0.3,0.5,0.7,0.8,0.9,1.0,5");
  cf->AddVariable(AliDielectronVarManager::kM,125,0.,125*.04); //40Mev Steps
  cf->AddVariable(AliDielectronVarManager::kPairType,"-0.5,0.5,1.5,2.5");
  cf->AddVariable(AliDielectronVarManager::kThetaHE, "-2.0, -1.0, -0.75, -0.5, -0.25, 0.0, 0.25, 0.5, 0.75, 1.0, 2.0");
  cf->AddVariable(AliDielectronVarManager::kThetaCS, "-2.0, -1.0, -0.75, -0.5, -0.25, 0.0, 0.25, 0.5, 0.75, 1.0, 2.0");
  //leg variables
  cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 0.8, 0.9, 0.95, 1.0, 1.05, 1.1, 1.2, 100.0",kTRUE);
  cf->AddVariable(AliDielectronVarManager::kNclsTPC,"0, 70, 75, 80, 85, 90, 100, 120, 160",kTRUE);
  cf->AddVariable(AliDielectronVarManager::kEta,"-5,-1,-0.9,-0.85,-0.8,-0.75,0.75,0.8,0.85,0.9,1.0,5",kTRUE);

//   cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,"-2.5,-2,-1.5,-1,-0.5,4.",kTRUE);
  cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPio,"3.,3.5,4.,100",kTRUE);
  cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPro,"3.,3.5,4.,100",kTRUE);

  //event variables
  cf->AddVariable(AliDielectronVarManager::kNaccTrcklts,"0.0, 9.0, 17.0, 25.0, 36.0, 55.0, 500.0");

  if (!isAOD){
    Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
    if (hasMC){
      cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
      cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
      cf->AddVariable(AliDielectronVarManager::kPdgCodeGrandMother,10000,-5000.5,4999.5,kTRUE);
    }
  }
    //only in this case write MC truth info
  if (cutDefinition==0){
    cf->SetStepForMCtruth();
  }

  diele->SetCFManagerPair(cf);
  
}

//______________________________________________________________________________________
void InitTreesDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
{

  //Setup histogram Manager
  AliDielectronHistosTaku *histos=new AliDielectronHistosTaku(diele->GetName(),diele->GetTitle());
  histos->UserTree("tree","sinlge tree");
  
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPx);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPy);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPz);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPt);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kP);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kXv);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kYv);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kZv);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kOneOverPt);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPhi);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTheta);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kEta);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kY);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kE);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kM);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kCharge);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsITS);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTPC);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTPCiter1);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPC);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPCr);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPCrFrac);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignalN);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignalNfrac);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCchi2Cl);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTrackStatus);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTRD);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDntracklets);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDpidQuality);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDprobEle);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDprobPio);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kImpactParXY);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kImpactParZ);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTrackLength);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCode);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCodeMother);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCodeGrandMother);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNumberOfDaughters);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kHaveSameMother);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kIsJpsiPrimary);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignal);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSSD1);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSSD2);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSDD1);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSDD2);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSclusterMap);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaEle);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaPio);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaMuo);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaKao);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaPro);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPIn);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignal);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFsignal);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFbeta);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaEle);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaPio);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaMuo);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaKao);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaPro);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaEle);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaPio);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaMuo);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaKao);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaPro);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kKinkIndex0);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kChi2NDF);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kDecayLength);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kR);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kOpeningAngle);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kThetaHE);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPhiHE);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kThetaCS);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPhiCS);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kLegDist);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kLegDistXY);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kDeltaEta);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kDeltaPhi);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kMerr);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kDCA);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPairType);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kPseudoProperTime);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kXvPrim);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kYvPrim);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kZvPrim);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kXRes);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kYRes);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kZRes);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNTrk);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kTracks);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNacc);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNaccTrcklts);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNch);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kCentrality);
  histos->SetReserveVariableInTree(AliDielectronVarManager::kNevents);

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