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


//Use:
//Set hard coded commentet with //set this!!
// root[] .L makeInput...C++
// root[] makeInputAliAnalysisTaskSE...()
//similar macros for D mesons as well as for Lc->3prongs

//Author: Annalisa De Caro - decaro@sa.infn.it


//macro to make a .root file which contains an AliRDHFCutsLctoV0 for AliAnalysisTaskSELc2pK0S task

void makeInputAliAnalysisTaskSELctoV0bachelor(){

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


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

  AliRDHFCutsLctoV0* RDHFLctoV0An=new AliRDHFCutsLctoV0();
  RDHFLctoV0An->SetName("LctoV0AnalysisCuts");
  RDHFLctoV0An->SetTitle("Analysis cuts for Lc analysis");
  RDHFLctoV0An->SetKinkRejection(!esdTrackCuts->GetAcceptKinkDaughters());
  RDHFLctoV0An->AddTrackCuts(esdTrackCuts);
  RDHFLctoV0An->AddTrackCutsV0daughters(esdTrackCutsV0daughters);
  RDHFLctoV0An->SetUseTrackSelectionWithFilterBits(kFALSE);//(kTRUE);
  RDHFLctoV0An->SetLowPtCut(1.0); // default value 1.0 GeV/c
  RDHFLctoV0An->SetHighPtCut(3.0); // default value 2.5 GeV/c
  RDHFLctoV0An->SetPidSelectionFlag(4); // 0 -> TOF AND TPC
                                        // 1 -> if (TOF) TOF else TPC w veto
                                        // 2 -> if (p<1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s AND TPC@3s} else (p>=2.5) {if (TOF) -2s<TOF<3s AND TPC@3s}
                                        // 3 -> if (p<1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s AND TPC@3s} else if (2.5<=p<3) {if (TOF) -2s<TOF<3s AND TPC@3s} else (p>=3) {if (TOF) -2s<TOF<3s AND -3s<TPC<2s}
                                        // 4 -> if (p<1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s} else if (p>=2.5) {if (TOF) -2s<TOF<3s}
                                        // 5 -> if (p<1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s} else if (p>=2.5) {if (TOF) -2s<TOF<3s else TPC@3s}

  const Int_t nptbins=14;
  RDHFLctoV0An->SetNPtBins(nptbins);

  Float_t* ptbins;
  ptbins=new Float_t[nptbins+1];
  ptbins[0]= 0.;
  ptbins[1]= 1.;
  ptbins[2]= 2.;
  ptbins[3]= 3.;
  ptbins[4]= 4.;
  ptbins[5]= 5.;
  ptbins[6]= 6.;
  ptbins[7]= 7.;
  ptbins[8]= 8.;
  ptbins[9]= 9.;
  ptbins[10]=10.;
  ptbins[11]=12.;
  ptbins[12]=17.;
  ptbins[13]=25.;
  ptbins[14]=35.;
  RDHFLctoV0An->SetPtBins(nptbins+1,ptbins);

  const Int_t nvars=17;

  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.25;   // inv. mass if K0S [GeV/c2]
   anacutsval[1][ipt2]=0.25;   // inv. mass if Lambda [GeV/c2]
   anacutsval[3][ipt2]=0.05;   // inv. mass V0 if Lambda [GeV/c2] ---> WE ARE SEARCHING Lc -> p+K0S, so cut on m(Lambda) has to be leave as it was at filtering level!!!
   anacutsval[5][ipt2]=0.2;    // pT min V0-positive track [GeV/c]
   anacutsval[6][ipt2]=0.2;    // pT min V0-negative track [GeV/c]
   anacutsval[7][ipt2]=1000.;  // dca cascade cut [cm]
   anacutsval[8][ipt2]=1.5;    // dca V0 cut [nSigma] // it's 1.5 x offline V0s
   anacutsval[11][ipt2]=0.09;  // d0 max V0 wrt PV [cm]
   anacutsval[12][ipt2]=0.;    // mass K0S veto [GeV/c2]
   anacutsval[13][ipt2]=0.005; // mass Lambda/LambdaBar veto [GeV/c2]
   anacutsval[14][ipt2]=0.300; // mass Gamma veto [GeV/c2]
   anacutsval[16][ipt2]=0.;    // V0 type cut
  }

  anacutsval[2][0]=0.00346*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][1]=0.00360*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][2]=0.00385*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][3]=0.00406*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][4]=0.00429*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][5]=0.00450*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][6]=0.00450*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][7]=0.00450*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][8]=0.00520*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][9]=0.00520*2.; // inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][10]=0.00520*2.;// inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][11]=0.00520*2.;// inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][12]=0.00520*2.;// inv. mass V0 if K0S [GeV/c2]
  anacutsval[2][13]=0.00520*2.;// inv. mass V0 if K0S [GeV/c2]

  anacutsval[4][0]=0.6;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][1]=0.5;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][2]=0.6;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][3]=0.7;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][4]=0.8;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][5]=0.9;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][6]=1.0;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][7]=1.2;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][8]=1.4;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][9]=1.7;    // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][10]=2.0;   // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][11]=2.0;   // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][12]=2.0;   // pT min bachelor track [GeV/c] // AOD by construction
  anacutsval[4][13]=2.0;   // pT min bachelor track [GeV/c] // AOD by construction

  anacutsval[9][0]=0.994;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][1]=0.994;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][2]=0.998;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][3]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][4]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][5]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][6]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][7]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][8]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][9]=0.999;  // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][10]=0.999; // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][11]=0.999; // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][12]=0.999; // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level
  anacutsval[9][13]=0.999; // cosPA V0 cut // it's 0.90 x offline V0s at reconstruction level, 0.99 at filtering level

  anacutsval[10][0]=0.05;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][1]=0.04;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][2]=0.03;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][3]=0.05;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][4]=0.05;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][5]=0.02;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][6]=0.02;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][7]=0.02;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][8]=0.02;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][9]=0.02;  // d0 max bachelor wrt PV [cm]
  anacutsval[10][10]=0.02; // d0 max bachelor wrt PV [cm]
  anacutsval[10][11]=0.02; // d0 max bachelor wrt PV [cm]
  anacutsval[10][12]=0.02; // d0 max bachelor wrt PV [cm]
  anacutsval[10][13]=0.02; // d0 max bachelor wrt PV [cm]


  anacutsval[15][0]=0.5; // pT min V0 track [GeV/c]
  anacutsval[15][1]=0.6; // pT min V0 track [GeV/c]
  anacutsval[15][2]=0.7; // pT min V0 track [GeV/c]
  anacutsval[15][3]=0.7; // pT min V0 track [GeV/c]
  anacutsval[15][4]=0.8; // pT min V0 track [GeV/c]
  anacutsval[15][5]=0.9; // pT min V0 track [GeV/c]
  anacutsval[15][6]=1.0; // pT min V0 track [GeV/c]
  anacutsval[15][7]=1.0; // pT min V0 track [GeV/c]
  anacutsval[15][8]=1.2; // pT min V0 track [GeV/c]
  anacutsval[15][9]=1.2; // pT min V0 track [GeV/c]
  anacutsval[15][10]=1.2; // pT min V0 track [GeV/c]
  anacutsval[15][11]=1.2; // pT min V0 track [GeV/c]
  anacutsval[15][12]=1.2; // pT min V0 track [GeV/c]
  anacutsval[15][13]=1.2; // pT min V0 track [GeV/c]

  RDHFLctoV0An->SetCuts(nvars,nptbins,anacutsval);

  //RDHFLc->SetRecoKF(); //set this if you want to recompute the secondary vertex with the KF package

  //pid settings
  //1. bachelor: default one
  AliAODPidHF* pidObjBachelor = new AliAODPidHF();
  Double_t sigmasBac[5]={3.,1.,1.,3.,3.}; // 0, 1(A), 2(A) -> TPC; 3 -> TOF; 4 -> ITS
  pidObjBachelor->SetSigma(sigmasBac);
  pidObjBachelor->SetAsym(kFALSE);
  pidObjBachelor->SetMatch(1);
  pidObjBachelor->SetTPC(kTRUE);
  pidObjBachelor->SetTOF(kTRUE);
  pidObjBachelor->SetTOFdecide(kFALSE);

  RDHFLctoV0An->SetPidHF(pidObjBachelor);

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

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

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

  cout<<"This is the (anal) object I'm going to save:"<<endl;
  RDHFLctoV0An->PrintAll();
  TFile* fout=new TFile("Lc2pK0SCuts.root","RECREATE"); 
  fout->cd();
  RDHFLctoV0An->Write();
  fout->Close();
  delete fout;

  delete pidObjBachelor;
  //delete RDHFLctoV0An;

}


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

