ROOT logo
void InitHistograms(AliDielectron *die, Int_t cutDefinition);
void InitCF(AliDielectron* die, Int_t cutDefinition);

void SetupEventCuts(AliDielectron *die, ULong64_t triggers);
void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
void SetupPairCuts(AliDielectron *die,  Int_t cutDefinition);
void SetupV0Cuts( AliDielectron *die,  Int_t cutDefinition);

void ConfigEvtPlane(AliDielectron *die,  Int_t cutDefinition);

void AddMCSignals(AliDielectron *die);

void SetEtaCorrection();
TVectorD *GetRunNumbers();

TString names=("QA;PIDQA");
enum { kQA=0, kQApid };

TObjArray *arrNames=names.Tokenize(";");
const Int_t nDie=arrNames->GetEntries();

Bool_t  isESD      = kTRUE;
Bool_t  hasMC      = kFALSE;
TString list       = gSystem->Getenv("LIST");

AliDielectron* ConfigJpsiQA_jpsi_PbPb(Int_t cutDefinition, TString prod="",
				      ULong64_t triggers=AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kMB)
{
  //
  // Setup the instance of AliDielectron
  //

  // find mc or not?
  if( list.IsNull()) list=prod;
  if( list.Contains("LHC10h")   || list.Contains("LHC11h")   ) hasMC=kFALSE;
  if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE;

  //ESD handler?
  isESD=(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()->IsA()==AliESDInputHandler::Class());

  // switch off some configurations
  if(hasMC) { // MONTE CARLO
    switch(cutDefinition) {
      //case kQApid:        return 0x0;
    }
  } else { // COLLISION DATA
    switch(cutDefinition) {
      //    case kQA:     return 0x0;
      //    case kQApid:  return 0x0;
    }
  }

  // create the actual framework object
  TString name=Form("%02d",cutDefinition);
  if (cutDefinition<arrNames->GetEntriesFast())  name=arrNames->At(cutDefinition)->GetName();
  printf(" Adding %s%s config %s for %s \n",(isESD?"ESD":"AOD"),(hasMC?" MC":""),name.Data(),list.Data());

  // init AliDielectron
  AliDielectron *die = new AliDielectron(Form("%s",name.Data()), Form("QA config: %s",name.Data()));
  die->SetHasMC(hasMC);

  // cut setup
  SetupEventCuts(die,triggers);
  SetupTrackCuts(die,cutDefinition);
  if(cutDefinition!=kQApid) SetupPairCuts(die,cutDefinition);
  SetupV0Cuts(die,cutDefinition);

  // MC signals
  if(hasMC) {
    AddMCSignals(die);
    printf(" Add %d MC signals \n",die->GetMCSignals()->GetEntriesFast());
  }
  // histogram setup
  InitHistograms(die,cutDefinition);
  //printf(" Add %d classes to the manager \n",die->GetHistogramList()->GetEntries());

  // CF container setup
  //InitCF(die,cutDefinition);

  // tpc event plane configuration
  // ConfigEvtPlane(die,cutDefinition);

  // prefilter settings
  //  if(cutDefinition==kQA) die->SetNoPairing();
  //  else 
  die->SetPreFilterUnlikeOnly();
  //die->SetPreFilterAllSigns();

  // setup eta correction
  //  if(isESD && list.Contains("LHC10h")) SetEtaCorrection();

  // VZERO calibration
  TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
  if (!trainRoot.IsNull()) {
    die->SetVZEROCalibrationFilename("$TRAIN_ROOT/util/dielectron/dielectron/VzeroCalibrationLHC10h.root");
    die->SetVZERORecenteringFilename("$TRAIN_ROOT/util/dielectron/dielectron/VzeroRecenteringLHC10h.root");
  }

  return die;
}

//______________________________________________________________________________________
void SetupEventCuts(AliDielectron *die, ULong64_t triggers)
{
  //
  // Setup the event cuts
  //

  // trigger specific centrality cuts (reject trigger inefficiencies)
  Double_t minCent=0.0, maxCent=80.;
  if(!hasMC) {
    switch(triggers) {
    case AliVEvent::kCentral:     minCent= 0.; maxCent= 9.; break;
    case AliVEvent::kSemiCentral: minCent=12.; maxCent=53.; break;
    case AliVEvent::kMB:          minCent= 0.; maxCent=80.; break;
    default:                      minCent= 0.; maxCent=80.; break;
    }
  }

  AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","eventCuts");
  if(!isESD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
  eventCuts->SetRequireVertex();
  eventCuts->SetMinVtxContributors(1);
  eventCuts->SetVertexZ(-10.,+10.);
  eventCuts->SetCentralityRange(minCent,maxCent);

  /*
  TF1 *fMean  = new TF1("fMean", "pol1",               0,25e+3);
  fMean->SetParameters(631.301, 1.49836);
  TF1 *fSigma = new TF1("fSigma","[0]+sqrt([1]*x+[2])",0,25e+3);
  fSigma->SetParameters(-25.7843, 32.8055, 35275.7);
  eventCuts->SetCutOnV0MultipicityNTrks(fMean, fSigma, 4.0);
  */

  eventCuts->Print();
  die->GetEventFilter().AddCuts(eventCuts);

}

//______________________________________________________________________________________
void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Setup the track cuts
  //

  // Quality cuts
  AliDielectronCutGroup* cuts = new AliDielectronCutGroup("cuts","cuts",AliDielectronCutGroup::kCompAND);
  die->GetTrackFilter().AddCuts(cuts);

  //  AliDielectronVarCuts *mc = new AliDielectronVarCuts("MCCut","MCCut");
  //mc->AddCut(AliDielectronVarManager::kHasCocktailMother,      0); // exclude enhanced signals
  //mc->AddCut(AliDielectronVarManager::kHasCocktailGrandMother, 0); // exclude enhanced signals
  //  mc->AddCut(AliDielectronVarManager::kPdgCode, -6,  6, kTRUE); // exclude quarks to speed up
  //  mc->AddCut(AliDielectronVarManager::kPdgCode, 21, 21, kTRUE); // exclude gluons to speed up
  //if(hasMC) {
    //    cuts->AddCut(mc);
    //    mc->Print();
  //}

  // AOD track filter (needs to be first cut to speed up)
  AliDielectronTrackCuts *trkFilter = new AliDielectronTrackCuts("TrkFilter","TrkFilter");
  trkFilter->SetAODFilterBit(AliDielectronTrackCuts::kTPCqual);
  //if(!isESD) cuts->AddCut(trkFilter);

  AliDielectronTrackCuts *trkCuts = new AliDielectronTrackCuts("TrkCuts","TrkCuts");
  if(cutDefinition==kQA) trkCuts->SetITSclusterCut(AliDielectronTrackCuts::kOneOf, 15); // ITS-4 = 1+2+4+8
  if(cutDefinition==kQA) trkCuts->SetRequireITSRefit(kTRUE);
  if(cutDefinition!=kQA) trkCuts->SetMinNCrossedRowsOverFindable(0.6);
  trkCuts->SetRequireTPCRefit(kTRUE);
  cuts->AddCut(trkCuts);

  // track cuts ESD and AOD
  AliDielectronVarCuts *varCuts = new AliDielectronVarCuts("VarCuts","VarCuts");
  if(cutDefinition==kQA) varCuts->AddCut(AliDielectronVarManager::kPt,0.8,1e30);    //1.1
  if(cutDefinition==kQA) varCuts->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
  if(cutDefinition==kQA) varCuts->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
  if(cutDefinition==kQA) varCuts->AddCut(AliDielectronVarManager::kTOFbeta,      0.2,   0.9, kTRUE);
  varCuts->AddCut(AliDielectronVarManager::kEta,         -0.9,   0.9);
  varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
  varCuts->AddCut(AliDielectronVarManager::kNclsTPC,     50.0, 160.0);
  varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,   0.0);
  cuts->AddCut(varCuts);

  /* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv PID CUTS vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
  AliDielectronPID *pid = new AliDielectronPID("PID","PID");
  ////////////////////////////////// DATA
  if(!hasMC) {
    // TPC
    pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,   -3.,3.0);
    if(cutDefinition==kQA) pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -100.,4.0,0.,0.,kTRUE);
    //    pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,   -100.,3.5,0.,0.,kTRUE);

    // TOF
    //pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-5,5.,0.,0.,kFALSE,AliDielectronPID::kIfAvailable);
    pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3,5.,0.,0.,kFALSE,AliDielectronPID::kIfAvailable);

    // TRD 1- or 2-dimensonal
    /*    pid->AddCut(AliDielectronPID::kTRDeleEff,AliPID::kElectron,.8,1.,3.5.,6.,kFALSE,
	  AliDielectronPID::kIfAvailable,AliDielectronVarManager::kTRDpidQuality);
	  pid->AddCut(AliDielectronPID::kTRDeleEff2D,AliPID::kElectron,.8,1.,3.5.,6.,kFALSE,
	  AliDielectronPID::kIfAvailable,AliDielectronVarManager::kTRDpidQuality);
    */
  }

  ////////////////////////////////// MC
  if(hasMC) {

    // TPC
    pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,   -4.,4.0);
    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -100.,4.0,0.,0.,kTRUE);
    pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,   -100.,3.5,0.,0.,kTRUE);

    // TOF
    pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-5,5.,0.,0.,kFALSE,AliDielectronPID::kIfAvailable);

  } //hasMC

  cuts->AddCut(pid);
  /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PID CUTS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/


  // exclude conversion electrons selected by the tender
  AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","noConv");
  noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
  //cuts->AddCut(noconv);

  // Print
  //  cuts->Print();

  die->GetTrackFilter().GetCuts()->ls();
}

//______________________________________________________________________________________
void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Setup the pair cuts
  //

  // conversion rejection
  Double_t gCut;
  switch(cutDefinition) {
  case kQA:     gCut = 0.05;  break;
  case kQApid:  gCut = 0.00;  return;
  default:      gCut = 0.05;
  }
  AliDielectronVarCuts *gammaCuts = new AliDielectronVarCuts("GammaCuts","GammaCuts");
  gammaCuts->AddCut(AliDielectronVarManager::kM,            0.0,   gCut);
  gammaCuts->Print();
  die->GetPairPreFilter().AddCuts(gammaCuts);

  // rapidity selection
  //AliDielectronVarCuts *rapCut=new AliDielectronVarCuts("|Y|<.9","|Y|<.9");
  //rapCut->AddCut(AliDielectronVarManager::kY,-0.9,0.9);
  //die->GetPairFilter().AddCuts(rapCut);

  // minv cut (for better jpsi candidate to mc comparison) 
  AliDielectronVarCuts *minvCut=new AliDielectronVarCuts("PairCut","PairCut");
  minvCut->AddCut(AliDielectronVarManager::kM,2.92,3,.16);
  if(!hasMC) {
    //    minvCut->Print();
    //    die->GetPairFilter().AddCuts(minvCut);
  }

  // gamma selection
  AliDielectronVarCuts *gamma = new AliDielectronVarCuts("Gamma","Gamma");
  gamma->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0,   0.035); // 0.1
  gamma->AddCut(AliDielectronVarManager::kCosPointingAngle, TMath::Cos(0.02),   1.0);
  gamma->AddCut(AliDielectronVarManager::kLegDist,      0.0,   0.25);
  gamma->AddCut(AliDielectronVarManager::kR,            3.0,   90.0);
  gamma->AddCut(AliDielectronVarManager::kPsiPair,      0.0,   0.05);
  gamma->AddCut(AliDielectronVarManager::kChi2NDF,      0.0,   10.0);
  gamma->AddCut(AliDielectronVarManager::kM,            0.0,   0.05);
  if(cutDefinition==kQApid) {
    //    gamma->Print();
    //    die->GetPairFilter().AddCuts(gamma);
  }

}

