ROOT logo

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

void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);

AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
AliDielectronPID *SetPIDcuts(Int_t cutDefinition);

void AddMCsignal(AliDielectron *die);

void SetEtaCorrection();

TString names= ("CorrBkg");

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


       Bool_t kMix = 1;
       Bool_t kRot = 0;
       Bool_t kEff = 0;

AliDielectron* Config_mkoehler_lowmassMC(Int_t cutDefinition=1, Bool_t isAOD = kFALSE, Bool_t hasMC=kTRUE)
{
  //
  // Setup the instance of AliDielectron
  //
  
  // create the actual framework object
  TString name=Form("%02d",cutDefinition);
  if (cutDefinition<arrNames->GetEntriesFast()){
    name=arrNames->At(cutDefinition)->GetName();
  }
  AliDielectron *die =
    new AliDielectron(Form("%s",name.Data()),
                      Form("Track cuts: %s",name.Data()));
  
  die->SetHasMC(hasMC);



  if(kRot){
    AliDielectronTrackRotator *rot = new AliDielectronTrackRotator;
    rot->SetConeAnglePhi(TMath::Pi());
    rot->SetIterations(10);
    die->SetTrackRotator(rot);
  }//kRot
  
  
  if(kMix){
    AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;
    mix->SetMixType(AliDielectronMixingHandler::kAll);
    mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");
    mix->SetDepth(10);
    die->SetMixingHandler(mix);
  }//kMix
  
  // cut setup
  SetupTrackCuts(die,cutDefinition);
  
  
  
  //
  // histogram setup
  // only if an AliDielectronHistos object is attached to the
  // dielectron framework histograms will be filled
  //
  
  
  InitHistograms(die,cutDefinition);
  InitCF(die,cutDefinition);
  
  // eta correction
  //  SetEtaCorrection();
  
  
  return die;

}

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



  //
	//options
        die->SetPreFilterAllSigns();

	//pairing with TLorentzVector
	die->SetUseKF(kFALSE);

	//track cuts
        die->GetTrackFilter().AddCuts(SetupESDtrackCuts(cutDefinition));
	
        AddMCsignal(die);
      
	if(cutDefinition >= 0){
  
	    AliDielectronVarCuts *mcpid =new AliDielectronVarCuts("mcpid","mcpid");
	    mcpid->SetCutType(AliDielectronVarCuts::kAny);
	    mcpid->AddCut(AliDielectronVarManager::kPdgCode, 11);
	    mcpid->AddCut(AliDielectronVarManager::kPdgCode, -11);
	    die->GetTrackFilter().AddCuts(mcpid);
	    
	    //	    AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");
	    //	    noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
	    //	    die->GetTrackFilter().AddCuts(noconv);
	    
	    AliDielectronVarCuts *MCnoConv =new AliDielectronVarCuts("MCnoConv","MCnoConv");
	    MCnoConv->AddCut(AliDielectronVarManager::kPdgCodeMother, 22,kTRUE);
	    die->GetTrackFilter().AddCuts(MCnoConv);
	    
	    //pair rapidity
	    //	    AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut");
	    //	    RapidityCut->AddCut(AliDielectronVarManager::kY, -0.8 , 0.8);
	    //	    die->GetPairFilter().AddCuts(RapidityCut); 
	    
	    
	}//Base

        //pid cuts
	die->GetTrackFilter().AddCuts(SetPIDcuts(cutDefinition));



}

//-----------------------------------pid------------------------------------------------

AliDielectronPID *SetPIDcuts(Int_t cutDefinition){

 
    //take MC ID
    AliDielectronPID *pid = new AliDielectronPID();

    pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
  //TOF
    pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 5., kFALSE);
    //    return pid;// no data PID ->  only MC PID
  
}

//______________________________________________________________________________________
AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
{
  //
  // Setup default AliESDtrackCuts
  //
  AliESDtrackCuts *fesdTrackCuts = new AliESDtrackCuts;

  //global
  fesdTrackCuts->SetPtRange( 0.2 , 100. );//<-----------------pT cut
  fesdTrackCuts->SetAcceptKinkDaughters(kFALSE);
  fesdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  fesdTrackCuts->SetDCAToVertex2D(kFALSE);
  fesdTrackCuts->SetMaxDCAToVertexZ(3.);
  fesdTrackCuts->SetMaxDCAToVertexXY(1.);
  fesdTrackCuts->SetEtaRange( -0.8 , 0.8 );
  //ITS
  fesdTrackCuts->SetRequireITSRefit(kTRUE);
  fesdTrackCuts->SetMinNClustersITS(3); 
  fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
  
  //TPC
  fesdTrackCuts->SetRequireTPCRefit(kTRUE);
  //  fesdTrackCuts->SetMinNClustersTPC(80);
  fesdTrackCuts->SetMinNCrossedRowsTPC(100);
  fesdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);
  fesdTrackCuts->SetMaxChi2PerClusterTPC(4);

  //  if(cutDefinition == 1)fesdTrackCuts->SetMaxFractionSharedTPCClusters(0.01);

  return fesdTrackCuts;

}

