ROOT logo
#include <Riostream.h>
#include <TFile.h>
#include <AliRDHFCutsLctopKpi.h>
#include <AliAODPidHF.h>
#include <TClonesArray.h>
#include <TParameter.h>
#include <TF1.h>
#include <TCanvas.h>


//Use:
//Set hard coded commentet with //set this!!
// root[] .L makeInput...C++
// root[] makeInputAliAnalysisTaskSE...()
//similar macros for the other D mesons

//Author: Rosa Romita, r.romita@gsi.de


//macro to make a .root file which contains an AliRDHFCutsLctopKpi for AliAnalysisTaskSELambdac task

void SetupCombinedPID(AliRDHFCutsLctopKpi *cutsObj,Double_t threshold,TString priorFileName="noferini-priors.root") {

  cutsObj->GetPidHF()->SetUseCombined(kTRUE);
  cutsObj->GetPidHF()->SetPriorsHistos(priorFileName);
  cutsObj->GetPidHF()->SetCombDetectors(AliAODPidHF::kTPCTOF);
  for (Int_t ispecies=0;ispecies<AliPID::kSPECIES;++ispecies)
    cutsObj->SetPIDThreshold(static_cast<AliPID::EParticleType>(ispecies),threshold);
}



void makeInputAliAnalysisTaskSELctopKpi(){

  AliRDHFCutsLctopKpi* RDHFLctopKpiProd=new AliRDHFCutsLctopKpi();
  RDHFLctopKpiProd->SetName("LctopKpiProdCuts");
  RDHFLctopKpiProd->SetTitle("Production cuts for Lc analysis");

  AliRDHFCutsLctopKpi* RDHFLctopKpiAn=new AliRDHFCutsLctopKpi();
  RDHFLctopKpiAn->SetName("LctopKpiAnalysisCuts");
  RDHFLctopKpiAn->SetTitle("Analysis cuts for Lc analysis");

  AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  //default
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetMinNClustersITS(4); // default is 5
  esdTrackCuts->SetMinNClustersTPC(70);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
					 AliESDtrackCuts::kAny); 
 // default is kBoth, otherwise kAny
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetPtRange(0.3,1.e10);


  RDHFLctopKpiProd->AddTrackCuts(esdTrackCuts);
  RDHFLctopKpiAn->AddTrackCuts(esdTrackCuts);

  const Int_t nvars=13;

  const Int_t nptbins=4;
  Float_t* ptbins;
  ptbins=new Float_t[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=2.;
  ptbins[2]=3.;
  ptbins[3]=4.;
  ptbins[4]=12.;
  

  Float_t** prodcutsval;
  prodcutsval=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++){
    prodcutsval[iv]=new Float_t[nptbins];
  }

  //  inv. mass [GeV]
  // pTK [GeV/c]
  // pTPi [GeV/c]
  // d0K [cm]   lower limit!
  // d0Pi [cm]  lower limit!
  // dist12 (cm)
  // sigmavert (cm)
  // dist prim-sec (cm)
  // pM=Max{pT1,pT2,pT3} (GeV/c)
  // cosThetaPoint
  // Sum d0^2 (cm^2)
  // dca cut (cm)
  for(Int_t ipt=0;ipt<nptbins;ipt++){
    prodcutsval[0][ipt]=0.18;
    prodcutsval[1][ipt]=0.4;
    prodcutsval[2][ipt]=0.5;
    prodcutsval[3][ipt]=0.;
    prodcutsval[4][ipt]=0.;
    prodcutsval[5][ipt]=0.01;
    prodcutsval[6][ipt]=0.06;
    prodcutsval[7][ipt]=0.005;
    prodcutsval[8][ipt]=0.7;
    prodcutsval[9][ipt]=0.;
    prodcutsval[10][ipt]=0.;
    prodcutsval[11][ipt]=0.05;
    prodcutsval[12][ipt]=0.4;
  }

  RDHFLctopKpiProd->SetPtBins(nptbins+1,ptbins);
  RDHFLctopKpiProd->SetCuts(nvars,nptbins,prodcutsval);

  Float_t** anacutsval;
  anacutsval=new Float_t*[nvars];
  for(Int_t ic=0;ic<nvars;ic++){anacutsval[ic]=new Float_t[nptbins];}
  for(Int_t ipt2=0;ipt2<nptbins;ipt2++){
   anacutsval[0][ipt2]=0.18;
   anacutsval[1][ipt2]=0.4;
   anacutsval[2][ipt2]=0.5;
   anacutsval[3][ipt2]=0.;
   anacutsval[4][ipt2]=0.;
   anacutsval[5][ipt2]=0.01;
   anacutsval[6][ipt2]=0.06;
   anacutsval[7][ipt2]=0.005;
   anacutsval[8][ipt2]=0.7;
   anacutsval[9][ipt2]=0.;
   anacutsval[10][ipt2]=0.;
   anacutsval[11][ipt2]=0.05;
   anacutsval[12][ipt2]=0.4;
  }

  // pt kaon
  anacutsval[1][0]=0.5;
  anacutsval[1][1]=0.85;
  anacutsval[1][2]=0.9;
  anacutsval[1][3]=0.4;
  //pt proton
  anacutsval[2][0]=0.5;
  anacutsval[2][1]=0.6;
  anacutsval[2][2]=0.9;
  anacutsval[2][3]=0.9;

  //pt pion
  anacutsval[12][0]=0.475;
  anacutsval[12][1]=0.75;
  anacutsval[12][2]=0.75;
  anacutsval[12][3]=0.7;

  anacutsval[5][0]=0.02;
  anacutsval[5][1]=0.025;
  anacutsval[5][2]=0.02;
  anacutsval[5][3]=0.01;

  anacutsval[7][0]=0.00625;
  anacutsval[7][1]=0.0125;
  anacutsval[7][2]=0.005;
  anacutsval[7][3]=0.007;

  anacutsval[9][0]=0.5;
  anacutsval[9][1]=0.2;
  anacutsval[9][2]=0.6;
  anacutsval[9][3]=0.;

  anacutsval[10][0]=0.00125;

  RDHFLctopKpiAn->SetPtBins(nptbins+1,ptbins);
  RDHFLctopKpiAn->SetCuts(nvars,nptbins,anacutsval);

 //  RDHFLc->SetRecoKF(); //set this if you want to recompute the secondary vertex with the KF package
    //pid settings
    //1. kaon: default one
  AliAODPidHF* pidObjK=new AliAODPidHF();
  Double_t sigmasK[5]={3.,1.,1.,3.,2.};
  pidObjK->SetSigma(sigmasK);
  pidObjK->SetAsym(kTRUE);
  pidObjK->SetMatch(1);
  pidObjK->SetTPC(kTRUE);
  pidObjK->SetTOF(kTRUE);
  Double_t plimK[2]={0.5,0.8};
  pidObjK->SetPLimit(plimK,2);
  pidObjK->SetTOFdecide(kTRUE);
  
  RDHFLctopKpiProd->SetPidHF(pidObjK);
  RDHFLctopKpiAn->SetPidHF(pidObjK);

    //2. pion 
  AliAODPidHF* pidObjpi=new AliAODPidHF();
  pidObjpi->SetTPC(kTRUE);
  Double_t sigmaspi[5]={3.,0.,0.,0.,0.};
  pidObjpi->SetSigma(sigmaspi);