//______________________________________________________________________________________
void SetupV0Cuts(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Setup the V0 cuts
  //

  if(cutDefinition!=kQApid) return;

  // add to cut group
  TIter next(die->GetTrackFilter().GetCuts());
  AliAnalysisCuts *cuts;
  while((cuts = (AliAnalysisCuts*)next())) {
    if(cuts->IsA() == AliDielectronCutGroup::Class())  break;
  }

  AliDielectronV0Cuts *gammaV0Cuts = new AliDielectronV0Cuts("IsGamma","IsGamma");
  gammaV0Cuts->SetPdgCodes(22,11,11);
  //gammaV0Cuts->SetDefaultPID(13); // TPC+-3.5 TOF+-4
  gammaV0Cuts->SetDefaultPID(7); // TPC+-10 TOF+-3 required
  gammaV0Cuts->AddCut(AliDielectronVarManager::kCosPointingAngle, TMath::Cos(0.02),   1.0 );
  gammaV0Cuts->AddCut(AliDielectronVarManager::kChi2NDF,                       0.0,  10.0 );
  gammaV0Cuts->AddCut(AliDielectronVarManager::kLegDist,                       0.0,   0.25);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kR,                             3.0,  90.0 );
  gammaV0Cuts->AddCut(AliDielectronVarManager::kPsiPair,                       0.0,   0.05);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kM,                             0.0,   0.05);
  //  gammaV0Cuts->AddCut(AliDielectronVarManager::kOpeningAngle,              0.0,   0.1 );
  gammaV0Cuts->AddCut(AliDielectronVarManager::kArmPt,                         0.0,   0.05);
  //  gammaV0Cuts->AddCut(AliDielectronVarManager::kArmAlpha,                     -0.35,  0.35); // not sure if this works fine
  gammaV0Cuts->SetExcludeTracks(kFALSE); // inclusion
  gammaV0Cuts->Print();

  // efficiency
  // const Double_t cutQTG < 0.05;
  // purity
  // const Double_t |cutAlphaG| < 0.35; &&  const Double_t cutQTG < 0.05;
  // const Double_t |cutAlphaG2|[2] = {0.6, 0.8}; &&  const Double_t cutQTG2 < 0.04; // high pt gammas

  //////////
  /*   // Hans configuration
  fMaxEta(1.4),
  fMinR(10.),
  fMaxR(180.),
  fMaxChi2NDF(5.),  //100
  fMaxPsi(.05),     //2
  fMinCosP(0.9997), //0.97
  fMinDaughterPt(.05),
  fMinTPCNcls(70),  //40
  fMaxAsym(.06),
  fMaxNSigEleTPC(4.),    
  fMaxNSigEleTPCLowP(3.), //4.
  fMinNSigPioTPC(1.),
  fMinNSigKaoTPC(1.),
  fMinNSigProTPC(1.),
  fMaxNSigEleTOF(3.),
  */






  if(cuts)
    ((AliDielectronCutGroup*)cuts)->AddCut(gammaV0Cuts);
  else
    die->GetTrackFilter().AddCuts(gammaV0Cuts);
}

//______________________________________________________________________________________
void ConfigEvtPlane(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Configurate the TPC event plane 
  //

  Double_t gGap = 0.0;
  AliDielectronVarCuts *poi = new AliDielectronVarCuts("PoI","PoI");
  poi->AddCut(AliDielectronVarManager::kM,2.92,3.20);     // particles of interest, jpsi mass window
  die->GetEventPlanePOIPreFilter().AddCuts(poi);

  // eta gap in tpc event plane
  //AliDielectronVarCuts *etaGap = new AliDielectronVarCuts(AliDielectronVarManager::GetValueName(AliDielectronVarManager::kEta),"etaGap");
  //etaGap->AddCut(AliDielectronVarManager::kEta,-1*gGap,gGap,kTRUE);
  //die->GetEventPlanePreFilter().AddCuts(etaGap);
  //if(cutDefinition==kSubLS) die->SetLikeSignSubEvents();

  die->SetPreFilterEventPlane();
}

//______________________________________________________________________________________
void InitHistograms(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Initialise the histograms
  //

  // booleans for histo selection
  Bool_t bHistEvtQA=kFALSE, bHistTrackQA=kFALSE, bHistPairQA = kFALSE, bHistPidQA=kFALSE;
  switch (cutDefinition) {
  case kQA:       bHistEvtQA=kTRUE;  bHistTrackQA=kTRUE;  bHistPairQA=kTRUE;  bHistPidQA=kFALSE; break;
  case kQApid:    bHistEvtQA=kFALSE; bHistTrackQA=kFALSE; bHistPairQA=kFALSE; bHistPidQA=kTRUE;  break;
  }

  //Setup histogram Manager
  AliDielectronHistos *histos=new AliDielectronHistos(die->GetName(),die->GetTitle());

  ////// EVENT HISTOS /////
  if(bHistEvtQA) {

    //add histograms to event class
    histos->AddClass("Event");

    Int_t binsev[]   ={  125,   100,   100,  100,  100,   100,  55  };
    Double_t minev[] ={    0.,    0.,    0.,   0.,   0.,    0.,  0. };
    Double_t maxev[] ={25000.,20000.,20000.,4000.,4000., 4000.,  1.1};
    UInt_t varev[]   ={AliDielectronVarManager::kMultV0,
		       AliDielectronVarManager::kNTrk,
		       AliDielectronVarManager::kRefMult,
		       AliDielectronVarManager::kNacc,
		       AliDielectronVarManager::kRefMultTPConly,
		       AliDielectronVarManager::kNVtxContrib,
		       AliDielectronVarManager::kMatchEffITSTPC };
    histos->UserSparse("Event", 7, binsev, minev, maxev, varev);

    histos->UserHistogram("Event","","", 80,0.,80., AliDielectronVarManager::kCentrality);

    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(80,0.,80.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kCentrality);
    histos->UserProfile("Event","","", AliDielectronVarManager::kCentrality,    GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Event","","", AliDielectronVarManager::kCentralitySPD, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Event","","", AliDielectronVarManager::kZvPrim,        GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Event","","", AliDielectronVarManager::kZvPrim,	GetRunNumbers(), AliDielectronVarManager::kRunNumber, "s;-10;10");
    histos->UserProfile("Event","","", AliDielectronVarManager::kZvPrim,	AliDielectronHelper::MakeLinBinning(80,0.,80.), AliDielectronVarManager::kCentrality);
    histos->UserProfile("Event","","", AliDielectronVarManager::kZvPrim,        250,0.,25000.,   AliDielectronVarManager::kMultV0A);
    histos->UserProfile("Event","","", AliDielectronVarManager::kZvPrim,        250,0.,25000.,   AliDielectronVarManager::kMultV0C);
    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(150,-15.,15.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kZvPrim);
    histos->UserHistogram("Event","","", 80.,0.,80., 150,-15.,15.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kZvPrim);

    histos->UserHistogram("Event","","", 300.,0.,6000., 300,0.,6000.,
			  AliDielectronVarManager::kNVtxContrib, AliDielectronVarManager::kNVtxContribTPC);
    histos->UserHistogram("Event","","", 200.,0.,4000., 200,0.,4000.,
			  AliDielectronVarManager::kNVtxContrib, AliDielectronVarManager::kNacc);


    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(250,0.,25000.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kMultV0);
    histos->UserHistogram("Event","","", 80.,0.,80., 250,0.,25000.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kMultV0);
    histos->UserProfile("Event","","", AliDielectronVarManager::kMultV0,        80.,0.,80., AliDielectronVarManager::kCentrality);
    histos->UserProfile("Event","","", AliDielectronVarManager::kMultV0,        80.,0.,80., AliDielectronVarManager::kCentralitySPD);
    histos->UserProfile("Event","","", AliDielectronVarManager::kMultV0,        GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserHistogram("Event","","", 250,0.,25000., AliDielectronVarManager::kMultV0);
    histos->UserHistogram("Event","","", 250,0.,25000., AliDielectronVarManager::kMultV0A);
    histos->UserHistogram("Event","","", 250,0.,25000., AliDielectronVarManager::kMultV0C);
    histos->UserHistogram("Event","","", 200,0.,20000., 250,0.,25000., AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMultV0 );
    histos->UserHistogram("Event","","", 200,0.,20000., 250,0.,25000., AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMultV0A);
    histos->UserHistogram("Event","","", 200,0.,20000., 250,0.,25000., AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMultV0C);

    

    histos->UserHistogram("Event","","", 
			  AliDielectronHelper::MakeLinBinning(200,0.,20000.),
			  AliDielectronHelper::MakeLinBinning(250,0.,25000.),
			  GetRunNumbers(), 
			  AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMultV0A,  AliDielectronVarManager::kRunNumber);
    histos->UserHistogram("Event","","", 
			  AliDielectronHelper::MakeLinBinning(200,0.,20000.),
			  AliDielectronHelper::MakeLinBinning(250,0.,25000.),
			  GetRunNumbers(), 
			  AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMultV0C,  AliDielectronVarManager::kRunNumber);

    histos->UserHistogram("Event","","", 110,0.,1.1, AliDielectronVarManager::kMatchEffITSTPC);
    histos->UserHistogram("Event","","", 200,0.,20000., 110,0.,1.1,
			  AliDielectronVarManager::kNTrk, AliDielectronVarManager::kMatchEffITSTPC);
    histos->UserHistogram("Event","","", 80.,0.,80., 80.,0.,80., AliDielectronVarManager::kCentrality, AliDielectronVarManager::kCentralitySPD);


    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(100,-2.,+2.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kv0ArpH2);
    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(100,-2.,+2.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kv0CrpH2);
    histos->UserHistogram("Event","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(100,-2.,+2.),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kTPCrpH2uc);
    histos->UserHistogram("Event","","", 80,0.,80., 100,-2.,+2.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kv0CrpH2);
    histos->UserHistogram("Event","","", 80,0.,80., 100,-2.,+2.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kv0ArpH2);
    histos->UserHistogram("Event","","", 80,0.,80., 100,-2.,+2.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kTPCrpH2uc);
    histos->UserHistogram("Event","","", 80,0.,80., 100,0.,250.,
			  AliDielectronVarManager::kCentrality, AliDielectronVarManager::kTPCmagH2uc);
  }

  ////// PAIR HISTOS /////
  if(bHistPairQA) {

    //add histograms to track class
    histos->SetReservedWords("Pair");
    histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PM)));

    //add MC signal histograms to track class
    if(die->GetMCSignals()) {
      for (Int_t i=0; i<die->GetMCSignals()->GetEntriesFast(); ++i)
	histos->AddClass(Form("Pair_%s",die->GetMCSignals()->At(i)->GetName()));
    }

    histos->UserHistogram("Pair","","",  20, 0.,10.,           AliDielectronVarManager::kPt);
    histos->UserHistogram("Pair","","", 200,-1.,+1.,           AliDielectronVarManager::kEta);
    histos->UserHistogram("Pair","","", 180,-1.*TMath::Pi(),TMath::Pi(),AliDielectronVarManager::kPhi);
    histos->UserHistogram("Pair","","", 180, 0.,TMath::Pi(),   AliDielectronVarManager::kOpeningAngle);
    histos->UserHistogram("Pair","","", 300, 0.,300*0.04,      AliDielectronVarManager::kM);
    histos->UserHistogram("Pair","","", 180, 0.,TMath::Pi(),   AliDielectronVarManager::kPhivPair);
    histos->UserHistogram("Pair","","", 200, 0.,1.,            AliDielectronVarManager::kCosPointingAngle);
    histos->UserHistogram("Pair","","", 200, 0.,20.,           AliDielectronVarManager::kR);
    histos->UserHistogram("Pair","","", 100,-1.,+1.,           AliDielectronVarManager::kThetaCS);

    histos->UserHistogram("Pair","","", 200,-10.,+10., 125, 0.0, 2.5, AliDielectronVarManager::kArmAlpha, AliDielectronVarManager::kArmPt);

    if(hasMC) histos->UserHistogram("Pair","","",10000,-5000.5,4999.5, 300, 0.,300*0.04, AliDielectronVarManager::kPdgCode, AliDielectronVarManager::kM);

    histos->UserProfile("Pair","","",  AliDielectronVarManager::kPt,  GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Pair","","",  AliDielectronVarManager::kEta, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Pair","","",  AliDielectronVarManager::kPhi, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
  }

  ////// TRACK HISTOS /////
  if(bHistTrackQA) {

    //add histograms to track class
    histos->SetReservedWords("Track");
    // all tracks after all cuts
    histos->AddClass(Form("Track_%s",     AliDielectron::PairClassName(AliDielectron::kEv1PM)));
    // fill legs from OS pairs
    histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PM)));

    //add MC signal histograms to track class
    if(die->GetMCSignals()) {
      for (Int_t i=0; i<die->GetMCSignals()->GetEntriesFast(); ++i)
	histos->AddClass(Form("Track_Legs_%s",die->GetMCSignals()->At(i)->GetName()));
    }

    histos->UserHistogram("Track","","", 400, 0.,20., AliDielectronVarManager::kPt);
    histos->UserHistogram("Track","","", 200,-1.,+1., AliDielectronVarManager::kEta);
    histos->UserHistogram("Track","","", 180,0.,TMath::TwoPi(),AliDielectronVarManager::kPhi);
    histos->UserProfile("Track","","", AliDielectronVarManager::kPt,  GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kEta, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kPhi, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kPt,  80,0.,80., AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","","", AliDielectronVarManager::kEta, 80,0.,80., AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","","", AliDielectronVarManager::kPhi, 80,0.,80., AliDielectronVarManager::kCentrality);

    histos->UserHistogram("Track","","", 400,-1.,+1., AliDielectronVarManager::kImpactParXY);
    histos->UserHistogram("Track","","", 600,-3.,+3., AliDielectronVarManager::kImpactParZ);
    histos->UserProfile("Track","","", AliDielectronVarManager::kImpactParXY,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);
    histos->UserProfile("Track","","", AliDielectronVarManager::kImpactParZ,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);
    histos->UserProfile("Track","","", AliDielectronVarManager::kImpactParXY, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kImpactParZ,  GetRunNumbers(), AliDielectronVarManager::kRunNumber);


    // TPC
    histos->UserHistogram("Track","","", 160,0.,160., AliDielectronVarManager::kNclsTPC);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsTPC,  GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsTPC,  80, 0.,80.,      AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsTPC,  40, 0.,20.,      AliDielectronVarManager::kPt);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsTPC,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);


    histos->UserHistogram("Track","","", 8,0.,8., AliDielectronVarManager::kTPCclsSegments);
    histos->UserProfile("Track","","", AliDielectronVarManager::kTPCclsSegments, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kTPCclsSegments, 80, 0.,80.,      AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","", "", AliDielectronVarManager::kTPCclsSegments,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);

    histos->UserHistogram("Track","","", 110,0.,1.1, AliDielectronVarManager::kNFclsTPCfCross);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNFclsTPCfCross, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNFclsTPCfCross, 80, 0.,80.,      AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","", "", AliDielectronVarManager::kNFclsTPCfCross,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);

    // ITS
    histos->UserHistogram("Track","","", 7,0.,7., AliDielectronVarManager::kNclsITS);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsITS, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsITS, 80, 0.,80.,      AliDielectronVarManager::kCentrality);
    histos->UserProfile("Track","","", AliDielectronVarManager::kNclsITS, 40, 0.,20.,      AliDielectronVarManager::kPt);
    histos->UserProfile("Track","", "", AliDielectronVarManager::kNclsITS,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);

    histos->UserHistogram("Track","","", 7,0.,7., AliDielectronVarManager::kITSLayerFirstCls);
    histos->UserProfile("Track","", "", AliDielectronVarManager::kITSLayerFirstCls,
			200,-1.,+1., 180,0.,TMath::TwoPi(), AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi);

    // TRD
    histos->UserHistogram("Track","", "",   7, 0., 7., AliDielectronVarManager::kTRDpidQuality);
    histos->UserHistogram("Track","", "", 105,-1.,20., AliDielectronVarManager::kTRDchi2);
    // TRD PID
    //    histos->UserHistogram("Track","", "", 100,0.0,5., 100,0.,6., AliDielectronVarManager::kPIn, AliDielectronVarManager::kTRDsignal);
    histos->UserHistogram("Track","","",  100,0.,1.,  AliDielectronVarManager::kTRDprobEle);
    histos->UserHistogram("Track","","",  100,0.,1.,  AliDielectronVarManager::kTRDprobPio);