//______________________________________________________________________________________
void InitHistograms(AliDielectron *die, Int_t cutDefinition)
{
  //
  // Initialise the histograms
  //
  
  //Setup histogram classes
  AliDielectronHistos *histos=
    new AliDielectronHistos(die->GetName(),
                            die->GetTitle());
  


  //Initialise histogram classes
  histos->SetReservedWords("Track;Pair");
  
  //Event class
  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)));
  }



  if(kMix){
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-
  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --
  }

  if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot



  //  histos->UserHistogram("Track","Label","Label;Label;#tracks",1000,0.,100000.,AliDielectronVarManager::kLabel);

  //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","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);
  histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);
  histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);
  histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);


  //add histograms to Track classes
  histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);
  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);
  histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);
  histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);
  histos->UserHistogram("Track","ImpParXY","ImpParXY; 肯pParXY ;#tracks",500,-5.,5.,AliDielectronVarManager::kImpactParXY);
  histos->UserHistogram("Track","ImpParZ","ImpParZ; ヘmpParZ ;#tracks",500,-5.,5.,AliDielectronVarManager::kImpactParZ);

  histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
  histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);



  //track checks (ITS)
  histos->UserHistogram("Track","ITSchi2Cl_Mom","ITS Chi2 vs Momentum;Mom;ITS chi2",500,0.,5.,50,0.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSchi2Cl);
  histos->UserHistogram("Track","NclsITS_Mom",";Mom;kNclsITS",500,0.,5.,7,0,7,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsITS);

  //track checks (TPC)
  histos->UserHistogram("Track","TPCsignalNfrac_Mom",";fraction TPCSignalN/TPCncls vs Momentum;Mom;TPCSignalN/TPCncls",500,0.,5.,60,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignalNfrac);
  histos->UserHistogram("Track","TPCchi2Cl_Mom","TPC Chi2 vs Momentum;Mom;TPC Chi2",500,0.,10.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);
  histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,10.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);
  histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);
  histos->UserHistogram("Track","TPCcls_Mom","kNclsTPC vs Momentum;Mom;kNclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTPC);
  histos->UserHistogram("Track","kNclsSFracTPC_Mom","kNclsSFracTPC vs Momentum;Mom;kTPCclsSFrac",500,0.,10.,60,0.,0.12,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsSFracTPC);
  histos->UserHistogram("Track","kNFclsTPCrFrac_Mom","kNFclsTPCrFrac vs Momentum;Mom;kNFclsTPCrFrac",500,0.,10.,60,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPCrFrac);

  //track checks (TOF)
  histos->UserHistogram("Track","TOFbeta_Mom","kTOFbeta vs Momentum;Mom;TOFbeta",500,0.,5.,120,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta);
  histos->UserHistogram("Track","TOFPIDBit_Mom","kTOFPIDBit vs Momentum;Mom;TOFPIDbit",500,0.,5.,2,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFPIDBit);

 //pid checks
  histos->UserHistogram("Track","ITSnSigma_MomPio","ITS number of sigmas Pion vs Momentum;Mom;ITSsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaPio);
  histos->UserHistogram("Track","TPCnSigma_MomPio","TPC number of sigmas Pions vs Momentum;Mom;TPCsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio);

  histos->UserHistogram("Track","ITSnSigma_MomEle","ITS number of sigmas Electrons vs Momentum;Mom;ITSsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaEle);
  histos->UserHistogram("Track","TPCnSigma_MomEle","TPC number of sigmas Electrons vs Momentum;Mom;TPCsigmaEle",1000,0.,10.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle);
  histos->UserHistogram("Track","TOFnSigma_MomEle","TOF number of sigmas Electrons vs Momentum;Mom;TOFsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle);

  histos->UserHistogram("Track","ITSdEdx_P","dEdx;P [GeV];ITS signal (arb units) vs Momentum;Mom;ITSsignal", 500,0,5,800,0,200,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal);
  histos->UserHistogram("Track","TPCdEdx_P","dEdx;P [GeV];TPC signal (arb units) vs Momentum;Mom;TPCsignal", 500,0,10.,800,0,200,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal);



  //
  //add histograms to Pair classes
  //

  histos->UserHistogram("Pair","Y",";Rapidity;#pairs",
                        120,-1.2,1.2,AliDielectronVarManager::kY);
			
  histos->UserHistogram("Pair","Eta",";PseudoRapidity;#pairs",
                        120,-1.2,1.2,AliDielectronVarManager::kEta);
			
  histos->UserHistogram("Pair","Phi",";PseudoRapidity;#pairs",
                        320,0,3.2,AliDielectronVarManager::kPhi);
			
  histos->UserHistogram("Pair","Eta_Phi",";PseudoRapidity;Phi",
                        120,-1.2,1.2,320,0,3.2,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
			
			
  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
                        500,0,4,AliDielectronVarManager::kM);


  histos->UserHistogram("Pair","InvMassBin2000","Inv.Mass;Inv. Mass [GeV];#pairs",
                        2000,0.,10.,AliDielectronVarManager::kM);

   histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",
        "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
        0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
         0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
        2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
        3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);

  histos->UserHistogram("Pair",
                        "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",
                        500, 0. , 4., 320 , 0., 3.2 ,
                         AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );
			 
  histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",
                        320,0.,6.4,AliDielectronVarManager::kPhivPair);


   histos->UserHistogram("Pair","PhiV_Pt",";Pt;PhiV",
			 100,0.,10.,320,0.,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kPhivPair);
			 
			 
  histos->UserHistogram("Pair",
                        "InvMass_Pt","InvMass_Pt;InvMass;Pt",
                        500, 0. , 4., 100 , 0., 5. ,
                         AliDielectronVarManager::kM , AliDielectronVarManager::kPt );

  histos->UserHistogram("Pair",
                        "OpAngle","Opening angle;Opening angle;#pairs",
                        320, 0. , 3.2, 
                         AliDielectronVarManager::kOpeningAngle);

  histos->UserHistogram("Pair",
                        "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",
                        320, 0. , 3.2, 500 , 0. , 4. ,
                         AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);



  histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",
                        160,0.,1.6,AliDielectronVarManager::kDeltaEta);

  histos->UserHistogram("Pair","kDeltaEta_low","kDeltaEta;kDeltaEta;#pairs",
                        500,0.,0.5,AliDielectronVarManager::kDeltaEta);

  histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",
                        320,0.,6.4,AliDielectronVarManager::kDeltaPhi);

  histos->UserHistogram("Pair",
                        "kDeltaEta_kDeltaPhi","kDeltaEta_kDeltaPhi;kDeltaEta;kDeltaPhi",
                        160, 0. , 1.6, 320 , 0., 6.4 ,
                         AliDielectronVarManager::kDeltaEta , AliDielectronVarManager::kDeltaPhi );



  die->SetHistogramManager(histos);
}






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

   
    //pair variables
  //   cf->AddVariable(AliDielectronVarManager::kM, 300,0.,3.);
  cf->AddVariable(AliDielectronVarManager::kM, 500,0.,4.);

  //  cf->AddVariable(AliDielectronVarManager::kSameLabel, 4,-1.,3.);

  /*
   cf->AddVariable(AliDielectronVarManager::kM,"0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
 	0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
	 0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
	2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
	3.3 , 3.5, 3.75 , 4.0");//data
*/
	
//   cf->AddVariable(AliDielectronVarManager::kY,24,-1.2,1.2);
   //   cf->AddVariable(AliDielectronVarManager::kPhi,64, -3.2, 3.2);
      cf->AddVariable(AliDielectronVarManager::kPt,100,0.,5.);
   
   cf->AddVariable(AliDielectronVarManager::kPairType,12,-0.5,11.5);
   //   cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,5,0,5);
   //   cf->AddVariable(AliDielectronVarManager::kPhivPair,640,0.,3.2);
   
   //   cf->AddVariable(AliDielectronVarManager::kLabel,500,0.,500.,kTRUE);
  //leg 
  cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);
  //  cf->AddVariable(AliDielectronVarManager::kPhi,36,0.,360.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kEta,100,-1.,1.,kTRUE);
  /*
  cf->AddVariable(AliDielectronVarManager::kTPCsignal,200,0.,200.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kImpactParXY,40,-2.,2.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kImpactParZ,40,-2.,2.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kNclsITS,10,0.,10.,kTRUE);
  cf->AddVariable(AliDielectronVarManager::kNFclsTPCrFrac,10,0.,1.,kTRUE);
*/


  if (cutDefinition == 0){
    cf->SetStepForMCtruth();
  }
  
//     cf->SetStepsForEachCut();
//     cf->SetStepsForCutsIncreasing();


  die->SetCFManagerPair(cf);
  
}


