]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/FLOW/macros/AddTaskFlowStrange.C
add vzero event plane to addtasks of pid flow methods (from naghmeh )
[u/mrichter/AliRoot.git] / PWGCF / FLOW / macros / AddTaskFlowStrange.C
index 6bdb8ed74d76b46800c7b1f042808202252080bd..ce244aca19baa7ac973eb96c3f32470704ac513d 100644 (file)
@@ -3,6 +3,7 @@ Bool_t SFT_gbReadESD;
 Bool_t SFT_gbReadMC;
 Int_t SFT_gbMatchMC;
 Bool_t SFT_gbAvoidExec;
+Bool_t SFT_gbSkipCentrality;
 Bool_t SFT_gbExtraEventCut;
 TString SFT_gbCentMethod;
 Int_t SFT_gbCentPerMin,SFT_gbCentPerMax;
@@ -12,6 +13,7 @@ Int_t SFT_gbSpecie;
 Bool_t SFT_gbHomemade;
 Bool_t SFT_gbOnline;
 Int_t SFT_gbMinNClsTPC;
+Int_t SFT_gbMinNClsITS;
 Int_t SFT_gbMinXRows;
 Double_t SFT_gbMaxChi2PerNClsTPC;
 Double_t SFT_gbMinXRowsOverNClsFTPC;
@@ -23,6 +25,7 @@ Double_t SFT_gbMaxNSigmaPID;
 Double_t SFT_gbMaxRapidity;
 Double_t SFT_gbMaxDCAdaughters;
 Double_t SFT_gbMinCosinePointingAngleXY;
+Double_t SFT_gbPIDPt;
 Double_t SFT_gbMinQt;
 Bool_t   SFT_gbQtPie;
 Double_t SFT_gbMinRadXY;
@@ -36,16 +39,18 @@ TString SFT_gbStamp;
 Int_t SFT_gbRFPFilterBit;
 Double_t SFT_gbRFPminPt;
 Double_t SFT_gbRFPmaxPt;
-Double_t SFT_gbRFPminEta;
-Double_t SFT_gbRFPmaxEta;
+Double_t SFT_gbRFPAminEta;
+Double_t SFT_gbRFPAmaxEta;
+Double_t SFT_gbRFPCminEta;
+Double_t SFT_gbRFPCmaxEta;
 Double_t SFT_gbRFPTPCsignal;
 Double_t SFT_gbRFPmaxIPxy;
 Double_t SFT_gbRFPmaxIPz;
 Int_t SFT_gbRFPTPCncls;
-
+Bool_t SFT_gbAddPitoMCRP;
 Bool_t SFT_gbAllCC;
 Bool_t SFT_gbSkipSelection;
-Bool_t SFT_gbSkipFlow;
+Bool_t SFT_gbSkipVn;
 Int_t SFT_gbWhichPsi;
 Bool_t SFT_gbFlowPackage;
 Bool_t SFT_gbShrinkFP;
@@ -53,6 +58,7 @@ Bool_t SFT_gbSPVZE;
 Bool_t SFT_gbSPTPC;
 Bool_t SFT_gbSPVZEhalf;
 Bool_t SFT_gbQCTPC;
+Bool_t SFT_gbMCEP;
 Int_t SFT_gbHarmonic;
 TString SFT_gbVZEload;
 Bool_t SFT_gbVZEsave;
@@ -62,53 +68,54 @@ Int_t SFT_gbV0CRingMin;
 Int_t SFT_gbV0CRingMax;
 Int_t SFT_gbV0ARingMin;
 Int_t SFT_gbV0ARingMax;
+Int_t SFT_gbDauITS0On;
+Int_t SFT_gbDauITS1On;
+Int_t SFT_gbDauITS2On;
+Int_t SFT_gbDauITS3On;
+Int_t SFT_gbDauITS4On;
+Int_t SFT_gbDauITS5On;
+Bool_t SFT_gbDauSPDany;
+Bool_t SFT_gbDauITSrefit;
 
 Bool_t SFT_gbUntagDaughter;
+Int_t SFT_gbPostMatched;
+Double_t SFT_gbVertexZcut;
 
