ROOT logo
class LMEECutLib {

  public:
	static  enum LMMECutSet {
   		kPbPb2011TPCandTOF,  //TOF required
   		kPbPb2011TPCandTOFwide, //TOF required, more relaxed cut on TPC
		kPbPb2011TPCorTOF,
		kpp2010TPCandTOF,
		kpp2010TPCorTOF,
		kCUTSETMAX
	};

	static  enum LMMECentSel {
	  kPbPb2011Central,
		kPbPb2011SemiCentral,
		kPbPb2011Peripheral,
		kCENTSELMAX
	};

	//char* LMEECutNames[kCUTSETMAX] = { "PbPb2011TPCandTOF","PbPb2011TPCorTOF"};
	
	Bool_t useMC;


	LMEECutLib() {useMC=kFALSE;}

	AliDielectronEventCuts*     GetEventCuts(Int_t cutSet);
	AliAnalysisCuts*            GetCentralityCuts(Int_t centSel);
	AliDielectronTrackRotator*  GetTrackRotator(Int_t cutSet);
	AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet);

	AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet);  
	AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet);  

	AliAnalysisCuts* GetPairCuts2(Int_t cutSet,Bool_t tooglePC=kFALSE);  
	AliAnalysisCuts* GetPairCuts(Int_t cutSet);  

	AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet);  
	AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet);  

	void SetMCFlag( Bool_t isMC=kTRUE) {useMC=isMC;}

	AliDielectronEventCuts* GetEventCuts(Int_t cutSet) {
	  AliDielectronEventCuts* eventCuts = 0x0;
	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		case kpp2010TPCorTOF  :
		  eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
		  eventCuts->SetRequireVertex();
		  eventCuts->SetMinVtxContributors(1);
		  eventCuts->SetVertexZ(-10.,10.);
		  break;
		default: cout << "No Event Cut defined" << endl;
	  }
	  return eventCuts;
	}

	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 kPbPb2011SemiCentral:
		  centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral");
		  //Restrict to 50%, Trigger selction
		  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;
	}


	AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet) {
	  AliDielectronTrackRotator* trackRotator = 0x0;
	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		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 kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kPbPb2011TPCorTOF  :
		  mixingHandler = new AliDielectronMixingHandler;
		  mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
		  mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80,100");
		  mixingHandler->AddVariable(AliDielectronVarManager::kv0ACrpH2,"-6*(TMath::Pi()/6),-5*(TMath::Pi()/6),-4*(TMath::Pi()/6),-3*(TMath::Pi()/6),-2*(TMath::Pi()/6),-1*(TMath::Pi()/6),0,1*(TMath::Pi()/6),2*(TMath::Pi()/6),3*(TMath::Pi()/6),4*(TMath::Pi()/6),5*(TMath::Pi()/6),6*(TMath::Pi()/6)");
		  //mixingHandler->SetDepth(50);
		  mixingHandler->SetDepth(15);
		  mixingHandler->SetMixType(AliDielectronMixingHandler::kAll);
		  break;
		case kpp2010TPCandTOF :
		case kpp2010TPCorTOF  :
		  mixingHandler = new AliDielectronMixingHandler;
		  mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10");
		  mixingHandler->AddVariable(AliDielectronVarManager::kNacc,"0,10000");
		  //might want to add multiplicity?
		  mixingHandler->SetDepth(25);
		  mixingHandler->SetMixType(AliDielectronMixingHandler::kAll);
		  break;
		default: cout << "No Mixing Handler defined" << endl;
	  }
	  return mixingHandler;
	}


	AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) {
	  AliAnalysisCuts* anaCuts=0x0;

	  // + [2] added for Dec2010 Cut! 
	  TF1 *lowerCut = new TF1("lowerCut", "[0] * TMath::Exp([1]*x) + [2]", 0, 20);
	  /* until Nov2010
		 lowerCut->SetParameter(0, -2.7);
		 lowerCut->SetParameter(1, -0.4357);
	   */
	  /* 18.01.2011 ALiHFEpid.cxx */
	  lowerCut->SetParameter(0,-3.7);
	  lowerCut->SetParameter(1,-0.8);
	  lowerCut->SetParameter(2,-0.35);

	  if (useMC) { //overwrite parameters
		lowerCut->SetParameter(0,-2.5);
		lowerCut->SetParameter(2,-2.2);
	  }

	  //---------------------------------------------
	  AliDielectronPID *pidTPCTOFeOnly = new AliDielectronPID("TPC-TOF","TPC-TOF");
	  pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3. ,3.,0.0,100.,kFALSE);
	  pidTPCTOFeOnly->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );

	  AliDielectronPID *pidTPCandTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE");
	  pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE);
	  pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
	  pidTPCandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );

	  AliDielectronPID *pidTPChardTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE");
	  pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE);
	  pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE);
	  pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE);
	  pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE);
	  pidTPChardTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE );
	  //___________________________________________
	  AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF");
	  pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,0.4,kFALSE);
	  pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.4,100.,kFALSE);
	  pidTT->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.2 , 100., kFALSE );

	  pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE);
	  pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE);
	  pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE);
	  //___________________________________________
	  AliDielectronVarCuts *pidTPCsignal = new AliDielectronVarCuts("pidTPCsignal","cut on the TPC signal");
	  if (useMC) {
		  pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,65.,85.); 
	  }
	  else {
		  pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,75.,90.); 
	  }
	  //___________________________________________
	  AliDielectronVarCuts *pidTPCsignalWide = new AliDielectronVarCuts("pidTPCsignalWide","cut on the TPC signal");
	  pidTPCsignalWide->AddCut(AliDielectronVarManager::kTPCsignal,70.,90.); 
	  //___________________________________________

	  AliDielectronVarCuts *pTPC = new AliDielectronVarCuts("P>.4","P>.4");
	  pTPC->AddCut(AliDielectronVarManager::kPt,.4,5.);
	  
	  AliDielectronVarCuts *pMin = new AliDielectronVarCuts("P>.2","P>.2");
	  pMin->AddCut(AliDielectronVarManager::kPt,.2,5.);

	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
		  cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
		  cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
		  cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
		  cgSecondTrackFilterPIDTPC1->AddCut(GetTrackCutsAna(cutSet));
		  anaCuts = cgSecondTrackFilterPIDTPC1;
		  break;
		case kPbPb2011TPCandTOFwide :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
		  cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
		  cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
		  cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide);
		  cgSecondTrackFilterPIDTPC1->AddCut(GetTrackCutsAna(cutSet));
		  anaCuts = cgSecondTrackFilterPIDTPC1;
		  break;
		case kPbPb2011TPCorTOF  :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC2 = new AliDielectronCutGroup("cgPIDTPC2","cgPIDTPC2",AliDielectronCutGroup::kCompAND);
		  cgSecondTrackFilterPIDTPC2->AddCut(pMin);
		  cgSecondTrackFilterPIDTPC2->AddCut(pidTT);
		  cgSecondTrackFilterPIDTPC2->AddCut(pidTPCsignal);
		  cgSecondTrackFilterPIDTPC2->AddCut(GetTrackCutsAna(cutSet));
		  anaCuts = cgSecondTrackFilterPIDTPC2;
		  break;
		case kpp2010TPCandTOF :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
		  cgSecondTrackFilterPIDTPC->AddCut(pTPC);
		  //cgSecondTrackFilterPIDTPC->AddCut(pidTPChardTOF);
		  cgSecondTrackFilterPIDTPC->AddCut(pidTPCandTOF);
		  cgSecondTrackFilterPIDTPC->AddCut(pidTPCTOFeOnly);
		  cgSecondTrackFilterPIDTPC->AddCut(GetTrackCutsAna(cutSet));
		  anaCuts = cgSecondTrackFilterPIDTPC;
		  break;
		case kpp2010TPCorTOF  :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
		  cgSecondTrackFilterPIDTPC->AddCut(pMin);
		  cgSecondTrackFilterPIDTPC->AddCut(pidTT);
		  cgSecondTrackFilterPIDTPC->AddCut(GetTrackCutsAna(cutSet));
		  anaCuts = cgSecondTrackFilterPIDTPC;
		  break;
		default: cout << "No Analysis PID Cut defined " << endl;
	  }
	  return anaCuts;
	}

	AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) {
	  AliAnalysisCuts* anaCuts=0x0;
	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		case kpp2010TPCorTOF  :
		  AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
		  AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND);
		  AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre");
		  pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.);
		  cgITSTPC->AddCut(pidITSTPC);
		  cgITSTPC->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.);
		  cgITSSA->AddCut(pidITSSA);
		  cgITSSA->AddCut(GetTrackCutsPre(cutSet));

		  AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR);
		  cgInitialTrackFilter->AddCut(cgITSTPC);
		  cgInitialTrackFilter->AddCut(cgITSSA);
		  anaCuts = cgInitialTrackFilter;
		  break;
		default: cout << "No Pre-PID Cut defined " << endl;
	  }
	  return anaCuts;
	}


	AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/)  {  
	  AliAnalysisCuts* pairCuts=0x0;
	  switch (cutSet) {
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		  AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
		  pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
		  pairCuts = pairCutsV;
		  break;
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kpp2010TPCorTOF  :
		  if (!togglePC) {
		  
		  AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
		  AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
		  pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
		  pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0); 
		  pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
		  pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3); 
		  pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3");
		  pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.3, 99999.); 
		  pairCutsCG->AddCut(pairCutsPhiv);
		  pairCutsCG->AddCut(pairCutsInvM);
		  pairCutsCG2->AddCut(pairCutsInvMgood);
		  pairCutsCG2->AddCut(pairCutsCG);
		  pairCuts = pairCutsCG2;
		  }
		  else {
			AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
			pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE); 
			pairCuts = pairCutsV;
		  }
		  break;
		default: cout << "No Pair Cuts defined " << endl;
	  } 
	  return pairCuts;
	}

	AliAnalysisCuts* GetPairCuts(Int_t cutSet)  {  
	  AliDielectronVarCuts* pairCuts=0x0;
	  switch (cutSet) {
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		  pairCuts = new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
		  pairCuts->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
		  break;
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kpp2010TPCorTOF  :
		pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
		pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035);
		break;
		default: cout << "No Pair Cuts defined " << endl;
	  } 
	  return pairCuts;
	}

	AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) {
	  AliESDtrackCuts* trackCuts=0x0;
	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		case kpp2010TPCorTOF  :
		  trackCuts = new AliESDtrackCuts();
		  trackCuts->SetDCAToVertex2D(kTRUE);
		  trackCuts->SetMaxDCAToVertexZ(3.0);
		  trackCuts->SetMaxDCAToVertexXY(1.0);
		  //trackCuts->SetMaxNsigmaToVertex(3.0); 
		  trackCuts->SetPtRange(  0.05 , 200.0);
		  trackCuts->SetEtaRange( -0.84 , 0.84 );
		  trackCuts->SetAcceptKinkDaughters(kFALSE);
		  trackCuts->SetRequireITSRefit(kTRUE);
		  trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
		  trackCuts->SetMinNClustersITS(3);
		  trackCuts->SetRequireTPCRefit(kTRUE);
		  //trackCuts->SetMinNClustersTPC(60);
		  trackCuts->SetMinNCrossedRowsTPC(110);
		  trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.7);
		  trackCuts->SetMaxChi2PerClusterTPC(3.5);
		  //trackCuts->SetMaxChi2PerClusterITS(6);
		  break;
		default: cout << "No Analysis Track Cut defined " << endl;
	  }
	  return trackCuts;
	} 

	AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) {
	  AliESDtrackCuts* trackCuts=0x0;
	  switch (cutSet) {
		case kPbPb2011TPCandTOF :
		case kPbPb2011TPCandTOFwide :
		case kPbPb2011TPCorTOF  :
		case kpp2010TPCandTOF :
		case kpp2010TPCorTOF  :
		  trackCuts = new AliESDtrackCuts();
		  trackCuts->SetDCAToVertex2D(kTRUE);
		  trackCuts->SetMaxDCAToVertexZ(3.0);
		  trackCuts->SetMaxDCAToVertexXY(1.0);
		  trackCuts->SetEtaRange( -0.84 , 0.84 );
		  trackCuts->SetPtRange(  0.05 , 0.5);
		  trackCuts->SetAcceptKinkDaughters(kFALSE);
		  trackCuts->SetRequireITSRefit(kTRUE);
		  trackCuts->SetRequireITSStandAlone(kTRUE);
		  trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
		  trackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?!
		  break;
		default: cout << "No Pre-Track Cut defined " << endl;
	  }
	  return trackCuts;
	}

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