//     histos->UserHistogram("Track","","",  100,0.,1.,  AliDielectronVarManager::kTRDprob2DEle);
//     histos->UserHistogram("Track","","",  100,0.,1.,  AliDielectronVarManager::kTRDprob2DPio);

    // TPC PID
    histos->UserProfile("Track","","", AliDielectronVarManager::kTPCnSigmaEle, GetRunNumbers(), AliDielectronVarManager::kRunNumber);
    //    histos->UserHistogram("Track","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(200, 0.,200.), AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kTPCSignal);
    histos->UserHistogram("Track","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(16, 0.,80.), AliDielectronHelper::MakeLinBinning(100, -5.,+5),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kCentrality, AliDielectronVarManager::kTPCnSigmaEle);
    histos->UserHistogram("Track","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(20, -1.,1.), AliDielectronHelper::MakeLinBinning(100, -5.,+5),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kEta, AliDielectronVarManager::kTPCnSigmaEle);
    histos->UserHistogram("Track","","", GetRunNumbers(), AliDielectronHelper::MakeLinBinning(18, 0.,TMath::TwoPi()), AliDielectronHelper::MakeLinBinning(100, -5.,+5),
			  AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kPhi, AliDielectronVarManager::kTPCnSigmaEle);

    // TOF PID
    histos->UserHistogram("Track","", "", 100,-10.,+10., AliDielectronVarManager::kTOFnSigmaEle);
    histos->UserHistogram("Track","", "", 250,0.0,5., 100,-10.,+10., AliDielectronVarManager::kPIn, AliDielectronVarManager::kTOFnSigmaEle);
    histos->UserProfile("Track","","", AliDielectronVarManager::kTOFnSigmaEle, GetRunNumbers(), AliDielectronVarManager::kRunNumber, "h;-10;+10");
    histos->UserProfile("Track","","", AliDielectronVarManager::kTOFnSigmaEle, 
			GetRunNumbers(), AliDielectronHelper::MakeLinBinning(16, 0.,80.), AliDielectronVarManager::kRunNumber, AliDielectronVarManager::kCentrality,"h;-10;+10");
    histos->UserProfile("Track","","", AliDielectronVarManager::kTOFnSigmaEle,
			AliDielectronHelper::MakeLinBinning(20, -1.,+1.), AliDielectronHelper::MakeLinBinning(18, 0.,TMath::TwoPi()),
			AliDielectronVarManager::kEta, AliDielectronVarManager::kPhi, "h;-10;+10");

    // MC pdg codes
    if(hasMC) {
      //      histos->UserHistogram("Event","","",   25,    0.,   25.,  AliDielectronVarManager::kNumberOfJPsisPrompt);
      histos->UserHistogram("Track","","",10000,-5000.5,4999.5, AliDielectronVarManager::kPdgCodeGrandMother);
      histos->UserHistogram("Track","","",10000,-5000.5,4999.5, AliDielectronVarManager::kPdgCodeMother);
      histos->UserHistogram("Track","","",10000,-5000.5,4999.5, AliDielectronVarManager::kPdgCode);
    }
  }

    // TPC PID
  if(bHistPidQA) {
    //add histograms to track class
    histos->SetReservedWords("Track");
    //for (Int_t i=0; i<2; ++i) histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
    histos->AddClass(Form("Track_%s",AliDielectron::PairClassName(AliDielectron::kEv1PM)));

    TObjArray *limits  = new TObjArray();
      limits->Add(AliDielectronHelper::MakeLinBinning(100,-10.,     5.));
      limits->Add(AliDielectronHelper::MakeLinBinning(100,  0.,   200.));
      limits->Add(AliDielectronHelper::MakeLinBinning(100,  0.,  4000.));
      limits->Add(AliDielectronHelper::MakeLinBinning( 50,  0.,    10.));
      limits->Add(AliDielectronHelper::MakeLinBinning( 32,  0.,    80.));
      limits->Add(AliDielectronHelper::MakeLinBinning( 20, -1.,     1.));
      limits->Add(GetRunNumbers());

      UInt_t var[7]={AliDielectronVarManager::kTPCnSigmaEle,
		     AliDielectronVarManager::kTPCsignal,
		     AliDielectronVarManager::kNacc,
		     AliDielectronVarManager::kPIn,
		     AliDielectronVarManager::kCentrality,
		     AliDielectronVarManager::kEta,
		     AliDielectronVarManager::kRunNumber};
      histos->UserSparse("Track", 7, limits, var);

    }


  die->SetHistogramManager(histos);
}

void InitCF(AliDielectron* die, Int_t cutDefinition)
{
  //
  // Setup the CF Manager
  //

  AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
  // event variables
  cf->AddVariable(AliDielectronVarManager::kMultV0,         125,0.,25000. );
  cf->AddVariable(AliDielectronVarManager::kNTrk,           100,0.,20000. );
  cf->AddVariable(AliDielectronVarManager::kNacc,           100,0., 4000. );
  cf->AddVariable(AliDielectronVarManager::kMatchEffITSTPC,  55,0.,    1.1);

  die->SetCFManagerPair(cf);
}

void AddMCSignals(AliDielectron *die){
  //Do we have an MC handler?
  if (!hasMC) return;
  
  AliDielectronSignalMC* inclusiveJpsi = new AliDielectronSignalMC("inclusiveJpsi","Inclusive J/psi");
  inclusiveJpsi->SetLegPDGs(11,-11);
  inclusiveJpsi->SetMotherPDGs(443,443);
  inclusiveJpsi->SetMothersRelation(AliDielectronSignalMC::kSame);
  inclusiveJpsi->SetFillPureMCStep(kTRUE);
  inclusiveJpsi->SetCheckBothChargesLegs(kTRUE,kTRUE);
  inclusiveJpsi->SetCheckBothChargesMothers(kTRUE,kTRUE);
  die->AddSignalMC(inclusiveJpsi);
  
  AliDielectronSignalMC* promptJpsi = new AliDielectronSignalMC("promptJpsi","Prompt J/psi");   // prompt J/psi (not from beauty decays)
  promptJpsi->SetLegPDGs(11,-11);
  promptJpsi->SetMotherPDGs(443,443);
  promptJpsi->SetGrandMotherPDGs(503,503,kTRUE,kTRUE);   // not from beauty hadrons
  promptJpsi->SetMothersRelation(AliDielectronSignalMC::kSame);
  promptJpsi->SetFillPureMCStep(kTRUE);
  promptJpsi->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  promptJpsi->SetCheckBothChargesLegs(kTRUE,kTRUE);
  promptJpsi->SetCheckBothChargesMothers(kTRUE,kTRUE);
  promptJpsi->SetCheckBothChargesGrandMothers(kTRUE,kTRUE);
  die->AddSignalMC(promptJpsi);
  
  AliDielectronSignalMC* beautyJpsi = new AliDielectronSignalMC("beautyJpsi","Beauty J/psi");
  beautyJpsi->SetLegPDGs(11,-11);
  beautyJpsi->SetMotherPDGs(443,443);
  beautyJpsi->SetMothersRelation(AliDielectronSignalMC::kSame);
  beautyJpsi->SetGrandMotherPDGs(500,500);
  beautyJpsi->SetFillPureMCStep(kTRUE);
  beautyJpsi->SetCheckBothChargesLegs(kTRUE,kTRUE);
  beautyJpsi->SetCheckBothChargesMothers(kTRUE,kTRUE);
  beautyJpsi->SetCheckBothChargesGrandMothers(kTRUE,kTRUE);
  die->AddSignalMC(beautyJpsi);
  
  AliDielectronSignalMC* directJpsi = new AliDielectronSignalMC("directJpsi","Direct J/psi");   // embedded J/psi
  directJpsi->SetLegPDGs(11,-11);
  directJpsi->SetMotherPDGs(443,443);
  directJpsi->SetMothersRelation(AliDielectronSignalMC::kSame);
  directJpsi->SetFillPureMCStep(kTRUE);
  directJpsi->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  directJpsi->SetMotherSources(AliDielectronSignalMC::kDirect, AliDielectronSignalMC::kDirect);
  directJpsi->SetCheckBothChargesLegs(kTRUE,kTRUE);
  directJpsi->SetCheckBothChargesMothers(kTRUE,kTRUE);
  die->AddSignalMC(directJpsi);

  AliDielectronSignalMC* gammaConversion = new AliDielectronSignalMC("gammaConversion","gamma conversions");
  gammaConversion->SetLegPDGs(11,-11);
  gammaConversion->SetCheckBothChargesLegs(kTRUE,kTRUE);
  gammaConversion->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
  gammaConversion->SetMotherPDGs(22,22);
  gammaConversion->SetMothersRelation(AliDielectronSignalMC::kSame);
  die->AddSignalMC(gammaConversion);

  /*
  AliDielectronSignalMC* gammaConversionHI = new AliDielectronSignalMC("gammaConversionHI","gamma conversions Hijing");
  gammaConversionHI->SetLegPDGs(11,-11);
  gammaConversionHI->SetCheckBothChargesLegs(kTRUE,kTRUE);
  gammaConversionHI->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
  gammaConversionHI->SetMotherSources(AliDielectronSignalMC::kNoCocktail, AliDielectronSignalMC::kNoCocktail);
  gammaConversionHI->SetGrandMotherSources(AliDielectronSignalMC::kNoCocktail, AliDielectronSignalMC::kNoCocktail);
  gammaConversionHI->SetMotherPDGs(22,22);
  gammaConversionHI->SetMothersRelation(AliDielectronSignalMC::kSame);
  die->AddSignalMC(gammaConversionHI);
  */

  AliDielectronSignalMC* conversionElePairs = new AliDielectronSignalMC("conversionEle","conversion electron pairs");  // pairs made from conversion (may be also from 2 different conversions)
  conversionElePairs->SetLegPDGs(11,-11);
  conversionElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
  conversionElePairs->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
  conversionElePairs->SetMotherPDGs(22,22);
  die->AddSignalMC(conversionElePairs);

  AliDielectronSignalMC* inclJpsiElePairs = new AliDielectronSignalMC("inclJpsiEle","Inclusive J/psi electron pairs"); // pairs made from Jpsi electron + any different electron (no real jpsis)
  inclJpsiElePairs->SetLegPDGs(11,-11);
  inclJpsiElePairs->SetMotherPDGs(443,0);
  inclJpsiElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
  inclJpsiElePairs->SetMothersRelation(AliDielectronSignalMC::kDifferent);
  die->AddSignalMC(inclJpsiElePairs);

  // prompt J/psi radiative channel
  AliDielectronSignalMC* promptJpsiRad = new AliDielectronSignalMC("promptJpsiRad","Prompt J/psi Radiative");   // prompt J/psi (not from beauty decays)
  promptJpsiRad->SetLegPDGs(11,-11);
  promptJpsiRad->SetMotherPDGs(443,443);
  promptJpsiRad->SetGrandMotherPDGs(503,503,kTRUE,kTRUE);   // not from beauty hadrons
  promptJpsiRad->SetMothersRelation(AliDielectronSignalMC::kSame);
  promptJpsiRad->SetFillPureMCStep(kTRUE);
  promptJpsiRad->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  promptJpsiRad->SetCheckBothChargesLegs(kTRUE,kTRUE);
  promptJpsiRad->SetCheckBothChargesMothers(kTRUE,kTRUE);
  promptJpsiRad->SetCheckBothChargesGrandMothers(kTRUE,kTRUE);
  promptJpsiRad->SetJpsiRadiative(AliDielectronSignalMC::kIsRadiative);
  //  die->AddSignalMC(promptJpsiRad);

  // prompt J/psi Non radiative channel
  AliDielectronSignalMC* promptJpsiNonRad = new AliDielectronSignalMC("promptJpsiNonRad","Prompt J/psi non-Radiative");   // prompt J/psi (not from beauty decays)
  promptJpsiNonRad->SetLegPDGs(11,-11);
  promptJpsiNonRad->SetMotherPDGs(443,443);
  promptJpsiNonRad->SetGrandMotherPDGs(503,503,kTRUE,kTRUE);   // not from beauty hadrons
  promptJpsiNonRad->SetMothersRelation(AliDielectronSignalMC::kSame);
  promptJpsiNonRad->SetFillPureMCStep(kTRUE);
  promptJpsiNonRad->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  promptJpsiNonRad->SetCheckBothChargesLegs(kTRUE,kTRUE);
  promptJpsiNonRad->SetCheckBothChargesMothers(kTRUE,kTRUE);
  promptJpsiNonRad->SetCheckBothChargesGrandMothers(kTRUE,kTRUE);
  promptJpsiNonRad->SetJpsiRadiative(AliDielectronSignalMC::kIsNotRadiative);
  //  die->AddSignalMC(promptJpsiNonRad);
}


