]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
from Carlos Perez:
authormkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Jun 2013 12:07:23 +0000 (12:07 +0000)
committermkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Jun 2013 12:07:23 +0000 (12:07 +0000)
loading config+calibration files when using the train system

PWG/FLOW/Tasks/AliAnalysisTaskFlowStrange.cxx
PWG/FLOW/Tasks/AliAnalysisTaskFlowStrange.h
PWGCF/FLOW/macros/AddTaskFlowStrange.C

index ee59c92804aafdbd8abaace037cd5006d9e30925..41c266d6aafa6153df2359d519f0858f0a9cfb67 100644 (file)
@@ -107,6 +107,7 @@ AliAnalysisTaskFlowStrange::AliAnalysisTaskFlowStrange() :
   fVZEsave(kFALSE),\r
   fVZEload(NULL),\r
   fVZEResponse(NULL),\r
+  fVZEmb(kFALSE),\r
   fVZEQA(NULL),\r
   fPsi2(0.0),\r
   fMassBins(0),\r
@@ -204,6 +205,7 @@ AliAnalysisTaskFlowStrange::AliAnalysisTaskFlowStrange(const char *name) :
   fVZEsave(kFALSE),\r
   fVZEload(NULL),\r
   fVZEResponse(NULL),\r
+  fVZEmb(kFALSE),\r
   fVZEQA(NULL),\r
   fPsi2(0.0),\r
   fMassBins(0),\r
