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