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

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

void ConfigEvtPlane(AliDielectron *die,  Int_t cutDefinition);
void ConfigBgrd(    AliDielectron *die,  Int_t cutDefinition);

TString names=("NoBins;Zvtx;ZvtxNoKF;ZvtxCent;ZvtxNcontr;ZvtxNcontrPE;ZvtxNcontrPEepTPC;ZvtxNcontrPEepTPCmag;ZvtxepTPC");
enum { kNoBins=0, kZvtx, kZvtxNoKF, kZvtxCent, kZvtxNcontr, kZvtxNcontrPE, kZvtxNcontrPEepTPC, kZvtxNcontrPEepTPCmag, kZvtxepTPC};

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

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

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

  // gsi train?
  TString trainRoot = gSystem->Getenv("TRAIN_ROOT");
  Bool_t isGSItrain = (trainRoot.IsNull()?kFALSE:kTRUE); 

  // 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 kQA:        return 0x0;
    }
  } else { // COLLISION DATA
    switch(cutDefinition) {
      //    case kNoBins:               return 0x0;
      //    case kZvtx:                 return 0x0;
    case kZvtxNoKF:             return 0x0;
      //    case kZvtxCent:             return 0x0;
      //    case kZvtxNcontr:           return 0x0;
    case kZvtxNcontrPE:         return 0x0;
    case kZvtxNcontrPEepTPC:    return 0x0;
    case kZvtxNcontrPEepTPCmag: return 0x0;
      //    case kZvtxepTPC:            return 0x0;
      //    case kQA:  return 0x0;
      //    case kGammas:  return 0x0;
    }
  }


  // task name
  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("ME config: %s",name.Data()));
  die->SetHasMC(hasMC);

  // cut setup
  SetupEventCuts(die,triggers,cutDefinition);
  SetupTrackCuts(die,cutDefinition);
  SetupPairCuts(die,cutDefinition);

  // bgrd estimators
  ConfigBgrd(die,cutDefinition);

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

  // prefilter settings
  die->SetPreFilterUnlikeOnly();
  //die->SetPreFilterAllSigns();
  //die->SetNoPairing();

  // KF usgae
  if(cutDefinition==kZvtxNoKF) die->SetUseKF(kFALSE);

  // histogram setup
  InitHistograms(die,cutDefinition);
  printf(" Add %d class types to the histo manager \n",die->GetHistogramList()->GetEntries());

  // HF array setup
  InitHF(die,cutDefinition);


  return die;
}

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

  // trigger specific centrality cuts (reject trigger inefficiencies)
  Double_t minCent=0.0, maxCent=100.;
  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;
    }
  }

  // VZERO multiplicity vs. number ob global tracks cut
  TF1 *fMean  = new TF1("fMean", "pol1",               0,25e+3);
  fMean->SetParameters(691.633, 1.4892);
  TF1 *fSigma = new TF1("fSigma","[0]+sqrt([1]*x+[2])",0,25e+3);
  fSigma->SetParameters(-83.6599, 36.7677, 69530.7);

  // number of vertex contributors TPC vs. global cut
  TF1* vtxContribUp = new TF1("vtxContribUp","pol1",0.,20000.);
  vtxContribUp->SetParameters(0.,1.38);      //  --> strong cut, removes about 40% of events
  TF1* vtxContribLow= new TF1("vtxContribLow","pol1",0.,20000.);
  vtxContribLow->SetParameters(-100.,1.2);

  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);
  
  // apply pile-up event (PE) rejection
  switch(cutDefinition) {
  case kZvtxNcontrPE:
  case kZvtxNcontrPEepTPC:
  case kZvtxNcontrPEepTPCmag:
    eventCuts->SetCutOnV0MultipicityNTrks(fMean, fSigma, 4.0);
    //    eventCuts->SetCutOnNVtxContributorsGloablTPC(vtxContribLow, vtxContribUp);
  }
  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);

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

  //Pt cut, should make execution a bit faster
  AliDielectronVarCuts *pt = new AliDielectronVarCuts("PtCut","PtCut");
  pt->AddCut(AliDielectronVarManager::kPt,0.85,1e30);    //0.8
  cuts->AddCut(pt);

  // track cuts ESD and AOD
  AliDielectronVarCuts *varCuts = new AliDielectronVarCuts("VarCuts","VarCuts");
  varCuts->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
  varCuts->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
  varCuts->AddCut(AliDielectronVarManager::kEta,         -0.9,   0.9); // -0.9, 0.9
  varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
  varCuts->AddCut(AliDielectronVarManager::kNclsTPC,     70.0, 160.0);
  varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,   0.0);
  varCuts->AddCut(AliDielectronVarManager::kTOFbeta,      0.2,   0.9, kTRUE);
  cuts->AddCut(varCuts);
  varCuts->Print();

  AliDielectronTrackCuts *trkCuts = new AliDielectronTrackCuts("TrkCuts","TrkCuts");
  trkCuts->SetITSclusterCut(AliDielectronTrackCuts::kOneOf, 3); // ITS-4 = 1+2+4+8
  trkCuts->SetRequireITSRefit(kTRUE);
  trkCuts->SetRequireTPCRefit(kTRUE);
  cuts->AddCut(trkCuts);

  /* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv PID CUTS vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
  AliDielectronPID *pid = new AliDielectronPID("PID","PID");
  pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.0,0.,0.,kTRUE);
  pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-100.,3.5,0.,0.,kTRUE);
  pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-4.,4.);
  pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3,3.,0.,0.,kFALSE,AliDielectronPID::kIfAvailable);
  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);

}

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

  // conversion rejection
  Double_t gCut = 0.05;
  AliDielectronVarCuts *gammaCuts = new AliDielectronVarCuts("GammaCuts","GammaCuts");
//  gammaCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0,   0.1,  kTRUE);
//  gammaCuts->AddCut(AliDielectronVarManager::kLegDist,      0.0,   0.25, kTRUE);
//  gammaCuts->AddCut(AliDielectronVarManager::kR,            3.0,   90.0, kTRUE);
//  gammaCuts->AddCut(AliDielectronVarManager::kPsiPair,      0.0,   0.05, kTRUE);
//  gammaCuts->AddCut(AliDielectronVarManager::kChi2NDF,      0.0,   10.0, kTRUE);
  gammaCuts->AddCut(AliDielectronVarManager::kM,            0.0,   gCut);
  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);

}

//______________________________________________________________________________________
void ConfigBgrd(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Configurate the background estimators
  //

  // add mixed events
  AliDielectronMixingHandler *mix=new AliDielectronMixingHandler;

  // mixing handler
  switch(cutDefinition) {
  case kNoBins: /* */ break;
  case kZvtx:
  case kZvtxNoKF:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    break;
  case kZvtxCent:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    mix->AddVariable(AliDielectronVarManager::kCentrality,  8,  0.,80.);
    break;
  case kZvtxNcontrPEepTPCmag:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    mix->AddVariable(AliDielectronVarManager::kNVtxContrib, 32, 0.,3200.);
    mix->AddVariable(AliDielectronVarManager::kTPCrpH2,     8,  TMath::Pi()/-2., TMath::Pi()/2.);
    mix->AddVariable(AliDielectronVarManager::kTPCmagH2,    "0.,20.,50.,80.,110.,150.,500.");
    break;
  case kZvtxNcontrPEepTPC:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    mix->AddVariable(AliDielectronVarManager::kNVtxContrib, 32, 0.,3200.);
    mix->AddVariable(AliDielectronVarManager::kTPCrpH2,     8,  TMath::Pi()/-2., TMath::Pi()/2.);
    break;
  case kZvtxNcontrPE:
  case kZvtxNcontr:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    mix->AddVariable(AliDielectronVarManager::kNVtxContrib, 32, 0.,3200.);
    break;
  case kZvtxepTPC:
    mix->AddVariable(AliDielectronVarManager::kZvPrim, "-10.,-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,10.");
    mix->AddVariable(AliDielectronVarManager::kTPCrpH2,     8,  TMath::Pi()/-2., TMath::Pi()/2.);
    mix->AddVariable(AliDielectronVarManager::kTPCmagH2,    "0.,20.,50.,80.,110.,150.,500.");
    break;
  }
  mix->SetMixType(AliDielectronMixingHandler::kOSonly);
  mix->SetDepth(150);
  mix->Print();

  die->SetMixingHandler(mix);
}

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

  if(cutDefinition!=kZvtxNcontrPEepTPC && cutDefinition!=kZvtxNcontrPEepTPCmag && cutDefinition!=kZvtxepTPC ) return;

  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
  //

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

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


  switch(cutDefinition) {
  case kNoBins: /* */ break;
  case kZvtxCent:
    histos->UserHistogram("Event","","", 200,-10.,   10.,    AliDielectronVarManager::kZvPrim);
    histos->UserHistogram("Event","","", 100,  0.0, 100.0,   AliDielectronVarManager::kCentrality);
    break;
  case kZvtxNcontrPEepTPCmag:
    histos->UserHistogram("Event","","", 250,  0.,  500.,    AliDielectronVarManager::kTPCmagH2);
  case kZvtxNcontrPEepTPC:
    histos->UserHistogram("Event","","", 16, TMath::Pi()/-2., TMath::Pi()/2.,    AliDielectronVarManager::kTPCrpH2);
  case kZvtxNcontrPE:
  case kZvtxNcontr:
    histos->UserHistogram("Event","","", 200,  0., 4000.,    AliDielectronVarManager::kNVtxContrib);
  case kZvtx:
  case kZvtxNoKF:
    histos->UserHistogram("Event","","", 200,-10.,   10.,    AliDielectronVarManager::kZvPrim);
    break;
  case kZvtxepTPC:
    histos->UserHistogram("Event","","", 200,-10.,   10.,    AliDielectronVarManager::kZvPrim);
    histos->UserHistogram("Event","","", 250,  0.,  500.,    AliDielectronVarManager::kTPCmagH2);
    histos->UserHistogram("Event","","", 16, TMath::Pi()/-2., TMath::Pi()/2.,    AliDielectronVarManager::kTPCrpH2);
    break;
  }

  //Initialise histogram classes
  histos->SetReservedWords("Pair");
  //Pair classes inclusive mixed events
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(0)));
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(1)));
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(2)));
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));

  ///// add histograms to Pair classes /////
  histos->UserHistogram("Pair","","",  300,.0,300*0.04, 80,0.,80.,
			AliDielectronVarManager::kM, AliDielectronVarManager::kCentrality); // 40MeV bins, 12GeV/c2
  histos->UserHistogram("Pair","","",  300,.0,300*0.04, 20,0.,20.,
			AliDielectronVarManager::kM, AliDielectronVarManager::kPt); // 40MeV bins, 12GeV/c2

  histos->UserHistogram("Pair","","",  100,-1.,1.,      AliDielectronVarManager::kY);
  histos->UserHistogram("Pair","","",  400,0,20.,       AliDielectronVarManager::kPt);
  histos->UserHistogram("Pair","","",  125,0,0.04*125,  AliDielectronVarManager::kM);

  Int_t maxMixBins = die->GetMixingHandler()->GetNumberOfBins();
  TObjArray *limits  = new TObjArray();
  limits->Add(AliDielectronHelper::MakeLinBinning(125,         0.,          5.));
  limits->Add(AliDielectronHelper::MakeLinBinning( 32,         0.,         80.));
  limits->Add(AliDielectronHelper::MakeLinBinning( 20,         0.,         20.));
  limits->Add(AliDielectronHelper::MakeLinBinning(maxMixBins,  0.,  maxMixBins));

  UInt_t vars[4]={AliDielectronVarManager::kM,
		  AliDielectronVarManager::kCentrality,
		  AliDielectronVarManager::kPt,
		  AliDielectronVarManager::kMixingBin      };
  histos->UserSparse("Pair", 4, limits, vars);



  //legs from pair (fill SE)
  //  for (Int_t i=0; i<3; ++i){
  //  histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i)));
  // }
  //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)));
  //}


  die->SetHistogramManager(histos);
}
void InitHF(AliDielectron* die, Int_t cutDefinition)
{
  //
  // Setup the HF arrays
  //


  AliDielectronHF *hf=new AliDielectronHF(die->GetName(),die->GetTitle());
  //  if(hasMC) hf->SetStepForMCGenerated();
  hf->SetPairTypes(AliDielectronHF::kAll);
  hf->SetVariable(AliDielectronVarManager::kM, 125, 0.0, 0.04*125);
  hf->AddCutVariable(AliDielectronVarManager::kCentrality, "0.,80.");
  die->SetHistogramArray(hf);
}

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