@@ -1296,8 +1298,13 @@ void AliAnalysisTaskFlowStrange::MakeQVZE(AliVEvent *tevent,
   Double_t extW[64];\r
   for(int i=0;i!=64;++i) extW[i]=1;\r
   if((!fVZEsave)&&(fVZEResponse)) {\r
-    Int_t ybinmin = fVZEResponse->GetYaxis()->FindBin(fCentPerMin+1e-6);\r
-    Int_t ybinmax = fVZEResponse->GetYaxis()->FindBin(fCentPerMax-1e-6);\r
+    Double_t minC = fCentPerMin, maxC = fCentPerMax;\r
+    if(fVZEmb) {\r
+      minC = 0;\r
+      maxC = 80;\r
+    }\r
+    Int_t ybinmin = fVZEResponse->GetYaxis()->FindBin(minC+1e-6);\r
+    Int_t ybinmax = fVZEResponse->GetYaxis()->FindBin(maxC-1e-6);\r
     for(int i=0;i!=64;++i) extW[i] = fVZEResponse->Integral(i+1,i+1,ybinmin,ybinmax);\r
     Double_t ring[8];\r
     for(int j=0; j!=8; ++j) {\r
index 224a0b327d07c370d481037395c27ff2880ee515..6ba63cde9ca159bd1fdfad932f5af215a48f726f 100644 (file)
@@ -66,7 +66,7 @@ class AliAnalysisTaskFlowStrange : public AliAnalysisTaskSE {
 \r
   void SetWhichPsi(Int_t val) {fWhichPsi=val;}\r
   void SetStoreVZEResponse(Bool_t val) {fVZEsave=val;}\r
-  void LoadVZEResponse(TList *val) {fVZEload=val;}\r
+  void LoadVZEResponse(TList *val, Bool_t val2=kFALSE) {fVZEload=val;fVZEmb=val2;}\r
   \r
   void SetRFPFilterBit(Int_t val) {fRFPFilterBit=val;}\r
   void SetRFPMinPt(Double_t val) {fRFPminPt=val;}\r
@@ -207,6 +207,7 @@ class AliAnalysisTaskFlowStrange : public AliAnalysisTaskSE {
   Bool_t  fVZEsave; // make vze response\r
   TList  *fVZEload; // adress to calibration file\r
   TH2D   *fVZEResponse; // vze response vs centrality class\r
+  Bool_t  fVZEmb;   // integrate response (linearity)\r
   TList  *fVZEQA;   // adress to qalist\r
   Double_t fPsi2;   // best estimation of Psi2\r
 \r
index 5a3fb708ab4d033cbc58fe1beb758fb0d8075a16..a1b29672e15cb856811cdadda20a394842d0f4fd 100644 (file)
@@ -1,73 +1,78 @@
-UInt_t gbTrigger;\r
-Bool_t gbReadESD;\r
-Bool_t gbReadMC;\r
-Int_t gbMatchMC;\r
-Bool_t gbAvoidExec;\r
-Bool_t gbExtraEventCut=kFALSE;\r
-TString gbCentMethod;\r
-Int_t gbCentPerMin,gbCentPerMax;\r
-Bool_t gbRunPP;\r
-Bool_t gbRunPA;\r
-Int_t gbSpecie;\r
-Bool_t gbHomemade;\r
-Bool_t gbOnline;\r
-Int_t gbMinNClsTPC;\r
-Int_t gbMinXRows;\r
-Double_t gbMaxChi2PerNClsTPC;\r
-Double_t gbMinXRowsOverNClsFTPC;\r
-Double_t gbMinEta;\r
-Double_t gbMaxEta;\r
-Double_t gbMinPt;\r
-Double_t gbMinImpactParameterXY;\r
-Double_t gbMaxNSigmaPID;\r
-Double_t gbMaxRapidity;\r
-Double_t gbMaxDCAdaughters;\r
-Double_t gbMinCosinePointingAngleXY;\r
-Double_t gbMinQt;\r
-Bool_t   gbQtPie=kTRUE;\r
-Double_t gbMinRadXY;\r
-Double_t gbMaxDecayLength;\r
-Double_t gbMaxProductIPXY;\r
-Int_t gbDebug=0;\r
-Int_t gbQA;\r
-TString gbFolder="FlowStrange";\r
-TString gbSuffix="kze";\r
-TString gbStamp;\r
-Int_t gbRFPFilterBit=1;\r
-Double_t gbRFPminPt=0.2;\r
-Double_t gbRFPmaxPt=5.0;\r
-Double_t gbRFPminEta=-0.8;\r
-Double_t gbRFPmaxEta=+0.8;\r
-Double_t gbRFPTPCsignal=10;\r
-Double_t gbRFPmaxIPxy=2.4;\r
-Double_t gbRFPmaxIPz=3.2;\r
-Int_t gbRFPTPCncls=70;\r
-\r
-Bool_t gbAllCC=0;\r
-Bool_t gbSkipSelection=0;\r
-Bool_t gbSkipFlow=0;\r
-Int_t gbWhichPsi=2;\r
-Bool_t gbFlowPackage=1;\r
-Bool_t gbSPVZE=1;//1\r
-Bool_t gbSPTPC=1;\r
-Bool_t gbQCTPC=1;//1\r
-Int_t gbHarmonic=2;\r
-TString gbVZEload="";\r
-Bool_t gbVZEsave=0;\r
+UInt_t SFT_gbTrigger;\r
+Bool_t SFT_gbReadESD;\r
+Bool_t SFT_gbReadMC;\r
+Int_t SFT_gbMatchMC;\r
+Bool_t SFT_gbAvoidExec;\r
+Bool_t SFT_gbExtraEventCut=kFALSE;\r
+TString SFT_gbCentMethod;\r
+Int_t SFT_gbCentPerMin,SFT_gbCentPerMax;\r
+Bool_t SFT_gbRunPP;\r
+Bool_t SFT_gbRunPA;\r
+Int_t SFT_gbSpecie;\r
+Bool_t SFT_gbHomemade;\r
+Bool_t SFT_gbOnline;\r
+Int_t SFT_gbMinNClsTPC;\r
+Int_t SFT_gbMinXRows;\r
+Double_t SFT_gbMaxChi2PerNClsTPC;\r
+Double_t SFT_gbMinXRowsOverNClsFTPC;\r
+Double_t SFT_gbMinEta;\r
+Double_t SFT_gbMaxEta;\r
+Double_t SFT_gbMinPt;\r
+Double_t SFT_gbMinImpactParameterXY;\r
+Double_t SFT_gbMaxNSigmaPID;\r
+Double_t SFT_gbMaxRapidity;\r
+Double_t SFT_gbMaxDCAdaughters;\r
+Double_t SFT_gbMinCosinePointingAngleXY;\r
+Double_t SFT_gbMinQt;\r
+Bool_t   SFT_gbQtPie=kTRUE;\r
+Double_t SFT_gbMinRadXY;\r
+Double_t SFT_gbMaxDecayLength;\r
+Double_t SFT_gbMaxProductIPXY;\r
+Int_t SFT_gbDebug;\r
+Int_t SFT_gbQA;\r
+TString SFT_gbFolder;\r
+TString SFT_gbSuffix;\r
+TString SFT_gbStamp;\r
+Int_t SFT_gbRFPFilterBit;\r
+Double_t SFT_gbRFPminPt;\r
+Double_t SFT_gbRFPmaxPt;\r
+Double_t SFT_gbRFPminEta;\r
+Double_t SFT_gbRFPmaxEta;\r
+Double_t SFT_gbRFPTPCsignal;\r
+Double_t SFT_gbRFPmaxIPxy;\r
+Double_t SFT_gbRFPmaxIPz;\r
+Int_t SFT_gbRFPTPCncls;\r
 \r
+Bool_t SFT_gbAllCC;\r
+Bool_t SFT_gbSkipSelection;\r
+Bool_t SFT_gbSkipFlow;\r
+Int_t SFT_gbWhichPsi;\r
+Bool_t SFT_gbFlowPackage;\r
+Bool_t SFT_gbSPVZE;\r
+Bool_t SFT_gbSPTPC;\r
+Bool_t SFT_gbQCTPC;\r
+Int_t SFT_gbHarmonic;\r
+TString SFT_gbVZEload;\r
+Bool_t SFT_gbVZEsave;\r
+Bool_t SFT_gbVZEmb;\r
 \r
+void AddTaskFlowStrange(TString configFile, TString alienaddress) {\r
+  Int_t ret = gSystem->Exec( Form("alien_cp %s/%s .",alienaddress.Data(),configFile.Data()) );\r
+  printf("FlowStrange copying from grid %d\n",ret);\r
+  AddTaskFlowStrange(configFile);\r
+}\r
 void AddTaskFlowStrange(TString configFile) {\r
   SFT_ReadConfig(configFile);\r
-  if(gbAllCC) {\r
+  if(SFT_gbAllCC) {\r
     int centMin[9] = {00,05,10,20,30,40,50,60,70};\r
     int centMax[9] = {05,10,20,30,40,50,60,70,80};\r
     int ncent=9;\r
-    if(gbRunPP) {\r
+    if(SFT_gbRunPP) {\r
       ncent=3;\r
       centMin[0]=10; centMax[0]=30;\r
       centMin[1]=30; centMax[1]=50;\r
       centMin[2]=0; centMax[2]=100;\r
-    } else if(gbRunPA) {\r
+    } else if(SFT_gbRunPA) {\r
       ncent=4;\r
       centMin[0]=00; centMax[0]=20;\r
       centMin[1]=20; centMax[1]=40;\r
@@ -75,11 +80,11 @@ void AddTaskFlowStrange(TString configFile) {
       centMin[3]=60; centMax[3]=80;\r
     } else {\r
     }\r
-    TString antSuffix = gbSuffix;\r
+    TString antSuffix = SFT_gbSuffix;\r
     for(int cc=0; cc!=ncent; ++cc) {\r
-      gbCentPerMin = centMin[cc];\r
-      gbCentPerMax = centMax[cc];\r
-      gbSuffix = Form("%s%d%d",antSuffix.Data(),gbCentPerMin,gbCentPerMax);\r
+      SFT_gbCentPerMin = centMin[cc];\r
+      SFT_gbCentPerMax = centMax[cc];\r
+      SFT_gbSuffix = Form("%s%d%d",antSuffix.Data(),SFT_gbCentPerMin,SFT_gbCentPerMax);\r
       AddTaskFlowStrange();\r
     }\r
   } else {\r
@@ -91,83 +96,83 @@ void AddTaskFlowStrange() {
 \r
   TString fileName = AliAnalysisManager::GetCommonFileName();\r
   fileName.ReplaceAll(".root","");\r
-  gbStamp = gbFolder + gbSuffix;\r
+  SFT_gbStamp = SFT_gbFolder + SFT_gbSuffix;\r
 \r
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();\r
 \r
   //-----------------STRANGE TASK----------------------------\r
-  AliAnalysisTaskFlowStrange *taskSel = new AliAnalysisTaskFlowStrange(Form("FS_%s",gbStamp.Data()) );\r
-  taskSel->SelectCollisionCandidates(gbTrigger);\r
-  taskSel->SetReadESD(gbReadESD);\r
-  taskSel->SetReadMC(gbReadMC);\r
-  taskSel->SetAvoidExec(gbAvoidExec);\r
-  taskSel->SetSkipSelection(gbSkipSelection);\r
-  taskSel->SetSkipFlow(gbSkipFlow);\r
-  taskSel->SetExtraEventRejection(gbExtraEventCut);\r
-  taskSel->SetCentralityRange(gbCentMethod,gbCentPerMin,gbCentPerMax);\r
-  if(gbRunPP) taskSel->Setpp();\r
-  if(gbRunPA) taskSel->SetpA();\r
-  taskSel->SetDebug(gbDebug);\r
-  taskSel->SetK0L0(gbSpecie);\r
-  taskSel->SetOnline( gbOnline );\r
-  taskSel->SetMass( SFT_MassBins(gbSpecie),\r
-                    SFT_MinMass(gbSpecie),\r
-                    SFT_MaxMass(gbSpecie) );\r
+  AliAnalysisTaskFlowStrange *taskSel = new AliAnalysisTaskFlowStrange(Form("FS_%s",SFT_gbStamp.Data()) );\r
+  taskSel->SelectCollisionCandidates(SFT_gbTrigger);\r
+  taskSel->SetReadESD(SFT_gbReadESD);\r
+  taskSel->SetReadMC(SFT_gbReadMC);\r
+  taskSel->SetAvoidExec(SFT_gbAvoidExec);\r
+  taskSel->SetSkipSelection(SFT_gbSkipSelection);\r
+  taskSel->SetSkipFlow(SFT_gbSkipFlow);\r
+  taskSel->SetExtraEventRejection(SFT_gbExtraEventCut);\r
+  taskSel->SetCentralityRange(SFT_gbCentMethod,SFT_gbCentPerMin,SFT_gbCentPerMax);\r
+  if(SFT_gbRunPP) taskSel->Setpp();\r
+  if(SFT_gbRunPA) taskSel->SetpA();\r
+  taskSel->SetDebug(SFT_gbDebug);\r
+  taskSel->SetK0L0(SFT_gbSpecie);\r
+  taskSel->SetOnline( SFT_gbOnline );\r
+  taskSel->SetMass( SFT_MassBins(SFT_gbSpecie),\r
+                    SFT_MinMass(SFT_gbSpecie),\r
+                    SFT_MaxMass(SFT_gbSpecie) );\r
 \r
-  taskSel->SetWhichPsi(gbWhichPsi);\r
-  taskSel->SetRFPFilterBit(gbRFPFilterBit);\r
-  taskSel->SetRFPMinPt(gbRFPminPt);\r
-  taskSel->SetRFPMaxPt(gbRFPmaxPt);\r
-  taskSel->SetRFPMinEta(gbRFPminEta);\r
-  taskSel->SetRFPMaxEta(gbRFPmaxEta);\r
-  taskSel->SetRFPTPCSignal(gbRFPTPCsignal);\r
-  taskSel->SetRFPMaxIPxy(gbRFPmaxIPxy);\r
-  taskSel->SetRFPMaxIPz(gbRFPmaxIPz);\r
-  taskSel->SetRFPMinTPCCls(gbRFPTPCncls);\r
+  taskSel->SetWhichPsi(SFT_gbWhichPsi);\r
+  taskSel->SetRFPFilterBit(SFT_gbRFPFilterBit);\r
+  taskSel->SetRFPMinPt(SFT_gbRFPminPt);\r
+  taskSel->SetRFPMaxPt(SFT_gbRFPmaxPt);\r
+  taskSel->SetRFPMinEta(SFT_gbRFPminEta);\r
+  taskSel->SetRFPMaxEta(SFT_gbRFPmaxEta);\r
+  taskSel->SetRFPTPCSignal(SFT_gbRFPTPCsignal);\r
+  taskSel->SetRFPMaxIPxy(SFT_gbRFPmaxIPxy);\r
+  taskSel->SetRFPMaxIPz(SFT_gbRFPmaxIPz);\r
+  taskSel->SetRFPMinTPCCls(SFT_gbRFPTPCncls);\r
 \r
-  taskSel->SetDauMinNClsTPC(gbMinNClsTPC);\r
-  taskSel->SetDauMaxChi2PerNClsTPC(gbMaxChi2PerNClsTPC);\r
-  taskSel->SetDauMinXRowsOverNClsFTPC(gbMinXRowsOverNClsFTPC);\r
-  taskSel->SetDauMinEta(gbMinEta);\r
-  taskSel->SetDauMaxEta(gbMaxEta);\r
-  taskSel->SetDauMinPt(gbMinPt);\r
-  taskSel->SetDauMinImpactParameterXY(gbMinImpactParameterXY);\r
-  taskSel->SetDauMaxNSigmaPID(gbMaxNSigmaPID);\r
+  taskSel->SetDauMinNClsTPC(SFT_gbMinNClsTPC);\r
+  taskSel->SetDauMaxChi2PerNClsTPC(SFT_gbMaxChi2PerNClsTPC);\r
+  taskSel->SetDauMinXRowsOverNClsFTPC(SFT_gbMinXRowsOverNClsFTPC);\r
+  taskSel->SetDauMinEta(SFT_gbMinEta);\r
+  taskSel->SetDauMaxEta(SFT_gbMaxEta);\r
+  taskSel->SetDauMinPt(SFT_gbMinPt);\r
+  taskSel->SetDauMinImpactParameterXY(SFT_gbMinImpactParameterXY);\r
+  taskSel->SetDauMaxNSigmaPID(SFT_gbMaxNSigmaPID);\r
 \r
-  taskSel->SetMaxRapidity(gbMaxRapidity);\r
-  taskSel->SetMaxDCAdaughters(gbMaxDCAdaughters);\r
-  taskSel->SetMinCosinePointingAngleXY(gbMinCosinePointingAngleXY);\r
-  taskSel->SetMinQt(gbMinQt,gbQtPie);\r
-  taskSel->SetMinRadXY(gbMinRadXY);\r
-  taskSel->SetMaxDecayLength(gbMaxDecayLength);\r
-  taskSel->SetMaxProductIPXY(gbMaxProductIPXY);\r
-  taskSel->SetMinEta(gbMinEta);\r
-  taskSel->SetMaxEta(gbMaxEta);\r
-  taskSel->SetMinPt(gbMinPt);\r
-  taskSel->SetUseFlowPackage(gbFlowPackage);\r
+  taskSel->SetMaxRapidity(SFT_gbMaxRapidity);\r
+  taskSel->SetMaxDCAdaughters(SFT_gbMaxDCAdaughters);\r
+  taskSel->SetMinCosinePointingAngleXY(SFT_gbMinCosinePointingAngleXY);\r
+  taskSel->SetMinQt(SFT_gbMinQt,SFT_gbQtPie);\r
+  taskSel->SetMinRadXY(SFT_gbMinRadXY);\r
+  taskSel->SetMaxDecayLength(SFT_gbMaxDecayLength);\r
+  taskSel->SetMaxProductIPXY(SFT_gbMaxProductIPXY);\r
+  taskSel->SetMinEta(SFT_gbMinEta);\r
+  taskSel->SetMaxEta(SFT_gbMaxEta);\r
+  taskSel->SetMinPt(SFT_gbMinPt);\r
+  taskSel->SetUseFlowPackage(SFT_gbFlowPackage);\r
 \r
-  taskSel->SetQAlevel(gbQA);\r
-  if(gbVZEload.Length()>4) {\r
-    TFile *ocalib = TFile::Open(gbVZEload);\r
+  taskSel->SetQAlevel(SFT_gbQA);\r
+  if(SFT_gbVZEload.Length()>4) {\r
+    TFile *ocalib = TFile::Open(SFT_gbVZEload);\r
     if(ocalib->IsOpen()) {\r
       TList *vzero = ocalib->Get("VZECALIB");\r
-      taskSel->LoadVZEResponse(vzero);\r
+      taskSel->LoadVZEResponse(vzero,SFT_gbVZEmb);\r
     } else {\r
-      printf("ADDTASKFLOWSTRANGE COULD NOT OPEN %s. NO VZE CALIBRATION LOADED!\n",gbVZEload.Data());\r
+      printf("ADDTASKFLOWSTRANGE COULD NOT OPEN %s. NO VZE CALIBRATION LOADED!\n",SFT_gbVZEload.Data());\r
     }\r
   }\r
 \r
-  taskSel->SetStoreVZEResponse(gbVZEsave);\r
-  AliAnalysisDataContainer *cOutHist = mgr->CreateContainer(Form("FS_OH_%s",gbStamp.Data()),\r
+  taskSel->SetStoreVZEResponse(SFT_gbVZEsave);\r
+  AliAnalysisDataContainer *cOutHist = mgr->CreateContainer(Form("FS_OH_%s",SFT_gbStamp.Data()),\r
                                                            TList::Class(),\r
                                                            AliAnalysisManager::kOutputContainer,\r
                                                            Form("%s.root:Selector_%s",fileName.Data(),\r
-                                                                gbFolder.Data()));\r
-  AliAnalysisDataContainer *exc_TPC = mgr->CreateContainer( Form("FS_TPC_%s",gbStamp.Data()),\r
+                                                                SFT_gbFolder.Data()));\r
+  AliAnalysisDataContainer *exc_TPC = mgr->CreateContainer( Form("FS_TPC_%s",SFT_gbStamp.Data()),\r
                                                             AliFlowEventSimple::Class(),\r
                                                             AliAnalysisManager::kExchangeContainer );\r
-  AliAnalysisDataContainer *exc_VZE = mgr->CreateContainer( Form("FS_VZE_%s",gbStamp.Data()),\r
+  AliAnalysisDataContainer *exc_VZE = mgr->CreateContainer( Form("FS_VZE_%s",SFT_gbStamp.Data()),\r
                                                             AliFlowEventSimple::Class(),\r
                                                             AliAnalysisManager::kExchangeContainer );\r
   mgr->AddTask(taskSel);\r
@@ -176,25 +181,25 @@ void AddTaskFlowStrange() {
   mgr->ConnectOutput(taskSel,2,exc_TPC);\r
   mgr->ConnectOutput(taskSel,3,exc_VZE);\r
 \r
-  if(!gbFlowPackage) return;\r
-  if( (!gbQCTPC) && (!gbSPVZE) && (!gbSPTPC) ) return;\r
+  if(!SFT_gbFlowPackage) return;\r
+  if( (!SFT_gbQCTPC) && (!SFT_gbSPVZE) && (!SFT_gbSPTPC) ) return;\r
   //-------------------FLOWPACKAGE TASKS----------------------------\r
   AliFlowTrackSimpleCuts *filter[20], *filterhf[20][2]; // MASS BANDS\r
-  for(int mb=0; mb!=SFT_MassBands(gbSpecie); ++mb) {\r
+  for(int mb=0; mb!=SFT_MassBands(SFT_gbSpecie); ++mb) {\r
     filter[mb] = new AliFlowTrackSimpleCuts( Form("Filter_MB%d",mb) );\r
     filter[mb]->SetEtaMin( -0.8 ); filter[mb]->SetEtaMax( +0.8 );\r
-    filter[mb]->SetMassMin( SFT_MassBandLowEdge(gbSpecie,mb) ); filter[mb]->SetMassMax( SFT_MassBandLowEdge(gbSpecie,mb+1) );\r
+    filter[mb]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filter[mb]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );\r
     //half window for POIs\r
     filterhf[mb][0] = new AliFlowTrackSimpleCuts( Form("Filterhf0_MB%d",mb) );\r
     filterhf[mb][0]->SetEtaMin( +0.0 ); filterhf[mb][0]->SetEtaMax( +0.8 );\r
-    filterhf[mb][0]->SetMassMin( SFT_MassBandLowEdge(gbSpecie,mb) ); filterhf[mb][0]->SetMassMax( SFT_MassBandLowEdge(gbSpecie,mb+1) );\r
+    filterhf[mb][0]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filterhf[mb][0]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );\r
     filterhf[mb][1] = new AliFlowTrackSimpleCuts( Form("Filterhf1_MB%d",mb) );\r
     filterhf[mb][1]->SetEtaMin( -0.8 ); filterhf[mb][1]->SetEtaMax( -0.0 );\r
-    filterhf[mb][1]->SetMassMin( SFT_MassBandLowEdge(gbSpecie,mb) ); filterhf[mb][1]->SetMassMax( SFT_MassBandLowEdge(gbSpecie,mb+1) );\r
-    if(gbQCTPC) {\r
+    filterhf[mb][1]->SetMassMin( SFT_MassBandLowEdge(SFT_gbSpecie,mb) ); filterhf[mb][1]->SetMassMax( SFT_MassBandLowEdge(SFT_gbSpecie,mb+1) );\r
+    if(SFT_gbQCTPC) {\r
       SFT_AddQCmethod( Form("QCTPCMB%d",mb), exc_TPC, filter[mb]); // QC TPC\r
     }\r
-    if(gbSPTPC) {\r
+    if(SFT_gbSPTPC) {\r
       SFT_AddSPmethod( Form("SPTPCMB%d",mb), exc_TPC, filterhf[mb][0], "Qa" ); // SP TPC Qa\r
       SFT_AddSPmethod( Form("SPTPCMB%d",mb), exc_TPC, filterhf[mb][1], "Qb" ); // SP TPC Qb\r
       SFT_AddSPmethod( Form("SPTPC2MB%d",mb), exc_TPC, filterhf[mb][0], "Qa", 0.2 ); // SP TPC Qa\r
@@ -202,17 +207,16 @@ void AddTaskFlowStrange() {
       SFT_AddSPmethod( Form("SPTPC4MB%d",mb), exc_TPC, filterhf[mb][0], "Qa", 0.4 ); // SP TPC Qa\r
       SFT_AddSPmethod( Form("SPTPC4MB%d",mb), exc_TPC, filterhf[mb][1], "Qb", 0.4 ); // SP TPC Qb\r
     }\r
-    if(gbSPVZE) {\r
+    if(SFT_gbSPVZE) {\r
       SFT_AddSPmethod( Form("SPVZEMB%d",mb), exc_VZE, filter[mb], "Qa" ); // SP VZE Qa\r
       SFT_AddSPmethod( Form("SPVZEMB%d",mb), exc_VZE, filter[mb], "Qb" ); // SP VZE Qa\r
     }\r
   }\r
 }\r
-// ADDING QC METHOD\r
 void SFT_AddQCmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL) {\r
   TString fileName = AliAnalysisManager::GetCommonFileName();\r
-  TString myFolder = Form("%sv%d",gbFolder.Data(),gbHarmonic);\r
-  TString myName = Form("%sv%d_%s",name,gbHarmonic,gbSuffix.Data());\r
+  TString myFolder = Form("%sv%d",SFT_gbFolder.Data(),SFT_gbHarmonic);\r
+  TString myName = Form("%sv%d_%s",name,SFT_gbHarmonic,SFT_gbSuffix.Data());\r
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
   AliAnalysisDataContainer *flowEvent2 = mgr->CreateContainer( Form("Filter_%s", myName.Data()),\r
                                                                AliFlowEventSimple::Class(),\r
@@ -226,17 +230,16 @@ void SFT_AddQCmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTra
                                                           Form("%s:FlowStrange_QC_%s",fileName.Data(),myFolder.Data()) );\r
   AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants( Form("TaskQCumulants_%s",myName.Data()),kFALSE );\r
   tskQC->SetApplyCorrectionForNUA(kTRUE);\r
-  tskQC->SetHarmonic(gbHarmonic);\r
+  tskQC->SetHarmonic(SFT_gbHarmonic);\r
   tskQC->SetBookOnlyBasicCCH(kTRUE);\r
   mgr->AddTask(tskQC);\r
   mgr->ConnectInput( tskQC,0,flowEvent2);\r
   mgr->ConnectOutput(tskQC,1,outQC);\r
 }\r
-// ADDING SP METHOD\r
 void SFT_AddSPmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL, char *Qvector, Double_t gap=0.0) {\r
   TString fileName = AliAnalysisManager::GetCommonFileName();\r
-  TString myFolder = Form("%sv%d",gbFolder.Data(),gbHarmonic);\r
-  TString myNameSP = Form("%sv%d%s_%s",name,gbHarmonic,Qvector,gbSuffix.Data());\r
+  TString myFolder = Form("%sv%d",SFT_gbFolder.Data(),SFT_gbHarmonic);\r
+  TString myNameSP = Form("%sv%d%s_%s",name,SFT_gbHarmonic,Qvector,SFT_gbSuffix.Data());\r
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
   AliAnalysisDataContainer *flowEvent2 = mgr->CreateContainer( Form("Filter_%s", myNameSP.Data()),\r
                                                                AliFlowEventSimple::Class(),\r
@@ -251,7 +254,7 @@ void SFT_AddSPmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTra
                                                           Form("%s:FlowStrange_SP_%s",fileName.Data(),myFolder.Data()) );\r
   AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct( Form("TaskScalarProduct_%s",myNameSP.Data()),kFALSE);\r
   tskSP->SetApplyCorrectionForNUA(kTRUE);\r
-  tskSP->SetHarmonic(gbHarmonic);\r
+  tskSP->SetHarmonic(SFT_gbHarmonic);\r
   tskSP->SetTotalQvector(Qvector);\r
   //tskSP->SetBookOnlyBasicCCH(kTRUE);\r
   tskSP->SetBookOnlyBasicCCH(kFALSE);\r
@@ -259,7 +262,6 @@ void SFT_AddSPmethod(char *name, AliAnalysisDataContainer *flowEvent, AliFlowTra
   mgr->ConnectInput( tskSP,0,flowEvent2);\r
   mgr->ConnectOutput(tskSP,1,outSP);\r
 }\r
-// MASSBAND HELPER\r
 double SFT_MassBandLowEdge( int nv0, int mb ) {\r
   switch(nv0) {\r
   case(0):\r
@@ -276,7 +278,6 @@ double SFT_MassBandLowEdge( int nv0, int mb ) {
   if(nv0>10&&mb==1) return +5;\r
   return lowEdge[mb];\r
 }\r
-// MASSBAND HELPER\r
 int SFT_MassBands( int nv0 ) {\r
   int bands=1;\r
   switch(nv0) {\r
@@ -289,7 +290,6 @@ int SFT_MassBands( int nv0 ) {
   if(nv0>10) bands=1;\r
   return bands;\r
 }\r
-// MASSBAND HELPER\r
 int SFT_MassBins( int nv0 ) {\r
   int bins=100;\r
   switch(nv0) {\r
@@ -303,70 +303,70 @@ int SFT_MassBins( int nv0 ) {
   if(nv0>10) bins=100;//CHARGED\r
   return bins;\r
 }\r
-// MASSBAND HELPER\r
 double SFT_MinMass( int nv0 ) {\r
   return SFT_MassBandLowEdge( nv0, 0 );\r
 }\r
-// MASSBAND HELPER\r
 double SFT_MaxMass( int nv0 ) {\r
   return SFT_MassBandLowEdge( nv0, SFT_MassBands(nv0) );\r
 }\r
 void SFT_PrintConfig() {\r
   printf("***********************************\n");\r
   printf("* STRANGE FLOW TASK CONFIGURATION *\n");\r
-  printf("* SUFFIX  %8s                *\n", gbSuffix.Data() );\r
-  printf("* TRIGGER  %8d               *\n", gbTrigger );\r
-  printf("* RUNPP  %3d                      *\n", gbRunPP );\r
-  printf("* RUNPA  %3d                      *\n", gbRunPA );\r
-  printf("* AVOIDEXEC  %3d                  *\n", gbAvoidExec );\r
-  printf("* ESD  %3d                        *\n", gbReadESD );\r
-  printf("* MC  %3d                         *\n", gbReadMC );\r
-  printf("* EXTRAEVENTCUT  %3d              *\n", gbExtraEventCut );\r
-  printf("* CENTMETHOD  %8s                 *\n", gbCentMethod.Data() );\r
-  printf("* CENTPERMIN  %3d                 *\n", gbCentPerMin );\r
-  printf("* CENTPERMAX  %3d                 *\n", gbCentPerMax );\r
-  printf("* SPECIE  %3d                     *\n", gbSpecie );\r
-  printf("* HOMEMADE  %3d                   *\n", gbHomemade );\r
-  printf("* ONLINE  %3d                     *\n", gbOnline );\r
-  printf("* MINNCLSTTPC  %3d                *\n", gbMinNClsTPC );\r
-  printf("* MINXROWS  %3d                   *\n", gbMinXRows );\r
-  printf("* MAXCHI2NCLSTPC  %+9.6f      *\n", gbMaxChi2PerNClsTPC );\r
-  printf("* MINXROWSNFCLSTPC  %+9.6f    *\n", gbMinXRowsOverNClsFTPC );\r
-  printf("* MINETA  %+9.6f              *\n", gbMinEta );\r
-  printf("* MAXETA  %+9.6f              *\n", gbMaxEta );\r
-  printf("* MINPT  %+9.6f               *\n", gbMinPt );\r
-  printf("* MIND0XY  %+9.6f             *\n", gbMinImpactParameterXY );\r
-  printf("* MAXSIGMAPID  %+9.6f         *\n", gbMaxNSigmaPID );\r
-  printf("* MAXY  %+9.6f                *\n", gbMaxRapidity );\r
-  printf("* MAXDCA  %+9.6f              *\n", gbMaxDCAdaughters );\r
-  printf("* MINCTP  %+9.6f              *\n", gbMinCosinePointingAngleXY );\r
-  printf("* MINQT  %+9.6f               *\n", gbMinQt );\r
-  printf("* QTPIE  %+9.6f               *\n", gbQtPie );\r
-  printf("* MINRADXY  %+9.6f            *\n", gbMinRadXY );\r
-  printf("* MAXDL  %+9.6f               *\n", gbMaxDecayLength );\r
-  printf("* D0D0XY  %+9.6f              *\n", gbMaxProductIPXY );\r
-  printf("* DEBUG  %3d                      *\n", gbDebug );\r
-  printf("* QA  %3d                         *\n", gbQA );\r
-  printf("* SKIPSELECTION  %3d              *\n", gbSkipSelection );\r
-  printf("* SKIPFLOW  %3d                   *\n", gbSkipFlow );\r
-  printf("* USEFP  %3d                      *\n", gbFlowPackage );\r
-  printf("* SPVZE  %3d                      *\n", gbSPVZE );\r
-  printf("* SPTPC  %3d                      *\n", gbSPTPC );\r
-  printf("* QCTPC  %3d                      *\n", gbQCTPC );\r
-  printf("* RFFILTERBIT  %3d                *\n", gbRFPFilterBit );\r
-  printf("* RFMINPT  %+9.6f             *\n", gbRFPminPt );\r
-  printf("* RFMAXPT  %+9.6f             *\n", gbRFPmaxPt );\r
-  printf("* RFMINETA  %+9.6f            *\n", gbRFPminEta );\r
-  printf("* RFMAXETA  %+9.6f            *\n", gbRFPmaxEta );\r
-  printf("* RFTPCSIGNAL  %+9.6f         *\n", gbRFPTPCsignal );\r
-  printf("* RFMAXIPXY  %+9.6f           *\n", gbRFPmaxIPxy );\r
-  printf("* RFMAXIPZ  %+9.6f            *\n", gbRFPmaxIPz );\r
-  printf("* RFTPCNCLS  %3d                  *\n", gbRFPTPCncls );\r
-  printf("* VZELOAD  %8s            *\n", gbVZEload.Data() );\r
-  printf("* VZESAVE  %3d                    *\n", gbVZEsave );\r
+  printf("* SUFFIX  %8s                *\n", SFT_gbSuffix.Data() );\r
+  printf("* TRIGGER  %8d               *\n", SFT_gbTrigger );\r
+  printf("* RUNPP  %3d                      *\n", SFT_gbRunPP );\r
+  printf("* RUNPA  %3d                      *\n", SFT_gbRunPA );\r
+  printf("* AVOIDEXEC  %3d                  *\n", SFT_gbAvoidExec );\r
+  printf("* ESD  %3d                        *\n", SFT_gbReadESD );\r
+  printf("* MC  %3d                         *\n", SFT_gbReadMC );\r
+  printf("* EXTRAEVENTCUT  %3d              *\n", SFT_gbExtraEventCut );\r
+  printf("* CENTMETHOD  %8s                 *\n", SFT_gbCentMethod.Data() );\r
+  printf("* CENTPERMIN  %3d                 *\n", SFT_gbCentPerMin );\r
+  printf("* CENTPERMAX  %3d                 *\n", SFT_gbCentPerMax );\r
+  printf("* SPECIE  %3d                     *\n", SFT_gbSpecie );\r
+  printf("* HOMEMADE  %3d                   *\n", SFT_gbHomemade );\r
+  printf("* ONLINE  %3d                     *\n", SFT_gbOnline );\r
+  printf("* MINNCLSTTPC  %3d                *\n", SFT_gbMinNClsTPC );\r
+  printf("* MINXROWS  %3d                   *\n", SFT_gbMinXRows );\r
+  printf("* MAXCHI2NCLSTPC  %+9.6f      *\n", SFT_gbMaxChi2PerNClsTPC );\r
+  printf("* MINXROWSNFCLSTPC  %+9.6f    *\n", SFT_gbMinXRowsOverNClsFTPC );\r
+  printf("* MINETA  %+9.6f              *\n", SFT_gbMinEta );\r
+  printf("* MAXETA  %+9.6f              *\n", SFT_gbMaxEta );\r
+  printf("* MINPT  %+9.6f               *\n", SFT_gbMinPt );\r
+  printf("* MIND0XY  %+9.6f             *\n", SFT_gbMinImpactParameterXY );\r
+  printf("* MAXSIGMAPID  %+9.6f         *\n", SFT_gbMaxNSigmaPID );\r
+  printf("* MAXY  %+9.6f                *\n", SFT_gbMaxRapidity );\r
+  printf("* MAXDCA  %+9.6f              *\n", SFT_gbMaxDCAdaughters );\r
+  printf("* MINCTP  %+9.6f              *\n", SFT_gbMinCosinePointingAngleXY );\r
+  printf("* MINQT  %+9.6f               *\n", SFT_gbMinQt );\r
+  printf("* QTPIE  %+9.6f               *\n", SFT_gbQtPie );\r
+  printf("* MINRADXY  %+9.6f            *\n", SFT_gbMinRadXY );\r
+  printf("* MAXDL  %+9.6f               *\n", SFT_gbMaxDecayLength );\r
+  printf("* D0D0XY  %+9.6f              *\n", SFT_gbMaxProductIPXY );\r
+  printf("* DEBUG  %3d                      *\n", SFT_gbDebug );\r
+  printf("* QA  %3d                         *\n", SFT_gbQA );\r
+  printf("* SKIPSELECTION  %3d              *\n", SFT_gbSkipSelection );\r
+  printf("* SKIPFLOW  %3d                   *\n", SFT_gbSkipFlow );\r
+  printf("* USEFP  %3d                      *\n", SFT_gbFlowPackage );\r
+  printf("* SPVZE  %3d                      *\n", SFT_gbSPVZE );\r
+  printf("* SPTPC  %3d                      *\n", SFT_gbSPTPC );\r
+  printf("* QCTPC  %3d                      *\n", SFT_gbQCTPC );\r
+  printf("* RFFILTERBIT  %3d                *\n", SFT_gbRFPFilterBit );\r
+  printf("* RFMINPT  %+9.6f             *\n", SFT_gbRFPminPt );\r
+  printf("* RFMAXPT  %+9.6f             *\n", SFT_gbRFPmaxPt );\r
+  printf("* RFMINETA  %+9.6f            *\n", SFT_gbRFPminEta );\r
+  printf("* RFMAXETA  %+9.6f            *\n", SFT_gbRFPmaxEta );\r
+  printf("* RFTPCSIGNAL  %+9.6f         *\n", SFT_gbRFPTPCsignal );\r
+  printf("* RFMAXIPXY  %+9.6f           *\n", SFT_gbRFPmaxIPxy );\r
+  printf("* RFMAXIPZ  %+9.6f            *\n", SFT_gbRFPmaxIPz );\r
+  printf("* RFTPCNCLS  %3d                  *\n", SFT_gbRFPTPCncls );\r
+  printf("* VZELOAD  %8s            *\n", SFT_gbVZEload.Data() );\r
+  printf("* VZELINEAR  %3d                  *\n", SFT_gbVZEmb );\r
+  printf("* VZESAVE  %3d                    *\n", SFT_gbVZEsave );\r
   printf("***********************************\n");\r
 }\r
 void SFT_ReadConfig(TString ipf) {\r
+  SFT_ResetVars();\r
   printf("Reading %s\n",ipf.Data());\r
   ifstream input(ipf.Data());\r
   TString varname;\r
@@ -379,109 +379,169 @@ void SFT_ReadConfig(TString ipf) {
     if(!input.good()) {\r
       break;\r
     } else if(!varname.CompareTo("SUFFIX")) {\r
-      input >> gbSuffix;\r
+      input >> SFT_gbSuffix;\r
     } else if(!varname.CompareTo("TRIGGER")) {\r
-      input >> gbTrigger;\r
+      input >> SFT_gbTrigger;\r
     } else if(!varname.CompareTo("RUNPP")) {\r
-      input >> gbRunPP;\r
+      input >> SFT_gbRunPP;\r
     } else if(!varname.CompareTo("RUNPA")) {\r
-      input >> gbRunPA;\r
+      input >> SFT_gbRunPA;\r
     } else if(!varname.CompareTo("AVOIDEXEC")) {\r
-      input >> gbAvoidExec;\r
+      input >> SFT_gbAvoidExec;\r
     } else if(!varname.CompareTo("ESD")) {\r
-      input >> gbReadESD;\r
+      input >> SFT_gbReadESD;\r
     } else if(!varname.CompareTo("MC")) {\r
-      input >> gbReadMC;\r
+      input >> SFT_gbReadMC;\r
     } else if(!varname.CompareTo("EXTRAEVENTCUT")) {\r
-      input >> gbExtraEventCut;\r
+      input >> SFT_gbExtraEventCut;\r
     } else if(!varname.CompareTo("CENTMETHOD")) {\r
-      input >> gbCentMethod;\r
+      input >> SFT_gbCentMethod;\r
     } else if(!varname.CompareTo("CENTPERMIN")) {\r
-      input >> gbCentPerMin;\r
+      input >> SFT_gbCentPerMin;\r
     } else if(!varname.CompareTo("CENTPERMAX")) {\r
-      input >> gbCentPerMax;\r
+      input >> SFT_gbCentPerMax;\r
     } else if(!varname.CompareTo("SPECIE")) {\r
-      input >> gbSpecie;\r
+      input >> SFT_gbSpecie;\r
     } else if(!varname.CompareTo("HOMEMADE")) {\r
-      input >> gbHomemade;\r
+      input >> SFT_gbHomemade;\r
     } else if(!varname.CompareTo("ONLINE")) {\r
-      input >> gbOnline;\r
+      input >> SFT_gbOnline;\r
     } else if(!varname.CompareTo("MINNCLSTTPC")) {\r
-      input >> gbMinNClsTPC;\r
+      input >> SFT_gbMinNClsTPC;\r
     } else if(!varname.CompareTo("MINXROWS")) {\r
-      input >> gbMinXRows;\r
+      input >> SFT_gbMinXRows;\r
     } else if(!varname.CompareTo("MAXCHI2NCLSTPC")) {\r
-      input >> gbMaxChi2PerNClsTPC;\r
+      input >> SFT_gbMaxChi2PerNClsTPC;\r
     } else if(!varname.CompareTo("MINXROWSNFCLSTPC")) {\r
-      input >> gbMinXRowsOverNClsFTPC;\r
+      input >> SFT_gbMinXRowsOverNClsFTPC;\r
     } else if(!varname.CompareTo("MINETA")) {\r
-      input >> gbMinEta;\r
+      input >> SFT_gbMinEta;\r
     } else if(!varname.CompareTo("MAXETA")) {\r
-      input >> gbMaxEta;\r
+      input >> SFT_gbMaxEta;\r
     } else if(!varname.CompareTo("MINPT")) {\r
-      input >> gbMinPt;\r
+      input >> SFT_gbMinPt;\r
     } else if(!varname.CompareTo("MIND0XY")) {\r
-      input >> gbMinImpactParameterXY;\r
+      input >> SFT_gbMinImpactParameterXY;\r
     } else if(!varname.CompareTo("MAXSIGMAPID")) {\r
-      input >> gbMaxNSigmaPID;\r
+      input >> SFT_gbMaxNSigmaPID;\r
     } else if(!varname.CompareTo("MAXY")) {\r
-      input >> gbMaxRapidity;\r
+      input >> SFT_gbMaxRapidity;\r
     } else if(!varname.CompareTo("MAXDCA")) {\r
-      input >> gbMaxDCAdaughters;\r
+      input >> SFT_gbMaxDCAdaughters;\r
     } else if(!varname.CompareTo("MINCTP")) {\r
-      input >> gbMinCosinePointingAngleXY;\r
+      input >> SFT_gbMinCosinePointingAngleXY;\r
     } else if(!varname.CompareTo("MINQT")) {\r
-      input >> gbMinQt;\r
+      input >> SFT_gbMinQt;\r
     } else if(!varname.CompareTo("QTPIE")) {\r
-      input >> gbQtPie;\r
+      input >> SFT_gbQtPie;\r
     } else if(!varname.CompareTo("MINRADXY")) {\r
-      input >> gbMinRadXY;\r
+      input >> SFT_gbMinRadXY;\r
     } else if(!varname.CompareTo("MAXDL")) {\r
-      input >> gbMaxDecayLength;\r
+      input >> SFT_gbMaxDecayLength;\r
     } else if(!varname.CompareTo("D0D0XY")) {\r
-      input >> gbMaxProductIPXY;\r
+      input >> SFT_gbMaxProductIPXY;\r
     } else if(!varname.CompareTo("DEBUG")) {\r
-      input >> gbDebug;\r
+      input >> SFT_gbDebug;\r
     } else if(!varname.CompareTo("QA")) {\r
-      input >> gbQA;\r
+      input >> SFT_gbQA;\r
     } else if(!varname.CompareTo("SKIPSELECTION")) {\r
-      input >> gbSkipSelection;\r
+      input >> SFT_gbSkipSelection;\r
     } else if(!varname.CompareTo("SKIPFLOW")) {\r
-      input >> gbSkipFlow;\r
+      input >> SFT_gbSkipFlow;\r
     } else if(!varname.CompareTo("USEFP")) {\r
-      input >> gbFlowPackage;\r
+      input >> SFT_gbFlowPackage;\r
     } else if(!varname.CompareTo("SPVZE")) {\r
-      input >> gbSPVZE;\r
+      input >> SFT_gbSPVZE;\r
     } else if(!varname.CompareTo("SPTPC")) {\r
-      input >> gbSPTPC;\r
+      input >> SFT_gbSPTPC;\r
     } else if(!varname.CompareTo("QCTPC")) {\r
-      input >> gbQCTPC;\r
+      input >> SFT_gbQCTPC;\r
     } else if(!varname.CompareTo("RFFILTERBIT")) {\r
-      input >> gbRFPFilterBit;\r
+      input >> SFT_gbRFPFilterBit;\r
     } else if(!varname.CompareTo("RFMINPT")) {\r
-      input >> gbRFPminPt;\r
+      input >> SFT_gbRFPminPt;\r
     } else if(!varname.CompareTo("RFMAXPT")) {\r
-      input >> gbRFPmaxPt;\r
+      input >> SFT_gbRFPmaxPt;\r
     } else if(!varname.CompareTo("RFMINETA")) {\r
-      input >> gbRFPminEta;\r
+      input >> SFT_gbRFPminEta;\r
     } else if(!varname.CompareTo("RFMAXETA")) {\r
-      input >> gbRFPmaxEta;\r
+      input >> SFT_gbRFPmaxEta;\r
     } else if(!varname.CompareTo("RFTPCSIGNAL")) {\r
-      input >> gbRFPTPCsignal;\r
+      input >> SFT_gbRFPTPCsignal;\r
     } else if(!varname.CompareTo("RFMAXIPXY")) {\r
-      input >> gbRFPmaxIPxy;\r
+      input >> SFT_gbRFPmaxIPxy;\r
     } else if(!varname.CompareTo("RFMAXIPZ")) {\r
-      input >> gbRFPmaxIPz;\r
+      input >> SFT_gbRFPmaxIPz;\r
     } else if(!varname.CompareTo("RFTPCNCLS")) {\r
-      input >> gbRFPTPCncls;\r
+      input >> SFT_gbRFPTPCncls;\r
     } else if(!varname.CompareTo("VZELOAD")) {\r
-      input >> gbVZEload;\r
+      input >> SFT_gbVZEload;\r
+    } else if(!varname.CompareTo("VZELINEAR")) {\r
+      input >> SFT_gbVZEmb;\r
     } else if(!varname.CompareTo("VZESAVE")) {\r
-      input >> gbVZEsave;\r
+      input >> SFT_gbVZEsave;\r
     } else if(!varname.CompareTo("ALLCC")) {\r
-      input >> gbAllCC;\r
+      input >> SFT_gbAllCC;\r
     } else {\r
       printf("I dont understand %s\n",varname.Data());\r
     }\r
   }\r
 }\r
+void SFT_ResetVars() {\r
+  SFT_gbTrigger=1;\r
+  SFT_gbReadESD=0;\r
+  SFT_gbReadMC=0;\r
+  SFT_gbMatchMC=0;\r
+  SFT_gbAvoidExec=0;\r
+  SFT_gbExtraEventCut=0;\r
+  SFT_gbCentMethod="V0MTRK";\r
+  SFT_gbCentPerMin=0;\r
+  SFT_gbCentPerMax=100;\r
+  SFT_gbRunPP=0;\r
+  SFT_gbRunPA=0;\r
+  SFT_gbSpecie=0;\r
+  SFT_gbHomemade=0;\r
+  SFT_gbOnline=0;\r
+  SFT_gbMinNClsTPC=70;\r
+  SFT_gbMinXRows=0;\r
+  SFT_gbMaxChi2PerNClsTPC=4.0;\r
+  SFT_gbMinXRowsOverNClsFTPC=0.8;\r
+  SFT_gbMinEta=-0.8;\r
+  SFT_gbMaxEta=+0.8;\r
+  SFT_gbMinPt=0.1;\r
+  SFT_gbMinImpactParameterXY=0.1;\r
+  SFT_gbMaxNSigmaPID=3.0;\r
+  SFT_gbMaxRapidity=0.5;\r
+  SFT_gbMaxDCAdaughters=1.0;\r
+  SFT_gbMinCosinePointingAngleXY=0.998;\r
+  SFT_gbMinQt=0.2;\r
+  SFT_gbQtPie=kTRUE;\r
+  SFT_gbMinRadXY=5.0;\r
+  SFT_gbMaxDecayLength=3.0;\r
+  SFT_gbMaxProductIPXY=0.0;\r
+  SFT_gbDebug=0;\r
+  SFT_gbQA=0;\r
+  SFT_gbFolder="FlowStrange";\r
+  SFT_gbSuffix="kze";\r
+  SFT_gbRFPFilterBit=1;\r
+  SFT_gbRFPminPt=0.2;\r
+  SFT_gbRFPmaxPt=5.0;\r
+  SFT_gbRFPminEta=-0.8;\r
+  SFT_gbRFPmaxEta=+0.8;\r
+  SFT_gbRFPTPCsignal=10;\r
+  SFT_gbRFPmaxIPxy=2.4;\r
+  SFT_gbRFPmaxIPz=3.2;\r
+  SFT_gbRFPTPCncls=70;\r
+  SFT_gbAllCC=0;\r
+  SFT_gbSkipSelection=0;\r
+  SFT_gbSkipFlow=0;\r
+  SFT_gbWhichPsi=2;\r
+  SFT_gbFlowPackage=0;\r
+  SFT_gbSPVZE=0;\r
+  SFT_gbSPTPC=0;\r
+  SFT_gbQCTPC=0;\r
+  SFT_gbHarmonic=2;\r
+  SFT_gbVZEload="";\r
+  SFT_gbVZEsave=0;\r
+  SFT_gbVZEmb=0;\r
+}\r