ROOT logo
class LMEECutLib {
  
public:
	static  enum LMMECutSet {

    kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight,
    kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight,
    kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight,
    kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight,
    kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4,
    kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4,
    kPbPb2011_pidITSTPC_trkSPDfirst_3,            // (cutset w/o pairing)
    kPbPb2011_pidTPC_trkSPDfirst_3,               // (cutset w/o pairing)
    kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose, // (cutset w/o pairing)
    kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose, // (cutset w/o pairing)
    kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose,      // (cutset w/o pairing)
    kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose,      // (cutset w/o pairing)
    kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1,
    kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1,       // Cutset for Technical Preliminaries for QM2014 (no prefilter used!)
    kPbPb2011_pidTPCTOF_trkSPDorSDD_1,
    kPbPb2011_pidTPCTOF_trkSPDfirst_1,
    kPbPb2011PID_ITSTPCTOFif2,        // (NO FULL CUTSET)
    kPbPb2011PID_TPCTOF3,             // (NO FULL CUTSET)
    kPbPb2011TRK_SDDfirstSPDnone,     // (NO FULL CUTSET) complimentary tracks, strictly without SPD, to be combined with others!
    kPbPb2011TRK_SPDfirst,            // (NO FULL CUTSET) main track selection, with SPD first
    kPbPb2011TRK_SDDfirstSPDnone4cls, // (NO FULL CUTSET) complimentary tracks, strictly without SPD, to be combined with others!
    kPbPb2011TRK_SPDfirst5cls,        // (NO FULL CUTSET) main track selection, with SPD first
    kPbPb2011_TPCITS_TOFif1,
    kPbPb2011_TPCTOF_Semi2, // changed PairCutsAna from PhiV to OpeningAngle. prefilter cuts renewed (if applicable)
    // following cutsets are not complete anymore!
    kPbPb2011_TPCTOF_Semi1, // old prefilter cuts (leg & pair), some are confusing
    kPbPb2011NoPID, // pairing disabled in config
    kPbPb2011TPCandTOF, // this was the final one activated by Christoph!
    kPbPb2011TPCandTOFHPT,
		kPbPb2011TPC, //TOF required, more relaxed cut on TPC
		kPbPb2011TPCandTOFwide, //TOF required, more relaxed cut on TPC
		kPbPb2011TPCorTOF,
		kpp2010TPCandTOF,
		kpp2010TPCorTOF,
		kCUTSETMAX
	};
  
	static  enum LMMECentSel {
	  kPbPb2011Central,
    kPbPb2011MidCentral,
		kPbPb2011SemiCentral,
		kPbPb2011Peripheral,
		kCENTSELMAX
	};
  
	//char* LMEECutNames[kCUTSETMAX] = { "PbPb2011TPCandTOF","PbPb2011TPCorTOF"};
  
  
	LMEECutLib() {}
  