//  pidObjpi->SetTOFdecide(kTRUE);

  RDHFLctopKpiProd->SetPidpion(pidObjpi);
  RDHFLctopKpiAn->SetPidpion(pidObjpi);

  // 3. proton
  AliAODPidHF* pidObjp=new AliAODPidHF();
  Double_t sigmasp[5]={3.,1.,1.,3.,2.};
  pidObjp->SetSigma(sigmasp);
  pidObjp->SetAsym(kTRUE);
  pidObjp->SetMatch(1);
  pidObjp->SetTPC(kTRUE);
  pidObjp->SetTOF(kTRUE);
  Double_t plimp[2]={1.,2.};
  pidObjp->SetPLimit(plimp,2);
  pidObjp->SetTOFdecide(kTRUE);

  RDHFLctopKpiProd->SetPidprot(pidObjp);
  RDHFLctopKpiAn->SetPidprot(pidObjp);

  // uncomment these lines for Baysian PID:
   Double_t threshold=0.3;
   SetupCombinedPID(RDHFLctopKpiAn  ,threshold);
   SetupCombinedPID(RDHFLctopKpiProd,threshold);
   RDHFLctopKpiAn  ->SetPIDStrategy(AliRDHFCutsLctopKpi::kCombined);
   RDHFLctopKpiProd->SetPIDStrategy(AliRDHFCutsLctopKpi::kCombined);


   AliPIDCombined *pid=RDHFLctopKpiAn->GetPidHF()->GetPidCombined();
   TH1* hplot=pid->GetPriorDistribution(static_cast<AliPID::EParticleType>(3));
   TCanvas *c1=new TCanvas();
   hplot->Draw();
  //


  //uncomment these lines to apply cuts with the KF package
  //RDHFLctopKpiAn  ->SetCutsStrategy(AliRDHFCutsLctopKpi::kKF);
  //RDHFLctopKpiProd->SetCutsStrategy(AliRDHFCutsLctopKpi::kKF);
  //for(Int_t ipt2=0;ipt2<nptbins;ipt2++){
  //   anacutsval[0][ipt2]=1.;  //if <0., no topological constraint
  //   anacutsval[1][ipt2]=2.;  //cut on the Chi2/Ndf
  //   prodcutsval[0][ipt2]=1.;  //if <0., no topological constraint
  //   prodcutsval[1][ipt2]=2.;  //cut on the Chi2/Ndf
  // }

  Bool_t pidflag=kTRUE;
  RDHFLctopKpiAn->SetUsePID(pidflag);
  RDHFLctopKpiProd->SetUsePID(pidflag);
  if(pidflag) cout<<"PID is used"<<endl;
  else cout<<"PID is not used"<<endl;

  cout<<"This is the object I'm going to save:"<<endl;
  RDHFLctopKpiProd->PrintAll();
  RDHFLctopKpiAn->PrintAll();
  TFile* fout=new TFile("prova.root","RECREATE"); 
  fout->cd();
  RDHFLctopKpiProd->Write();
  RDHFLctopKpiAn->Write();
  fout->Close();
  delete fout;
  delete pidObjp;
  delete pidObjpi;
  delete pidObjK;
  delete RDHFLctopKpiProd;
  delete RDHFLctopKpiAn;

}


