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

TString names=("noPairing;TPCTOFCentnoRej;TPCTOFSemiCentnoRej;TPCTOFPerinoRej;TPCTOFCent;TPCTOFSemiCent;TPCTOFPeri;TPCTOFCentnoRejTight;TPCTOFCentTight;TPCTOFCentPhiV;TPCTOFSemiCentPhiV;TPCTOFPeriPhiV;TPCTOFCentOA;TPCTOFSemiCentOA;TPCTOFPeriOA");
TObjArray *arrNames=names.Tokenize(";");
const Int_t nDie=arrNames->GetEntries();

Bool_t MCenabled=kFALSE;


AliDielectron* ConfigLMEEPbPb2011(Int_t cutDefinition, Bool_t withMC=kFALSE, Bool_t CFenable=kFALSE)
{

  Int_t selectedPID=-1;
  Int_t selectedCentrality=-1;
  Bool_t rejectionStep=kFALSE;
  LMEECutLib*  LMCL = new LMEECutLib();

  //
  // Setup the instance of AliDielectron
  //

  MCenabled=withMC;
  // create the actual framework object

  TString name=Form("%02d",cutDefinition);
  if ((cutDefinition)<arrNames->GetEntriesFast()){
	name=arrNames->At((cutDefinition))->GetName();
  }

  //thisCut only relevant for MC:
  AliDielectron *die =
	new AliDielectron(Form
		("%s",name.Data()),
		Form("Track cuts: %s",name.Data()));


  if (MCenabled)
	  die->SetHasMC(kTRUE);


  //Setup AnalysisSelection:
  if (cutDefinition==0) {
	//not yet implemented
  }
  else if (cutDefinition==1) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==2) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011SemiCentral;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==3) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Peripheral;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==4) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kTRUE;
  }
  else if (cutDefinition==5) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011SemiCentral;
	rejectionStep = kTRUE;
  }
  else if (cutDefinition==6) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Peripheral;
	rejectionStep = kTRUE;
  }

//Legacy cuts, check consistence w/ 1 & 4, then remove
  else if (cutDefinition==7) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOF;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==8) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOF;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kTRUE;
  }

  else if (cutDefinition==9) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==10) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011SemiCentral;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==11) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Peripheral;
	rejectionStep = kFALSE;
  }
//OA:
  else if (cutDefinition==12) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Central;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==13) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011SemiCentral;
	rejectionStep = kFALSE;
  }
  else if (cutDefinition==14) {
	selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
	selectedCentrality = LMEECutLib::kPbPb2011Peripheral;
	rejectionStep = kFALSE;
  }

  else Semi{
	cout << " =============================== " << endl;
	cout << " ==== INVALID CONFIGURATION ==== " << endl;
	cout << " =============================== " << endl;
  }


  //Now configure task

  //Apply correct Pre-Filter Scheme, if necessary
  die->SetPreFilterAllSigns();

	if (rejectionStep) {
		//for Pb-Pb, only use tight PID (combinatorics) for rejection
		die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) );
		//die->GetTrackFilter().AddCuts(LMCL->GetPIDCutsPre(selectedPID) );
		die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) );
		die->GetPairPreFilter().AddCuts(LMCL->GetPairCuts(selectedPID) );
	}
	else { //No Prefilter, no Pairfilter
		die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) );
		if ((cutDefinition >=9) &&  (cutDefinition <=11)) {
		die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kFALSE));
		}
		if ((cutDefinition >=12) &&  (cutDefinition <=14)) {
		die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kTRUE));
		}
	}
	//Introduce NULL-check for pp?
	die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality));




  AliDielectronTrackRotator *rot= 0x0;
  /*AliDielectronTrackRotator *rot= LMCL->GetTrackRotator(selectedPID);
  die->SetTrackRotator(rot);
   */
  AliDielectronMixingHandler *mix=LMCL->GetMixingHandler(selectedPID);
  die->SetMixingHandler(mix);

  // histogram setup
  // only if an AliDielectronHistos object is attached to the
  // dielectron framework histograms will be filled
  //
  InitHistograms(die,cutDefinition);

  // the last definition uses no cuts and only the QA histograms should be filled!
  if (CFenable) {
	  InitCF(die,cutDefinition);
  }
  return die;
}

//______________________________________________________________________________________

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

  //Setup histogram Manager
  AliDielectronHistos *histos=
	new AliDielectronHistos(die->GetName(),
		die->GetTitle());
  //Initialise histogram classes
  histos->SetReservedWords("Track;Pair;Pre;RejTrack;RejPair");

  //Event class