void AddMCsignal(AliDielectron *die){


  //signal pairs


   AliDielectronSignalMC* CorrPair = new AliDielectronSignalMC("CorrPair","CorrPair");
   CorrPair->SetLegPDGs(11,-11);
   CorrPair->SetMothersRelation(AliDielectronSignalMC::kDifferent);
   CorrPair->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
   //   CorrPair->SetFillPureMCStep(kTRUE); // -> takes ages!!!! + not needed
   CorrPair->SetCheckBothChargesLegs(kTRUE,kTRUE);
   //   die->AddSignalMC(CorrPair);


   AliDielectronSignalMC* pi0 = new AliDielectronSignalMC("pi0","pi0");
   pi0->SetLegPDGs(11,-11);
   pi0->SetMothersRelation(AliDielectronSignalMC::kSame);
   pi0->SetMotherPDGs(111,111);//pi0
   pi0->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
   pi0->SetFillPureMCStep(kTRUE);
   pi0->SetCheckBothChargesLegs(kTRUE,kTRUE);
   die->AddSignalMC(pi0);

   AliDielectronSignalMC* eta = new AliDielectronSignalMC("eta","eta");
   eta->SetLegPDGs(11,-11);
   eta->SetMothersRelation(AliDielectronSignalMC::kSame);
   eta->SetMotherPDGs(221,221);//eta
   eta->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
   eta->SetFillPureMCStep(kTRUE);
   eta->SetCheckBothChargesLegs(kTRUE,kTRUE);
   die->AddSignalMC(eta);

   AliDielectronSignalMC* etaprime = new AliDielectronSignalMC("etaprime","etaprime");
   etaprime->SetMothersRelation(AliDielectronSignalMC::kSame);
   etaprime->SetMotherPDGs(331,331);//etaprime
   etaprime->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
   etaprime->SetFillPureMCStep(kTRUE);
   etaprime->SetCheckBothChargesLegs(kTRUE,kTRUE);
   die->AddSignalMC(etaprime);

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

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


   AliDielectronSignalMC* jpsi = new AliDielectronSignalMC("jpsi","jpsi");
   jpsi->SetLegPDGs(11,-11);
   jpsi->SetMothersRelation(AliDielectronSignalMC::kSame);
   jpsi->SetMotherPDGs(443,443);//jpsi
   jpsi->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
   jpsi->SetFillPureMCStep(kTRUE);
   jpsi->SetCheckBothChargesLegs(kTRUE,kTRUE);
   die->AddSignalMC(jpsi);
   
   
 AliDielectronSignalMC* diEleContinuum = new AliDielectronSignalMC("diEleContinuum","di-electron continuum");     // all di-electrons originating in the collision
  diEleContinuum->SetLegPDGs(11,-11);
  diEleContinuum->SetMotherPDGs(0,0,22,22);
  diEleContinuum->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  diEleContinuum->SetMothersRelation(AliDielectronSignalMC::kSame);
  diEleContinuum->SetCheckBothChargesLegs(kTRUE,kTRUE);
  diEleContinuum->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(diEleContinuum);

  AliDielectronSignalMC* diEleOpenCharm = new AliDielectronSignalMC("diEleOpenCharm","di-electrons from open charm");  // dielectrons originating from open charm hadrons
  diEleOpenCharm->SetLegPDGs(11,-11);
  diEleOpenCharm->SetMotherPDGs(402,402);
  diEleOpenCharm->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
  diEleOpenCharm->SetCheckBothChargesLegs(kTRUE,kTRUE);
  diEleOpenCharm->SetCheckBothChargesMothers(kTRUE,kTRUE);
  diEleOpenCharm->SetFillPureMCStep(kTRUE);
  die->AddSignalMC(diEleOpenCharm);


  //
  // contamination from misidentification and conversions
  //

  //conversion
  AliDielectronSignalMC* conversionElePairs = new AliDielectronSignalMC("conversionElePairs","conversion electron pairs");      // pairs made from conversion
  conversionElePairs->SetLegPDGs(11,-11);
  conversionElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
  //  conversionElePairs->SetMothersRelation(AliDielectronSignalMC::kSame);
  conversionElePairs->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
  conversionElePairs->SetMotherPDGs(22,22);
  //  die->AddSignalMC(conversionElePairs);

  AliDielectronSignalMC* conversionLeg = new AliDielectronSignalMC("conversionLeg","pairs with a leg from conversion");      // pairs made from conversion
  conversionLeg->SetLegPDGs(11,-11);
  conversionLeg->SetCheckBothChargesLegs(kTRUE,kTRUE);
  conversionLeg->SetLegSources(AliDielectronSignalMC::kPrimary, AliDielectronSignalMC::kSecondary);
  conversionLeg->SetMotherPDGs(22,0);
  //  die->AddSignalMC(conversionLeg);



  // background from secondary electrons
  AliDielectronSignalMC* secondaryElectrons = new AliDielectronSignalMC("secondaryElectrons","Secondary electrons");   // all di-electrons from secondary electrons (interaction with detector)
  secondaryElectrons->SetLegPDGs(11,-11);
  secondaryElectrons->SetLegSources(AliDielectronSignalMC::kSecondary, AliDielectronSignalMC::kSecondary);
  secondaryElectrons->SetCheckBothChargesLegs(kTRUE,kTRUE);
  //  die->AddSignalMC(secondaryElectrons);

  AliDielectronSignalMC* primarySecElePairs = new AliDielectronSignalMC("primarySecElePairs","Primary+Secondary electron pairs");  // primary-secondary pairs
  primarySecElePairs->SetLegPDGs(11,-11);
  primarySecElePairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
  primarySecElePairs->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kSecondary);
//  die->AddSignalMC(primarySecElePairs);

  // misidentification
  AliDielectronSignalMC* allEleMisIdPairs = new AliDielectronSignalMC("allEleMisIdPairs","all electron+misid. pairs");  // one true electron + a mis-id electron (all sources included)
  allEleMisIdPairs->SetLegPDGs(11,11,kFALSE,kTRUE);
  allEleMisIdPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(allEleMisIdPairs);

  AliDielectronSignalMC* allMisIdMisIdPairs = new AliDielectronSignalMC("allMisIdMisIdPairs","all misid.+misid. pairs");  // mis-id + mis-id
  allMisIdMisIdPairs->SetLegPDGs(11,11,kTRUE,kTRUE);
  allMisIdMisIdPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(allMisIdMisIdPairs);

  AliDielectronSignalMC* elePionPairs = new AliDielectronSignalMC("elePionPairs","electron+pion pairs");    // true electron + mis-id pion
  elePionPairs->SetLegPDGs(11,211);
  elePionPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(elePionPairs);

  AliDielectronSignalMC* eleKaonPairs = new AliDielectronSignalMC("eleKaonPairs","electron+kaon pairs");   // true electron + mis-id kaon
  eleKaonPairs->SetLegPDGs(11,321);
  eleKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(eleKaonPairs);

  AliDielectronSignalMC* eleProtonPairs = new AliDielectronSignalMC("eleProtonPairs","Electron+proton pairs");  // true electron + mis-id proton
  eleProtonPairs->SetLegPDGs(11,2212);
  eleProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(eleProtonPairs);

  AliDielectronSignalMC* piPiPairs = new AliDielectronSignalMC("piPiPairs","pion+pion pairs");    // mis-id pion + mis-id pion
  piPiPairs->SetLegPDGs(211,211);
  piPiPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(piPiPairs);

  AliDielectronSignalMC* piKaonPairs = new AliDielectronSignalMC("piKaonPairs","pion+kaon pairs");  // mis-id pion + mis-id kaon
  piKaonPairs->SetLegPDGs(211,321);
  piKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(piKaonPairs);

  AliDielectronSignalMC* piProtonPairs = new AliDielectronSignalMC("piProtonPairs","pion+proton pairs");  // mis-id pion + mis-id proton
  piProtonPairs->SetLegPDGs(211,2212);
  piProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(piProtonPairs);

  AliDielectronSignalMC* kaonKaonPairs = new AliDielectronSignalMC("kaonKaonPairs","kaon+kaon pairs");  // mis-id kaon + mis-id kaon
  kaonKaonPairs->SetLegPDGs(321,321);
  kaonKaonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(kaonKaonPairs);

  AliDielectronSignalMC* kaonProtonPairs = new AliDielectronSignalMC("kaonProtonPairs","kaon+proton pairs");   // mis-id kaon + mis-id proton
  kaonProtonPairs->SetLegPDGs(321,2212);
  kaonProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(kaonProtonPairs);

  AliDielectronSignalMC* protonProtonPairs = new AliDielectronSignalMC("protonProtonPairs","proton+proton pairs");  // mis-id proton + mis-id proton
  protonProtonPairs->SetLegPDGs(2212,2212);
  protonProtonPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(protonProtonPairs);

  AliDielectronSignalMC* muonAllPairs = new AliDielectronSignalMC("muonAllPairs","muon+everything pairs");        // mis-id muon + something else (electron, pion, kaon, proton)
  muonAllPairs->SetLegPDGs(13,13,kFALSE,kTRUE);
  muonAllPairs->SetCheckBothChargesLegs(kTRUE,kTRUE);