void SetEtaCorrection()
{
  if (AliDielectronPID::GetEtaCorrFunction()) return;
  
  TString etaMap="$TRAIN_ROOT/jpsi_JPSI/EtaCorrMaps.root";
  TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
  if (trainRoot.IsNull()) etaMap="$ALICE_ROOT/PWGDQ/dielectron/files/EtaCorrMaps.root";
  if (gSystem->AccessPathName(gSystem->ExpandPathName(etaMap.Data()))){
    Error("ConfigPbPb","Eta map not found: %s",etaMap.Data());
    return;
  }

  TFile f(etaMap.Data());
  if (!f.IsOpen()) return;
  TList *keys=f.GetListOfKeys();

  for (Int_t i=0; i<keys->GetEntries(); ++i){
    TString kName=keys->At(i)->GetName();
    TPRegexp reg(kName);
    if (reg.MatchB(list)){
      printf(" Using Eta Correction Function: %s\n",kName.Data());
      AliDielectronPID::SetEtaCorrFunction((TF1*)f.Get(kName.Data()));
    }
  }
}

TVectorD *GetRunNumbers() {
  
  Double_t runLHC10h[] = { // all good runs based on RCT 29.Mai
    139510, 139507, 139505, 139503, 139465, 139438, 139437, 139360, 139329, 139328, 139314, 139310, 139309, 139173, 139107, 139105, 139038, 139037, 139036, 139029, 139028, 138872, 138871, 138870, 138837, 138732, 138730, 138666, 138662, 138653, 138652, 138638, 138624, 138621, 138583, 138582, 138579, 138578, 138534, 138469, 138442, 138439, 138438, 138396, 138364, 138275, 138225, 138201, 138197, 138192, 138190, 137848, 137844, 137752, 137751, 137724, 137722, 137718, 137704, 137693, 137692, 137691, 137686, 137685, 137639, 137638, 137608, 137595, 137549, 137546, 137544, 137541, 137539, 137531, 137530, 137443, 137441, 137440, 137439, 137434, 137432, 137431, 137430, 137366, 137243, 137236, 137235, 137232, 137231, 137230, 137162, 137161, 137135
  };
  
  Double_t runLHC11h[] = { // all good runs based on RCT 29.Mai
    170593, 170572, 170388, 170387, 170315, 170313, 170312, 170311, 170309, 170308, 170306, 170270, 170269, 170268, 170230, 170228, 170207, 170204, 170203, 170193, 170163, 170159, 170155, 170091, 170089, 170088, 170085, 170084, 170083, 170081, 170040, 170027, 169965, 169923, 169859, 169858, 169855, 169846, 169838, 169837, 169835, 169591, 169590, 169588, 169587, 169586, 169557, 169555, 169554, 169553, 169550, 169515, 169512, 169506, 169504, 169498, 169475, 169420, 169419, 169418, 169417, 169415, 169411, 169238, 169167, 169160, 169156, 169148, 169145, 169144, 169138, 169099, 169094, 169091, 169045, 169044, 169040, 169035, 168992, 168988, 168826, 168777, 168514, 168512, 168511, 168467, 168464, 168460, 168458, 168362, 168361, 168342, 168341, 168325, 168322, 168311, 168310, 168115, 168108, 168107, 168105, 168076, 168069, 167988, 167987, 167985, 167920, 167915
  };
  
  // selection via environement variable (works only for gsi trains)

  
  if(list.Contains("LHC10h") || list.Contains("LHC11a10")) {
    Int_t size = (int) (sizeof(runLHC10h)/sizeof(Double_t));
    TVectorD *vec = new TVectorD(size+1);
    
    (*vec)[size] = runLHC10h[0] + 1;
    for (int i = 0; i < size; i++) {
      (*vec)[i] = runLHC10h[size-1-i];
    }
    //    vec->Print("");
    return vec;
  }

  if( list.Contains("LHC11h") || list.Contains("LHC12a17") ) {
    
    Int_t size = (int) (sizeof(runLHC11h)/sizeof(Double_t));
    TVectorD *vec = new TVectorD(size+1);
    
    (*vec)[size] = runLHC11h[0] + 1;
    for (int i = 0; i < size; i++) {
      (*vec)[i] = runLHC11h[size-1-i];
    }
    //   vec->Print("");
    return vec;
  }

  TVectorD *vec = new TVectorD(2);
  (*vec)[0] = 0;
  (*vec)[1] = 1;
  return vec;
     
}
 ConfigJpsiQA_jpsi_PbPb.C:1
 ConfigJpsiQA_jpsi_PbPb.C:2
 ConfigJpsiQA_jpsi_PbPb.C:3
 ConfigJpsiQA_jpsi_PbPb.C:4
 ConfigJpsiQA_jpsi_PbPb.C:5
 ConfigJpsiQA_jpsi_PbPb.C:6
 ConfigJpsiQA_jpsi_PbPb.C:7
 ConfigJpsiQA_jpsi_PbPb.C:8
 ConfigJpsiQA_jpsi_PbPb.C:9
 ConfigJpsiQA_jpsi_PbPb.C:10
 ConfigJpsiQA_jpsi_PbPb.C:11
 ConfigJpsiQA_jpsi_PbPb.C:12
 ConfigJpsiQA_jpsi_PbPb.C:13
 ConfigJpsiQA_jpsi_PbPb.C:14
 ConfigJpsiQA_jpsi_PbPb.C:15
 ConfigJpsiQA_jpsi_PbPb.C:16
 ConfigJpsiQA_jpsi_PbPb.C:17
 ConfigJpsiQA_jpsi_PbPb.C:18
 ConfigJpsiQA_jpsi_PbPb.C:19
 ConfigJpsiQA_jpsi_PbPb.C:20
 ConfigJpsiQA_jpsi_PbPb.C:21
 ConfigJpsiQA_jpsi_PbPb.C:22
 ConfigJpsiQA_jpsi_PbPb.C:23
 ConfigJpsiQA_jpsi_PbPb.C:24
 ConfigJpsiQA_jpsi_PbPb.C:25
 ConfigJpsiQA_jpsi_PbPb.C:26
 ConfigJpsiQA_jpsi_PbPb.C:27
 ConfigJpsiQA_jpsi_PbPb.C:28
 ConfigJpsiQA_jpsi_PbPb.C:29
 ConfigJpsiQA_jpsi_PbPb.C:30
 ConfigJpsiQA_jpsi_PbPb.C:31
 ConfigJpsiQA_jpsi_PbPb.C:32
 ConfigJpsiQA_jpsi_PbPb.C:33
 ConfigJpsiQA_jpsi_PbPb.C:34
 ConfigJpsiQA_jpsi_PbPb.C:35
 ConfigJpsiQA_jpsi_PbPb.C:36
 ConfigJpsiQA_jpsi_PbPb.C:37
 ConfigJpsiQA_jpsi_PbPb.C:38
 ConfigJpsiQA_jpsi_PbPb.C:39
 ConfigJpsiQA_jpsi_PbPb.C:40
 ConfigJpsiQA_jpsi_PbPb.C:41
 ConfigJpsiQA_jpsi_PbPb.C:42
 ConfigJpsiQA_jpsi_PbPb.C:43
 ConfigJpsiQA_jpsi_PbPb.C:44
 ConfigJpsiQA_jpsi_PbPb.C:45
 ConfigJpsiQA_jpsi_PbPb.C:46
 ConfigJpsiQA_jpsi_PbPb.C:47
 ConfigJpsiQA_jpsi_PbPb.C:48
 ConfigJpsiQA_jpsi_PbPb.C:49
 ConfigJpsiQA_jpsi_PbPb.C:50
 ConfigJpsiQA_jpsi_PbPb.C:51
 ConfigJpsiQA_jpsi_PbPb.C:52
 ConfigJpsiQA_jpsi_PbPb.C:53
 ConfigJpsiQA_jpsi_PbPb.C:54
 ConfigJpsiQA_jpsi_PbPb.C:55
 ConfigJpsiQA_jpsi_PbPb.C:56
 ConfigJpsiQA_jpsi_PbPb.C:57
 ConfigJpsiQA_jpsi_PbPb.C:58
 ConfigJpsiQA_jpsi_PbPb.C:59
 ConfigJpsiQA_jpsi_PbPb.C:60
 ConfigJpsiQA_jpsi_PbPb.C:61
 ConfigJpsiQA_jpsi_PbPb.C:62
 ConfigJpsiQA_jpsi_PbPb.C:63
 ConfigJpsiQA_jpsi_PbPb.C:64
 ConfigJpsiQA_jpsi_PbPb.C:65
 ConfigJpsiQA_jpsi_PbPb.C:66
 ConfigJpsiQA_jpsi_PbPb.C:67
 ConfigJpsiQA_jpsi_PbPb.C:68
 ConfigJpsiQA_jpsi_PbPb.C:69
 ConfigJpsiQA_jpsi_PbPb.C:70
 ConfigJpsiQA_jpsi_PbPb.C:71
 ConfigJpsiQA_jpsi_PbPb.C:72
 ConfigJpsiQA_jpsi_PbPb.C:73
 ConfigJpsiQA_jpsi_PbPb.C:74
 ConfigJpsiQA_jpsi_PbPb.C:75
 ConfigJpsiQA_jpsi_PbPb.C:76
 ConfigJpsiQA_jpsi_PbPb.C:77
 ConfigJpsiQA_jpsi_PbPb.C:78
 ConfigJpsiQA_jpsi_PbPb.C:79
 ConfigJpsiQA_jpsi_PbPb.C:80
 ConfigJpsiQA_jpsi_PbPb.C:81
 ConfigJpsiQA_jpsi_PbPb.C:82
 ConfigJpsiQA_jpsi_PbPb.C:83
 ConfigJpsiQA_jpsi_PbPb.C:84
 ConfigJpsiQA_jpsi_PbPb.C:85
 ConfigJpsiQA_jpsi_PbPb.C:86
 ConfigJpsiQA_jpsi_PbPb.C:87
 ConfigJpsiQA_jpsi_PbPb.C:88
 ConfigJpsiQA_jpsi_PbPb.C:89
 ConfigJpsiQA_jpsi_PbPb.C:90
 ConfigJpsiQA_jpsi_PbPb.C:91
 ConfigJpsiQA_jpsi_PbPb.C:92
 ConfigJpsiQA_jpsi_PbPb.C:93
 ConfigJpsiQA_jpsi_PbPb.C:94
 ConfigJpsiQA_jpsi_PbPb.C:95
 ConfigJpsiQA_jpsi_PbPb.C:96
 ConfigJpsiQA_jpsi_PbPb.C:97
 ConfigJpsiQA_jpsi_PbPb.C:98
 ConfigJpsiQA_jpsi_PbPb.C:99
 ConfigJpsiQA_jpsi_PbPb.C:100
 ConfigJpsiQA_jpsi_PbPb.C:101
 ConfigJpsiQA_jpsi_PbPb.C:102
 ConfigJpsiQA_jpsi_PbPb.C:103
 ConfigJpsiQA_jpsi_PbPb.C:104
 ConfigJpsiQA_jpsi_PbPb.C:105
 ConfigJpsiQA_jpsi_PbPb.C:106
 ConfigJpsiQA_jpsi_PbPb.C:107
 ConfigJpsiQA_jpsi_PbPb.C:108
 ConfigJpsiQA_jpsi_PbPb.C:109
 ConfigJpsiQA_jpsi_PbPb.C:110
 ConfigJpsiQA_jpsi_PbPb.C:111
 ConfigJpsiQA_jpsi_PbPb.C:112
 ConfigJpsiQA_jpsi_PbPb.C:113
 ConfigJpsiQA_jpsi_PbPb.C:114
 ConfigJpsiQA_jpsi_PbPb.C:115
 ConfigJpsiQA_jpsi_PbPb.C:116
 ConfigJpsiQA_jpsi_PbPb.C:117
 ConfigJpsiQA_jpsi_PbPb.C:118
 ConfigJpsiQA_jpsi_PbPb.C:119
 ConfigJpsiQA_jpsi_PbPb.C:120
 ConfigJpsiQA_jpsi_PbPb.C:121
 ConfigJpsiQA_jpsi_PbPb.C:122
 ConfigJpsiQA_jpsi_PbPb.C:123
 ConfigJpsiQA_jpsi_PbPb.C:124
 ConfigJpsiQA_jpsi_PbPb.C:125
 ConfigJpsiQA_jpsi_PbPb.C:126
 ConfigJpsiQA_jpsi_PbPb.C:127
 ConfigJpsiQA_jpsi_PbPb.C:128
 ConfigJpsiQA_jpsi_PbPb.C:129
 ConfigJpsiQA_jpsi_PbPb.C:130
 ConfigJpsiQA_jpsi_PbPb.C:131
 ConfigJpsiQA_jpsi_PbPb.C:132
 ConfigJpsiQA_jpsi_PbPb.C:133
 ConfigJpsiQA_jpsi_PbPb.C:134
 ConfigJpsiQA_jpsi_PbPb.C:135
 ConfigJpsiQA_jpsi_PbPb.C:136
 ConfigJpsiQA_jpsi_PbPb.C:137
 ConfigJpsiQA_jpsi_PbPb.C:138
 ConfigJpsiQA_jpsi_PbPb.C:139
 ConfigJpsiQA_jpsi_PbPb.C:140
 ConfigJpsiQA_jpsi_PbPb.C:141
 ConfigJpsiQA_jpsi_PbPb.C:142
 ConfigJpsiQA_jpsi_PbPb.C:143
 ConfigJpsiQA_jpsi_PbPb.C:144
 ConfigJpsiQA_jpsi_PbPb.C:145
 ConfigJpsiQA_jpsi_PbPb.C:146
 ConfigJpsiQA_jpsi_PbPb.C:147
 ConfigJpsiQA_jpsi_PbPb.C:148
 ConfigJpsiQA_jpsi_PbPb.C:149
 ConfigJpsiQA_jpsi_PbPb.C:150
 ConfigJpsiQA_jpsi_PbPb.C:151
 ConfigJpsiQA_jpsi_PbPb.C:152
 ConfigJpsiQA_jpsi_PbPb.C:153
 ConfigJpsiQA_jpsi_PbPb.C:154
 ConfigJpsiQA_jpsi_PbPb.C:155
 ConfigJpsiQA_jpsi_PbPb.C:156
 ConfigJpsiQA_jpsi_PbPb.C:157
 ConfigJpsiQA_jpsi_PbPb.C:158
 ConfigJpsiQA_jpsi_PbPb.C:159
 ConfigJpsiQA_jpsi_PbPb.C:160
 ConfigJpsiQA_jpsi_PbPb.C:161
 ConfigJpsiQA_jpsi_PbPb.C:162
 ConfigJpsiQA_jpsi_PbPb.C:163
 ConfigJpsiQA_jpsi_PbPb.C:164
 ConfigJpsiQA_jpsi_PbPb.C:165
 ConfigJpsiQA_jpsi_PbPb.C:166
 ConfigJpsiQA_jpsi_PbPb.C:167
 ConfigJpsiQA_jpsi_PbPb.C:168
 ConfigJpsiQA_jpsi_PbPb.C:169
 ConfigJpsiQA_jpsi_PbPb.C:170
 ConfigJpsiQA_jpsi_PbPb.C:171
 ConfigJpsiQA_jpsi_PbPb.C:172
 ConfigJpsiQA_jpsi_PbPb.C:173
 ConfigJpsiQA_jpsi_PbPb.C:174
 ConfigJpsiQA_jpsi_PbPb.C:175
 ConfigJpsiQA_jpsi_PbPb.C:176
 ConfigJpsiQA_jpsi_PbPb.C:177
 ConfigJpsiQA_jpsi_PbPb.C:178
 ConfigJpsiQA_jpsi_PbPb.C:179
 ConfigJpsiQA_jpsi_PbPb.C:180
 ConfigJpsiQA_jpsi_PbPb.C:181
 ConfigJpsiQA_jpsi_PbPb.C:182
 ConfigJpsiQA_jpsi_PbPb.C:183
 ConfigJpsiQA_jpsi_PbPb.C:184
 ConfigJpsiQA_jpsi_PbPb.C:185
 ConfigJpsiQA_jpsi_PbPb.C:186
 ConfigJpsiQA_jpsi_PbPb.C:187
 ConfigJpsiQA_jpsi_PbPb.C:188
 ConfigJpsiQA_jpsi_PbPb.C:189
 ConfigJpsiQA_jpsi_PbPb.C:190
 ConfigJpsiQA_jpsi_PbPb.C:191
 ConfigJpsiQA_jpsi_PbPb.C:192
 ConfigJpsiQA_jpsi_PbPb.C:193
 ConfigJpsiQA_jpsi_PbPb.C:194
 ConfigJpsiQA_jpsi_PbPb.C:195
 ConfigJpsiQA_jpsi_PbPb.C:196
 ConfigJpsiQA_jpsi_PbPb.C:197
 ConfigJpsiQA_jpsi_PbPb.C:198
 ConfigJpsiQA_jpsi_PbPb.C:199
 ConfigJpsiQA_jpsi_PbPb.C:200
 ConfigJpsiQA_jpsi_PbPb.C:201
 ConfigJpsiQA_jpsi_PbPb.C:202
 ConfigJpsiQA_jpsi_PbPb.C:203
 ConfigJpsiQA_jpsi_PbPb.C:204
 ConfigJpsiQA_jpsi_PbPb.C:205
 ConfigJpsiQA_jpsi_PbPb.C:206
 ConfigJpsiQA_jpsi_PbPb.C:207
 ConfigJpsiQA_jpsi_PbPb.C:208
 ConfigJpsiQA_jpsi_PbPb.C:209
 ConfigJpsiQA_jpsi_PbPb.C:210
 ConfigJpsiQA_jpsi_PbPb.C:211
 ConfigJpsiQA_jpsi_PbPb.C:212
 ConfigJpsiQA_jpsi_PbPb.C:213
 ConfigJpsiQA_jpsi_PbPb.C:214
 ConfigJpsiQA_jpsi_PbPb.C:215
 ConfigJpsiQA_jpsi_PbPb.C:216
 ConfigJpsiQA_jpsi_PbPb.C:217
 ConfigJpsiQA_jpsi_PbPb.C:218
 ConfigJpsiQA_jpsi_PbPb.C:219
 ConfigJpsiQA_jpsi_PbPb.C:220
 ConfigJpsiQA_jpsi_PbPb.C:221
 ConfigJpsiQA_jpsi_PbPb.C:222
 ConfigJpsiQA_jpsi_PbPb.C:223
 ConfigJpsiQA_jpsi_PbPb.C:224
 ConfigJpsiQA_jpsi_PbPb.C:225
 ConfigJpsiQA_jpsi_PbPb.C:226
 ConfigJpsiQA_jpsi_PbPb.C:227
 ConfigJpsiQA_jpsi_PbPb.C:228
 ConfigJpsiQA_jpsi_PbPb.C:229
 ConfigJpsiQA_jpsi_PbPb.C:230
 ConfigJpsiQA_jpsi_PbPb.C:231
 ConfigJpsiQA_jpsi_PbPb.C:232
 ConfigJpsiQA_jpsi_PbPb.C:233
 ConfigJpsiQA_jpsi_PbPb.C:234
 ConfigJpsiQA_jpsi_PbPb.C:235
 ConfigJpsiQA_jpsi_PbPb.C:236
 ConfigJpsiQA_jpsi_PbPb.C:237
 ConfigJpsiQA_jpsi_PbPb.C:238
 ConfigJpsiQA_jpsi_PbPb.C:239
 ConfigJpsiQA_jpsi_PbPb.C:240
 ConfigJpsiQA_jpsi_PbPb.C:241
 ConfigJpsiQA_jpsi_PbPb.C:242
 ConfigJpsiQA_jpsi_PbPb.C:243
 ConfigJpsiQA_jpsi_PbPb.C:244
 ConfigJpsiQA_jpsi_PbPb.C:245
 ConfigJpsiQA_jpsi_PbPb.C:246
 ConfigJpsiQA_jpsi_PbPb.C:247
 ConfigJpsiQA_jpsi_PbPb.C:248
 ConfigJpsiQA_jpsi_PbPb.C:249
 ConfigJpsiQA_jpsi_PbPb.C:250
 ConfigJpsiQA_jpsi_PbPb.C:251
 ConfigJpsiQA_jpsi_PbPb.C:252
 ConfigJpsiQA_jpsi_PbPb.C:253
 ConfigJpsiQA_jpsi_PbPb.C:254
 ConfigJpsiQA_jpsi_PbPb.C:255
 ConfigJpsiQA_jpsi_PbPb.C:256
 ConfigJpsiQA_jpsi_PbPb.C:257
 ConfigJpsiQA_jpsi_PbPb.C:258
 ConfigJpsiQA_jpsi_PbPb.C:259
 ConfigJpsiQA_jpsi_PbPb.C:260
 ConfigJpsiQA_jpsi_PbPb.C:261
 ConfigJpsiQA_jpsi_PbPb.C:262
 ConfigJpsiQA_jpsi_PbPb.C:263
 ConfigJpsiQA_jpsi_PbPb.C:264
 ConfigJpsiQA_jpsi_PbPb.C:265
 ConfigJpsiQA_jpsi_PbPb.C:266
 ConfigJpsiQA_jpsi_PbPb.C:267
 ConfigJpsiQA_jpsi_PbPb.C:268
 ConfigJpsiQA_jpsi_PbPb.C:269
 ConfigJpsiQA_jpsi_PbPb.C:270
 ConfigJpsiQA_jpsi_PbPb.C:271
 ConfigJpsiQA_jpsi_PbPb.C:272
 ConfigJpsiQA_jpsi_PbPb.C:273
 ConfigJpsiQA_jpsi_PbPb.C:274
 ConfigJpsiQA_jpsi_PbPb.C:275
 ConfigJpsiQA_jpsi_PbPb.C:276
 ConfigJpsiQA_jpsi_PbPb.C:277
 ConfigJpsiQA_jpsi_PbPb.C:278
 ConfigJpsiQA_jpsi_PbPb.C:279
 ConfigJpsiQA_jpsi_PbPb.C:280
 ConfigJpsiQA_jpsi_PbPb.C:281
 ConfigJpsiQA_jpsi_PbPb.C:282
 ConfigJpsiQA_jpsi_PbPb.C:283
 ConfigJpsiQA_jpsi_PbPb.C:284
 ConfigJpsiQA_jpsi_PbPb.C:285
 ConfigJpsiQA_jpsi_PbPb.C:286
 ConfigJpsiQA_jpsi_PbPb.C:287
 ConfigJpsiQA_jpsi_PbPb.C:288
 ConfigJpsiQA_jpsi_PbPb.C:289
 ConfigJpsiQA_jpsi_PbPb.C:290
 ConfigJpsiQA_jpsi_PbPb.C:291
 ConfigJpsiQA_jpsi_PbPb.C:292
 ConfigJpsiQA_jpsi_PbPb.C:293
 ConfigJpsiQA_jpsi_PbPb.C:294
 ConfigJpsiQA_jpsi_PbPb.C:295
 ConfigJpsiQA_jpsi_PbPb.C:296
 ConfigJpsiQA_jpsi_PbPb.C:297
 ConfigJpsiQA_jpsi_PbPb.C:298
 ConfigJpsiQA_jpsi_PbPb.C:299
 ConfigJpsiQA_jpsi_PbPb.C:300
 ConfigJpsiQA_jpsi_PbPb.C:301
 ConfigJpsiQA_jpsi_PbPb.C:302
 ConfigJpsiQA_jpsi_PbPb.C:303
 ConfigJpsiQA_jpsi_PbPb.C:304
 ConfigJpsiQA_jpsi_PbPb.C:305
 ConfigJpsiQA_jpsi_PbPb.C:306
 ConfigJpsiQA_jpsi_PbPb.C:307
 ConfigJpsiQA_jpsi_PbPb.C:308
 ConfigJpsiQA_jpsi_PbPb.C:309
 ConfigJpsiQA_jpsi_PbPb.C:310
 ConfigJpsiQA_jpsi_PbPb.C:311
 ConfigJpsiQA_jpsi_PbPb.C:312
 ConfigJpsiQA_jpsi_PbPb.C:313
 ConfigJpsiQA_jpsi_PbPb.C:314
 ConfigJpsiQA_jpsi_PbPb.C:315
 ConfigJpsiQA_jpsi_PbPb.C:316
 ConfigJpsiQA_jpsi_PbPb.C:317
 ConfigJpsiQA_jpsi_PbPb.C:318
 ConfigJpsiQA_jpsi_PbPb.C:319
 ConfigJpsiQA_jpsi_PbPb.C:320
 ConfigJpsiQA_jpsi_PbPb.C:321
 ConfigJpsiQA_jpsi_PbPb.C:322
 ConfigJpsiQA_jpsi_PbPb.C:323
 ConfigJpsiQA_jpsi_PbPb.C:324
 ConfigJpsiQA_jpsi_PbPb.C:325
 ConfigJpsiQA_jpsi_PbPb.C:326
 ConfigJpsiQA_jpsi_PbPb.C:327
 ConfigJpsiQA_jpsi_PbPb.C:328
 ConfigJpsiQA_jpsi_PbPb.C:329
 ConfigJpsiQA_jpsi_PbPb.C:330
 ConfigJpsiQA_jpsi_PbPb.C:331
 ConfigJpsiQA_jpsi_PbPb.C:332
 ConfigJpsiQA_jpsi_PbPb.C:333
 ConfigJpsiQA_jpsi_PbPb.C:334
 ConfigJpsiQA_jpsi_PbPb.C:335
 ConfigJpsiQA_jpsi_PbPb.C:336
 ConfigJpsiQA_jpsi_PbPb.C:337
 ConfigJpsiQA_jpsi_PbPb.C:338
 ConfigJpsiQA_jpsi_PbPb.C:339
 ConfigJpsiQA_jpsi_PbPb.C:340
 ConfigJpsiQA_jpsi_PbPb.C:341
 ConfigJpsiQA_jpsi_PbPb.C:342
 ConfigJpsiQA_jpsi_PbPb.C:343
 ConfigJpsiQA_jpsi_PbPb.C:344
 ConfigJpsiQA_jpsi_PbPb.C:345
 ConfigJpsiQA_jpsi_PbPb.C:346
 ConfigJpsiQA_jpsi_PbPb.C:347
 ConfigJpsiQA_jpsi_PbPb.C:348
 ConfigJpsiQA_jpsi_PbPb.C:349
 ConfigJpsiQA_jpsi_PbPb.C:350
 ConfigJpsiQA_jpsi_PbPb.C:351
 ConfigJpsiQA_jpsi_PbPb.C:352
 ConfigJpsiQA_jpsi_PbPb.C:353
 ConfigJpsiQA_jpsi_PbPb.C:354
 ConfigJpsiQA_jpsi_PbPb.C:355
 ConfigJpsiQA_jpsi_PbPb.C:356
 ConfigJpsiQA_jpsi_PbPb.C:357
 ConfigJpsiQA_jpsi_PbPb.C:358
 ConfigJpsiQA_jpsi_PbPb.C:359
 ConfigJpsiQA_jpsi_PbPb.C:360
 ConfigJpsiQA_jpsi_PbPb.C:361
 ConfigJpsiQA_jpsi_PbPb.C:362
 ConfigJpsiQA_jpsi_PbPb.C:363
 ConfigJpsiQA_jpsi_PbPb.C:364
 ConfigJpsiQA_jpsi_PbPb.C:365
 ConfigJpsiQA_jpsi_PbPb.C:366
 ConfigJpsiQA_jpsi_PbPb.C:367
 ConfigJpsiQA_jpsi_PbPb.C:368
 ConfigJpsiQA_jpsi_PbPb.C:369
 ConfigJpsiQA_jpsi_PbPb.C:370
 ConfigJpsiQA_jpsi_PbPb.C:371
 ConfigJpsiQA_jpsi_PbPb.C:372
 ConfigJpsiQA_jpsi_PbPb.C:373
 ConfigJpsiQA_jpsi_PbPb.C:374
 ConfigJpsiQA_jpsi_PbPb.C:375
 ConfigJpsiQA_jpsi_PbPb.C:376
 ConfigJpsiQA_jpsi_PbPb.C:377
 ConfigJpsiQA_jpsi_PbPb.C:378
 ConfigJpsiQA_jpsi_PbPb.C:379
 ConfigJpsiQA_jpsi_PbPb.C:380
 ConfigJpsiQA_jpsi_PbPb.C:381
 ConfigJpsiQA_jpsi_PbPb.C:382
 ConfigJpsiQA_jpsi_PbPb.C:383
 ConfigJpsiQA_jpsi_PbPb.C:384
 ConfigJpsiQA_jpsi_PbPb.C:385
 ConfigJpsiQA_jpsi_PbPb.C:386
 ConfigJpsiQA_jpsi_PbPb.C:387
 ConfigJpsiQA_jpsi_PbPb.C:388
 ConfigJpsiQA_jpsi_PbPb.C:389
 ConfigJpsiQA_jpsi_PbPb.C:390
 ConfigJpsiQA_jpsi_PbPb.C:391
 ConfigJpsiQA_jpsi_PbPb.C:392
 ConfigJpsiQA_jpsi_PbPb.C:393
 ConfigJpsiQA_jpsi_PbPb.C:394
 ConfigJpsiQA_jpsi_PbPb.C:395
 ConfigJpsiQA_jpsi_PbPb.C:396
 ConfigJpsiQA_jpsi_PbPb.C:397
 ConfigJpsiQA_jpsi_PbPb.C:398
 ConfigJpsiQA_jpsi_PbPb.C:399
 ConfigJpsiQA_jpsi_PbPb.C:400
 ConfigJpsiQA_jpsi_PbPb.C:401
 ConfigJpsiQA_jpsi_PbPb.C:402
 ConfigJpsiQA_jpsi_PbPb.C:403
 ConfigJpsiQA_jpsi_PbPb.C:404
 ConfigJpsiQA_jpsi_PbPb.C:405
 ConfigJpsiQA_jpsi_PbPb.C:406
 ConfigJpsiQA_jpsi_PbPb.C:407
 ConfigJpsiQA_jpsi_PbPb.C:408
 ConfigJpsiQA_jpsi_PbPb.C:409
 ConfigJpsiQA_jpsi_PbPb.C:410
 ConfigJpsiQA_jpsi_PbPb.C:411
 ConfigJpsiQA_jpsi_PbPb.C:412
 ConfigJpsiQA_jpsi_PbPb.C:413
 ConfigJpsiQA_jpsi_PbPb.C:414
 ConfigJpsiQA_jpsi_PbPb.C:415
 ConfigJpsiQA_jpsi_PbPb.C:416
 ConfigJpsiQA_jpsi_PbPb.C:417
 ConfigJpsiQA_jpsi_PbPb.C:418
 ConfigJpsiQA_jpsi_PbPb.C:419
 ConfigJpsiQA_jpsi_PbPb.C:420
 ConfigJpsiQA_jpsi_PbPb.C:421
 ConfigJpsiQA_jpsi_PbPb.C:422
 ConfigJpsiQA_jpsi_PbPb.C:423
 ConfigJpsiQA_jpsi_PbPb.C:424
 ConfigJpsiQA_jpsi_PbPb.C:425
 ConfigJpsiQA_jpsi_PbPb.C:426
 ConfigJpsiQA_jpsi_PbPb.C:427
 ConfigJpsiQA_jpsi_PbPb.C:428
 ConfigJpsiQA_jpsi_PbPb.C:429
 ConfigJpsiQA_jpsi_PbPb.C:430
 ConfigJpsiQA_jpsi_PbPb.C:431
 ConfigJpsiQA_jpsi_PbPb.C:432
 ConfigJpsiQA_jpsi_PbPb.C:433
 ConfigJpsiQA_jpsi_PbPb.C:434
 ConfigJpsiQA_jpsi_PbPb.C:435
 ConfigJpsiQA_jpsi_PbPb.C:436
 ConfigJpsiQA_jpsi_PbPb.C:437
 ConfigJpsiQA_jpsi_PbPb.C:438
 ConfigJpsiQA_jpsi_PbPb.C:439
 ConfigJpsiQA_jpsi_PbPb.C:440
 ConfigJpsiQA_jpsi_PbPb.C:441
 ConfigJpsiQA_jpsi_PbPb.C:442
 ConfigJpsiQA_jpsi_PbPb.C:443
 ConfigJpsiQA_jpsi_PbPb.C:444
 ConfigJpsiQA_jpsi_PbPb.C:445
 ConfigJpsiQA_jpsi_PbPb.C:446
 ConfigJpsiQA_jpsi_PbPb.C:447
 ConfigJpsiQA_jpsi_PbPb.C:448
 ConfigJpsiQA_jpsi_PbPb.C:449
 ConfigJpsiQA_jpsi_PbPb.C:450
 ConfigJpsiQA_jpsi_PbPb.C:451
 ConfigJpsiQA_jpsi_PbPb.C:452
 ConfigJpsiQA_jpsi_PbPb.C:453
 ConfigJpsiQA_jpsi_PbPb.C:454
 ConfigJpsiQA_jpsi_PbPb.C:455
 ConfigJpsiQA_jpsi_PbPb.C:456
 ConfigJpsiQA_jpsi_PbPb.C:457
 ConfigJpsiQA_jpsi_PbPb.C:458
 ConfigJpsiQA_jpsi_PbPb.C:459
 ConfigJpsiQA_jpsi_PbPb.C:460
 ConfigJpsiQA_jpsi_PbPb.C:461
 ConfigJpsiQA_jpsi_PbPb.C:462
 ConfigJpsiQA_jpsi_PbPb.C:463
 ConfigJpsiQA_jpsi_PbPb.C:464
 ConfigJpsiQA_jpsi_PbPb.C:465
 ConfigJpsiQA_jpsi_PbPb.C:466
 ConfigJpsiQA_jpsi_PbPb.C:467
 ConfigJpsiQA_jpsi_PbPb.C:468
 ConfigJpsiQA_jpsi_PbPb.C:469
 ConfigJpsiQA_jpsi_PbPb.C:470
 ConfigJpsiQA_jpsi_PbPb.C:471
 ConfigJpsiQA_jpsi_PbPb.C:472
 ConfigJpsiQA_jpsi_PbPb.C:473
 ConfigJpsiQA_jpsi_PbPb.C:474
 ConfigJpsiQA_jpsi_PbPb.C:475
 ConfigJpsiQA_jpsi_PbPb.C:476
 ConfigJpsiQA_jpsi_PbPb.C:477
 ConfigJpsiQA_jpsi_PbPb.C:478
 ConfigJpsiQA_jpsi_PbPb.C:479
 ConfigJpsiQA_jpsi_PbPb.C:480
 ConfigJpsiQA_jpsi_PbPb.C:481
 ConfigJpsiQA_jpsi_PbPb.C:482
 ConfigJpsiQA_jpsi_PbPb.C:483
 ConfigJpsiQA_jpsi_PbPb.C:484
 ConfigJpsiQA_jpsi_PbPb.C:485
 ConfigJpsiQA_jpsi_PbPb.C:486
 ConfigJpsiQA_jpsi_PbPb.C:487
 ConfigJpsiQA_jpsi_PbPb.C:488
 ConfigJpsiQA_jpsi_PbPb.C:489
 ConfigJpsiQA_jpsi_PbPb.C:490
 ConfigJpsiQA_jpsi_PbPb.C:491
 ConfigJpsiQA_jpsi_PbPb.C:492
 ConfigJpsiQA_jpsi_PbPb.C:493
 ConfigJpsiQA_jpsi_PbPb.C:494
 ConfigJpsiQA_jpsi_PbPb.C:495
 ConfigJpsiQA_jpsi_PbPb.C:496
 ConfigJpsiQA_jpsi_PbPb.C:497
 ConfigJpsiQA_jpsi_PbPb.C:498
 ConfigJpsiQA_jpsi_PbPb.C:499
 ConfigJpsiQA_jpsi_PbPb.C:500
 ConfigJpsiQA_jpsi_PbPb.C:501
 ConfigJpsiQA_jpsi_PbPb.C:502
 ConfigJpsiQA_jpsi_PbPb.C:503
 ConfigJpsiQA_jpsi_PbPb.C:504
 ConfigJpsiQA_jpsi_PbPb.C:505
 ConfigJpsiQA_jpsi_PbPb.C:506
 ConfigJpsiQA_jpsi_PbPb.C:507
 ConfigJpsiQA_jpsi_PbPb.C:508
 ConfigJpsiQA_jpsi_PbPb.C:509
 ConfigJpsiQA_jpsi_PbPb.C:510
 ConfigJpsiQA_jpsi_PbPb.C:511
 ConfigJpsiQA_jpsi_PbPb.C:512
 ConfigJpsiQA_jpsi_PbPb.C:513
 ConfigJpsiQA_jpsi_PbPb.C:514
 ConfigJpsiQA_jpsi_PbPb.C:515
 ConfigJpsiQA_jpsi_PbPb.C:516
 ConfigJpsiQA_jpsi_PbPb.C:517
 ConfigJpsiQA_jpsi_PbPb.C:518
 ConfigJpsiQA_jpsi_PbPb.C:519
 ConfigJpsiQA_jpsi_PbPb.C:520
 ConfigJpsiQA_jpsi_PbPb.C:521
 ConfigJpsiQA_jpsi_PbPb.C:522
 ConfigJpsiQA_jpsi_PbPb.C:523
 ConfigJpsiQA_jpsi_PbPb.C:524
 ConfigJpsiQA_jpsi_PbPb.C:525
 ConfigJpsiQA_jpsi_PbPb.C:526
 ConfigJpsiQA_jpsi_PbPb.C:527
 ConfigJpsiQA_jpsi_PbPb.C:528
 ConfigJpsiQA_jpsi_PbPb.C:529
 ConfigJpsiQA_jpsi_PbPb.C:530
 ConfigJpsiQA_jpsi_PbPb.C:531
 ConfigJpsiQA_jpsi_PbPb.C:532
 ConfigJpsiQA_jpsi_PbPb.C:533
 ConfigJpsiQA_jpsi_PbPb.C:534
 ConfigJpsiQA_jpsi_PbPb.C:535
 ConfigJpsiQA_jpsi_PbPb.C:536
 ConfigJpsiQA_jpsi_PbPb.C:537
 ConfigJpsiQA_jpsi_PbPb.C:538
 ConfigJpsiQA_jpsi_PbPb.C:539
 ConfigJpsiQA_jpsi_PbPb.C:540
 ConfigJpsiQA_jpsi_PbPb.C:541
 ConfigJpsiQA_jpsi_PbPb.C:542
 ConfigJpsiQA_jpsi_PbPb.C:543
 ConfigJpsiQA_jpsi_PbPb.C:544
 ConfigJpsiQA_jpsi_PbPb.C:545
 ConfigJpsiQA_jpsi_PbPb.C:546
 ConfigJpsiQA_jpsi_PbPb.C:547
 ConfigJpsiQA_jpsi_PbPb.C:548
 ConfigJpsiQA_jpsi_PbPb.C:549
 ConfigJpsiQA_jpsi_PbPb.C:550
 ConfigJpsiQA_jpsi_PbPb.C:551
 ConfigJpsiQA_jpsi_PbPb.C:552
 ConfigJpsiQA_jpsi_PbPb.C:553
 ConfigJpsiQA_jpsi_PbPb.C:554
 ConfigJpsiQA_jpsi_PbPb.C:555
 ConfigJpsiQA_jpsi_PbPb.C:556
 ConfigJpsiQA_jpsi_PbPb.C:557
 ConfigJpsiQA_jpsi_PbPb.C:558
 ConfigJpsiQA_jpsi_PbPb.C:559
 ConfigJpsiQA_jpsi_PbPb.C:560
 ConfigJpsiQA_jpsi_PbPb.C:561
 ConfigJpsiQA_jpsi_PbPb.C:562
 ConfigJpsiQA_jpsi_PbPb.C:563
 ConfigJpsiQA_jpsi_PbPb.C:564
 ConfigJpsiQA_jpsi_PbPb.C:565
 ConfigJpsiQA_jpsi_PbPb.C:566
 ConfigJpsiQA_jpsi_PbPb.C:567
 ConfigJpsiQA_jpsi_PbPb.C:568
 ConfigJpsiQA_jpsi_PbPb.C:569
 ConfigJpsiQA_jpsi_PbPb.C:570
 ConfigJpsiQA_jpsi_PbPb.C:571
 ConfigJpsiQA_jpsi_PbPb.C:572
 ConfigJpsiQA_jpsi_PbPb.C:573
 ConfigJpsiQA_jpsi_PbPb.C:574
 ConfigJpsiQA_jpsi_PbPb.C:575
 ConfigJpsiQA_jpsi_PbPb.C:576
 ConfigJpsiQA_jpsi_PbPb.C:577
 ConfigJpsiQA_jpsi_PbPb.C:578
 ConfigJpsiQA_jpsi_PbPb.C:579
 ConfigJpsiQA_jpsi_PbPb.C:580
 ConfigJpsiQA_jpsi_PbPb.C:581
 ConfigJpsiQA_jpsi_PbPb.C:582
 ConfigJpsiQA_jpsi_PbPb.C:583
 ConfigJpsiQA_jpsi_PbPb.C:584
 ConfigJpsiQA_jpsi_PbPb.C:585
 ConfigJpsiQA_jpsi_PbPb.C:586
 ConfigJpsiQA_jpsi_PbPb.C:587
 ConfigJpsiQA_jpsi_PbPb.C:588
 ConfigJpsiQA_jpsi_PbPb.C:589
 ConfigJpsiQA_jpsi_PbPb.C:590
 ConfigJpsiQA_jpsi_PbPb.C:591
 ConfigJpsiQA_jpsi_PbPb.C:592
 ConfigJpsiQA_jpsi_PbPb.C:593
 ConfigJpsiQA_jpsi_PbPb.C:594
 ConfigJpsiQA_jpsi_PbPb.C:595
 ConfigJpsiQA_jpsi_PbPb.C:596
 ConfigJpsiQA_jpsi_PbPb.C:597
 ConfigJpsiQA_jpsi_PbPb.C:598
 ConfigJpsiQA_jpsi_PbPb.C:599
 ConfigJpsiQA_jpsi_PbPb.C:600
 ConfigJpsiQA_jpsi_PbPb.C:601
 ConfigJpsiQA_jpsi_PbPb.C:602
 ConfigJpsiQA_jpsi_PbPb.C:603
 ConfigJpsiQA_jpsi_PbPb.C:604
 ConfigJpsiQA_jpsi_PbPb.C:605
 ConfigJpsiQA_jpsi_PbPb.C:606
 ConfigJpsiQA_jpsi_PbPb.C:607
 ConfigJpsiQA_jpsi_PbPb.C:608
 ConfigJpsiQA_jpsi_PbPb.C:609
 ConfigJpsiQA_jpsi_PbPb.C:610
 ConfigJpsiQA_jpsi_PbPb.C:611
 ConfigJpsiQA_jpsi_PbPb.C:612
 ConfigJpsiQA_jpsi_PbPb.C:613
 ConfigJpsiQA_jpsi_PbPb.C:614
 ConfigJpsiQA_jpsi_PbPb.C:615
 ConfigJpsiQA_jpsi_PbPb.C:616
 ConfigJpsiQA_jpsi_PbPb.C:617
 ConfigJpsiQA_jpsi_PbPb.C:618
 ConfigJpsiQA_jpsi_PbPb.C:619
 ConfigJpsiQA_jpsi_PbPb.C:620
 ConfigJpsiQA_jpsi_PbPb.C:621
 ConfigJpsiQA_jpsi_PbPb.C:622
 ConfigJpsiQA_jpsi_PbPb.C:623
 ConfigJpsiQA_jpsi_PbPb.C:624
 ConfigJpsiQA_jpsi_PbPb.C:625
 ConfigJpsiQA_jpsi_PbPb.C:626
 ConfigJpsiQA_jpsi_PbPb.C:627
 ConfigJpsiQA_jpsi_PbPb.C:628
 ConfigJpsiQA_jpsi_PbPb.C:629
 ConfigJpsiQA_jpsi_PbPb.C:630
 ConfigJpsiQA_jpsi_PbPb.C:631
 ConfigJpsiQA_jpsi_PbPb.C:632
 ConfigJpsiQA_jpsi_PbPb.C:633
 ConfigJpsiQA_jpsi_PbPb.C:634
 ConfigJpsiQA_jpsi_PbPb.C:635
 ConfigJpsiQA_jpsi_PbPb.C:636
 ConfigJpsiQA_jpsi_PbPb.C:637
 ConfigJpsiQA_jpsi_PbPb.C:638
 ConfigJpsiQA_jpsi_PbPb.C:639
 ConfigJpsiQA_jpsi_PbPb.C:640
 ConfigJpsiQA_jpsi_PbPb.C:641
 ConfigJpsiQA_jpsi_PbPb.C:642
 ConfigJpsiQA_jpsi_PbPb.C:643
 ConfigJpsiQA_jpsi_PbPb.C:644
 ConfigJpsiQA_jpsi_PbPb.C:645
 ConfigJpsiQA_jpsi_PbPb.C:646
 ConfigJpsiQA_jpsi_PbPb.C:647
 ConfigJpsiQA_jpsi_PbPb.C:648
 ConfigJpsiQA_jpsi_PbPb.C:649
 ConfigJpsiQA_jpsi_PbPb.C:650
 ConfigJpsiQA_jpsi_PbPb.C:651
 ConfigJpsiQA_jpsi_PbPb.C:652
 ConfigJpsiQA_jpsi_PbPb.C:653
 ConfigJpsiQA_jpsi_PbPb.C:654
 ConfigJpsiQA_jpsi_PbPb.C:655
 ConfigJpsiQA_jpsi_PbPb.C:656
 ConfigJpsiQA_jpsi_PbPb.C:657
 ConfigJpsiQA_jpsi_PbPb.C:658
 ConfigJpsiQA_jpsi_PbPb.C:659
 ConfigJpsiQA_jpsi_PbPb.C:660
 ConfigJpsiQA_jpsi_PbPb.C:661
 ConfigJpsiQA_jpsi_PbPb.C:662
 ConfigJpsiQA_jpsi_PbPb.C:663
 ConfigJpsiQA_jpsi_PbPb.C:664
 ConfigJpsiQA_jpsi_PbPb.C:665
 ConfigJpsiQA_jpsi_PbPb.C:666
 ConfigJpsiQA_jpsi_PbPb.C:667
 ConfigJpsiQA_jpsi_PbPb.C:668
 ConfigJpsiQA_jpsi_PbPb.C:669
 ConfigJpsiQA_jpsi_PbPb.C:670
 ConfigJpsiQA_jpsi_PbPb.C:671
 ConfigJpsiQA_jpsi_PbPb.C:672
 ConfigJpsiQA_jpsi_PbPb.C:673
 ConfigJpsiQA_jpsi_PbPb.C:674
 ConfigJpsiQA_jpsi_PbPb.C:675
 ConfigJpsiQA_jpsi_PbPb.C:676
 ConfigJpsiQA_jpsi_PbPb.C:677
 ConfigJpsiQA_jpsi_PbPb.C:678
 ConfigJpsiQA_jpsi_PbPb.C:679
 ConfigJpsiQA_jpsi_PbPb.C:680
 ConfigJpsiQA_jpsi_PbPb.C:681
 ConfigJpsiQA_jpsi_PbPb.C:682
 ConfigJpsiQA_jpsi_PbPb.C:683
 ConfigJpsiQA_jpsi_PbPb.C:684
 ConfigJpsiQA_jpsi_PbPb.C:685
 ConfigJpsiQA_jpsi_PbPb.C:686
 ConfigJpsiQA_jpsi_PbPb.C:687
 ConfigJpsiQA_jpsi_PbPb.C:688
 ConfigJpsiQA_jpsi_PbPb.C:689
 ConfigJpsiQA_jpsi_PbPb.C:690
 ConfigJpsiQA_jpsi_PbPb.C:691
 ConfigJpsiQA_jpsi_PbPb.C:692
 ConfigJpsiQA_jpsi_PbPb.C:693
 ConfigJpsiQA_jpsi_PbPb.C:694
 ConfigJpsiQA_jpsi_PbPb.C:695
 ConfigJpsiQA_jpsi_PbPb.C:696
 ConfigJpsiQA_jpsi_PbPb.C:697
 ConfigJpsiQA_jpsi_PbPb.C:698
 ConfigJpsiQA_jpsi_PbPb.C:699
 ConfigJpsiQA_jpsi_PbPb.C:700
 ConfigJpsiQA_jpsi_PbPb.C:701
 ConfigJpsiQA_jpsi_PbPb.C:702
 ConfigJpsiQA_jpsi_PbPb.C:703
 ConfigJpsiQA_jpsi_PbPb.C:704
 ConfigJpsiQA_jpsi_PbPb.C:705
 ConfigJpsiQA_jpsi_PbPb.C:706
 ConfigJpsiQA_jpsi_PbPb.C:707
 ConfigJpsiQA_jpsi_PbPb.C:708
 ConfigJpsiQA_jpsi_PbPb.C:709
 ConfigJpsiQA_jpsi_PbPb.C:710
 ConfigJpsiQA_jpsi_PbPb.C:711
 ConfigJpsiQA_jpsi_PbPb.C:712
 ConfigJpsiQA_jpsi_PbPb.C:713
 ConfigJpsiQA_jpsi_PbPb.C:714
 ConfigJpsiQA_jpsi_PbPb.C:715
 ConfigJpsiQA_jpsi_PbPb.C:716
 ConfigJpsiQA_jpsi_PbPb.C:717
 ConfigJpsiQA_jpsi_PbPb.C:718
 ConfigJpsiQA_jpsi_PbPb.C:719
 ConfigJpsiQA_jpsi_PbPb.C:720
 ConfigJpsiQA_jpsi_PbPb.C:721
 ConfigJpsiQA_jpsi_PbPb.C:722
 ConfigJpsiQA_jpsi_PbPb.C:723
 ConfigJpsiQA_jpsi_PbPb.C:724
 ConfigJpsiQA_jpsi_PbPb.C:725
 ConfigJpsiQA_jpsi_PbPb.C:726
 ConfigJpsiQA_jpsi_PbPb.C:727
 ConfigJpsiQA_jpsi_PbPb.C:728
 ConfigJpsiQA_jpsi_PbPb.C:729
 ConfigJpsiQA_jpsi_PbPb.C:730
 ConfigJpsiQA_jpsi_PbPb.C:731
 ConfigJpsiQA_jpsi_PbPb.C:732
 ConfigJpsiQA_jpsi_PbPb.C:733
 ConfigJpsiQA_jpsi_PbPb.C:734
 ConfigJpsiQA_jpsi_PbPb.C:735
 ConfigJpsiQA_jpsi_PbPb.C:736
 ConfigJpsiQA_jpsi_PbPb.C:737
 ConfigJpsiQA_jpsi_PbPb.C:738
 ConfigJpsiQA_jpsi_PbPb.C:739
 ConfigJpsiQA_jpsi_PbPb.C:740
 ConfigJpsiQA_jpsi_PbPb.C:741
 ConfigJpsiQA_jpsi_PbPb.C:742
 ConfigJpsiQA_jpsi_PbPb.C:743
 ConfigJpsiQA_jpsi_PbPb.C:744
 ConfigJpsiQA_jpsi_PbPb.C:745
 ConfigJpsiQA_jpsi_PbPb.C:746
 ConfigJpsiQA_jpsi_PbPb.C:747
 ConfigJpsiQA_jpsi_PbPb.C:748
 ConfigJpsiQA_jpsi_PbPb.C:749
 ConfigJpsiQA_jpsi_PbPb.C:750
 ConfigJpsiQA_jpsi_PbPb.C:751
 ConfigJpsiQA_jpsi_PbPb.C:752
 ConfigJpsiQA_jpsi_PbPb.C:753
 ConfigJpsiQA_jpsi_PbPb.C:754
 ConfigJpsiQA_jpsi_PbPb.C:755
 ConfigJpsiQA_jpsi_PbPb.C:756
 ConfigJpsiQA_jpsi_PbPb.C:757
 ConfigJpsiQA_jpsi_PbPb.C:758
 ConfigJpsiQA_jpsi_PbPb.C:759
 ConfigJpsiQA_jpsi_PbPb.C:760
 ConfigJpsiQA_jpsi_PbPb.C:761
 ConfigJpsiQA_jpsi_PbPb.C:762
 ConfigJpsiQA_jpsi_PbPb.C:763
 ConfigJpsiQA_jpsi_PbPb.C:764
 ConfigJpsiQA_jpsi_PbPb.C:765
 ConfigJpsiQA_jpsi_PbPb.C:766
 ConfigJpsiQA_jpsi_PbPb.C:767
 ConfigJpsiQA_jpsi_PbPb.C:768
 ConfigJpsiQA_jpsi_PbPb.C:769
 ConfigJpsiQA_jpsi_PbPb.C:770
 ConfigJpsiQA_jpsi_PbPb.C:771
 ConfigJpsiQA_jpsi_PbPb.C:772
 ConfigJpsiQA_jpsi_PbPb.C:773
 ConfigJpsiQA_jpsi_PbPb.C:774
 ConfigJpsiQA_jpsi_PbPb.C:775
 ConfigJpsiQA_jpsi_PbPb.C:776
 ConfigJpsiQA_jpsi_PbPb.C:777
 ConfigJpsiQA_jpsi_PbPb.C:778
 ConfigJpsiQA_jpsi_PbPb.C:779
 ConfigJpsiQA_jpsi_PbPb.C:780
 ConfigJpsiQA_jpsi_PbPb.C:781
 ConfigJpsiQA_jpsi_PbPb.C:782
 ConfigJpsiQA_jpsi_PbPb.C:783
 ConfigJpsiQA_jpsi_PbPb.C:784
 ConfigJpsiQA_jpsi_PbPb.C:785
 ConfigJpsiQA_jpsi_PbPb.C:786
 ConfigJpsiQA_jpsi_PbPb.C:787
 ConfigJpsiQA_jpsi_PbPb.C:788
 ConfigJpsiQA_jpsi_PbPb.C:789
 ConfigJpsiQA_jpsi_PbPb.C:790
 ConfigJpsiQA_jpsi_PbPb.C:791
 ConfigJpsiQA_jpsi_PbPb.C:792
 ConfigJpsiQA_jpsi_PbPb.C:793
 ConfigJpsiQA_jpsi_PbPb.C:794
 ConfigJpsiQA_jpsi_PbPb.C:795
 ConfigJpsiQA_jpsi_PbPb.C:796
 ConfigJpsiQA_jpsi_PbPb.C:797
 ConfigJpsiQA_jpsi_PbPb.C:798
 ConfigJpsiQA_jpsi_PbPb.C:799
 ConfigJpsiQA_jpsi_PbPb.C:800
 ConfigJpsiQA_jpsi_PbPb.C:801
 ConfigJpsiQA_jpsi_PbPb.C:802
 ConfigJpsiQA_jpsi_PbPb.C:803
 ConfigJpsiQA_jpsi_PbPb.C:804
 ConfigJpsiQA_jpsi_PbPb.C:805
 ConfigJpsiQA_jpsi_PbPb.C:806
 ConfigJpsiQA_jpsi_PbPb.C:807
 ConfigJpsiQA_jpsi_PbPb.C:808
 ConfigJpsiQA_jpsi_PbPb.C:809
 ConfigJpsiQA_jpsi_PbPb.C:810
 ConfigJpsiQA_jpsi_PbPb.C:811
 ConfigJpsiQA_jpsi_PbPb.C:812
 ConfigJpsiQA_jpsi_PbPb.C:813
 ConfigJpsiQA_jpsi_PbPb.C:814
 ConfigJpsiQA_jpsi_PbPb.C:815
 ConfigJpsiQA_jpsi_PbPb.C:816
 ConfigJpsiQA_jpsi_PbPb.C:817
 ConfigJpsiQA_jpsi_PbPb.C:818
 ConfigJpsiQA_jpsi_PbPb.C:819
 ConfigJpsiQA_jpsi_PbPb.C:820
 ConfigJpsiQA_jpsi_PbPb.C:821
 ConfigJpsiQA_jpsi_PbPb.C:822
 ConfigJpsiQA_jpsi_PbPb.C:823
 ConfigJpsiQA_jpsi_PbPb.C:824
 ConfigJpsiQA_jpsi_PbPb.C:825
 ConfigJpsiQA_jpsi_PbPb.C:826
 ConfigJpsiQA_jpsi_PbPb.C:827
 ConfigJpsiQA_jpsi_PbPb.C:828
 ConfigJpsiQA_jpsi_PbPb.C:829
 ConfigJpsiQA_jpsi_PbPb.C:830
 ConfigJpsiQA_jpsi_PbPb.C:831
 ConfigJpsiQA_jpsi_PbPb.C:832
 ConfigJpsiQA_jpsi_PbPb.C:833
 ConfigJpsiQA_jpsi_PbPb.C:834
 ConfigJpsiQA_jpsi_PbPb.C:835
 ConfigJpsiQA_jpsi_PbPb.C:836
 ConfigJpsiQA_jpsi_PbPb.C:837
 ConfigJpsiQA_jpsi_PbPb.C:838
 ConfigJpsiQA_jpsi_PbPb.C:839
 ConfigJpsiQA_jpsi_PbPb.C:840
 ConfigJpsiQA_jpsi_PbPb.C:841
 ConfigJpsiQA_jpsi_PbPb.C:842
 ConfigJpsiQA_jpsi_PbPb.C:843
 ConfigJpsiQA_jpsi_PbPb.C:844
 ConfigJpsiQA_jpsi_PbPb.C:845
 ConfigJpsiQA_jpsi_PbPb.C:846