//  if (cutDefinition==nDie-1) 
  histos->AddClass("Event");

  //Track classes
  //to fill also track info from 2nd event loop until 2
  for (Int_t i=0; i<2; ++i){
	histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
  }

  //Pair classes
  // to fill also mixed event histograms loop until 10
  for (Int_t i=0; i<3; ++i){
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
  }

  //ME and track rot
  if (die->GetMixingHandler()) {
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3)));
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7)));
  }
  if (die->GetTrackRotator()) {
	histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));
  }

  //PreFilter Classes
  //to fill also track info from 2nd event loop until 2
  for (Int_t i=0; i<2; ++i){
	histos->AddClass(Form("Pre_%s",AliDielectron::TrackClassName(i)));
  }


  //Create Classes for Rejected Tracks/Pairs:
  for (Int_t i=0; i<2; ++i){
	histos->AddClass(Form("RejTrack_%s",AliDielectron::TrackClassName(i)));
  }
  for (Int_t i=0; i<3; ++i){
	histos->AddClass(Form("RejPair_%s",AliDielectron::PairClassName(i)));
  }

  /*
  //track rotation

  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot)));
  histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot)));
  */
	//add histograms to event class
	histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",
		1,0.,1.,AliDielectronVarManager::kNevents);
	histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101",
		AliDielectronVarManager::kCentrality);


  //add histograms to Track classes, also fills RejTrack
  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
  histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC);
  histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff);

  histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
	  400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);

  histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
	  400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);

  histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
	  400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
  histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
	  400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
  histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
	  400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);

  histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks",
	  400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE);
  histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks",
	  400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE);

  histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
	  400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
  histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
	  400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);

  histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
	  200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);

  histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);

  histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);

  histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr);

  histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt);

  //add histograms to Pair classes, also fills RejPair
  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
	  500,0.0,5.00,AliDielectronVarManager::kM);
  histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
	  100,-2.,2.,AliDielectronVarManager::kY);
  histos->UserHistogram("Pair","DeltaEta","DeltaEta;DeltaEta",
	  100,0.,3.15,AliDielectronVarManager::kDeltaEta);
  histos->UserHistogram("Pair","DeltaPhi","DeltaPhi;DeltaPhi",
	  100,0.,3.15,AliDielectronVarManager::kDeltaPhi);
  histos->UserHistogram("Pair","PhivPair","PhivPair;angle",
	  100,0.,3.15,AliDielectronVarManager::kPhivPair);
  histos->UserHistogram("Pair","PsiPair","PsiPair;angle",
	  100,0.,3.15,AliDielectronVarManager::kPsiPair);
  histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
	  100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
  //2D Histo Plot
  histos->UserHistogram("Pair","InvMassPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
	  500,0.0,5.0,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);


  histos->UserHistogram("Pair","MPhivPair","PhivPair vs M;M ;PhiV",
	  500,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);

  histos->UserHistogram("Pair","PsiPairPhivPair","PhivPair vs PsiPair;PsiPair ;#pairs",
	  200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPsiPair,AliDielectronVarManager::kPhivPair);
 
  histos->UserHistogram("Pair","PhivPairOpeningAngle","Opening Angle vs PhivPair;PhivPair [GeV];#pairs",
	  200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPhivPair,AliDielectronVarManager::kOpeningAngle);

  histos->UserHistogram("Pair","PsiPairOpeningAngle","Opening Angle vs PsiPair;PsiPair [GeV];#pairs",
	  200,0.0,6.3,200,0.,6.3,AliDielectronVarManager::kPsiPair,AliDielectronVarManager::kOpeningAngle);
 
  histos->UserHistogram("Pair","InvMassOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
	  500,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);

  //add histograms to Track classes
  histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);

  histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
	  400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);

  histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
	  400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);

  histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
	  200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);

  histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);

  histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv);
  histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv);
  histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv);

//  histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);


  die->SetHistogramManager(histos);
}