	AliDielectronEventCuts*     GetEventCuts(Int_t cutSet);
	AliAnalysisCuts*            GetCentralityCuts(Int_t centSel);
	AliDielectronTrackRotator*  GetTrackRotator(Int_t cutSet);
	AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet);
  
	AliAnalysisCuts* GetPairCutsAna(Int_t cutSet, Bool_t tooglePC=kFALSE);
	AliAnalysisCuts* GetPairCutsPre(Int_t cutSet);  
  
	AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet);  
	AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet);  
  
	AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet);  
	AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet);  
	AliAnalysisCuts* GetESDTrackCutsAna(Int_t cutSet);  
  
  
  // Note: event cuts are identical for all analysis 'cutDefinition's that run together!
  // the selection is hardcoded in the AddTask, currently to 'kPbPb2011_TPCTOF_Semi1'
	AliDielectronEventCuts* GetEventCuts(Int_t cutSet) {
	  AliDielectronEventCuts* eventCuts = 0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
      case kPbPb2011_TPCTOF_Semi1:
      case kPbPb2011NoPID:
      case kPbPb2011TPCandTOF :
   		case kPbPb2011TPCandTOFHPT:
      case kPbPb2011TPC :
      case kPbPb2011TPCandTOFwide :
      case kPbPb2011TPCorTOF  :
      case kpp2010TPCandTOF :
      case kpp2010TPCorTOF  :
        //Basic Event Cuts for pp and Pb-Pb, additional cuts may be in the AddTask
        eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
        eventCuts->SetVertexType(AliDielectronEventCuts::kVtxSPD); // AOD
        //eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTPC); // AOD
        //           eventCuts->SetCentralityRange(0.0,80.0);
        eventCuts->SetRequireVertex();
        eventCuts->SetMinVtxContributors(1);
        eventCuts->SetVertexZ(-10.,10.);
        break;
      default: cout << "No Event Cut defined" << endl;
	  }
	  return eventCuts;
	}
  
  
	//Selection of relatively 'flat' centralities
	AliAnalysisCuts* GetCentralityCuts(Int_t centSel) {
	  AliDielectronVarCuts* centCuts = 0x0;
	  switch (centSel) {
      case kPbPb2011Central:
        centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Central");
        centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,10.);
        break;
      case kPbPb2011MidCentral:
        centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011MidCentral");
        centCuts->AddCut(AliDielectronVarManager::kCentrality,10.,20.);
        break;
      case kPbPb2011SemiCentral:
        centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral");
        centCuts->AddCut(AliDielectronVarManager::kCentrality,20.,50.);
        break;
      case kPbPb2011Peripheral:
        centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Peripheral");
        centCuts->AddCut(AliDielectronVarManager::kCentrality,50.,90.);
        break;
			default: cout << "No Centrality selected" << endl;
	  }
	  return centCuts;
	}
  
  
	//Basic track rotator settings from J/Psi, more investigation needed
	AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet) {
	  AliDielectronTrackRotator* trackRotator = 0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
      case kPbPb2011_TPCTOF_Semi1:
      case kPbPb2011NoPID:
      case kPbPb2011TPCandTOF :
   		case kPbPb2011TPCandTOFHPT:
      case kPbPb2011TPC :
      case kPbPb2011TPCandTOFwide :
      case kPbPb2011TPCorTOF  :
      case kpp2010TPCandTOF :
      case kpp2010TPCorTOF  :
        trackRotator = new AliDielectronTrackRotator();
        trackRotator->SetIterations(20);
        trackRotator->SetConeAnglePhi(TMath::Pi()/180*165);
        trackRotator->SetStartAnglePhi(TMath::Pi());
        break;
      default: cout << "No Rotator defined" << endl;
	  }
	  return trackRotator;
	}
  
  
	AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet) {
	  AliDielectronMixingHandler* mixingHandler = 0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
      case kPbPb2011_TPCTOF_Semi1:
        mixingHandler = new AliDielectronMixingHandler;
        mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
        mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,30,50,80");
        // now using TPC event plane, uncorrected. (also, the old phi range was wrong, now same effective binning.)
        mixingHandler->AddVariable(AliDielectronVarManager::kTPCrpH2uc, 6, TMath::Pi()/-2., TMath::Pi()/2.);
        mixingHandler->SetDepth(15);
        mixingHandler->SetMixType(AliDielectronMixingHandler::kAll);
        break;
        //[...]
      default: cout << "No Mixer defined" << endl;
	  }
	  return mixingHandler;
	}
  
  
  
	//Pair Cuts for Analysis step - take care of logic - inverted compared to other PairCuts!!
  // cuts = SELECTION!!!
	AliAnalysisCuts* GetPairCutsAna(Int_t cutSet, Bool_t togglePC /*=kFALSE*/)  {
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetPairCutsAna() >>>>>>>>>>>>>>>>>>>>>> " << endl;
    AliAnalysisCuts* pairCuts=0x0;
    switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
        cout << "No Pair Cuts used - ok " << endl; // since 18.02.2014
        break;
        
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
        //        AliDielectronVarCuts* pairCutsPhivGood =new AliDielectronVarCuts("pairCutsPhivGood","pairCutsPhivGood");
        //        pairCutsPhivGood->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0); 
        AliDielectronVarCuts* pairCutsOpAngGood =new AliDielectronVarCuts("pairCutsOpAngGood","pairCutsOpAngGood");
        pairCutsOpAngGood->AddCut(AliDielectronVarManager::kOpeningAngle, 0.05, 999.); // in upgrade: 0.05
        AliDielectronVarCuts* pairCutsInvM =new AliDielectronVarCuts("pairCutsInvM","pairCutsInvM");
        pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.02); // in upgrade: 0.01
        AliDielectronVarCuts* pairCutsInvMgood =new AliDielectronVarCuts("pairCutsInvMgood","pairCutsInvMgood");
        pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.02, 99999.);
        
        AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
        pairCutsCG->AddCut(pairCutsInvM);
        pairCutsCG->AddCut(pairCutsOpAngGood);
        //        pairCutsCG->AddCut(pairCutsPhivGood);
        
        AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
        pairCutsCG2->AddCut(pairCutsInvMgood);
        pairCutsCG2->AddCut(pairCutsCG);
        pairCuts = pairCutsCG2;
        break;
        
      case kPbPb2011_TPCTOF_Semi1:
        //[...] // PhiV and InvMass
		  default: cout << "No Pair Cuts defined " << endl;
    }
    return pairCuts;
	}
  
  
	//Pair Cuts for PREFILTER step
  // cuts = REJECTION!!!
	AliAnalysisCuts* GetPairCutsPre(Int_t cutSet)  {  
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetPairCutsPre() >>>>>>>>>>>>>>>>>>>>>> " << endl;
    AliAnalysisCuts* pairCuts=0x0;
    switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
        AliDielectronVarCuts* pairCutsInvM =new AliDielectronVarCuts("pairCutsInvM","pairCutsInvM");
        pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.02); // in upgrade: 0.01
        AliDielectronVarCuts* pairCutsOpAng =new AliDielectronVarCuts("pairCutsOpAng","pairCutsOpAng");
        pairCutsOpAng->AddCut(AliDielectronVarManager::kOpeningAngle, 0.0, 0.05); // in upgrade: 0.05
        
        AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
        pairCutsCG->AddCut(pairCutsInvM);
        pairCutsCG->AddCut(pairCutsOpAng);
        //pairCutsCG->AddCut(pairCutsPhiv);
        pairCuts = pairCutsCG;
        break;
        
      case kPbPb2011_TPCTOF_Semi1:
        //[...] // PhiV and InvMass
      default: cout << "No Prefilter Pair Cuts defined " << endl;
	  } 
	  return pairCuts;
	}
  
  
  
	AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) {
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetPIDCutsAna() >>>>>>>>>>>>>>>>>>>>>> " << endl;
	  AliAnalysisCuts* pidCuts=0x0;
    
	  //-----------------------------------------------
	  // Define different PID Cuts, that are used later
	  //-----------------------------------------------
    // PID cuts depend on TPC_inner_p, if not specified
    // PID cut ranges correspond to global momentum P
    // check it again!!!
	  //-----------------------------------------------
	  
    //
    //
    //TPC: electron inclusion asymmetric
	  //     pion     exclusion 3sigma
	  //TOF: electron inclusion 3sigma in region where p,K cross electrons in TPC
	  AliDielectronPID *pidTPCTOF_Semi1 = new AliDielectronPID("pidTPCTOF_Semi1","pidTPCTOF_Semi1");
	  pidTPCTOF_Semi1->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3., 0. ,100., kFALSE);
	  pidTPCTOF_Semi1->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3., 0. ,100., kTRUE);
	  pidTPCTOF_Semi1->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3., 0. ,1.7 , kFALSE);
    //
    //
    // LOOSE PID TPC+TOF
    AliDielectronPID *pidTPCTOF_Semi_LOOSE = new AliDielectronPID("pidTPCTOF_Semi_LOOSE","pidTPCTOF_Semi_LOOSE");
	  pidTPCTOF_Semi_LOOSE->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-12. ,20. , 0. ,100., kFALSE);
	  pidTPCTOF_Semi_LOOSE->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3. , 0. ,1.7 , kFALSE);
    //
    //
    // PID TPC only
	  AliDielectronPID *pidTPC_3 = new AliDielectronPID("pidTPC_3","pidTPC_3");
	  pidTPC_3->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3., 0. ,100., kFALSE);
	  pidTPC_3->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3., 0. ,100., kTRUE);
    
    
    //TPC: electron inclusion asymmetric
	  //     pion     exclusion 3sigma
	  //ITS: electron inclusion asymmetric in region where p,K cross electrons in TPC
	  //TOF: electron inclusion 3sigma in similar region - BUT ONLY IF AVAILABLE
	  AliDielectronPID *pidTPCITS_TOFif1 = new AliDielectronPID("pidTPCITS_TOFif1","pidTPCITS_TOFif1");
	  pidTPCITS_TOFif1->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3. , 0. ,100., kFALSE);
	  pidTPCITS_TOFif1->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3. , 0. ,100., kTRUE);
	  pidTPCITS_TOFif1->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -4. , 1. , 0. ,1.5 , kFALSE);
	  pidTPCITS_TOFif1->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3. , 0. ,1.7 , kFALSE, AliDielectronPID::kIfAvailable);
    //
    //
    //TPC: electron inclusion asymmetric
	  //     pion     exclusion 3sigma
	  //ITS: electron inclusion asymmetric OVER FULL MOMENTUM RANGE
	  //TOF: electron inclusion 3sigma - BUT ONLY IF AVAILABLE
	  AliDielectronPID *pidTPCITS_TOFif2 = new AliDielectronPID("pidTPCITS_TOFif2","pidTPCITS_TOFif2");
	  pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3. , 0. ,100., kFALSE);
	  pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3. , 0. ,100., kTRUE);
	  pidTPCITS_TOFif2->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -4. , 1. , 0. ,100., kFALSE);
	  pidTPCITS_TOFif2->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3. , 0. ,100., kFALSE, AliDielectronPID::kIfAvailable);
    //
    //
    // LOOSE PID ITS+TPC+TOFif
    AliDielectronPID *pidTPCITS_TOFif_LOOSE = new AliDielectronPID("pidTPCITS_TOFif_LOOSE","pidTPCITS_TOFif_LOOSE");
	  pidTPCITS_TOFif_LOOSE->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-12. ,20. , 0. ,100., kFALSE);
	  pidTPCITS_TOFif_LOOSE->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-10. ,20. , 0. ,100., kFALSE);
	  pidTPCITS_TOFif_LOOSE->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3. , 0. ,100., kFALSE, AliDielectronPID::kIfAvailable);
    //
    //
    // PID ITS+TPC
    AliDielectronPID *pidTPCITS_3 = new AliDielectronPID("pidTPCITS_3","pidTPCITS_3");
	  pidTPCITS_3->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 3. , 0. ,100., kFALSE);
	  pidTPCITS_3->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3. , 0. ,100., kTRUE);
	  pidTPCITS_3->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -4. , 1. , 0. ,100., kFALSE);
    //
    //
    // tighter PID ITS+TPC+TOFif
    // ITS only up to momentum where proton contamination is seen in TPC signal
    AliDielectronPID *pidTPCITS_TOFif56 = new AliDielectronPID("pidTPCITS_TOFif56","pidTPCITS_TOFif56");
	  pidTPCITS_TOFif56->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -1.5, 2.5, 0. ,100., kFALSE);
	  pidTPCITS_TOFif56->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3. , 0. ,100., kTRUE);
	  pidTPCITS_TOFif56->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -4. , 0.5, 0. ,  2., kFALSE);
	  pidTPCITS_TOFif56->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -2. , 2. , 0. ,100., kFALSE, AliDielectronPID::kIfAvailable);
    
    
	  //Apply ITS cuts (see Hongyan's talks):
	  //3 sigma inclusion of electrons in TPC
	  //3 sigma exclusion of pions in TPC
	  //3 sigma inclusion of electrons in ITS,TOF for p<1.5GeV, where p,K contamination
	  //TOF only IF available!
	  AliDielectronPID *pidTPCandITSTOF = new AliDielectronPID("pidTPCandITSTOF","pidTPCandITSTOF");//"TPC-TOF-ITS"
	  pidTPCandITSTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -3.,3., 0.,100., kFALSE);
	  pidTPCandITSTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3.,3., 0.,100., kTRUE);
	  pidTPCandITSTOF->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -6.,3., 0.,1.5, kFALSE );
	  pidTPCandITSTOF->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3.,3., 0.,1.5, kFALSE,AliDielectronPID::kIfAvailable );
    
    // eta range:
    AliDielectronVarCuts *etaRange090 = new AliDielectronVarCuts("etaRange090","etaRange090");
    etaRange090->AddCut(AliDielectronVarManager::kEta, -0.90, 0.90);
    AliDielectronVarCuts *etaRange084 = new AliDielectronVarCuts("etaRange084","etaRange084");
    etaRange084->AddCut(AliDielectronVarManager::kEta, -0.84, 0.84);
    AliDielectronVarCuts *etaRange076 = new AliDielectronVarCuts("etaRange076","etaRange076");
    etaRange076->AddCut(AliDielectronVarManager::kEta, -0.76, 0.76);
    // pt range:
    AliDielectronVarCuts *ptRange400to3500 = new AliDielectronVarCuts("ptRange400to3500","ptRange400to3500");
    ptRange400to3500->AddCut(AliDielectronVarManager::kPt, .4, 3.5);
    
    
	  //-----------------------------------------------
	  // Now see what Config actually loads and assemble final cuts
	  //-----------------------------------------------
    switch (cutSet) {
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight: // tighter "ITSTPCTOFif" PID
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange076);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCITS_TOFif56);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
    
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange076);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCITS_3);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      case kPbPb2011_pidTPC_trkSPDfirst_3:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange090);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPC_3);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose: // loose "ITSTPCTOFif" PID - for 2D contamination study
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange076);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCITS_TOFif_LOOSE);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange090);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCTOF_Semi_LOOSE);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4: // regular "ITSTPCTOFif" PID
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange076);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCITS_TOFif2);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange090);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCTOF_Semi1);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
        
      case kPbPb2011_TPCITS_TOFif1:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange084); // was 0.84 -> not ideal
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCITS_TOFif1);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet));
        pidCuts = cgPIDCutsAna;
        break;
      case kPbPb2011_TPCTOF_Semi2:
      case kPbPb2011_TPCTOF_Semi1:
        AliDielectronCutGroup* cgPIDCutsAna = new AliDielectronCutGroup("cgPIDCutsAna","cgPIDCutsAna",AliDielectronCutGroup::kCompAND);
        cgPIDCutsAna->AddCut(etaRange084);
        cgPIDCutsAna->AddCut(ptRange400to3500);
        cgPIDCutsAna->AddCut(pidTPCTOF_Semi1);
        cgPIDCutsAna->AddCut(GetTrackCutsAna(cutSet)); // for 'kPbPb2011_TPCTOF_Semi1', this was called in the Config
        pidCuts = cgPIDCutsAna;
        break;
        //[...]
   		case kPbPb2011TPCandTOFHPT:
        //test Hongyan's cut
        AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
        cgSecondTrackFilterPIDTPC1->AddCut(etaRange084);
        cgSecondTrackFilterPIDTPC1->AddCut(ptRange400to3500);
        cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandITSTOF);
        pidCuts = cgSecondTrackFilterPIDTPC1;
        break;
        //[...]
      default: cout << "No Analysis PID Cut defined " << endl;
	  }
	  return pidCuts;
	}
  
  
	//Make/Tighten track Cuts that are *NOT* already
	//done in the AOD production
	//**IMPORTANT**: For AODs, select FilterBit
	//the method is ignored for ESDs
	
	AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) {
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetTrackCutsAna() >>>>>>>>>>>>>>>>>>>>>> " << endl;
	  AliDielectronCutGroup* trackCuts=0x0;
	  switch (cutSet) {
        
      
        //----------
        // these MAIN settings have to combine different track selections:
        //----------
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
        // combine typical and new trackcuts with "kCompOR" condition:
        cgTrackCutsAnaSPDorSDD = new AliDielectronCutGroup("cgTrackCutsAnaSPDorSDD","cgTrackCutsAnaSPDorSDD",AliDielectronCutGroup::kCompOR);
        cgTrackCutsAnaSPDorSDD->AddCut(GetTrackCutsAna(kPbPb2011TRK_SPDfirst));         // typical trackcuts with requirement of SPD
        cgTrackCutsAnaSPDorSDD->AddCut(GetTrackCutsAna(kPbPb2011TRK_SDDfirstSPDnone)); // new additional trackcuts with SDD instead of SPD
        trackCuts = cgTrackCutsAnaSPDorSDD;
        break;
        
        //----------
        // these MAIN settings just load the main track selection directly below:
        //----------
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
        //----------
      case kPbPb2011TRK_SPDfirst: // main track selection, now closer to what Hongyan does...
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     4.0, 100.0); // means at least 2 with PID
        trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr,     100.0, 160.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross,     0.8, 1.1); // lower limit 0.8 in most filterbits! // 1.1 since 26.02.2014
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1<<4); // (=16) filterbit 4! //GetStandardITSTPCTrackCuts2011(kFALSE); loose DCA, 2D cut
        trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
        
        cgTrackCutsAnaSPDfirst = new AliDielectronCutGroup("cgTrackCutsAnaSPDfirst","cgTrackCutsAnaSPDfirst",AliDielectronCutGroup::kCompAND);
        cgTrackCutsAnaSPDfirst->AddCut(trackCutsDiel);
        cgTrackCutsAnaSPDfirst->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsAnaSPDfirst;
        break;
        
      case kPbPb2011TRK_SDDfirstSPDnone: // complimentary tracks, strictly without SPD, to be combined with others!
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     3.0, 100.0); // means at least 3 with PID
        trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr,     100.0, 160.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross,     0.8, 1.1); // lower limit 0.8 in most filterbits! // 1.1 since 26.02.2014
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1<<6); // GetStandardITSTPCTrackCuts2011(kTRUE), SPD none, SDD first
        
        cgTrackCutsAnaSDDnoSPD = new AliDielectronCutGroup("cgTrackCutsAnaSDDnoSPD","cgTrackCutsAnaSDDnoSPD",AliDielectronCutGroup::kCompAND);
        cgTrackCutsAnaSDDnoSPD->AddCut(trackCutsDiel);
        cgTrackCutsAnaSDDnoSPD->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsAnaSDDnoSPD;
        break;
        
        //----------
        // MAIN settings - combined trackset - variation 1
        //----------
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
        // combine typical and new trackcuts with "kCompOR" condition:
        cgTrackCutsAnaSPDorSDD = new AliDielectronCutGroup("cgTrackCutsAnaSPDorSDD","cgTrackCutsAnaSPDorSDD",AliDielectronCutGroup::kCompOR);
        cgTrackCutsAnaSPDorSDD->AddCut(GetTrackCutsAna(kPbPb2011TRK_SPDfirst5cls));         // typical trackcuts with requirement of SPD
        cgTrackCutsAnaSPDorSDD->AddCut(GetTrackCutsAna(kPbPb2011TRK_SDDfirstSPDnone4cls)); // new additional trackcuts with SDD instead of SPD
        trackCuts = cgTrackCutsAnaSPDorSDD;
        break;
        
        //----------
        // MAIN settings - single trackset - variation 1
        //----------
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
        //----------
      case kPbPb2011TRK_SPDfirst5cls: // main track selection, 5+ ITS clusters
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     5.0, 100.0); // means at least 3 with PID
        trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr,     100.0, 160.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross,     0.8, 1.1);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1<<4); // (=16) filterbit 4! //GetStandardITSTPCTrackCuts2011(kFALSE); loose DCA, 2D cut
        trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
        
        cgTrackCutsAnaSPDfirst = new AliDielectronCutGroup("cgTrackCutsAnaSPDfirst","cgTrackCutsAnaSPDfirst",AliDielectronCutGroup::kCompAND);
        cgTrackCutsAnaSPDfirst->AddCut(trackCutsDiel);
        cgTrackCutsAnaSPDfirst->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsAnaSPDfirst;
        break;
        
      case kPbPb2011TRK_SDDfirstSPDnone4cls: // complimentary tracks, 4+ ITS clusters, strictly without SPD, to be combined with others!
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     4.0, 100.0); // means at least 4 with PID
        trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr,     100.0, 160.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross,     0.8, 1.1);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1<<6); // GetStandardITSTPCTrackCuts2011(kTRUE), SPD none, SDD first
        
        cgTrackCutsAnaSDDnoSPD = new AliDielectronCutGroup("cgTrackCutsAnaSDDnoSPD","cgTrackCutsAnaSDDnoSPD",AliDielectronCutGroup::kCompAND);
        cgTrackCutsAnaSDDnoSPD->AddCut(trackCutsDiel);
        cgTrackCutsAnaSDDnoSPD->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsAnaSDDnoSPD;
        break;
        
        // ==========
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2: // no pt and eta ranges in the trackcuts anymore!
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        // trackCutsAOD->AddCut(AliDielectronVarManager::kEta, -0.84, 0.84); // eta commented out later. (05.02.2014)
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     3.0, 100.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   3.5);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr,     110.0, 160.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross,     0.8, 1.0);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(16); //does nothing for ESDs // 16=2^4 -> filter bit 4!
        trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //function in AliDielectronTrackCuts
        
        cgTrackCutsAna = new AliDielectronCutGroup("cgTrackCutsAna","cgTrackCutsAna",AliDielectronCutGroup::kCompAND);
        cgTrackCutsAna->AddCut(trackCutsDiel);
        cgTrackCutsAna->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsAna;
        break;
        
      case kPbPb2011_TPCTOF_Semi1:
        //[...]
      default: cout << "No Analysis Track Cut defined " << endl;
	  }
	  return trackCuts;
	} 
  
  
  
	//Relaxed PID cuts for additional rejectin step, do not use blindly
	AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) {
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetPIDCutsPre() >>>>>>>>>>>>>>>>>>>>>> " << endl;
	  AliAnalysisCuts* pidCuts=0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
        
        // eta range:
        AliDielectronVarCuts *etaRangePre1 = new AliDielectronVarCuts("etaRangePre1","etaRangePre1");
        etaRangePre1->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
        // pt range:
        AliDielectronVarCuts *ptRangePre1 = new AliDielectronVarCuts("ptRangePre1","ptRangePre1");
        ptRangePre1->AddCut(AliDielectronVarManager::kPt, .2, 3.5); // 0.2 is realistic. turnon at ~180MeV
        //AliDielectronVarCuts *ptRangePre2 = new AliDielectronVarCuts("ptRangePre2","ptRangePre2");
        //ptRangePre2->AddCut(AliDielectronVarManager::kPt, .4, 3.5);
        //AliDielectronVarCuts *ptRangePre3 = new AliDielectronVarCuts("ptRangePre3","ptRangePre3");
        //ptRangePre3->AddCut(AliDielectronVarManager::kPt, 0.05, 1.5);
        
        AliDielectronCutGroup* cgITSTPCTOFpre = new AliDielectronCutGroup("cgITSTPCTOFpre","cgITSTPCTOFpre",AliDielectronCutGroup::kCompAND);
        AliDielectronPID *pidITSTPCTOFpre = new AliDielectronPID("pidITSTPCTOFpre","pidITSTPCTOFpre");
        pidITSTPCTOFpre->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -3. , 3., 0. ,100., kFALSE);
        pidITSTPCTOFpre->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3., 0. ,100., kTRUE);
        // ITS will be used:
        //  pidITSTPCTOFpre->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -3. , 3., 0. ,1.7 , kFALSE);
        // TOF will be used if available, and with pt instead of p:
        //  pidITSTPCTOFpre->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3., 0.4,100., kFALSE, 
        //                          AliDielectronPID::kIfAvailable, AliDielectronVarManager::kPt);
        cgITSTPCTOFpre->AddCut(pidITSTPCTOFpre);
        cgITSTPCTOFpre->AddCut(etaRangePre1);
        cgITSTPCTOFpre->AddCut(ptRangePre1);
        cgITSTPCTOFpre->AddCut(GetTrackCutsAna(cutSet));
        
        //        AliDielectronCutGroup* cgTPCpre = new AliDielectronCutGroup("cgTPCpre","cgTPCpre",AliDielectronCutGroup::kCompAND);
        //        AliDielectronPID *pidTPCpre = new AliDielectronPID("pidTPCpre","pidTPCpre");
        //        pidTPCpre->AddCut(AliDielectronPID::kTPC,AliPID::kElectron, -3. , 3., 0. ,100., kFALSE);
        //        pidTPCpre->AddCut(AliDielectronPID::kTPC,AliPID::kPion,     -3. , 3., 0. ,100., kTRUE);
        //        // TOF will be used if available, and with pt instead of p:
        //        pidTPCpre->AddCut(AliDielectronPID::kTOF,AliPID::kElectron, -3. , 3., 0.4,5.  , kFALSE, 
        //                          AliDielectronPID::kIfAvailable, AliDielectronVarManager::kPt);
        //        cgTPCpre->AddCut(pidTPCpre);
        //        cgITSTPCTOFpre->AddCut(etaRangePre1);
        //        cgTPCpre->AddCut(ptRangePre2);
        //        cgTPCpre->AddCut(GetTrackCutsAna(cutSet));
        
        //        AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND);
        //        AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA");
        //        pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron, -3., 3.);
        //        // this means that very many pions will be used for rejection!
        //        cgITSSA->AddCut(pidITSSA);
        //        cgITSTPCTOFpre->AddCut(etaRangePre1);
        //        cgITSSA->AddCut(ptRangePre3);
        //        cgITSSA->AddCut(GetTrackCutsPre(cutSet));
        
        AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR);
        cgInitialTrackFilter->AddCut(GetPIDCutsAna(cutSet)); // in case the prefilter cuts do not include all needed global tracks.
        cgInitialTrackFilter->AddCut(cgITSTPCTOFpre);
        //cgInitialTrackFilter->AddCut(cgTPCpre);
        //cgInitialTrackFilter->AddCut(cgITSSA);
        pidCuts = cgInitialTrackFilter;   // kCompOR works!!! <- checked with 'SetNoPairing()' and commented out 'GetPIDCutsAna(selectedPID)'
        //cout << " ========== pidCuts prefilter: ========== " << endl;
        //pidCuts->Print();
        break;
        
      case kPbPb2011_TPCTOF_Semi1:
        //[...]
      default: cout << "No Prefilter PID Cut defined " << endl;
	  }
	  return pidCuts;
	}
  
  
	//Possibly different cut sets for Prefilter step
	//Not used at the moment
	AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) {
    cout << " >>>>>>>>>>>>>>>>>>>>>> GetTrackCutsPre() >>>>>>>>>>>>>>>>>>>>>> " << endl;
	  AliDielectronCutGroup* trackCuts=0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     3.0, 100.0);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1); //does nothing for ESDs, ITSSA(???) // maybe use FilterBit(2) instead!
        
        cgTrackCutsPre = new AliDielectronCutGroup("cgTrackCutsPre","cgTrackCutsPre",AliDielectronCutGroup::kCompAND);
        cgTrackCutsPre->AddCut(trackCutsDiel);
        cgTrackCutsPre->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsPre;
        break;
        
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     4.0, 100.0);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1); //does nothing for ESDs, ITSSA(???) // maybe use FilterBit(2) instead!
        trackCutsDiel->SetRequireITSRefit(kTRUE); //function in AliDielectronTrackCuts
        trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //function in AliDielectronTrackCuts
        
        cgTrackCutsPre = new AliDielectronCutGroup("cgTrackCutsPre","cgTrackCutsPre",AliDielectronCutGroup::kCompAND);
        cgTrackCutsPre->AddCut(trackCutsDiel);
        cgTrackCutsPre->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsPre;
        break;
        
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2: // no pt ranges in the trackcuts anymore!
        AliDielectronVarCuts* trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
        trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0,   1.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ,  -3.0,   3.0);
        trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS,     3.0, 100.0);
        AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
        trackCutsDiel->SetAODFilterBit(1); //does nothing for ESDs, ITSSA(???) // maybe use FilterBit(2) instead!
        trackCutsDiel->SetRequireITSRefit(kTRUE); //function in AliDielectronTrackCuts
        trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //function in AliDielectronTrackCuts
        
        cgTrackCutsPre = new AliDielectronCutGroup("cgTrackCutsPre","cgTrackCutsPre",AliDielectronCutGroup::kCompAND);
        cgTrackCutsPre->AddCut(trackCutsDiel);
        cgTrackCutsPre->AddCut(trackCutsAOD);
        trackCuts = cgTrackCutsPre;
        break;
        
      case kPbPb2011_TPCTOF_Semi1:
        //[...]
      default: cout << "No Prefilter Track Cut defined " << endl;
	  }
	  return trackCuts;
	}
  
  
  
	//*******************************************************************************
	//*******************************************************************************
	//** ESD TRACK CUTS TUNED FOR AGREEMENT BETWEEN AODS AND ESDS  ******************
	//** NOT NECESSARILY 100% OPTIMIZED FOR DIEL-ANALYSIS          ******************
	//*******************************************************************************
	//*******************************************************************************
  
	//WHEN RUNNING ON ESDs: LOAD Default Cuts for AODs
	AliAnalysisCuts* GetESDTrackCutsAna(Int_t cutSet) {
    //cout << " >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> " << endl;
    cout << " >>>>>>>>>>>>>>>>>>>>>>  GetESDTrackCutsAna()  >>>>>>>>>>>>>>>>>>>>>> " << endl;
    //cout << " >>>>>>>>>>>>>>>>>>>>>> Setting ESD Track Cuts >>>>>>>>>>>>>>>>>>>>>> " << endl;
    //cout << " >>>>>>>>>>>>>>>>>>>>>> ( do we run on ESD?! ) >>>>>>>>>>>>>>>>>>>>>> " << endl;
    //cout << " >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> " << endl;
	  AliESDtrackCuts* esdTrackCutsH = 0x0;
	  switch (cutSet) {
      case kPbPb2011_pidITSTPC_trkSPDfirst_3:
      case kPbPb2011_pidTPC_trkSPDfirst_3:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_2_loose:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_2_loose:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_2_loose:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPD5orSDD4cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst5cls_6_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDorSDD_5_tight:
      case kPbPb2011_pidITS2gevTPCTOFif_trkSPDfirst_5_tight:
      case kPbPb2011_pidITSTPCTOFif_trkSPD5orSDD4cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst5cls_4:
      case kPbPb2011_pidITSTPCTOFif_trkSPDorSDD_1:
      case kPbPb2011_pidITSTPCTOFif_trkSPDfirst_1:
      case kPbPb2011_pidTPCTOF_trkSPDorSDD_1:
      case kPbPb2011_pidTPCTOF_trkSPDfirst_1:
      case kPbPb2011_TPCITS_TOFif1:
      case kPbPb2011_TPCTOF_Semi2:
      case kPbPb2011_TPCTOF_Semi1:
      case kPbPb2011NoPID:
      case kPbPb2011TPCandTOF :
   		case kPbPb2011TPCandTOFHPT:
      case kPbPb2011TPC :
      case kPbPb2011TPCandTOFwide :
      case kPbPb2011TPCorTOF  :
      case kpp2010TPCandTOF :
      case kpp2010TPCorTOF  :
        // standard cuts with very loose DCA: Bit4 (Int: 16), AOD095&115
        
        esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE); 
        esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
        esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
        esdTrackCutsH->SetDCAToVertex2D(kTRUE);
        
        //The cuts below should be the onyl ones that are missing
        //explicitely in the TrackCutsAna method
        //To be sure, StandardITSTPCTrackCuts is loaded however
        /* 
         esdTrackCutsH = new AliESDtrackCuts();
         esdTrackCutsH->SetAcceptKinkDaughters(kFALSE);
         //Not done so far via dielectron cuts:
         */
        /*
         esdTrackCuts->SetDCAToVertex2D(kFALSE);
         esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
         esdTrackCuts->SetMaxChi2PerClusterITS(36);
         */
        
        break;
      default: cout << "No ESD Track Cut defined " << endl;
	  }
	  return esdTrackCutsH;
	} 
  
  
};
 LMEECutLib_reichelt.C:1
 LMEECutLib_reichelt.C:2
 LMEECutLib_reichelt.C:3
 LMEECutLib_reichelt.C:4
 LMEECutLib_reichelt.C:5
 LMEECutLib_reichelt.C:6
 LMEECutLib_reichelt.C:7
 LMEECutLib_reichelt.C:8
 LMEECutLib_reichelt.C:9
 LMEECutLib_reichelt.C:10
 LMEECutLib_reichelt.C:11
 LMEECutLib_reichelt.C:12
 LMEECutLib_reichelt.C:13
 LMEECutLib_reichelt.C:14
 LMEECutLib_reichelt.C:15
 LMEECutLib_reichelt.C:16
 LMEECutLib_reichelt.C:17
 LMEECutLib_reichelt.C:18
 LMEECutLib_reichelt.C:19
 LMEECutLib_reichelt.C:20
 LMEECutLib_reichelt.C:21
 LMEECutLib_reichelt.C:22
 LMEECutLib_reichelt.C:23
 LMEECutLib_reichelt.C:24
 LMEECutLib_reichelt.C:25
 LMEECutLib_reichelt.C:26
 LMEECutLib_reichelt.C:27
 LMEECutLib_reichelt.C:28
 LMEECutLib_reichelt.C:29
 LMEECutLib_reichelt.C:30
 LMEECutLib_reichelt.C:31
 LMEECutLib_reichelt.C:32
 LMEECutLib_reichelt.C:33
 LMEECutLib_reichelt.C:34
 LMEECutLib_reichelt.C:35
 LMEECutLib_reichelt.C:36
 LMEECutLib_reichelt.C:37
 LMEECutLib_reichelt.C:38
 LMEECutLib_reichelt.C:39
 LMEECutLib_reichelt.C:40
 LMEECutLib_reichelt.C:41
 LMEECutLib_reichelt.C:42
 LMEECutLib_reichelt.C:43
 LMEECutLib_reichelt.C:44
 LMEECutLib_reichelt.C:45
 LMEECutLib_reichelt.C:46
 LMEECutLib_reichelt.C:47
 LMEECutLib_reichelt.C:48
 LMEECutLib_reichelt.C:49
 LMEECutLib_reichelt.C:50
 LMEECutLib_reichelt.C:51
 LMEECutLib_reichelt.C:52
 LMEECutLib_reichelt.C:53
 LMEECutLib_reichelt.C:54
 LMEECutLib_reichelt.C:55
 LMEECutLib_reichelt.C:56
 LMEECutLib_reichelt.C:57
 LMEECutLib_reichelt.C:58
 LMEECutLib_reichelt.C:59
 LMEECutLib_reichelt.C:60
 LMEECutLib_reichelt.C:61
 LMEECutLib_reichelt.C:62
 LMEECutLib_reichelt.C:63
 LMEECutLib_reichelt.C:64
 LMEECutLib_reichelt.C:65
 LMEECutLib_reichelt.C:66
 LMEECutLib_reichelt.C:67
 LMEECutLib_reichelt.C:68
 LMEECutLib_reichelt.C:69
 LMEECutLib_reichelt.C:70
 LMEECutLib_reichelt.C:71
 LMEECutLib_reichelt.C:72
 LMEECutLib_reichelt.C:73
 LMEECutLib_reichelt.C:74
 LMEECutLib_reichelt.C:75
 LMEECutLib_reichelt.C:76
 LMEECutLib_reichelt.C:77
 LMEECutLib_reichelt.C:78
 LMEECutLib_reichelt.C:79
 LMEECutLib_reichelt.C:80
 LMEECutLib_reichelt.C:81
 LMEECutLib_reichelt.C:82
 LMEECutLib_reichelt.C:83
 LMEECutLib_reichelt.C:84
 LMEECutLib_reichelt.C:85
 LMEECutLib_reichelt.C:86
 LMEECutLib_reichelt.C:87
 LMEECutLib_reichelt.C:88
 LMEECutLib_reichelt.C:89
 LMEECutLib_reichelt.C:90
 LMEECutLib_reichelt.C:91
 LMEECutLib_reichelt.C:92
 LMEECutLib_reichelt.C:93
 LMEECutLib_reichelt.C:94
 LMEECutLib_reichelt.C:95
 LMEECutLib_reichelt.C:96
 LMEECutLib_reichelt.C:97
 LMEECutLib_reichelt.C:98
 LMEECutLib_reichelt.C:99
 LMEECutLib_reichelt.C:100
 LMEECutLib_reichelt.C:101
 LMEECutLib_reichelt.C:102
 LMEECutLib_reichelt.C:103
 LMEECutLib_reichelt.C:104
 LMEECutLib_reichelt.C:105
 LMEECutLib_reichelt.C:106
 LMEECutLib_reichelt.C:107
 LMEECutLib_reichelt.C:108
 LMEECutLib_reichelt.C:109
 LMEECutLib_reichelt.C:110
 LMEECutLib_reichelt.C:111
 LMEECutLib_reichelt.C:112
 LMEECutLib_reichelt.C:113
 LMEECutLib_reichelt.C:114
 LMEECutLib_reichelt.C:115
 LMEECutLib_reichelt.C:116
 LMEECutLib_reichelt.C:117
 LMEECutLib_reichelt.C:118
 LMEECutLib_reichelt.C:119
 LMEECutLib_reichelt.C:120
 LMEECutLib_reichelt.C:121
 LMEECutLib_reichelt.C:122
 LMEECutLib_reichelt.C:123
 LMEECutLib_reichelt.C:124
 LMEECutLib_reichelt.C:125
 LMEECutLib_reichelt.C:126
 LMEECutLib_reichelt.C:127
 LMEECutLib_reichelt.C:128
 LMEECutLib_reichelt.C:129
 LMEECutLib_reichelt.C:130
 LMEECutLib_reichelt.C:131
 LMEECutLib_reichelt.C:132
 LMEECutLib_reichelt.C:133
 LMEECutLib_reichelt.C:134
 LMEECutLib_reichelt.C:135
 LMEECutLib_reichelt.C:136
 LMEECutLib_reichelt.C:137
 LMEECutLib_reichelt.C:138
 LMEECutLib_reichelt.C:139
 LMEECutLib_reichelt.C:140
 LMEECutLib_reichelt.C:141
 LMEECutLib_reichelt.C:142
 LMEECutLib_reichelt.C:143
 LMEECutLib_reichelt.C:144
 LMEECutLib_reichelt.C:145
 LMEECutLib_reichelt.C:146
 LMEECutLib_reichelt.C:147
 LMEECutLib_reichelt.C:148
 LMEECutLib_reichelt.C:149
 LMEECutLib_reichelt.C:150
 LMEECutLib_reichelt.C:151
 LMEECutLib_reichelt.C:152
 LMEECutLib_reichelt.C:153
 LMEECutLib_reichelt.C:154
 LMEECutLib_reichelt.C:155
 LMEECutLib_reichelt.C:156
 LMEECutLib_reichelt.C:157
 LMEECutLib_reichelt.C:158
 LMEECutLib_reichelt.C:159
 LMEECutLib_reichelt.C:160
 LMEECutLib_reichelt.C:161
 LMEECutLib_reichelt.C:162
 LMEECutLib_reichelt.C:163
 LMEECutLib_reichelt.C:164
 LMEECutLib_reichelt.C:165
 LMEECutLib_reichelt.C:166
 LMEECutLib_reichelt.C:167
 LMEECutLib_reichelt.C:168
 LMEECutLib_reichelt.C:169
 LMEECutLib_reichelt.C:170
 LMEECutLib_reichelt.C:171
 LMEECutLib_reichelt.C:172
 LMEECutLib_reichelt.C:173
 LMEECutLib_reichelt.C:174
 LMEECutLib_reichelt.C:175
 LMEECutLib_reichelt.C:176
 LMEECutLib_reichelt.C:177
 LMEECutLib_reichelt.C:178
 LMEECutLib_reichelt.C:179
 LMEECutLib_reichelt.C:180
 LMEECutLib_reichelt.C:181
 LMEECutLib_reichelt.C:182
 LMEECutLib_reichelt.C:183
 LMEECutLib_reichelt.C:184
 LMEECutLib_reichelt.C:185
 LMEECutLib_reichelt.C:186
 LMEECutLib_reichelt.C:187
 LMEECutLib_reichelt.C:188
 LMEECutLib_reichelt.C:189
 LMEECutLib_reichelt.C:190
 LMEECutLib_reichelt.C:191
 LMEECutLib_reichelt.C:192
 LMEECutLib_reichelt.C:193
 LMEECutLib_reichelt.C:194
 LMEECutLib_reichelt.C:195
 LMEECutLib_reichelt.C:196
 LMEECutLib_reichelt.C:197
 LMEECutLib_reichelt.C:198
 LMEECutLib_reichelt.C:199
 LMEECutLib_reichelt.C:200
 LMEECutLib_reichelt.C:201
 LMEECutLib_reichelt.C:202
 LMEECutLib_reichelt.C:203
 LMEECutLib_reichelt.C:204
 LMEECutLib_reichelt.C:205
 LMEECutLib_reichelt.C:206
 LMEECutLib_reichelt.C:207
 LMEECutLib_reichelt.C:208
 LMEECutLib_reichelt.C:209
 LMEECutLib_reichelt.C:210
 LMEECutLib_reichelt.C:211
 LMEECutLib_reichelt.C:212
 LMEECutLib_reichelt.C:213
 LMEECutLib_reichelt.C:214
 LMEECutLib_reichelt.C:215
 LMEECutLib_reichelt.C:216
 LMEECutLib_reichelt.C:217
 LMEECutLib_reichelt.C:218
 LMEECutLib_reichelt.C:219
 LMEECutLib_reichelt.C:220
 LMEECutLib_reichelt.C:221
 LMEECutLib_reichelt.C:222
 LMEECutLib_reichelt.C:223
 LMEECutLib_reichelt.C:224
 LMEECutLib_reichelt.C:225
 LMEECutLib_reichelt.C:226
 LMEECutLib_reichelt.C:227
 LMEECutLib_reichelt.C:228
 LMEECutLib_reichelt.C:229
 LMEECutLib_reichelt.C:230
 LMEECutLib_reichelt.C:231
 LMEECutLib_reichelt.C:232
 LMEECutLib_reichelt.C:233
 LMEECutLib_reichelt.C:234
 LMEECutLib_reichelt.C:235
 LMEECutLib_reichelt.C:236
 LMEECutLib_reichelt.C:237
 LMEECutLib_reichelt.C:238
 LMEECutLib_reichelt.C:239
 LMEECutLib_reichelt.C:240
 LMEECutLib_reichelt.C:241
 LMEECutLib_reichelt.C:242
 LMEECutLib_reichelt.C:243
 LMEECutLib_reichelt.C:244
 LMEECutLib_reichelt.C:245
 LMEECutLib_reichelt.C:246
 LMEECutLib_reichelt.C:247
 LMEECutLib_reichelt.C:248
 LMEECutLib_reichelt.C:249
 LMEECutLib_reichelt.C:250
 LMEECutLib_reichelt.C:251
 LMEECutLib_reichelt.C:252
 LMEECutLib_reichelt.C:253
 LMEECutLib_reichelt.C:254
 LMEECutLib_reichelt.C:255
 LMEECutLib_reichelt.C:256
 LMEECutLib_reichelt.C:257
 LMEECutLib_reichelt.C:258
 LMEECutLib_reichelt.C:259
 LMEECutLib_reichelt.C:260
 LMEECutLib_reichelt.C:261
 LMEECutLib_reichelt.C:262
 LMEECutLib_reichelt.C:263
 LMEECutLib_reichelt.C:264
 LMEECutLib_reichelt.C:265
 LMEECutLib_reichelt.C:266
 LMEECutLib_reichelt.C:267
 LMEECutLib_reichelt.C:268
 LMEECutLib_reichelt.C:269
 LMEECutLib_reichelt.C:270
 LMEECutLib_reichelt.C:271
 LMEECutLib_reichelt.C:272
 LMEECutLib_reichelt.C:273
 LMEECutLib_reichelt.C:274
 LMEECutLib_reichelt.C:275
 LMEECutLib_reichelt.C:276
 LMEECutLib_reichelt.C:277
 LMEECutLib_reichelt.C:278
 LMEECutLib_reichelt.C:279
 LMEECutLib_reichelt.C:280
 LMEECutLib_reichelt.C:281
 LMEECutLib_reichelt.C:282
 LMEECutLib_reichelt.C:283
 LMEECutLib_reichelt.C:284
 LMEECutLib_reichelt.C:285
 LMEECutLib_reichelt.C:286
 LMEECutLib_reichelt.C:287
 LMEECutLib_reichelt.C:288
 LMEECutLib_reichelt.C:289
 LMEECutLib_reichelt.C:290
 LMEECutLib_reichelt.C:291
 LMEECutLib_reichelt.C:292
 LMEECutLib_reichelt.C:293
 LMEECutLib_reichelt.C:294
 LMEECutLib_reichelt.C:295
 LMEECutLib_reichelt.C:296
 LMEECutLib_reichelt.C:297
 LMEECutLib_reichelt.C:298
 LMEECutLib_reichelt.C:299
 LMEECutLib_reichelt.C:300
 LMEECutLib_reichelt.C:301
 LMEECutLib_reichelt.C:302
 LMEECutLib_reichelt.C:303
 LMEECutLib_reichelt.C:304
 LMEECutLib_reichelt.C:305
 LMEECutLib_reichelt.C:306
 LMEECutLib_reichelt.C:307
 LMEECutLib_reichelt.C:308
 LMEECutLib_reichelt.C:309
 LMEECutLib_reichelt.C:310
 LMEECutLib_reichelt.C:311
 LMEECutLib_reichelt.C:312
 LMEECutLib_reichelt.C:313
 LMEECutLib_reichelt.C:314
 LMEECutLib_reichelt.C:315
 LMEECutLib_reichelt.C:316
 LMEECutLib_reichelt.C:317
 LMEECutLib_reichelt.C:318
 LMEECutLib_reichelt.C:319
 LMEECutLib_reichelt.C:320
 LMEECutLib_reichelt.C:321
 LMEECutLib_reichelt.C:322
 LMEECutLib_reichelt.C:323
 LMEECutLib_reichelt.C:324
 LMEECutLib_reichelt.C:325
 LMEECutLib_reichelt.C:326
 LMEECutLib_reichelt.C:327
 LMEECutLib_reichelt.C:328
 LMEECutLib_reichelt.C:329
 LMEECutLib_reichelt.C:330
 LMEECutLib_reichelt.C:331
 LMEECutLib_reichelt.C:332
 LMEECutLib_reichelt.C:333
 LMEECutLib_reichelt.C:334
 LMEECutLib_reichelt.C:335
 LMEECutLib_reichelt.C:336
 LMEECutLib_reichelt.C:337
 LMEECutLib_reichelt.C:338
 LMEECutLib_reichelt.C:339
 LMEECutLib_reichelt.C:340
 LMEECutLib_reichelt.C:341
 LMEECutLib_reichelt.C:342
 LMEECutLib_reichelt.C:343
 LMEECutLib_reichelt.C:344
 LMEECutLib_reichelt.C:345
 LMEECutLib_reichelt.C:346
 LMEECutLib_reichelt.C:347
 LMEECutLib_reichelt.C:348
 LMEECutLib_reichelt.C:349
 LMEECutLib_reichelt.C:350
 LMEECutLib_reichelt.C:351
 LMEECutLib_reichelt.C:352
 LMEECutLib_reichelt.C:353
 LMEECutLib_reichelt.C:354
 LMEECutLib_reichelt.C:355
 LMEECutLib_reichelt.C:356
 LMEECutLib_reichelt.C:357
 LMEECutLib_reichelt.C:358
 LMEECutLib_reichelt.C:359
 LMEECutLib_reichelt.C:360
 LMEECutLib_reichelt.C:361
 LMEECutLib_reichelt.C:362
 LMEECutLib_reichelt.C:363
 LMEECutLib_reichelt.C:364
 LMEECutLib_reichelt.C:365
 LMEECutLib_reichelt.C:366
 LMEECutLib_reichelt.C:367
 LMEECutLib_reichelt.C:368
 LMEECutLib_reichelt.C:369
 LMEECutLib_reichelt.C:370
 LMEECutLib_reichelt.C:371
 LMEECutLib_reichelt.C:372
 LMEECutLib_reichelt.C:373
 LMEECutLib_reichelt.C:374
 LMEECutLib_reichelt.C:375
 LMEECutLib_reichelt.C:376
 LMEECutLib_reichelt.C:377
 LMEECutLib_reichelt.C:378
 LMEECutLib_reichelt.C:379
 LMEECutLib_reichelt.C:380
 LMEECutLib_reichelt.C:381
 LMEECutLib_reichelt.C:382
 LMEECutLib_reichelt.C:383
 LMEECutLib_reichelt.C:384
 LMEECutLib_reichelt.C:385
 LMEECutLib_reichelt.C:386
 LMEECutLib_reichelt.C:387
 LMEECutLib_reichelt.C:388
 LMEECutLib_reichelt.C:389
 LMEECutLib_reichelt.C:390
 LMEECutLib_reichelt.C:391
 LMEECutLib_reichelt.C:392
 LMEECutLib_reichelt.C:393
 LMEECutLib_reichelt.C:394
 LMEECutLib_reichelt.C:395
 LMEECutLib_reichelt.C:396
 LMEECutLib_reichelt.C:397
 LMEECutLib_reichelt.C:398
 LMEECutLib_reichelt.C:399
 LMEECutLib_reichelt.C:400
 LMEECutLib_reichelt.C:401
 LMEECutLib_reichelt.C:402
 LMEECutLib_reichelt.C:403
 LMEECutLib_reichelt.C:404
 LMEECutLib_reichelt.C:405
 LMEECutLib_reichelt.C:406
 LMEECutLib_reichelt.C:407
 LMEECutLib_reichelt.C:408
 LMEECutLib_reichelt.C:409
 LMEECutLib_reichelt.C:410
 LMEECutLib_reichelt.C:411
 LMEECutLib_reichelt.C:412
 LMEECutLib_reichelt.C:413
 LMEECutLib_reichelt.C:414
 LMEECutLib_reichelt.C:415
 LMEECutLib_reichelt.C:416
 LMEECutLib_reichelt.C:417
 LMEECutLib_reichelt.C:418
 LMEECutLib_reichelt.C:419
 LMEECutLib_reichelt.C:420
 LMEECutLib_reichelt.C:421
 LMEECutLib_reichelt.C:422
 LMEECutLib_reichelt.C:423
 LMEECutLib_reichelt.C:424
 LMEECutLib_reichelt.C:425
 LMEECutLib_reichelt.C:426
 LMEECutLib_reichelt.C:427
 LMEECutLib_reichelt.C:428
 LMEECutLib_reichelt.C:429
 LMEECutLib_reichelt.C:430
 LMEECutLib_reichelt.C:431
 LMEECutLib_reichelt.C:432
 LMEECutLib_reichelt.C:433
 LMEECutLib_reichelt.C:434
 LMEECutLib_reichelt.C:435
 LMEECutLib_reichelt.C:436
 LMEECutLib_reichelt.C:437
 LMEECutLib_reichelt.C:438
 LMEECutLib_reichelt.C:439
 LMEECutLib_reichelt.C:440
 LMEECutLib_reichelt.C:441
 LMEECutLib_reichelt.C:442
 LMEECutLib_reichelt.C:443
 LMEECutLib_reichelt.C:444
 LMEECutLib_reichelt.C:445
 LMEECutLib_reichelt.C:446
 LMEECutLib_reichelt.C:447
 LMEECutLib_reichelt.C:448
 LMEECutLib_reichelt.C:449
 LMEECutLib_reichelt.C:450
 LMEECutLib_reichelt.C:451
 LMEECutLib_reichelt.C:452
 LMEECutLib_reichelt.C:453
 LMEECutLib_reichelt.C:454
 LMEECutLib_reichelt.C:455
 LMEECutLib_reichelt.C:456
 LMEECutLib_reichelt.C:457
 LMEECutLib_reichelt.C:458
 LMEECutLib_reichelt.C:459
 LMEECutLib_reichelt.C:460
 LMEECutLib_reichelt.C:461
 LMEECutLib_reichelt.C:462
 LMEECutLib_reichelt.C:463
 LMEECutLib_reichelt.C:464
 LMEECutLib_reichelt.C:465
 LMEECutLib_reichelt.C:466
 LMEECutLib_reichelt.C:467
 LMEECutLib_reichelt.C:468
 LMEECutLib_reichelt.C:469
 LMEECutLib_reichelt.C:470
 LMEECutLib_reichelt.C:471
 LMEECutLib_reichelt.C:472
 LMEECutLib_reichelt.C:473
 LMEECutLib_reichelt.C:474
 LMEECutLib_reichelt.C:475
 LMEECutLib_reichelt.C:476
 LMEECutLib_reichelt.C:477
 LMEECutLib_reichelt.C:478
 LMEECutLib_reichelt.C:479
 LMEECutLib_reichelt.C:480
 LMEECutLib_reichelt.C:481
 LMEECutLib_reichelt.C:482
 LMEECutLib_reichelt.C:483
 LMEECutLib_reichelt.C:484
 LMEECutLib_reichelt.C:485
 LMEECutLib_reichelt.C:486
 LMEECutLib_reichelt.C:487
 LMEECutLib_reichelt.C:488
 LMEECutLib_reichelt.C:489
 LMEECutLib_reichelt.C:490
 LMEECutLib_reichelt.C:491
 LMEECutLib_reichelt.C:492
 LMEECutLib_reichelt.C:493
 LMEECutLib_reichelt.C:494
 LMEECutLib_reichelt.C:495
 LMEECutLib_reichelt.C:496
 LMEECutLib_reichelt.C:497
 LMEECutLib_reichelt.C:498
 LMEECutLib_reichelt.C:499
 LMEECutLib_reichelt.C:500
 LMEECutLib_reichelt.C:501
 LMEECutLib_reichelt.C:502
 LMEECutLib_reichelt.C:503
 LMEECutLib_reichelt.C:504
 LMEECutLib_reichelt.C:505
 LMEECutLib_reichelt.C:506
 LMEECutLib_reichelt.C:507
 LMEECutLib_reichelt.C:508
 LMEECutLib_reichelt.C:509
 LMEECutLib_reichelt.C:510
 LMEECutLib_reichelt.C:511
 LMEECutLib_reichelt.C:512
 LMEECutLib_reichelt.C:513
 LMEECutLib_reichelt.C:514
 LMEECutLib_reichelt.C:515
 LMEECutLib_reichelt.C:516
 LMEECutLib_reichelt.C:517
 LMEECutLib_reichelt.C:518
 LMEECutLib_reichelt.C:519
 LMEECutLib_reichelt.C:520
 LMEECutLib_reichelt.C:521
 LMEECutLib_reichelt.C:522
 LMEECutLib_reichelt.C:523
 LMEECutLib_reichelt.C:524
 LMEECutLib_reichelt.C:525
 LMEECutLib_reichelt.C:526
 LMEECutLib_reichelt.C:527
 LMEECutLib_reichelt.C:528
 LMEECutLib_reichelt.C:529
 LMEECutLib_reichelt.C:530
 LMEECutLib_reichelt.C:531
 LMEECutLib_reichelt.C:532
 LMEECutLib_reichelt.C:533
 LMEECutLib_reichelt.C:534
 LMEECutLib_reichelt.C:535
 LMEECutLib_reichelt.C:536
 LMEECutLib_reichelt.C:537
 LMEECutLib_reichelt.C:538
 LMEECutLib_reichelt.C:539
 LMEECutLib_reichelt.C:540
 LMEECutLib_reichelt.C:541
 LMEECutLib_reichelt.C:542
 LMEECutLib_reichelt.C:543
 LMEECutLib_reichelt.C:544
 LMEECutLib_reichelt.C:545
 LMEECutLib_reichelt.C:546
 LMEECutLib_reichelt.C:547
 LMEECutLib_reichelt.C:548
 LMEECutLib_reichelt.C:549
 LMEECutLib_reichelt.C:550
 LMEECutLib_reichelt.C:551
 LMEECutLib_reichelt.C:552
 LMEECutLib_reichelt.C:553
 LMEECutLib_reichelt.C:554
 LMEECutLib_reichelt.C:555
 LMEECutLib_reichelt.C:556
 LMEECutLib_reichelt.C:557
 LMEECutLib_reichelt.C:558
 LMEECutLib_reichelt.C:559
 LMEECutLib_reichelt.C:560
 LMEECutLib_reichelt.C:561
 LMEECutLib_reichelt.C:562
 LMEECutLib_reichelt.C:563
 LMEECutLib_reichelt.C:564
 LMEECutLib_reichelt.C:565
 LMEECutLib_reichelt.C:566
 LMEECutLib_reichelt.C:567
 LMEECutLib_reichelt.C:568
 LMEECutLib_reichelt.C:569
 LMEECutLib_reichelt.C:570
 LMEECutLib_reichelt.C:571
 LMEECutLib_reichelt.C:572
 LMEECutLib_reichelt.C:573
 LMEECutLib_reichelt.C:574
 LMEECutLib_reichelt.C:575
 LMEECutLib_reichelt.C:576
 LMEECutLib_reichelt.C:577
 LMEECutLib_reichelt.C:578
 LMEECutLib_reichelt.C:579
 LMEECutLib_reichelt.C:580
 LMEECutLib_reichelt.C:581
 LMEECutLib_reichelt.C:582
 LMEECutLib_reichelt.C:583
 LMEECutLib_reichelt.C:584
 LMEECutLib_reichelt.C:585
 LMEECutLib_reichelt.C:586
 LMEECutLib_reichelt.C:587
 LMEECutLib_reichelt.C:588
 LMEECutLib_reichelt.C:589
 LMEECutLib_reichelt.C:590
 LMEECutLib_reichelt.C:591
 LMEECutLib_reichelt.C:592
 LMEECutLib_reichelt.C:593
 LMEECutLib_reichelt.C:594
 LMEECutLib_reichelt.C:595
 LMEECutLib_reichelt.C:596
 LMEECutLib_reichelt.C:597
 LMEECutLib_reichelt.C:598
 LMEECutLib_reichelt.C:599
 LMEECutLib_reichelt.C:600
 LMEECutLib_reichelt.C:601
 LMEECutLib_reichelt.C:602
 LMEECutLib_reichelt.C:603
 LMEECutLib_reichelt.C:604
 LMEECutLib_reichelt.C:605
 LMEECutLib_reichelt.C:606
 LMEECutLib_reichelt.C:607
 LMEECutLib_reichelt.C:608
 LMEECutLib_reichelt.C:609
 LMEECutLib_reichelt.C:610
 LMEECutLib_reichelt.C:611
 LMEECutLib_reichelt.C:612
 LMEECutLib_reichelt.C:613
 LMEECutLib_reichelt.C:614
 LMEECutLib_reichelt.C:615
 LMEECutLib_reichelt.C:616
 LMEECutLib_reichelt.C:617
 LMEECutLib_reichelt.C:618
 LMEECutLib_reichelt.C:619
 LMEECutLib_reichelt.C:620
 LMEECutLib_reichelt.C:621
 LMEECutLib_reichelt.C:622
 LMEECutLib_reichelt.C:623
 LMEECutLib_reichelt.C:624
 LMEECutLib_reichelt.C:625
 LMEECutLib_reichelt.C:626
 LMEECutLib_reichelt.C:627
 LMEECutLib_reichelt.C:628
 LMEECutLib_reichelt.C:629
 LMEECutLib_reichelt.C:630
 LMEECutLib_reichelt.C:631
 LMEECutLib_reichelt.C:632
 LMEECutLib_reichelt.C:633
 LMEECutLib_reichelt.C:634
 LMEECutLib_reichelt.C:635
 LMEECutLib_reichelt.C:636
 LMEECutLib_reichelt.C:637
 LMEECutLib_reichelt.C:638
 LMEECutLib_reichelt.C:639
 LMEECutLib_reichelt.C:640
 LMEECutLib_reichelt.C:641
 LMEECutLib_reichelt.C:642
 LMEECutLib_reichelt.C:643
 LMEECutLib_reichelt.C:644
 LMEECutLib_reichelt.C:645
 LMEECutLib_reichelt.C:646
 LMEECutLib_reichelt.C:647
 LMEECutLib_reichelt.C:648
 LMEECutLib_reichelt.C:649
 LMEECutLib_reichelt.C:650
 LMEECutLib_reichelt.C:651
 LMEECutLib_reichelt.C:652
 LMEECutLib_reichelt.C:653
 LMEECutLib_reichelt.C:654
 LMEECutLib_reichelt.C:655
 LMEECutLib_reichelt.C:656
 LMEECutLib_reichelt.C:657
 LMEECutLib_reichelt.C:658
 LMEECutLib_reichelt.C:659
 LMEECutLib_reichelt.C:660
 LMEECutLib_reichelt.C:661
 LMEECutLib_reichelt.C:662
 LMEECutLib_reichelt.C:663
 LMEECutLib_reichelt.C:664
 LMEECutLib_reichelt.C:665
 LMEECutLib_reichelt.C:666
 LMEECutLib_reichelt.C:667
 LMEECutLib_reichelt.C:668
 LMEECutLib_reichelt.C:669
 LMEECutLib_reichelt.C:670
 LMEECutLib_reichelt.C:671
 LMEECutLib_reichelt.C:672
 LMEECutLib_reichelt.C:673
 LMEECutLib_reichelt.C:674
 LMEECutLib_reichelt.C:675
 LMEECutLib_reichelt.C:676
 LMEECutLib_reichelt.C:677
 LMEECutLib_reichelt.C:678
 LMEECutLib_reichelt.C:679
 LMEECutLib_reichelt.C:680
 LMEECutLib_reichelt.C:681
 LMEECutLib_reichelt.C:682
 LMEECutLib_reichelt.C:683
 LMEECutLib_reichelt.C:684
 LMEECutLib_reichelt.C:685
 LMEECutLib_reichelt.C:686
 LMEECutLib_reichelt.C:687
 LMEECutLib_reichelt.C:688
 LMEECutLib_reichelt.C:689
 LMEECutLib_reichelt.C:690
 LMEECutLib_reichelt.C:691
 LMEECutLib_reichelt.C:692
 LMEECutLib_reichelt.C:693
 LMEECutLib_reichelt.C:694
 LMEECutLib_reichelt.C:695
 LMEECutLib_reichelt.C:696
 LMEECutLib_reichelt.C:697
 LMEECutLib_reichelt.C:698
 LMEECutLib_reichelt.C:699
 LMEECutLib_reichelt.C:700
 LMEECutLib_reichelt.C:701
 LMEECutLib_reichelt.C:702
 LMEECutLib_reichelt.C:703
 LMEECutLib_reichelt.C:704
 LMEECutLib_reichelt.C:705
 LMEECutLib_reichelt.C:706
 LMEECutLib_reichelt.C:707
 LMEECutLib_reichelt.C:708
 LMEECutLib_reichelt.C:709
 LMEECutLib_reichelt.C:710
 LMEECutLib_reichelt.C:711
 LMEECutLib_reichelt.C:712
 LMEECutLib_reichelt.C:713
 LMEECutLib_reichelt.C:714
 LMEECutLib_reichelt.C:715
 LMEECutLib_reichelt.C:716
 LMEECutLib_reichelt.C:717
 LMEECutLib_reichelt.C:718
 LMEECutLib_reichelt.C:719
 LMEECutLib_reichelt.C:720
 LMEECutLib_reichelt.C:721
 LMEECutLib_reichelt.C:722
 LMEECutLib_reichelt.C:723
 LMEECutLib_reichelt.C:724
 LMEECutLib_reichelt.C:725
 LMEECutLib_reichelt.C:726
 LMEECutLib_reichelt.C:727
 LMEECutLib_reichelt.C:728
 LMEECutLib_reichelt.C:729
 LMEECutLib_reichelt.C:730
 LMEECutLib_reichelt.C:731
 LMEECutLib_reichelt.C:732
 LMEECutLib_reichelt.C:733
 LMEECutLib_reichelt.C:734
 LMEECutLib_reichelt.C:735
 LMEECutLib_reichelt.C:736
 LMEECutLib_reichelt.C:737
 LMEECutLib_reichelt.C:738
 LMEECutLib_reichelt.C:739
 LMEECutLib_reichelt.C:740
 LMEECutLib_reichelt.C:741
 LMEECutLib_reichelt.C:742
 LMEECutLib_reichelt.C:743
 LMEECutLib_reichelt.C:744
 LMEECutLib_reichelt.C:745
 LMEECutLib_reichelt.C:746
 LMEECutLib_reichelt.C:747
 LMEECutLib_reichelt.C:748
 LMEECutLib_reichelt.C:749
 LMEECutLib_reichelt.C:750
 LMEECutLib_reichelt.C:751
 LMEECutLib_reichelt.C:752
 LMEECutLib_reichelt.C:753
 LMEECutLib_reichelt.C:754
 LMEECutLib_reichelt.C:755
 LMEECutLib_reichelt.C:756
 LMEECutLib_reichelt.C:757
 LMEECutLib_reichelt.C:758
 LMEECutLib_reichelt.C:759
 LMEECutLib_reichelt.C:760
 LMEECutLib_reichelt.C:761
 LMEECutLib_reichelt.C:762
 LMEECutLib_reichelt.C:763
 LMEECutLib_reichelt.C:764
 LMEECutLib_reichelt.C:765
 LMEECutLib_reichelt.C:766
 LMEECutLib_reichelt.C:767
 LMEECutLib_reichelt.C:768
 LMEECutLib_reichelt.C:769
 LMEECutLib_reichelt.C:770
 LMEECutLib_reichelt.C:771
 LMEECutLib_reichelt.C:772
 LMEECutLib_reichelt.C:773
 LMEECutLib_reichelt.C:774
 LMEECutLib_reichelt.C:775
 LMEECutLib_reichelt.C:776
 LMEECutLib_reichelt.C:777
 LMEECutLib_reichelt.C:778
 LMEECutLib_reichelt.C:779
 LMEECutLib_reichelt.C:780
 LMEECutLib_reichelt.C:781
 LMEECutLib_reichelt.C:782
 LMEECutLib_reichelt.C:783
 LMEECutLib_reichelt.C:784
 LMEECutLib_reichelt.C:785
 LMEECutLib_reichelt.C:786
 LMEECutLib_reichelt.C:787
 LMEECutLib_reichelt.C:788
 LMEECutLib_reichelt.C:789
 LMEECutLib_reichelt.C:790
 LMEECutLib_reichelt.C:791
 LMEECutLib_reichelt.C:792
 LMEECutLib_reichelt.C:793
 LMEECutLib_reichelt.C:794
 LMEECutLib_reichelt.C:795
 LMEECutLib_reichelt.C:796
 LMEECutLib_reichelt.C:797
 LMEECutLib_reichelt.C:798
 LMEECutLib_reichelt.C:799
 LMEECutLib_reichelt.C:800
 LMEECutLib_reichelt.C:801
 LMEECutLib_reichelt.C:802
 LMEECutLib_reichelt.C:803
 LMEECutLib_reichelt.C:804
 LMEECutLib_reichelt.C:805
 LMEECutLib_reichelt.C:806
 LMEECutLib_reichelt.C:807
 LMEECutLib_reichelt.C:808
 LMEECutLib_reichelt.C:809
 LMEECutLib_reichelt.C:810
 LMEECutLib_reichelt.C:811
 LMEECutLib_reichelt.C:812
 LMEECutLib_reichelt.C:813
 LMEECutLib_reichelt.C:814
 LMEECutLib_reichelt.C:815
 LMEECutLib_reichelt.C:816
 LMEECutLib_reichelt.C:817
 LMEECutLib_reichelt.C:818
 LMEECutLib_reichelt.C:819
 LMEECutLib_reichelt.C:820
 LMEECutLib_reichelt.C:821
 LMEECutLib_reichelt.C:822
 LMEECutLib_reichelt.C:823
 LMEECutLib_reichelt.C:824
 LMEECutLib_reichelt.C:825
 LMEECutLib_reichelt.C:826
 LMEECutLib_reichelt.C:827
 LMEECutLib_reichelt.C:828
 LMEECutLib_reichelt.C:829
 LMEECutLib_reichelt.C:830
 LMEECutLib_reichelt.C:831
 LMEECutLib_reichelt.C:832
 LMEECutLib_reichelt.C:833
 LMEECutLib_reichelt.C:834
 LMEECutLib_reichelt.C:835
 LMEECutLib_reichelt.C:836
 LMEECutLib_reichelt.C:837
 LMEECutLib_reichelt.C:838
 LMEECutLib_reichelt.C:839
 LMEECutLib_reichelt.C:840
 LMEECutLib_reichelt.C:841
 LMEECutLib_reichelt.C:842
 LMEECutLib_reichelt.C:843
 LMEECutLib_reichelt.C:844
 LMEECutLib_reichelt.C:845
 LMEECutLib_reichelt.C:846
 LMEECutLib_reichelt.C:847
 LMEECutLib_reichelt.C:848
 LMEECutLib_reichelt.C:849
 LMEECutLib_reichelt.C:850
 LMEECutLib_reichelt.C:851
 LMEECutLib_reichelt.C:852
 LMEECutLib_reichelt.C:853
 LMEECutLib_reichelt.C:854
 LMEECutLib_reichelt.C:855
 LMEECutLib_reichelt.C:856
 LMEECutLib_reichelt.C:857
 LMEECutLib_reichelt.C:858
 LMEECutLib_reichelt.C:859
 LMEECutLib_reichelt.C:860
 LMEECutLib_reichelt.C:861
 LMEECutLib_reichelt.C:862
 LMEECutLib_reichelt.C:863
 LMEECutLib_reichelt.C:864
 LMEECutLib_reichelt.C:865
 LMEECutLib_reichelt.C:866
 LMEECutLib_reichelt.C:867
 LMEECutLib_reichelt.C:868
 LMEECutLib_reichelt.C:869
 LMEECutLib_reichelt.C:870
 LMEECutLib_reichelt.C:871
 LMEECutLib_reichelt.C:872
 LMEECutLib_reichelt.C:873
 LMEECutLib_reichelt.C:874
 LMEECutLib_reichelt.C:875
 LMEECutLib_reichelt.C:876
 LMEECutLib_reichelt.C:877
 LMEECutLib_reichelt.C:878
 LMEECutLib_reichelt.C:879
 LMEECutLib_reichelt.C:880
 LMEECutLib_reichelt.C:881
 LMEECutLib_reichelt.C:882
 LMEECutLib_reichelt.C:883
 LMEECutLib_reichelt.C:884
 LMEECutLib_reichelt.C:885
 LMEECutLib_reichelt.C:886
 LMEECutLib_reichelt.C:887
 LMEECutLib_reichelt.C:888
 LMEECutLib_reichelt.C:889
 LMEECutLib_reichelt.C:890
 LMEECutLib_reichelt.C:891
 LMEECutLib_reichelt.C:892
 LMEECutLib_reichelt.C:893
 LMEECutLib_reichelt.C:894
 LMEECutLib_reichelt.C:895
 LMEECutLib_reichelt.C:896
 LMEECutLib_reichelt.C:897
 LMEECutLib_reichelt.C:898
 LMEECutLib_reichelt.C:899
 LMEECutLib_reichelt.C:900
 LMEECutLib_reichelt.C:901
 LMEECutLib_reichelt.C:902
 LMEECutLib_reichelt.C:903
 LMEECutLib_reichelt.C:904
 LMEECutLib_reichelt.C:905
 LMEECutLib_reichelt.C:906
 LMEECutLib_reichelt.C:907
 LMEECutLib_reichelt.C:908
 LMEECutLib_reichelt.C:909
 LMEECutLib_reichelt.C:910
 LMEECutLib_reichelt.C:911
 LMEECutLib_reichelt.C:912