-void AddTaskFlowStrange(TString configFile, TString alienaddress,
-                       Int_t VZECm=0, Int_t VZECM=3, Int_t VZEAm=0, Int_t VZEAM=3) {
+void AddTaskFlowStrange(TString configFile, TString alienaddress, Bool_t skipTerminate=kFALSE) {
   Int_t ret = gSystem->Exec( Form("alien_cp %s/%s .",alienaddress.Data(),configFile.Data()) );
   printf("FlowStrange copying from grid %d\n",ret);
-  AddTaskFlowStrange(configFile,VZECm,VZECM,VZEAm,VZEAM);
+  AddTaskFlowStrange(configFile,skipTerminate);
 }
-void AddTaskFlowStrange(TString configFile,
-                       Int_t VZECm=0, Int_t VZECM=3, Int_t VZEAm=0, Int_t VZEAM=3) {
+void AddTaskFlowStrange(TString configFile, Bool_t skipTerminate=kFALSE) {
   SFT_ReadConfig(configFile);
-  SFT_gbV0CRingMin = VZECm;
-  SFT_gbV0CRingMax = VZECM;
-  SFT_gbV0ARingMin = VZEAm;
-  SFT_gbV0ARingMax = VZEAM;
-  SFT_gbSuffix = Form("%s%d%d%d%d", SFT_gbSuffix.Data(),
-                     SFT_gbV0CRingMin, SFT_gbV0CRingMax, SFT_gbV0ARingMin, SFT_gbV0ARingMax);
   if(SFT_gbAllCC) {
-    int centMin[9] = {00,05,10,20,30,40,50,60,70};
-    int centMax[9] = {05,10,20,30,40,50,60,70,80};
-    int ncent=9;
+    int centMin[8] = {00,05,10,20,30,40,50,60};
+    int ncent=7;
     if(SFT_gbRunPP) {
       ncent=3;
-      centMin[0]=10; centMax[0]=30;
-      centMin[1]=30; centMax[1]=50;
-      centMin[2]=0; centMax[2]=100;
+      centMin[0]=00;
+      centMin[1]=20;
+      centMin[2]=40;
+      centMin[3]=60;
     } else if(SFT_gbRunPA) {
-      ncent=4;
-      centMin[0]=00; centMax[0]=20;
-      centMin[1]=20; centMax[1]=40;
-      centMin[2]=40; centMax[2]=60;
-      centMin[3]=60; centMax[3]=80;
-    } else {
+      ncent=3;
+      centMin[0]=00;
+      centMin[1]=20;
+      centMin[2]=40;
+      centMin[3]=60;
     }
     TString antSuffix = SFT_gbSuffix;
     for(int cc=0; cc!=ncent; ++cc) {
       SFT_gbCentPerMin = centMin[cc];
-      SFT_gbCentPerMax = centMax[cc];
-      SFT_gbSuffix = Form("%s%d%d",antSuffix.Data(),SFT_gbCentPerMin,SFT_gbCentPerMax);
-      AddTaskFlowStrange();
+      SFT_gbCentPerMax = centMin[cc+1];
+      SFT_gbSuffix = Form("%s%02d%02d",antSuffix.Data(),SFT_gbCentPerMin,SFT_gbCentPerMax);
+      AddTaskFlowStrange(skipTerminate);
     }
   } else {
-    AddTaskFlowStrange();
+    AddTaskFlowStrange(skipTerminate);
   }
 }
-void AddTaskFlowStrange() {
+void AddTaskFlowStrange(Bool_t skipTerminate) {
   SFT_PrintConfig();
 
   TString fileName = AliAnalysisManager::GetCommonFileName();
@@ -122,12 +129,21 @@ void AddTaskFlowStrange() {
   AliAnalysisTaskFlowStrange *taskSel = new AliAnalysisTaskFlowStrange(Form("FS_%s",SFT_gbStamp.Data()) );
   taskSel->SelectCollisionCandidates(SFT_gbTrigger);
   taskSel->SetReadESD(SFT_gbReadESD);
+  taskSel->SetPostMatched(SFT_gbPostMatched);
   taskSel->SetReadMC(SFT_gbReadMC);
   taskSel->SetAvoidExec(SFT_gbAvoidExec);
+  taskSel->SetSkipCentralitySelection(SFT_gbSkipCentrality);
   taskSel->SetSkipSelection(SFT_gbSkipSelection);
-  taskSel->SetSkipFlow(SFT_gbSkipFlow);
+  taskSel->SetSkipVn(SFT_gbSkipVn);
   taskSel->SetExtraEventRejection(SFT_gbExtraEventCut);
   taskSel->SetCentralityRange(SFT_gbCentMethod,SFT_gbCentPerMin,SFT_gbCentPerMax);
+  taskSel->SetSkipTerminate(skipTerminate);
+  taskSel->SetHarmonic(SFT_gbHarmonic);
+  Int_t npt = 24;
+  Double_t ptbin[25] = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8,
+                         2.0, 2.2, 2.4, 2.8, 3.2, 3.6, 4.0, 4.5, 5.0, 6.0,
+                         8.0, 10., 12., 16., 20.};
+  taskSel->SetPtEdges(npt,ptbin);
   if(SFT_gbRunPP) taskSel->Setpp();
   if(SFT_gbRunPA) taskSel->SetpA();
   taskSel->SetDebug(SFT_gbDebug);
@@ -141,16 +157,21 @@ void AddTaskFlowStrange() {
   taskSel->SetRFPFilterBit(SFT_gbRFPFilterBit);
   taskSel->SetRFPMinPt(SFT_gbRFPminPt);
   taskSel->SetRFPMaxPt(SFT_gbRFPmaxPt);
-  taskSel->SetRFPMinEta(SFT_gbRFPminEta);
-  taskSel->SetRFPMaxEta(SFT_gbRFPmaxEta);
+  taskSel->SetRFPAMinEta(SFT_gbRFPAminEta);
+  taskSel->SetRFPAMaxEta(SFT_gbRFPAmaxEta);
+  taskSel->SetRFPCMinEta(SFT_gbRFPCminEta);
+  taskSel->SetRFPCMaxEta(SFT_gbRFPCmaxEta);
   taskSel->SetRFPTPCSignal(SFT_gbRFPTPCsignal);
   taskSel->SetRFPMaxIPxy(SFT_gbRFPmaxIPxy);
   taskSel->SetRFPMaxIPz(SFT_gbRFPmaxIPz);
   taskSel->SetRFPMinTPCCls(SFT_gbRFPTPCncls);
 
+  taskSel->SetAddPiToMCReactionPlane(SFT_gbAddPitoMCRP);
   taskSel->SetDauUnTagProcedure(SFT_gbUntagDaughter);
+  taskSel->SetVertexZcut(SFT_gbVertexZcut);
 
   taskSel->SetDauMinNClsTPC(SFT_gbMinNClsTPC);
+  taskSel->SetDauMinNClsITS(SFT_gbMinNClsITS);
   taskSel->SetDauMinXRows(SFT_gbMinXRows);
   taskSel->SetDauMaxChi2PerNClsTPC(SFT_gbMaxChi2PerNClsTPC);
   taskSel->SetDauMinXRowsOverNClsFTPC(SFT_gbMinXRowsOverNClsFTPC);
@@ -159,11 +180,20 @@ void AddTaskFlowStrange() {
   taskSel->SetDauMinPt(SFT_gbMinPt);
   taskSel->SetDauMinImpactParameterXY(SFT_gbMinImpactParameterXY);
   taskSel->SetDauMaxNSigmaPID(SFT_gbMaxNSigmaPID);
+  taskSel->SetDauITSLayer(0,SFT_gbDauITS0On);
+  taskSel->SetDauITSLayer(1,SFT_gbDauITS1On);
+  taskSel->SetDauITSLayer(2,SFT_gbDauITS2On);
+  taskSel->SetDauITSLayer(3,SFT_gbDauITS3On);
+  taskSel->SetDauITSLayer(4,SFT_gbDauITS4On);
+  taskSel->SetDauITSLayer(5,SFT_gbDauITS5On);
+  taskSel->SetDauSPDRequireAny(SFT_gbDauSPDany);
+  taskSel->SetDauITSrefit(SFT_gbDauITSrefit);
 
   taskSel->SetMaxRapidity(SFT_gbMaxRapidity);
   taskSel->SetMaxDCAdaughters(SFT_gbMaxDCAdaughters);
   taskSel->SetMinCosinePointingAngleXY(SFT_gbMinCosinePointingAngleXY);
   taskSel->SetMinQt(SFT_gbMinQt,SFT_gbQtPie);
+  taskSel->SetStopPIDAtPt(SFT_gbPIDPt);
   taskSel->SetMinRadXY(SFT_gbMinRadXY);
   taskSel->SetMaxDecayLength(SFT_gbMaxDecayLength);
   taskSel->SetMaxProductIPXY(SFT_gbMaxProductIPXY);
@@ -207,17 +237,22 @@ void AddTaskFlowStrange() {
   if( (!SFT_gbQCTPC) && (!SFT_gbSPVZE) && (!SFT_gbSPTPC) ) return;
   //-------------------FLOWPACKAGE TASKS----------------------------
   AliFlowTrackSimpleCuts *filter[20], *filterhf[20][2]; // MASS BANDS
-  for(int mb=0; mb!=SFT_MassBands(SFT_gbSpecie); ++mb) {
+  int mbs = SFT_MassBands(SFT_gbSpecie);
+  if(SFT_gbPostMatched) mbs = 1;
+  for(int mb=0; mb!=mbs; ++mb) {
     filter[mb] = new AliFlowTrackSimpleCuts( Form("Filter_MB%d",mb) );
     filter[mb]->SetEtaMin( -0.8 ); filter[mb]->SetEtaMax( +0.8 );
-    filter[mb]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filter[mb]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );
+    Double_t minmass = SFT_MassBandLowEdge(SFT_gbSpecie,mb);
+    Double_t maxmass = SFT_MassBandLowEdge(SFT_gbSpecie,mb+1);
+    if(SFT_gbPostMatched) maxmass = SFT_MassBandLowEdge(SFT_gbSpecie,SFT_MassBands(SFT_gbSpecie));
+    filter[mb]->SetMassMin( minmass ); filter[mb]->SetMassMax( maxmass );
     //half window for POIs
     filterhf[mb][0] = new AliFlowTrackSimpleCuts( Form("Filterhf0_MB%d",mb) );
     filterhf[mb][0]->SetEtaMin( +0.0 ); filterhf[mb][0]->SetEtaMax( +0.8 );
-    filterhf[mb][0]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filterhf[mb][0]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );
+    filterhf[mb][0]->SetMassMin( minmass ); filterhf[mb][0]->SetMassMax( maxmass );
     filterhf[mb][1] = new AliFlowTrackSimpleCuts( Form("Filterhf1_MB%d",mb) );
     filterhf[mb][1]->SetEtaMin( -0.8 ); filterhf[mb][1]->SetEtaMax( -0.0 );
-    filterhf[mb][1]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filterhf[mb][1]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );
+    filterhf[mb][1]->SetMassMin( minmass ); filterhf[mb][1]->SetMassMax( maxmass );
     if(SFT_gbQCTPC) {
       SFT_AddQCmethod( Form("QCTPCMB%d",mb), exc_TPC, filter[mb]); // QC TPC
     }
@@ -229,6 +264,9 @@ void AddTaskFlowStrange() {
       SFT_AddSPmethod( Form("SPTPC4MB%d",mb), exc_TPC, filterhf[mb][0], "Qa", 0.4 ); // SP TPC Qa
       SFT_AddSPmethod( Form("SPTPC4MB%d",mb), exc_TPC, filterhf[mb][1], "Qb", 0.4 ); // SP TPC Qb
     }
+    if(SFT_gbMCEP) {
+      SFT_AddMCEPmethod( Form("MCEPMB%d",mb), exc_TPC, filter[mb]); // MCEP TPC
+    }
     if(SFT_gbSPVZE) {
       if(SFT_gbSPVZEhalf) {
        SFT_AddSPmethod( Form("SPVZEMB%d",mb), exc_VZE, filterhf[mb][0], "Qa", 1.0 ); // SP VZE Qa
@@ -240,6 +278,27 @@ void AddTaskFlowStrange() {
     }
   }
 }
+void SFT_AddMCEPmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL) {
+  TString fileName = AliAnalysisManager::GetCommonFileName();
+  TString myFolder = Form("%sv%d",SFT_gbFolder.Data(),SFT_gbHarmonic);
+  TString myName = Form("%sv%d_%s",name,SFT_gbHarmonic,SFT_gbSuffix.Data());
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  AliAnalysisDataContainer *flowEvent2 = mgr->CreateContainer( Form("Filter_%s", myName.Data()),
+                                                               AliFlowEventSimple::Class(),
+                                                               AliAnalysisManager::kExchangeContainer );
+  AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE( Form("TaskFilter_%s",myName.Data()),
+                                                                    NULL, cutsPOI);
+  mgr->AddTask(tskFilter);
+  mgr->ConnectInput( tskFilter,0,flowEvent);
+  mgr->ConnectOutput(tskFilter,1,flowEvent2);
+  AliAnalysisDataContainer *outQC = mgr->CreateContainer( myName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,
+                                                          Form("%s:FlowStrange_MCEP_%s",fileName.Data(),myFolder.Data()) );
+  AliAnalysisTaskMCEventPlane *tskQC = new AliAnalysisTaskMCEventPlane( Form("TaskMCEP_%s",myName.Data()) );
+  tskQC->SetHarmonic(SFT_gbHarmonic);
+  mgr->AddTask(tskQC);
+  mgr->ConnectInput( tskQC,0,flowEvent2);
+  mgr->ConnectOutput(tskQC,1,outQC);
+}
 void SFT_AddQCmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL) {
   TString fileName = AliAnalysisManager::GetCommonFileName();
   TString myFolder = Form("%sv%d",SFT_gbFolder.Data(),SFT_gbHarmonic);
@@ -289,6 +348,8 @@ void SFT_AddSPmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTra
   mgr->ConnectOutput(tskSP,1,outSP);
 }
 double SFT_MassBandLowEdge( int nv0, int mb ) {
+  if(nv0>10&&mb==0) return -5;
+  if(nv0>10&&mb==1) return +5;
   switch(nv0) {
   case(0):
     double lowEdge[14]={0.398, 0.420, 0.444, 0.468, 0.486,
@@ -301,8 +362,6 @@ double SFT_MassBandLowEdge( int nv0, int mb ) {
                        1.148, 1.158, 1.168};
     break;
   }
-  if(nv0>10&&mb==0) return -5;
-  if(nv0>10&&mb==1) return +5;
   return lowEdge[mb];
 }
 int SFT_MassBands( int nv0 ) {
@@ -339,61 +398,84 @@ double SFT_MaxMass( int nv0 ) {
 void SFT_PrintConfig() {
   printf("***********************************\n");
   printf("* STRANGE FLOW TASK CONFIGURATION *\n");
-  printf("* SUFFIX  %8s                *\n", SFT_gbSuffix.Data() );
-  printf("* TRIGGER  %8d               *\n", SFT_gbTrigger );
-  printf("* RUNPP  %3d                      *\n", SFT_gbRunPP );
-  printf("* RUNPA  %3d                      *\n", SFT_gbRunPA );
-  printf("* AVOIDEXEC  %3d                  *\n", SFT_gbAvoidExec );
-  printf("* ESD  %3d                        *\n", SFT_gbReadESD );
-  printf("* MC  %3d                         *\n", SFT_gbReadMC );
-  printf("* EXTRAEVENTCUT  %3d              *\n", SFT_gbExtraEventCut );
-  printf("* CENTMETHOD  %8s                 *\n", SFT_gbCentMethod.Data() );
-  printf("* CENTPERMIN  %3d                 *\n", SFT_gbCentPerMin );
-  printf("* CENTPERMAX  %3d                 *\n", SFT_gbCentPerMax );
-  printf("* SPECIE  %3d                     *\n", SFT_gbSpecie );
-  printf("* HOMEMADE  %3d                   *\n", SFT_gbHomemade );
-  printf("* ONLINE  %3d                     *\n", SFT_gbOnline );
-  printf("* MINNCLSTTPC  %3d                *\n", SFT_gbMinNClsTPC );
-  printf("* MINXROWS  %3d                   *\n", SFT_gbMinXRows );
-  printf("* MAXCHI2NCLSTPC  %+9.6f      *\n", SFT_gbMaxChi2PerNClsTPC );
-  printf("* MINXROWSNFCLSTPC  %+9.6f    *\n", SFT_gbMinXRowsOverNClsFTPC );
-  printf("* MINETA  %+9.6f              *\n", SFT_gbMinEta );
-  printf("* MAXETA  %+9.6f              *\n", SFT_gbMaxEta );
-  printf("* MINPT  %+9.6f               *\n", SFT_gbMinPt );
-  printf("* UNTAG  %+9.6f               *\n", SFT_gbUntagDaughter );
-  printf("* MIND0XY  %+9.6f             *\n", SFT_gbMinImpactParameterXY );
-  printf("* MAXSIGMAPID  %+9.6f         *\n", SFT_gbMaxNSigmaPID );
-  printf("* MAXY  %+9.6f                *\n", SFT_gbMaxRapidity );
-  printf("* MAXDCA  %+9.6f              *\n", SFT_gbMaxDCAdaughters );
-  printf("* MINCTP  %+9.6f              *\n", SFT_gbMinCosinePointingAngleXY );
-  printf("* MINQT  %+9.6f               *\n", SFT_gbMinQt );
-  printf("* QTPIE  %+9.6f               *\n", SFT_gbQtPie );
-  printf("* MINRADXY  %+9.6f            *\n", SFT_gbMinRadXY );
-  printf("* MAXDL  %+9.6f               *\n", SFT_gbMaxDecayLength );
-  printf("* D0D0XY  %+9.6f              *\n", SFT_gbMaxProductIPXY );
-  printf("* DEBUG  %3d                      *\n", SFT_gbDebug );
-  printf("* QA  %3d                         *\n", SFT_gbQA );
-  printf("* SKIPSELECTION  %3d              *\n", SFT_gbSkipSelection );
-  printf("* SKIPFLOW  %3d                   *\n", SFT_gbSkipFlow );
-  printf("* USEFP  %3d                      *\n", SFT_gbFlowPackage );
-  printf("* SPVZE  %3d                      *\n", SFT_gbSPVZE );
-  printf("* SPVZEHALF  %3d                  *\n", SFT_gbSPVZEhalf );
-  printf("* SPTPC  %3d                      *\n", SFT_gbSPTPC );
-  printf("* QCTPC  %3d                      *\n", SFT_gbQCTPC );
-  printf("* SHRINKFP  %3d                   *\n", SFT_gbShrinkFP );
-  printf("* RFFILTERBIT  %3d                *\n", SFT_gbRFPFilterBit );
-  printf("* RFMINPT  %+9.6f             *\n", SFT_gbRFPminPt );
-  printf("* RFMAXPT  %+9.6f             *\n", SFT_gbRFPmaxPt );
-  printf("* RFMINETA  %+9.6f            *\n", SFT_gbRFPminEta );
-  printf("* RFMAXETA  %+9.6f            *\n", SFT_gbRFPmaxEta );
-  printf("* RFTPCSIGNAL  %+9.6f         *\n", SFT_gbRFPTPCsignal );
-  printf("* RFMAXIPXY  %+9.6f           *\n", SFT_gbRFPmaxIPxy );
-  printf("* RFMAXIPZ  %+9.6f            *\n", SFT_gbRFPmaxIPz );
-  printf("* RFTPCNCLS  %3d                  *\n", SFT_gbRFPTPCncls );
-  printf("* VZELOAD  %8s            *\n", SFT_gbVZEload.Data() );
-  printf("* VZELINEAR  %3d                  *\n", SFT_gbVZEmb );
-  printf("* VZEPERDISK  %3d                 *\n", SFT_gbVZEpdisk );
-  printf("* VZESAVE  %3d                    *\n", SFT_gbVZEsave );
+  printf("* SUFFIX  %s *\n", SFT_gbSuffix.Data() );
+  printf("* TRIGGER  %d *\n", SFT_gbTrigger );
+  printf("* RUNPP  %d *\n", SFT_gbRunPP );
+  printf("* RUNPA  %d *\n", SFT_gbRunPA );
+  printf("* AVOIDEXEC  %d *\n", SFT_gbAvoidExec );
+  printf("* SKIPCENTRALITY  %d *\n", SFT_gbSkipCentrality );
+  printf("* ESD  %d *\n", SFT_gbReadESD );
+  printf("* MC  %d *\n", SFT_gbReadMC );
+  printf("* HARMONIC  %d *\n", SFT_gbHarmonic );
+  printf("* ADDPITOMCEP  %d *\n", SFT_gbAddPitoMCRP );
+  printf("* POSTMATCHED  %d *\n", SFT_gbPostMatched );
+  printf("* EXTRAEVENTCUT  %d *\n", SFT_gbExtraEventCut );
+  printf("* CENTMETHOD  %s *\n", SFT_gbCentMethod.Data() );
+  printf("* CENTPERMIN  %d *\n", SFT_gbCentPerMin );
+  printf("* CENTPERMAX  %d *\n", SFT_gbCentPerMax );
+  printf("* VERTEXZ  %f *\n", SFT_gbVertexZcut );
+  printf("* SPECIE  %d *\n", SFT_gbSpecie );
+  printf("* HOMEMADE  %d *\n", SFT_gbHomemade );
+  printf("* ONLINE  %d *\n", SFT_gbOnline );
+  printf("* MINNCLSTTPC  %d *\n", SFT_gbMinNClsTPC );
+  printf("* MINNCLSITS  %d *\n", SFT_gbMinNClsITS );
+  printf("* MINXROWS  %d *\n", SFT_gbMinXRows );
+  printf("* MAXCHI2NCLSTPC  %f *\n", SFT_gbMaxChi2PerNClsTPC );
+  printf("* MINXROWSNFCLSTPC  %f *\n", SFT_gbMinXRowsOverNClsFTPC );
+  printf("* MINETA  %f *\n", SFT_gbMinEta );
+  printf("* MAXETA  %f *\n", SFT_gbMaxEta );
+  printf("* MINPT  %f *\n", SFT_gbMinPt );
+  printf("* UNTAG  %f *\n", SFT_gbUntagDaughter );
+  printf("* MIND0XY  %f *\n", SFT_gbMinImpactParameterXY );
+  printf("* MAXSIGMAPID  %f *\n", SFT_gbMaxNSigmaPID );
+  printf("* MAXY  %f *\n", SFT_gbMaxRapidity );
+  printf("* MAXDCA  %f *\n", SFT_gbMaxDCAdaughters );
+  printf("* MINCTP  %f *\n", SFT_gbMinCosinePointingAngleXY );
+  printf("* MINQT  %f *\n", SFT_gbMinQt );
+  printf("* QTPIE  %f *\n", SFT_gbQtPie );
+  printf("* STOPPID  %f *\n", SFT_gbPIDPt );
+  printf("* MINRADXY  %f *\n", SFT_gbMinRadXY );
+  printf("* MAXDL  %f *\n", SFT_gbMaxDecayLength );
+  printf("* D0D0XY  %f *\n", SFT_gbMaxProductIPXY );
+  printf("* DEBUG  %d *\n", SFT_gbDebug );
+  printf("* QA  %d *\n", SFT_gbQA );
+  printf("* SKIPSELECTION  %d *\n", SFT_gbSkipSelection );
+  printf("* SKIPVN  %d *\n", SFT_gbSkipVn );
+  printf("* USEFP  %d *\n", SFT_gbFlowPackage );
+  printf("* SPVZE  %d *\n", SFT_gbSPVZE );
+  printf("* SPVZEHALF  %d *\n", SFT_gbSPVZEhalf );
+  printf("* SPTPC  %d *\n", SFT_gbSPTPC );
+  printf("* QCTPC  %d *\n", SFT_gbQCTPC );
+  printf("* MCEP  %d *\n", SFT_gbMCEP );
+  printf("* SHRINKFP  %d *\n", SFT_gbShrinkFP );
+  printf("* RFFILTERBIT  %d *\n", SFT_gbRFPFilterBit );
+  printf("* RFMINPT  %f *\n", SFT_gbRFPminPt );
+  printf("* RFMAXPT  %f *\n", SFT_gbRFPmaxPt );
+  printf("* RFCMINETA  %f *\n", SFT_gbRFPCminEta );
+  printf("* RFCMAXETA  %f *\n", SFT_gbRFPCmaxEta );
+  printf("* RFAMINETA  %f *\n", SFT_gbRFPAminEta );
+  printf("* RFAMAXETA  %f *\n", SFT_gbRFPAmaxEta );
+  printf("* RFTPCSIGNAL  %f *\n", SFT_gbRFPTPCsignal );
+  printf("* RFMAXIPXY  %f *\n", SFT_gbRFPmaxIPxy );
+  printf("* RFMAXIPZ  %f *\n", SFT_gbRFPmaxIPz );
+  printf("* RFTPCNCLS  %d *\n", SFT_gbRFPTPCncls );
+  printf("* RFVZEC_RingMin  %d *\n", SFT_gbV0CRingMin );
+  printf("* RFVZEC_RingMax  %d *\n", SFT_gbV0CRingMax );
+  printf("* RFVZEA_RingMin  %d *\n", SFT_gbV0ARingMin );
+  printf("* RFVZEA_RingMax  %d *\n", SFT_gbV0ARingMax );
+  printf("* WHICHPSI  %d *\n", SFT_gbWhichPsi );
+  printf("* VZELOAD  %s *\n", SFT_gbVZEload.Data() );
+  printf("* VZELINEAR  %d *\n", SFT_gbVZEmb );
+  printf("* VZEPERDISK  %d *\n", SFT_gbVZEpdisk );
+  printf("* VZESAVE  %d *\n", SFT_gbVZEsave );
+  printf("* DAUITS0  %d *\n", SFT_gbDauITS0On );
+  printf("* DAUITS1  %d *\n", SFT_gbDauITS1On );
+  printf("* DAUITS2  %d *\n", SFT_gbDauITS2On );
+  printf("* DAUITS3  %d *\n", SFT_gbDauITS3On );
+  printf("* DAUITS4  %d *\n", SFT_gbDauITS4On );
+  printf("* DAUITS5  %d *\n", SFT_gbDauITS5On );
+  printf("* DAUSPDANY  %d *\n", SFT_gbDauSPDany );
+  printf("* DAUITSrefit  %d *\n", SFT_gbDauITSrefit );
   printf("***********************************\n");
 }
 void SFT_ReadConfig(TString ipf) {
@@ -419,6 +501,8 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbRunPA;
     } else if(!varname.CompareTo("AVOIDEXEC")) {
       input >> SFT_gbAvoidExec;
+    } else if(!varname.CompareTo("SKIPCENTRALITY")) {
+      input >> SFT_gbSkipCentrality;
     } else if(!varname.CompareTo("ESD")) {
       input >> SFT_gbReadESD;
     } else if(!varname.CompareTo("MC")) {
@@ -439,6 +523,8 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbOnline;
     } else if(!varname.CompareTo("MINNCLSTTPC")) {
       input >> SFT_gbMinNClsTPC;
+    } else if(!varname.CompareTo("MINNCLSITS")) {
+      input >> SFT_gbMinNClsITS;
     } else if(!varname.CompareTo("MINXROWS")) {
       input >> SFT_gbMinXRows;
     } else if(!varname.CompareTo("MAXCHI2NCLSTPC")) {
@@ -465,6 +551,8 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbMinQt;
     } else if(!varname.CompareTo("QTPIE")) {
       input >> SFT_gbQtPie;
+    } else if(!varname.CompareTo("STOPPID")) {
+      input >> SFT_gbPIDPt;
     } else if(!varname.CompareTo("MINRADXY")) {
       input >> SFT_gbMinRadXY;
     } else if(!varname.CompareTo("MAXDL")) {
@@ -477,8 +565,8 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbQA;
     } else if(!varname.CompareTo("SKIPSELECTION")) {
       input >> SFT_gbSkipSelection;
-    } else if(!varname.CompareTo("SKIPFLOW")) {
-      input >> SFT_gbSkipFlow;
+    } else if(!varname.CompareTo("SKIPVN")) {
+      input >> SFT_gbSkipVn;
     } else if(!varname.CompareTo("USEFP")) {
       input >> SFT_gbFlowPackage;
     } else if(!varname.CompareTo("SPVZE")) {
@@ -489,18 +577,26 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbSPVZEhalf;
     } else if(!varname.CompareTo("QCTPC")) {
       input >> SFT_gbQCTPC;
+    } else if(!varname.CompareTo("MCEP")) {
+      input >> SFT_gbMCEP;
+    } else if(!varname.CompareTo("ADDPITOMCEP")) {
+      input >> SFT_gbAddPitoMCRP;
     } else if(!varname.CompareTo("SHRINKFP")) {
-      input >> SFT_ShrinkFP;
+      input >> SFT_gbShrinkFP;
     } else if(!varname.CompareTo("RFFILTERBIT")) {
       input >> SFT_gbRFPFilterBit;
     } else if(!varname.CompareTo("RFMINPT")) {
       input >> SFT_gbRFPminPt;
     } else if(!varname.CompareTo("RFMAXPT")) {
       input >> SFT_gbRFPmaxPt;
-    } else if(!varname.CompareTo("RFMINETA")) {
-      input >> SFT_gbRFPminEta;
-    } else if(!varname.CompareTo("RFMAXETA")) {
-      input >> SFT_gbRFPmaxEta;
+    } else if(!varname.CompareTo("RFCMINETA")) {
+      input >> SFT_gbRFPCminEta;
+    } else if(!varname.CompareTo("RFCMAXETA")) {
+      input >> SFT_gbRFPCmaxEta;
+    } else if(!varname.CompareTo("RFAMINETA")) {
+      input >> SFT_gbRFPAminEta;
+    } else if(!varname.CompareTo("RFAMAXETA")) {
+      input >> SFT_gbRFPAmaxEta;
     } else if(!varname.CompareTo("RFTPCSIGNAL")) {
       input >> SFT_gbRFPTPCsignal;
     } else if(!varname.CompareTo("RFMAXIPXY")) {
@@ -521,6 +617,38 @@ void SFT_ReadConfig(TString ipf) {
       input >> SFT_gbAllCC;
     } else if(!varname.CompareTo("UNTAG")) {
       input >> SFT_gbUntagDaughter;
+    } else if(!varname.CompareTo("POSTMATCHED")) {
+      input >> SFT_gbPostMatched;
+    } else if(!varname.CompareTo("VERTEXZ")) {
+      input >> SFT_gbVertexZcut;
+    } else if(!varname.CompareTo("WHICHPSI")) {
+      input >> SFT_gbWhichPsi;
+    } else if(!varname.CompareTo("DAUITS0")) {
+      input >> SFT_gbDauITS0On;
+    } else if(!varname.CompareTo("DAUITS1")) {
+      input >> SFT_gbDauITS1On;
+    } else if(!varname.CompareTo("DAUITS2")) {
+      input >> SFT_gbDauITS2On;
+    } else if(!varname.CompareTo("DAUITS3")) {
+      input >> SFT_gbDauITS3On;
+    } else if(!varname.CompareTo("DAUITS4")) {
+      input >> SFT_gbDauITS4On;
+    } else if(!varname.CompareTo("DAUITS5")) {
+      input >> SFT_gbDauITS5On;
+    } else if(!varname.CompareTo("DAUSPDANY")) {
+      input >> SFT_gbDauSPDany;
+    } else if(!varname.CompareTo("DAUITSREFIT")) {
+      input >> SFT_gbDauITSrefit;
+    } else if(!varname.CompareTo("RFVZEC_RingMin")) {
+      input >> SFT_gbV0CRingMin;
+    } else if(!varname.CompareTo("RFVZEC_RingMax")) {
+      input >> SFT_gbV0CRingMax;
+    } else if(!varname.CompareTo("RFVZEA_RingMin")) {
+      input >> SFT_gbV0ARingMin;
+    } else if(!varname.CompareTo("RFVZEA_RingMax")) {
+      input >> SFT_gbV0ARingMax;
+    } else if(!varname.CompareTo("HARMONIC")) {
+      input >> SFT_gbHarmonic;
     } else {
       printf("I dont understand %s\n",varname.Data());
     }
@@ -542,6 +670,7 @@ void SFT_ResetVars() {
   SFT_gbHomemade=0;
   SFT_gbOnline=0;
   SFT_gbMinNClsTPC=70;
+  SFT_gbMinNClsITS=-1;
   SFT_gbMinXRows=70;
   SFT_gbMaxChi2PerNClsTPC=4.0;
   SFT_gbMinXRowsOverNClsFTPC=0.8;
@@ -555,6 +684,7 @@ void SFT_ResetVars() {
   SFT_gbMinCosinePointingAngleXY=0.998;
   SFT_gbMinQt=0.2;
   SFT_gbQtPie=kTRUE;
+  SFT_gbPIDPt=3.0;
   SFT_gbMinRadXY=5.0;
   SFT_gbMaxDecayLength=3.0;
   SFT_gbMaxProductIPXY=0.0;
@@ -565,26 +695,45 @@ void SFT_ResetVars() {
   SFT_gbRFPFilterBit=1;
   SFT_gbRFPminPt=0.2;
   SFT_gbRFPmaxPt=5.0;
-  SFT_gbRFPminEta=-0.8;
-  SFT_gbRFPmaxEta=+0.8;
+  SFT_gbRFPCminEta=-0.8;
+  SFT_gbRFPCmaxEta=0.0;
+  SFT_gbRFPAminEta=0.0;
+  SFT_gbRFPAmaxEta=+0.8;
   SFT_gbRFPTPCsignal=10;
   SFT_gbRFPmaxIPxy=2.4;
   SFT_gbRFPmaxIPz=3.2;
   SFT_gbRFPTPCncls=70;
+  SFT_gbV0CRingMin=0;
+  SFT_gbV0CRingMax=3;
+  SFT_gbV0ARingMin=0;
+  SFT_gbV0ARingMax=3;
   SFT_gbAllCC=0;
   SFT_gbSkipSelection=0;
-  SFT_gbSkipFlow=0;
-  SFT_gbWhichPsi=2;
+  SFT_gbSkipVn=0;
+  SFT_gbWhichPsi=1;
   SFT_gbFlowPackage=0;
   SFT_gbSPVZE=0;
   SFT_gbSPVZEhalf=kFALSE;
   SFT_gbSPTPC=0;
   SFT_gbQCTPC=0;
+  SFT_gbMCEP=0;
   SFT_gbHarmonic=2;
   SFT_gbVZEload="no";
   SFT_gbVZEsave=0;
   SFT_gbVZEmb=0;
   SFT_gbVZEpdisk=0;
   SFT_gbUntagDaughter=kTRUE;
+  SFT_gbPostMatched=kFALSE;
   SFT_gbShrinkFP=kTRUE;
+  SFT_gbVertexZcut=10.0;
+  SFT_gbDauITS0On=-1;
+  SFT_gbDauITS1On=-1;
+  SFT_gbDauITS2On=-1;
+  SFT_gbDauITS3On=-1;
+  SFT_gbDauITS4On=-1;
+  SFT_gbDauITS5On=-1;
+  SFT_gbSkipCentrality=kFALSE;
+  SFT_gbAddPitoMCRP=kFALSE;
+  SFT_gbDauSPDany=kFALSE;
+  SFT_gbDauITSrefit=kFALSE;
 }