//macro to make a .root file (for significance maximization) which contains an AliRDHFCutsLctopKpi with loose set of cuts  and TParameter with the tighest value of these cuts

void makeInputAliAnalysisTaskSESignificanceMaximization(){

  AliRDHFCutsLctopKpi* RDHFLctopKpi=new AliRDHFCutsLctopKpi();
  RDHFLctopKpi->SetName("loosercuts");
  RDHFLctopKpi->SetTitle("Cuts for significance maximization");

  AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  //default
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetMinNClustersTPC(70);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetMinNClustersITS(4);

  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetPtRange(0.3,1.e10);
  
  RDHFLctopKpi->AddTrackCuts(esdTrackCuts);

  const Int_t nvars=13;

  const Int_t nptbins=4; //change this when adding pt bins!
  Float_t ptbins[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=2.;
  ptbins[2]=3.;
  ptbins[3]=4.;
  ptbins[4]=12.;

  RDHFLctopKpi->SetPtBins(nptbins+1,ptbins);

  Float_t** rdcutsvalmine;
  rdcutsvalmine=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++){
    rdcutsvalmine[iv]=new Float_t[nptbins];
  }

  //setting my cut values
  //  inv. mass [GeV]
  // pTK [GeV/c]
  // pTP [GeV/c]
  // d0K [cm]   lower limit!
  // d0Pi [cm]  lower limit!
  // dist12 (cm)
  // sigmavert (cm)
  // dist prim-sec (cm)
  // pM=Max{pT1,pT2,pT3} (GeV/c)
  // cosThetaPoint
  // Sum d0^2 (cm^2)
  // dca cut (cm)
  // pt pion
  Float_t cutsMatrixLctopKpiStand[nptbins][nvars]=
  {{0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
   {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
   {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
   {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4}};

  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixLctopKpiStand[ibin][ivar];
    }
  }
  RDHFLctopKpi->SetCuts(nvars,nptbins,cutsMatrixTransposeStand);


  Int_t nvarsforopt=RDHFLctopKpi->GetNVarsForOpt();
  Int_t dim=4; //set this!!
  Bool_t *boolforopt;
  boolforopt=new Bool_t[nvars];
  if(dim>nvarsforopt){
    cout<<"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
    return;
  } else {
    if(dim==nvarsforopt){
      boolforopt=RDHFLctopKpi->GetVarsForOpt();
    }else{
      TString *names;
      names=new TString[nvars];
      TString answer="";
      Int_t checktrue=0;
      names=RDHFLctopKpi->GetVarNames();
      for(Int_t i=0;i<nvars;i++){
	cout<<names[i]<<" for opt? (y/n)"<<endl;
	cin>>answer;
	if(answer=="y") {
	  boolforopt[i]=kTRUE;
	  checktrue++;
	}
	else boolforopt[i]=kFALSE;
      }
      if (checktrue!=dim) {
	cout<<"Error! You set "<<checktrue<<" kTRUE instead of "<<dim<<endl;
	return;
      }
      RDHFLctopKpi->SetVarsForOpt(dim,boolforopt);
    }
  }


  Float_t tighterval[dim][nptbins];
  // 5 dist12 (cm)        <---
  // 7 dist prim-sec (cm) <---
  // 9 cosThetaPoint      <---
  // 10 Sum d0^2 (cm^2)   <---
  // 11 dca cut (cm)      
  // {0.18,0.4,0.5,0.,0.,0.01 <--- ,0.06,0.005 <--- ,0.7,0. <--- ,0. <--- ,0.05 }

  //number of steps for each variable is set in the AddTask arguments (default=8)
  //set this!!
  for(Int_t ipt=0;ipt<nptbins;ipt++){
    tighterval[0][ipt]=0.03;
    tighterval[1][ipt]=0.02;
    tighterval[2][ipt]=1.;
    tighterval[3][ipt]=0.01;
  }



  TString name=""; 
  Int_t arrdim=dim*nptbins;
  cout<<"Will save "<<arrdim<<" TParameter<float>"<<endl;
  TClonesArray max("TParameter<float>",arrdim);
  for(Int_t ival=0;ival<dim;ival++){
    for(Int_t jpt=0;jpt<nptbins;jpt++){
      name=Form("par%dptbin%d",ival,jpt);
      cout<<"Setting "<<name.Data()<<" to "<<tighterval[ival][jpt]<<endl;
      new(max[jpt*dim+ival])TParameter<float>(name.Data(),tighterval[ival][jpt]);
    }
  }

  Bool_t flagPID=kFALSE;
  RDHFLctopKpi->SetUsePID(flagPID);

  RDHFLctopKpi->PrintAll();
  printf("Use PID? %s\n",flagPID ? "yes" : "no");

    //pid settings
    //1. kaon: default one
  AliAODPidHF* pidObjK=new AliAODPidHF();
  Double_t sigmasK[5]={3.,1.,1.,3.,2.};
  pidObjK->SetSigma(sigmasK);
  pidObjK->SetAsym(kTRUE);
  pidObjK->SetMatch(1);
  pidObjK->SetTPC(kTRUE);
  pidObjK->SetTOF(kTRUE);
  pidObjK->SetITS(kTRUE);
  Double_t plimK[2]={0.5,0.8};
  pidObjK->SetPLimit(plimK,2);
  pidObjK->SetTOFdecide(kTRUE);
  
  RDHFLctopKpi->SetPidHF(pidObjK);

    //2. pion 
  AliAODPidHF* pidObjpi=new AliAODPidHF();
  pidObjpi->SetTPC(kTRUE);
  Double_t sigmaspi[5]={3.,0.,0.,0.,0.};
  pidObjpi->SetSigma(sigmaspi);
  pidObjpi->SetTOFdecide(kTRUE);

  RDHFLctopKpi->SetPidpion(pidObjpi);

  // 3. proton
  AliAODPidHF* pidObjp=new AliAODPidHF();
  Double_t sigmasp[5]={3.,1.,1.,3.,2.};
  pidObjp->SetSigma(sigmasp);
  pidObjp->SetAsym(kTRUE);
  pidObjp->SetMatch(1);
  pidObjp->SetTPC(kTRUE);
  pidObjp->SetTOF(kTRUE);
  pidObjp->SetITS(kTRUE);
  Double_t plimp[2]={1.,2.};
  pidObjp->SetPLimit(plimp,2);
  pidObjp->SetTOFdecide(kTRUE);

  RDHFLctopKpi->SetPidprot(pidObjp);

  //activate pileup rejection (for pp)
  //RDHFLctopKpi->SetOptPileup(AliRDHFCuts::kRejectPileupEvent);

  //Do not recalculate the vertex
  RDHFLctopKpi->SetRemoveDaughtersFromPrim(kFALSE); //activate for pp

  TString cent="";
  //centrality selection (Pb-Pb)
  Float_t minc=20,maxc=80;
  RDHFLctopKpi->SetMinCentrality(minc);
  RDHFLctopKpi->SetMaxCentrality(maxc);
  cent=Form("%.0f%.0f",minc,maxc);
  //  RDHFLctopKpi->SetUseCentrality(AliRDHFCuts::kCentV0M); //kCentOff,kCentV0M,kCentTRK,kCentTKL,kCentCL1,kCentInvalid
  RDHFLctopKpi->SetUseCentrality(AliRDHFCuts::kCentOff); //kCentOff,kCentV0M,kCentTRK,kCentTKL,kCentCL1,kCentInvalid

  //temporary
  //  RDHFLctopKpi->SetFixRefs();

  TFile* fout=new TFile(Form("cuts4SignifMaxim%s%s%sRecVtx%sPileupRej.root", RDHFLctopKpi->GetUseCentrality()==0 ? "pp" : "PbPb",cent.Data(),RDHFLctopKpi->GetIsPrimaryWithoutDaughters() ? "" : "No",RDHFLctopKpi->GetOptPileUp() ? "" : "No"),"recreate");   //set this!! 

  fout->cd();
  RDHFLctopKpi->Write();
  max.Write();
  fout->Close();
 
}

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