void InitCF(AliDielectron* die, Int_t cutDefinition)
{
  //
  // Setupd the CF Manager if needed
  //
  AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());

  //pair variables
  cf->AddVariable(AliDielectronVarManager::kP,200,0,20);
  cf->AddVariable(AliDielectronVarManager::kPt,200,0,20);
  cf->AddVariable(AliDielectronVarManager::kM,201,-0.01,4.01); //20Mev Steps
  cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.);
  cf->AddVariable(AliDielectronVarManager::kDeltaEta,200,-2.,2.);
  cf->AddVariable(AliDielectronVarManager::kDeltaPhi,100,0.,3.2);
  cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);

  cf->AddVariable(AliDielectronVarManager::kCentrality,"0.,10.0,30.0,40.0,60.,80.,100.");
  cf->AddVariable(AliDielectronVarManager::kOpeningAngle,320,0.,3.2);
  cf->AddVariable(AliDielectronVarManager::kPsiPair,320,0.,3.2);
  //leg variables
  cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kPt,200,0.,20.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kY,100,-2.,2.,kTRUE);
  //only in this case write MC truth info
  if (MCenabled) {
	cf->SetStepForMCtruth();
	cf->SetStepsForMCtruthOnly();
	cf->AddVariable(AliDielectronVarManager::kHaveSameMother,5,-2,2);
	cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
	cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
  }

//Added after train commit
  cf->SetStepsForEachCut();
  cf->SetStepForAfterAllCuts();


  cf->SetStepsForSignal();
  die->SetCFManagerPair(cf);

/*
 AliDielectronSignalMC* lowMassDiele=new
    AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs");
  lowMassDiele->SetLegPDGs(11,-11);
  lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE);
  lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary,
      AliDielectronSignalMC::kPrimary);
  lowMassDiele->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(lowMassDiele);

  AliDielectronSignalMC* secondary=new
    AliDielectronSignalMC("secondary","secondary electrons pairs");
  secondary->SetLegPDGs(11,-11);
  secondary->SetCheckBothChargesLegs(kTRUE,kTRUE);
  secondary->SetLegSources(AliDielectronSignalMC::kSecondary,
      AliDielectronSignalMC::kSecondary);
  die->AddSignalMC(secondary);


  AliDielectronSignalMC* finalState=new
    AliDielectronSignalMC("finalState","finalState electrons pairs");
  finalState->SetLegPDGs(11,-11);
  finalState->SetCheckBothChargesLegs(kTRUE,kTRUE);
  finalState->SetLegSources(AliDielectronSignalMC::kFinalState,
      AliDielectronSignalMC::kFinalState);
  die->AddSignalMC(finalState);
*/

  AliDielectronSignalMC* eleFromConversions=new
	AliDielectronSignalMC("eleFromConversions","conversion electrons");
  eleFromConversions->SetLegPDGs(11,-11);
  eleFromConversions->SetCheckBothChargesLegs(kTRUE,kTRUE);
  eleFromConversions->SetLegSources(AliDielectronSignalMC::kSecondary,
	  AliDielectronSignalMC::kSecondary);
  eleFromConversions->SetMotherPDGs(22,22);    // 22- photon
  die->AddSignalMC(eleFromConversions);


  AliDielectronSignalMC* dalitzDecays=new
	AliDielectronSignalMC("dalitzDecays","dalitz Pairs");
  dalitzDecays->SetLegPDGs(11,-11);
  dalitzDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
  dalitzDecays->SetLegSources(AliDielectronSignalMC::kSecondary,
	  AliDielectronSignalMC::kSecondary);
  dalitzDecays->SetMotherPDGs(111,111);
  dalitzDecays->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(dalitzDecays);


  AliDielectronSignalMC* PhiDecays=new
        AliDielectronSignalMC("PhiDecays","Phi Pairs");
  PhiDecays->SetLegPDGs(11,-11);
  PhiDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
  PhiDecays->SetLegSources(AliDielectronSignalMC::kFinalState,
                AliDielectronSignalMC::kFinalState);
  PhiDecays->SetMotherPDGs(333,333);
  PhiDecays->SetMothersRelation(AliDielectronSignalMC::kSame);
  PhiDecays->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(PhiDecays);

  AliDielectronSignalMC* OmegaDecays=new
        AliDielectronSignalMC("OmegaDecays","Omega Pairs");
  OmegaDecays->SetLegPDGs(11,-11);
  OmegaDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
  OmegaDecays->SetLegSources(AliDielectronSignalMC::kFinalState,
                AliDielectronSignalMC::kFinalState);
  OmegaDecays->SetMotherPDGs(223,223);
  OmegaDecays->SetMothersRelation(AliDielectronSignalMC::kSame);
  OmegaDecays->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(OmegaDecays);

							 

}

//--------------------------------------
void EnableMC() {
  MCenabled=kTRUE;
}

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