//  die->AddSignalMC(muonAllPairs);



}



void SetEtaCorrection()
{
  if (AliDielectronPID::GetEtaCorrFunction()) return;

  TString list=gSystem->Getenv("LIST");
  
  TFile f("$TRAIN_ROOT/jpsi_JPSI/EtaCorrMaps.root");
  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()));
    }
  }
}




 Config_mkoehler_lowmassMC.C:1
 Config_mkoehler_lowmassMC.C:2
 Config_mkoehler_lowmassMC.C:3
 Config_mkoehler_lowmassMC.C:4
 Config_mkoehler_lowmassMC.C:5
 Config_mkoehler_lowmassMC.C:6
 Config_mkoehler_lowmassMC.C:7
 Config_mkoehler_lowmassMC.C:8
 Config_mkoehler_lowmassMC.C:9
 Config_mkoehler_lowmassMC.C:10
 Config_mkoehler_lowmassMC.C:11
 Config_mkoehler_lowmassMC.C:12
 Config_mkoehler_lowmassMC.C:13
 Config_mkoehler_lowmassMC.C:14
 Config_mkoehler_lowmassMC.C:15
 Config_mkoehler_lowmassMC.C:16
 Config_mkoehler_lowmassMC.C:17
 Config_mkoehler_lowmassMC.C:18
 Config_mkoehler_lowmassMC.C:19
 Config_mkoehler_lowmassMC.C:20
 Config_mkoehler_lowmassMC.C:21
 Config_mkoehler_lowmassMC.C:22
 Config_mkoehler_lowmassMC.C:23
 Config_mkoehler_lowmassMC.C:24
 Config_mkoehler_lowmassMC.C:25
 Config_mkoehler_lowmassMC.C:26
 Config_mkoehler_lowmassMC.C:27
 Config_mkoehler_lowmassMC.C:28
 Config_mkoehler_lowmassMC.C:29
 Config_mkoehler_lowmassMC.C:30
 Config_mkoehler_lowmassMC.C:31
 Config_mkoehler_lowmassMC.C:32
 Config_mkoehler_lowmassMC.C:33
 Config_mkoehler_lowmassMC.C:34
 Config_mkoehler_lowmassMC.C:35
 Config_mkoehler_lowmassMC.C:36
 Config_mkoehler_lowmassMC.C:37
 Config_mkoehler_lowmassMC.C:38
 Config_mkoehler_lowmassMC.C:39
 Config_mkoehler_lowmassMC.C:40
 Config_mkoehler_lowmassMC.C:41
 Config_mkoehler_lowmassMC.C:42
 Config_mkoehler_lowmassMC.C:43
 Config_mkoehler_lowmassMC.C:44
 Config_mkoehler_lowmassMC.C:45
 Config_mkoehler_lowmassMC.C:46
 Config_mkoehler_lowmassMC.C:47
 Config_mkoehler_lowmassMC.C:48
 Config_mkoehler_lowmassMC.C:49
 Config_mkoehler_lowmassMC.C:50
 Config_mkoehler_lowmassMC.C:51
 Config_mkoehler_lowmassMC.C:52
 Config_mkoehler_lowmassMC.C:53
 Config_mkoehler_lowmassMC.C:54
 Config_mkoehler_lowmassMC.C:55
 Config_mkoehler_lowmassMC.C:56
 Config_mkoehler_lowmassMC.C:57
 Config_mkoehler_lowmassMC.C:58
 Config_mkoehler_lowmassMC.C:59
 Config_mkoehler_lowmassMC.C:60
 Config_mkoehler_lowmassMC.C:61
 Config_mkoehler_lowmassMC.C:62
 Config_mkoehler_lowmassMC.C:63
 Config_mkoehler_lowmassMC.C:64
 Config_mkoehler_lowmassMC.C:65
 Config_mkoehler_lowmassMC.C:66
 Config_mkoehler_lowmassMC.C:67
 Config_mkoehler_lowmassMC.C:68
 Config_mkoehler_lowmassMC.C:69
 Config_mkoehler_lowmassMC.C:70
 Config_mkoehler_lowmassMC.C:71
 Config_mkoehler_lowmassMC.C:72
 Config_mkoehler_lowmassMC.C:73
 Config_mkoehler_lowmassMC.C:74
 Config_mkoehler_lowmassMC.C:75
 Config_mkoehler_lowmassMC.C:76
 Config_mkoehler_lowmassMC.C:77
 Config_mkoehler_lowmassMC.C:78
 Config_mkoehler_lowmassMC.C:79
 Config_mkoehler_lowmassMC.C:80
 Config_mkoehler_lowmassMC.C:81
 Config_mkoehler_lowmassMC.C:82
 Config_mkoehler_lowmassMC.C:83
 Config_mkoehler_lowmassMC.C:84
 Config_mkoehler_lowmassMC.C:85
 Config_mkoehler_lowmassMC.C:86
 Config_mkoehler_lowmassMC.C:87
 Config_mkoehler_lowmassMC.C:88
 Config_mkoehler_lowmassMC.C:89
 Config_mkoehler_lowmassMC.C:90
 Config_mkoehler_lowmassMC.C:91
 Config_mkoehler_lowmassMC.C:92
 Config_mkoehler_lowmassMC.C:93
 Config_mkoehler_lowmassMC.C:94
 Config_mkoehler_lowmassMC.C:95
 Config_mkoehler_lowmassMC.C:96
 Config_mkoehler_lowmassMC.C:97
 Config_mkoehler_lowmassMC.C:98
 Config_mkoehler_lowmassMC.C:99
 Config_mkoehler_lowmassMC.C:100
 Config_mkoehler_lowmassMC.C:101
 Config_mkoehler_lowmassMC.C:102
 Config_mkoehler_lowmassMC.C:103
 Config_mkoehler_lowmassMC.C:104
 Config_mkoehler_lowmassMC.C:105
 Config_mkoehler_lowmassMC.C:106
 Config_mkoehler_lowmassMC.C:107
 Config_mkoehler_lowmassMC.C:108
 Config_mkoehler_lowmassMC.C:109
 Config_mkoehler_lowmassMC.C:110
 Config_mkoehler_lowmassMC.C:111
 Config_mkoehler_lowmassMC.C:112
 Config_mkoehler_lowmassMC.C:113
 Config_mkoehler_lowmassMC.C:114
 Config_mkoehler_lowmassMC.C:115
 Config_mkoehler_lowmassMC.C:116
 Config_mkoehler_lowmassMC.C:117
 Config_mkoehler_lowmassMC.C:118
 Config_mkoehler_lowmassMC.C:119
 Config_mkoehler_lowmassMC.C:120
 Config_mkoehler_lowmassMC.C:121
 Config_mkoehler_lowmassMC.C:122
 Config_mkoehler_lowmassMC.C:123
 Config_mkoehler_lowmassMC.C:124
 Config_mkoehler_lowmassMC.C:125
 Config_mkoehler_lowmassMC.C:126
 Config_mkoehler_lowmassMC.C:127
 Config_mkoehler_lowmassMC.C:128
 Config_mkoehler_lowmassMC.C:129
 Config_mkoehler_lowmassMC.C:130
 Config_mkoehler_lowmassMC.C:131
 Config_mkoehler_lowmassMC.C:132
 Config_mkoehler_lowmassMC.C:133
 Config_mkoehler_lowmassMC.C:134
 Config_mkoehler_lowmassMC.C:135
 Config_mkoehler_lowmassMC.C:136
 Config_mkoehler_lowmassMC.C:137
 Config_mkoehler_lowmassMC.C:138
 Config_mkoehler_lowmassMC.C:139
 Config_mkoehler_lowmassMC.C:140
 Config_mkoehler_lowmassMC.C:141
 Config_mkoehler_lowmassMC.C:142
 Config_mkoehler_lowmassMC.C:143
 Config_mkoehler_lowmassMC.C:144
 Config_mkoehler_lowmassMC.C:145
 Config_mkoehler_lowmassMC.C:146
 Config_mkoehler_lowmassMC.C:147
 Config_mkoehler_lowmassMC.C:148
 Config_mkoehler_lowmassMC.C:149
 Config_mkoehler_lowmassMC.C:150
 Config_mkoehler_lowmassMC.C:151
 Config_mkoehler_lowmassMC.C:152
 Config_mkoehler_lowmassMC.C:153
 Config_mkoehler_lowmassMC.C:154
 Config_mkoehler_lowmassMC.C:155
 Config_mkoehler_lowmassMC.C:156
 Config_mkoehler_lowmassMC.C:157
 Config_mkoehler_lowmassMC.C:158
 Config_mkoehler_lowmassMC.C:159
 Config_mkoehler_lowmassMC.C:160
 Config_mkoehler_lowmassMC.C:161
 Config_mkoehler_lowmassMC.C:162
 Config_mkoehler_lowmassMC.C:163
 Config_mkoehler_lowmassMC.C:164
 Config_mkoehler_lowmassMC.C:165
 Config_mkoehler_lowmassMC.C:166
 Config_mkoehler_lowmassMC.C:167
 Config_mkoehler_lowmassMC.C:168
 Config_mkoehler_lowmassMC.C:169
 Config_mkoehler_lowmassMC.C:170
 Config_mkoehler_lowmassMC.C:171
 Config_mkoehler_lowmassMC.C:172
 Config_mkoehler_lowmassMC.C:173
 Config_mkoehler_lowmassMC.C:174
 Config_mkoehler_lowmassMC.C:175
 Config_mkoehler_lowmassMC.C:176
 Config_mkoehler_lowmassMC.C:177
 Config_mkoehler_lowmassMC.C:178
 Config_mkoehler_lowmassMC.C:179
 Config_mkoehler_lowmassMC.C:180
 Config_mkoehler_lowmassMC.C:181
 Config_mkoehler_lowmassMC.C:182
 Config_mkoehler_lowmassMC.C:183
 Config_mkoehler_lowmassMC.C:184
 Config_mkoehler_lowmassMC.C:185
 Config_mkoehler_lowmassMC.C:186
 Config_mkoehler_lowmassMC.C:187
 Config_mkoehler_lowmassMC.C:188
 Config_mkoehler_lowmassMC.C:189
 Config_mkoehler_lowmassMC.C:190
 Config_mkoehler_lowmassMC.C:191
 Config_mkoehler_lowmassMC.C:192
 Config_mkoehler_lowmassMC.C:193
 Config_mkoehler_lowmassMC.C:194
 Config_mkoehler_lowmassMC.C:195
 Config_mkoehler_lowmassMC.C:196
 Config_mkoehler_lowmassMC.C:197
 Config_mkoehler_lowmassMC.C:198
 Config_mkoehler_lowmassMC.C:199
 Config_mkoehler_lowmassMC.C:200
 Config_mkoehler_lowmassMC.C:201
 Config_mkoehler_lowmassMC.C:202
 Config_mkoehler_lowmassMC.C:203
 Config_mkoehler_lowmassMC.C:204
 Config_mkoehler_lowmassMC.C:205
 Config_mkoehler_lowmassMC.C:206
 Config_mkoehler_lowmassMC.C:207
 Config_mkoehler_lowmassMC.C:208
 Config_mkoehler_lowmassMC.C:209
 Config_mkoehler_lowmassMC.C:210
 Config_mkoehler_lowmassMC.C:211
 Config_mkoehler_lowmassMC.C:212
 Config_mkoehler_lowmassMC.C:213
 Config_mkoehler_lowmassMC.C:214
 Config_mkoehler_lowmassMC.C:215
 Config_mkoehler_lowmassMC.C:216
 Config_mkoehler_lowmassMC.C:217
 Config_mkoehler_lowmassMC.C:218
 Config_mkoehler_lowmassMC.C:219
 Config_mkoehler_lowmassMC.C:220
 Config_mkoehler_lowmassMC.C:221
 Config_mkoehler_lowmassMC.C:222
 Config_mkoehler_lowmassMC.C:223
 Config_mkoehler_lowmassMC.C:224
 Config_mkoehler_lowmassMC.C:225
 Config_mkoehler_lowmassMC.C:226
 Config_mkoehler_lowmassMC.C:227
 Config_mkoehler_lowmassMC.C:228
 Config_mkoehler_lowmassMC.C:229
 Config_mkoehler_lowmassMC.C:230
 Config_mkoehler_lowmassMC.C:231
 Config_mkoehler_lowmassMC.C:232
 Config_mkoehler_lowmassMC.C:233
 Config_mkoehler_lowmassMC.C:234
 Config_mkoehler_lowmassMC.C:235
 Config_mkoehler_lowmassMC.C:236
 Config_mkoehler_lowmassMC.C:237
 Config_mkoehler_lowmassMC.C:238
 Config_mkoehler_lowmassMC.C:239
 Config_mkoehler_lowmassMC.C:240
 Config_mkoehler_lowmassMC.C:241
 Config_mkoehler_lowmassMC.C:242
 Config_mkoehler_lowmassMC.C:243
 Config_mkoehler_lowmassMC.C:244
 Config_mkoehler_lowmassMC.C:245
 Config_mkoehler_lowmassMC.C:246
 Config_mkoehler_lowmassMC.C:247
 Config_mkoehler_lowmassMC.C:248
 Config_mkoehler_lowmassMC.C:249
 Config_mkoehler_lowmassMC.C:250
 Config_mkoehler_lowmassMC.C:251
 Config_mkoehler_lowmassMC.C:252
 Config_mkoehler_lowmassMC.C:253
 Config_mkoehler_lowmassMC.C:254
 Config_mkoehler_lowmassMC.C:255
 Config_mkoehler_lowmassMC.C:256
 Config_mkoehler_lowmassMC.C:257
 Config_mkoehler_lowmassMC.C:258
 Config_mkoehler_lowmassMC.C:259
 Config_mkoehler_lowmassMC.C:260
 Config_mkoehler_lowmassMC.C:261
 Config_mkoehler_lowmassMC.C:262
 Config_mkoehler_lowmassMC.C:263
 Config_mkoehler_lowmassMC.C:264
 Config_mkoehler_lowmassMC.C:265
 Config_mkoehler_lowmassMC.C:266
 Config_mkoehler_lowmassMC.C:267
 Config_mkoehler_lowmassMC.C:268
 Config_mkoehler_lowmassMC.C:269
 Config_mkoehler_lowmassMC.C:270
 Config_mkoehler_lowmassMC.C:271
 Config_mkoehler_lowmassMC.C:272
 Config_mkoehler_lowmassMC.C:273
 Config_mkoehler_lowmassMC.C:274
 Config_mkoehler_lowmassMC.C:275
 Config_mkoehler_lowmassMC.C:276
 Config_mkoehler_lowmassMC.C:277
 Config_mkoehler_lowmassMC.C:278
 Config_mkoehler_lowmassMC.C:279
 Config_mkoehler_lowmassMC.C:280
 Config_mkoehler_lowmassMC.C:281
 Config_mkoehler_lowmassMC.C:282
 Config_mkoehler_lowmassMC.C:283
 Config_mkoehler_lowmassMC.C:284
 Config_mkoehler_lowmassMC.C:285
 Config_mkoehler_lowmassMC.C:286
 Config_mkoehler_lowmassMC.C:287
 Config_mkoehler_lowmassMC.C:288
 Config_mkoehler_lowmassMC.C:289
 Config_mkoehler_lowmassMC.C:290
 Config_mkoehler_lowmassMC.C:291
 Config_mkoehler_lowmassMC.C:292
 Config_mkoehler_lowmassMC.C:293
 Config_mkoehler_lowmassMC.C:294
 Config_mkoehler_lowmassMC.C:295
 Config_mkoehler_lowmassMC.C:296
 Config_mkoehler_lowmassMC.C:297
 Config_mkoehler_lowmassMC.C:298
 Config_mkoehler_lowmassMC.C:299
 Config_mkoehler_lowmassMC.C:300
 Config_mkoehler_lowmassMC.C:301
 Config_mkoehler_lowmassMC.C:302
 Config_mkoehler_lowmassMC.C:303
 Config_mkoehler_lowmassMC.C:304
 Config_mkoehler_lowmassMC.C:305
 Config_mkoehler_lowmassMC.C:306
 Config_mkoehler_lowmassMC.C:307
 Config_mkoehler_lowmassMC.C:308
 Config_mkoehler_lowmassMC.C:309
 Config_mkoehler_lowmassMC.C:310
 Config_mkoehler_lowmassMC.C:311
 Config_mkoehler_lowmassMC.C:312
 Config_mkoehler_lowmassMC.C:313
 Config_mkoehler_lowmassMC.C:314
 Config_mkoehler_lowmassMC.C:315
 Config_mkoehler_lowmassMC.C:316
 Config_mkoehler_lowmassMC.C:317
 Config_mkoehler_lowmassMC.C:318
 Config_mkoehler_lowmassMC.C:319
 Config_mkoehler_lowmassMC.C:320
 Config_mkoehler_lowmassMC.C:321
 Config_mkoehler_lowmassMC.C:322
 Config_mkoehler_lowmassMC.C:323
 Config_mkoehler_lowmassMC.C:324
 Config_mkoehler_lowmassMC.C:325
 Config_mkoehler_lowmassMC.C:326
 Config_mkoehler_lowmassMC.C:327
 Config_mkoehler_lowmassMC.C:328
 Config_mkoehler_lowmassMC.C:329
 Config_mkoehler_lowmassMC.C:330
 Config_mkoehler_lowmassMC.C:331
 Config_mkoehler_lowmassMC.C:332
 Config_mkoehler_lowmassMC.C:333
 Config_mkoehler_lowmassMC.C:334
 Config_mkoehler_lowmassMC.C:335
 Config_mkoehler_lowmassMC.C:336
 Config_mkoehler_lowmassMC.C:337
 Config_mkoehler_lowmassMC.C:338
 Config_mkoehler_lowmassMC.C:339
 Config_mkoehler_lowmassMC.C:340
 Config_mkoehler_lowmassMC.C:341
 Config_mkoehler_lowmassMC.C:342
 Config_mkoehler_lowmassMC.C:343
 Config_mkoehler_lowmassMC.C:344
 Config_mkoehler_lowmassMC.C:345
 Config_mkoehler_lowmassMC.C:346
 Config_mkoehler_lowmassMC.C:347
 Config_mkoehler_lowmassMC.C:348
 Config_mkoehler_lowmassMC.C:349
 Config_mkoehler_lowmassMC.C:350
 Config_mkoehler_lowmassMC.C:351
 Config_mkoehler_lowmassMC.C:352
 Config_mkoehler_lowmassMC.C:353
 Config_mkoehler_lowmassMC.C:354
 Config_mkoehler_lowmassMC.C:355
 Config_mkoehler_lowmassMC.C:356
 Config_mkoehler_lowmassMC.C:357
 Config_mkoehler_lowmassMC.C:358
 Config_mkoehler_lowmassMC.C:359
 Config_mkoehler_lowmassMC.C:360
 Config_mkoehler_lowmassMC.C:361
 Config_mkoehler_lowmassMC.C:362
 Config_mkoehler_lowmassMC.C:363
 Config_mkoehler_lowmassMC.C:364
 Config_mkoehler_lowmassMC.C:365
 Config_mkoehler_lowmassMC.C:366
 Config_mkoehler_lowmassMC.C:367
 Config_mkoehler_lowmassMC.C:368
 Config_mkoehler_lowmassMC.C:369
 Config_mkoehler_lowmassMC.C:370
 Config_mkoehler_lowmassMC.C:371
 Config_mkoehler_lowmassMC.C:372
 Config_mkoehler_lowmassMC.C:373
 Config_mkoehler_lowmassMC.C:374
 Config_mkoehler_lowmassMC.C:375
 Config_mkoehler_lowmassMC.C:376
 Config_mkoehler_lowmassMC.C:377
 Config_mkoehler_lowmassMC.C:378
 Config_mkoehler_lowmassMC.C:379
 Config_mkoehler_lowmassMC.C:380
 Config_mkoehler_lowmassMC.C:381
 Config_mkoehler_lowmassMC.C:382
 Config_mkoehler_lowmassMC.C:383
 Config_mkoehler_lowmassMC.C:384
 Config_mkoehler_lowmassMC.C:385
 Config_mkoehler_lowmassMC.C:386
 Config_mkoehler_lowmassMC.C:387
 Config_mkoehler_lowmassMC.C:388
 Config_mkoehler_lowmassMC.C:389
 Config_mkoehler_lowmassMC.C:390
 Config_mkoehler_lowmassMC.C:391
 Config_mkoehler_lowmassMC.C:392
 Config_mkoehler_lowmassMC.C:393
 Config_mkoehler_lowmassMC.C:394
 Config_mkoehler_lowmassMC.C:395
 Config_mkoehler_lowmassMC.C:396
 Config_mkoehler_lowmassMC.C:397
 Config_mkoehler_lowmassMC.C:398
 Config_mkoehler_lowmassMC.C:399
 Config_mkoehler_lowmassMC.C:400
 Config_mkoehler_lowmassMC.C:401
 Config_mkoehler_lowmassMC.C:402
 Config_mkoehler_lowmassMC.C:403
 Config_mkoehler_lowmassMC.C:404
 Config_mkoehler_lowmassMC.C:405
 Config_mkoehler_lowmassMC.C:406
 Config_mkoehler_lowmassMC.C:407
 Config_mkoehler_lowmassMC.C:408
 Config_mkoehler_lowmassMC.C:409
 Config_mkoehler_lowmassMC.C:410
 Config_mkoehler_lowmassMC.C:411
 Config_mkoehler_lowmassMC.C:412
 Config_mkoehler_lowmassMC.C:413
 Config_mkoehler_lowmassMC.C:414
 Config_mkoehler_lowmassMC.C:415
 Config_mkoehler_lowmassMC.C:416
 Config_mkoehler_lowmassMC.C:417
 Config_mkoehler_lowmassMC.C:418
 Config_mkoehler_lowmassMC.C:419
 Config_mkoehler_lowmassMC.C:420
 Config_mkoehler_lowmassMC.C:421
 Config_mkoehler_lowmassMC.C:422
 Config_mkoehler_lowmassMC.C:423
 Config_mkoehler_lowmassMC.C:424
 Config_mkoehler_lowmassMC.C:425
 Config_mkoehler_lowmassMC.C:426
 Config_mkoehler_lowmassMC.C:427
 Config_mkoehler_lowmassMC.C:428
 Config_mkoehler_lowmassMC.C:429
 Config_mkoehler_lowmassMC.C:430
 Config_mkoehler_lowmassMC.C:431
 Config_mkoehler_lowmassMC.C:432
 Config_mkoehler_lowmassMC.C:433
 Config_mkoehler_lowmassMC.C:434
 Config_mkoehler_lowmassMC.C:435
 Config_mkoehler_lowmassMC.C:436
 Config_mkoehler_lowmassMC.C:437
 Config_mkoehler_lowmassMC.C:438
 Config_mkoehler_lowmassMC.C:439
 Config_mkoehler_lowmassMC.C:440
 Config_mkoehler_lowmassMC.C:441
 Config_mkoehler_lowmassMC.C:442
 Config_mkoehler_lowmassMC.C:443
 Config_mkoehler_lowmassMC.C:444
 Config_mkoehler_lowmassMC.C:445
 Config_mkoehler_lowmassMC.C:446
 Config_mkoehler_lowmassMC.C:447
 Config_mkoehler_lowmassMC.C:448
 Config_mkoehler_lowmassMC.C:449
 Config_mkoehler_lowmassMC.C:450
 Config_mkoehler_lowmassMC.C:451
 Config_mkoehler_lowmassMC.C:452
 Config_mkoehler_lowmassMC.C:453
 Config_mkoehler_lowmassMC.C:454
 Config_mkoehler_lowmassMC.C:455
 Config_mkoehler_lowmassMC.C:456
 Config_mkoehler_lowmassMC.C:457
 Config_mkoehler_lowmassMC.C:458
 Config_mkoehler_lowmassMC.C:459
 Config_mkoehler_lowmassMC.C:460
 Config_mkoehler_lowmassMC.C:461
 Config_mkoehler_lowmassMC.C:462
 Config_mkoehler_lowmassMC.C:463
 Config_mkoehler_lowmassMC.C:464
 Config_mkoehler_lowmassMC.C:465
 Config_mkoehler_lowmassMC.C:466
 Config_mkoehler_lowmassMC.C:467
 Config_mkoehler_lowmassMC.C:468
 Config_mkoehler_lowmassMC.C:469
 Config_mkoehler_lowmassMC.C:470
 Config_mkoehler_lowmassMC.C:471
 Config_mkoehler_lowmassMC.C:472
 Config_mkoehler_lowmassMC.C:473
 Config_mkoehler_lowmassMC.C:474
 Config_mkoehler_lowmassMC.C:475
 Config_mkoehler_lowmassMC.C:476
 Config_mkoehler_lowmassMC.C:477
 Config_mkoehler_lowmassMC.C:478
 Config_mkoehler_lowmassMC.C:479
 Config_mkoehler_lowmassMC.C:480
 Config_mkoehler_lowmassMC.C:481
 Config_mkoehler_lowmassMC.C:482
 Config_mkoehler_lowmassMC.C:483
 Config_mkoehler_lowmassMC.C:484
 Config_mkoehler_lowmassMC.C:485
 Config_mkoehler_lowmassMC.C:486
 Config_mkoehler_lowmassMC.C:487
 Config_mkoehler_lowmassMC.C:488
 Config_mkoehler_lowmassMC.C:489
 Config_mkoehler_lowmassMC.C:490
 Config_mkoehler_lowmassMC.C:491
 Config_mkoehler_lowmassMC.C:492
 Config_mkoehler_lowmassMC.C:493
 Config_mkoehler_lowmassMC.C:494
 Config_mkoehler_lowmassMC.C:495
 Config_mkoehler_lowmassMC.C:496
 Config_mkoehler_lowmassMC.C:497
 Config_mkoehler_lowmassMC.C:498
 Config_mkoehler_lowmassMC.C:499
 Config_mkoehler_lowmassMC.C:500
 Config_mkoehler_lowmassMC.C:501
 Config_mkoehler_lowmassMC.C:502
 Config_mkoehler_lowmassMC.C:503
 Config_mkoehler_lowmassMC.C:504
 Config_mkoehler_lowmassMC.C:505
 Config_mkoehler_lowmassMC.C:506
 Config_mkoehler_lowmassMC.C:507
 Config_mkoehler_lowmassMC.C:508
 Config_mkoehler_lowmassMC.C:509
 Config_mkoehler_lowmassMC.C:510
 Config_mkoehler_lowmassMC.C:511
 Config_mkoehler_lowmassMC.C:512
 Config_mkoehler_lowmassMC.C:513
 Config_mkoehler_lowmassMC.C:514
 Config_mkoehler_lowmassMC.C:515
 Config_mkoehler_lowmassMC.C:516
 Config_mkoehler_lowmassMC.C:517
 Config_mkoehler_lowmassMC.C:518
 Config_mkoehler_lowmassMC.C:519
 Config_mkoehler_lowmassMC.C:520
 Config_mkoehler_lowmassMC.C:521
 Config_mkoehler_lowmassMC.C:522
 Config_mkoehler_lowmassMC.C:523
 Config_mkoehler_lowmassMC.C:524
 Config_mkoehler_lowmassMC.C:525
 Config_mkoehler_lowmassMC.C:526
 Config_mkoehler_lowmassMC.C:527
 Config_mkoehler_lowmassMC.C:528
 Config_mkoehler_lowmassMC.C:529
 Config_mkoehler_lowmassMC.C:530
 Config_mkoehler_lowmassMC.C:531
 Config_mkoehler_lowmassMC.C:532
 Config_mkoehler_lowmassMC.C:533
 Config_mkoehler_lowmassMC.C:534
 Config_mkoehler_lowmassMC.C:535
 Config_mkoehler_lowmassMC.C:536
 Config_mkoehler_lowmassMC.C:537
 Config_mkoehler_lowmassMC.C:538
 Config_mkoehler_lowmassMC.C:539
 Config_mkoehler_lowmassMC.C:540
 Config_mkoehler_lowmassMC.C:541
 Config_mkoehler_lowmassMC.C:542
 Config_mkoehler_lowmassMC.C:543
 Config_mkoehler_lowmassMC.C:544
 Config_mkoehler_lowmassMC.C:545
 Config_mkoehler_lowmassMC.C:546
 Config_mkoehler_lowmassMC.C:547
 Config_mkoehler_lowmassMC.C:548
 Config_mkoehler_lowmassMC.C:549
 Config_mkoehler_lowmassMC.C:550
 Config_mkoehler_lowmassMC.C:551
 Config_mkoehler_lowmassMC.C:552
 Config_mkoehler_lowmassMC.C:553
 Config_mkoehler_lowmassMC.C:554
 Config_mkoehler_lowmassMC.C:555
 Config_mkoehler_lowmassMC.C:556
 Config_mkoehler_lowmassMC.C:557
 Config_mkoehler_lowmassMC.C:558
 Config_mkoehler_lowmassMC.C:559
 Config_mkoehler_lowmassMC.C:560
 Config_mkoehler_lowmassMC.C:561
 Config_mkoehler_lowmassMC.C:562
 Config_mkoehler_lowmassMC.C:563
 Config_mkoehler_lowmassMC.C:564
 Config_mkoehler_lowmassMC.C:565
 Config_mkoehler_lowmassMC.C:566
 Config_mkoehler_lowmassMC.C:567
 Config_mkoehler_lowmassMC.C:568
 Config_mkoehler_lowmassMC.C:569
 Config_mkoehler_lowmassMC.C:570
 Config_mkoehler_lowmassMC.C:571
 Config_mkoehler_lowmassMC.C:572
 Config_mkoehler_lowmassMC.C:573
 Config_mkoehler_lowmassMC.C:574
 Config_mkoehler_lowmassMC.C:575
 Config_mkoehler_lowmassMC.C:576
 Config_mkoehler_lowmassMC.C:577
 Config_mkoehler_lowmassMC.C:578
 Config_mkoehler_lowmassMC.C:579
 Config_mkoehler_lowmassMC.C:580
 Config_mkoehler_lowmassMC.C:581
 Config_mkoehler_lowmassMC.C:582
 Config_mkoehler_lowmassMC.C:583
 Config_mkoehler_lowmassMC.C:584
 Config_mkoehler_lowmassMC.C:585
 Config_mkoehler_lowmassMC.C:586
 Config_mkoehler_lowmassMC.C:587
 Config_mkoehler_lowmassMC.C:588
 Config_mkoehler_lowmassMC.C:589
 Config_mkoehler_lowmassMC.C:590
 Config_mkoehler_lowmassMC.C:591
 Config_mkoehler_lowmassMC.C:592
 Config_mkoehler_lowmassMC.C:593
 Config_mkoehler_lowmassMC.C:594
 Config_mkoehler_lowmassMC.C:595
 Config_mkoehler_lowmassMC.C:596
 Config_mkoehler_lowmassMC.C:597
 Config_mkoehler_lowmassMC.C:598
 Config_mkoehler_lowmassMC.C:599
 Config_mkoehler_lowmassMC.C:600
 Config_mkoehler_lowmassMC.C:601
 Config_mkoehler_lowmassMC.C:602
 Config_mkoehler_lowmassMC.C:603
 Config_mkoehler_lowmassMC.C:604
 Config_mkoehler_lowmassMC.C:605
 Config_mkoehler_lowmassMC.C:606
 Config_mkoehler_lowmassMC.C:607
 Config_mkoehler_lowmassMC.C:608
 Config_mkoehler_lowmassMC.C:609
 Config_mkoehler_lowmassMC.C:610
 Config_mkoehler_lowmassMC.C:611
 Config_mkoehler_lowmassMC.C:612
 Config_mkoehler_lowmassMC.C:613
 Config_mkoehler_lowmassMC.C:614
 Config_mkoehler_lowmassMC.C:615
 Config_mkoehler_lowmassMC.C:616
 Config_mkoehler_lowmassMC.C:617
 Config_mkoehler_lowmassMC.C:618
 Config_mkoehler_lowmassMC.C:619
 Config_mkoehler_lowmassMC.C:620
 Config_mkoehler_lowmassMC.C:621
 Config_mkoehler_lowmassMC.C:622
 Config_mkoehler_lowmassMC.C:623
 Config_mkoehler_lowmassMC.C:624
 Config_mkoehler_lowmassMC.C:625
 Config_mkoehler_lowmassMC.C:626
 Config_mkoehler_lowmassMC.C:627
 Config_mkoehler_lowmassMC.C:628
 Config_mkoehler_lowmassMC.C:629
 Config_mkoehler_lowmassMC.C:630
 Config_mkoehler_lowmassMC.C:631
 Config_mkoehler_lowmassMC.C:632
 Config_mkoehler_lowmassMC.C:633
 Config_mkoehler_lowmassMC.C:634
 Config_mkoehler_lowmassMC.C:635
 Config_mkoehler_lowmassMC.C:636
 Config_mkoehler_lowmassMC.C:637
 Config_mkoehler_lowmassMC.C:638
 Config_mkoehler_lowmassMC.C:639
 Config_mkoehler_lowmassMC.C:640
 Config_mkoehler_lowmassMC.C:641