void makeInputAliAnalysisTaskSESignificanceMaximization(){

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

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

  RDHFLctoV0->AddTrackCuts(esdTrackCuts);

  RDHFLctoV0->AddTrackCutsV0daughters(esdTrackCutsV0daughters);

  RDHFLctoV0->SetPidSelectionFlag(2); // 0 -> TOF AND TPC
                                      // 1 -> if (TOF) TOF else TPC w veto
                                      // 2 -> if (p>1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s AND TPC@3s} else (p>=2.5) {if (TOF) -2s<TOF<3s AND TPC@3s}
                                      // 3 -> if (p>1) TPC@3s else if (1<=p<2.5) {if (TOF) TOF@3s AND TPC@3s} else if (2.5<=p<3) {if (TOF) -2s<TOF<3s AND TPC@3s} else (p>=3) {if (TOF) -2s<TOF<3s AND -3s<TPC<2s}

  const Int_t nvars=14;//17-3

  const Int_t nptbins=9;
  Float_t* ptbins;
  ptbins=new Float_t[nptbins+1];
  ptbins[0]= 0.;
  ptbins[1]= 1.;
  ptbins[2]= 2.;
  ptbins[3]= 3.;
  ptbins[4]= 4.;
  ptbins[5]= 5.;
  ptbins[6]= 6.;
  ptbins[7]= 8.;
  ptbins[8]=12.;
  ptbins[9]=99999999.;
  RDHFLctoV0->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 if K0s [GeV]
  // inv. mass if Lambda [GeV]
  // inv. mass V0 if K0S [GeV]
  // inv. mass V0 if Lambda [GeV]
  // pT min bachelor track [GeV/c]
  // pT min V0-positive track [GeV/c]
  // pT min V0-negative track [GeV/c]
  // dca cascade cut (cm)
  // dca V0 cut (nSigmas)
  // cosPA V0 cut
  // d0 max bachelor wrt PV [cm]
  // d0 max V0 wrt PV [cm]
  // mass K0S veto [GeV/c2]
  // mass Lambda/LambdaBar veto [GeV/c2]
  // mass Gamma veto [GeV/c2]
  // pT min V0 track [GeV/c]
  Float_t **cutsMatrixLctoV0Stand = new Float_t*[nvars];
  for(Int_t ic=0;ic<nvars;ic++)
    cutsMatrixLctoV0Stand[ic]=new Float_t[nptbins];
  for(Int_t ipt2=0;ipt2<nptbins;ipt2++){
    cutsMatrixLctoV0Stand[0][ipt2] =0.0075;
    cutsMatrixLctoV0Stand[1][ipt2] =0.0500;
    cutsMatrixLctoV0Stand[2][ipt2] =0.4;
    cutsMatrixLctoV0Stand[3][ipt2] =0.2;
    cutsMatrixLctoV0Stand[4][ipt2] =0.2;
    cutsMatrixLctoV0Stand[5][ipt2] =1000.;
    cutsMatrixLctoV0Stand[6][ipt2] =1.5;
    cutsMatrixLctoV0Stand[7][ipt2] =0.99;
    cutsMatrixLctoV0Stand[8][ipt2] =0.05;
    cutsMatrixLctoV0Stand[9][ipt2] =0.1;
    cutsMatrixLctoV0Stand[10][ipt2] =0.0;
    cutsMatrixLctoV0Stand[11][ipt2] =0.005;
    cutsMatrixLctoV0Stand[12][ipt2] =0.100;
  }
  cutsMatrixLctoV0Stand[13][0]=0.0; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][1]=0.6; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][2]=0.8; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][3]=0.8; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][4]=0.8; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][5]=1.0; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][6]=1.0; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][7]=1.0; // pT min V0 track [GeV/c]
  cutsMatrixLctoV0Stand[13][8]=0.0; // pT min V0 track [GeV/c]


  //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]=cutsMatrixLctoV0Stand[ibin][ivar];
    }
  }
  RDHFLctoV0->SetCuts(nvars,nptbins,cutsMatrixTransposeStand);


  Int_t nvarsforopt=RDHFLctoV0->GetNVarsForOpt();
  Int_t dim=14; //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=RDHFLctoV0->GetVarsForOpt();
    }else{
      TString *names;
      names=new TString[nvars];
      TString answer="";
      Int_t checktrue=0;
      names=RDHFLctoV0->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;
      }
      RDHFLctoV0->SetVarsForOpt(dim,boolforopt);
    }
  }


  Float_t tighterval[dim][nptbins];
  // 0(2): inv. mass V0 if K0S [GeV]
  // 1(3): inv. mass V0 if Lambda [GeV]
  // 2(4): pT min bachelor track [GeV/c]
  // 3(5): pT min V0-positive track [GeV/c]
  // 4(6): pT min V0-negative track [GeV/c]
  // 5(7): dca cascade cut (cm)
  // 6(8): dca V0 cut (nSigmas)
  // 7(9): cosPA V0 cut
  // 8(10): d0 max bachelor wrt PV [cm]
  // 9(11): d0 max V0 wrt PV [cm]
  // 10(12): mass K0S veto [GeV/c2]
  // 11(13): mass Lambda/LambdaBar veto [GeV/c2]
  // 12(14): mass Gamma veto [GeV/c2]
  // 13(15): pT min V0 track [GeV/c]

  // 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.075;  // inv. mass V0 if K0S [GeV]
    tighterval[1][ipt] =0.040;  // inv. mass V0 if Lambda [GeV]
    tighterval[2][ipt] =0.4;    // pT min bachelor track [GeV/c]
    tighterval[3][ipt] =0.2;    // pT min V0-positive track [GeV/c]
    tighterval[4][ipt] =0.2;    // pT min V0-negative track [GeV/c]
    tighterval[5][ipt] =100.;   // dca cascade cut (cm)
    tighterval[6][ipt] =1.5;    // dca v0 cut
    tighterval[7][ipt] =0.99;   // cosPA v0 cut
    tighterval[8][ipt] =0.05;   // d0 max bachelor wrt PV [cm]
    tighterval[9][ipt] =0.1;    // d0 max V0 wrt PV [cm]
    tighterval[10][ipt] =0.0;   // mass K0S veto [GeV/c2]
    tighterval[11][ipt] =0.005; // mass Lambda/LambdaBar veto [GeV/c2]
    tighterval[12][ipt] =0.100; // mass Gamma veto [GeV/c2]
  }
  tighterval[0][13]=0.0; // pT min V0 track [GeV/c]
  tighterval[1][13]=0.6; // pT min V0 track [GeV/c]
  tighterval[2][13]=0.8; // pT min V0 track [GeV/c]
  tighterval[3][13]=0.8; // pT min V0 track [GeV/c]
  tighterval[4][13]=0.8; // pT min V0 track [GeV/c]
  tighterval[5][13]=1.0; // pT min V0 track [GeV/c]
  tighterval[6][13]=1.0; // pT min V0 track [GeV/c]
  tighterval[7][13]=1.0; // pT min V0 track [GeV/c]
  tighterval[8][13]=0.0; // pT min V0 track [GeV/c]

  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;
  RDHFLctoV0->SetUsePID(flagPID);

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

  //pid settings
  //1. bachelor: default one
  AliAODPidHF* pidObjBachelor = new AliAODPidHF();
  Double_t sigmasBac[5]={3.,1.,1.,3.,3.}; // 0, 1(A), 2(A) -> TPC; 3 -> TOF; 4 -> ITS
  pidObjBachelor->SetSigma(sigmasBac);
  pidObjBachelor->SetAsym(kFALSE);
  pidObjBachelor->SetMatch(1);
  pidObjBachelor->SetTPC(kTRUE);
  pidObjBachelor->SetTOF(kTRUE);
  pidObjBachelor->SetTOFdecide(kFALSE);
  RDHFLctoV0->SetPidHF(pidObjBachelor);

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

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

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

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

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

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