///////////////////////////////////////////////////////////////////\r
-// // \r
-// AddTaskFlowTPCEMCalQCSP macro //\r
+// //\r
+// AddTaskFlowTPCEMCalQCSP macro //\r
// Author: Andrea Dubla, Utrecht University, 2012 //\r
// //\r
///////////////////////////////////////////////////////////////////\r
class AliHFEextraCuts;\r
\r
AliAnalysisTaskFlowTPCEMCalQCSP* AddTaskFlowTPCEMCalQCSP(\r
- TString uniqueID = "",\r
- Float_t centrMin ,\r
- Float_t centrMax ,\r
- Double_t InvmassCut,\r
- Double_t pTCut,\r
- Int_t Trigger,\r
- Double_t minTPC,\r
- Double_t maxTPC,\r
- Double_t minEovP,\r
- Double_t maxEovP,\r
- Double_t minM20,\r
- Double_t maxM20,\r
- Double_t minM02,\r
- Double_t maxM02,\r
- Double_t Dispersion,\r
- Int_t minTPCCluster,\r
- AliHFEextraCuts::ITSPixel_t pixel,\r
- Bool_t PhotonicElectronDCA = kTRUE,\r
- Int_t TPCClusterforAsso,\r
- Bool_t AssoITSref = kTRUE,\r
- Bool_t purity = kTRUE,\r
- Bool_t SideBandsFlow = kFALSE,\r
- Bool_t Phi_minus_psi = kFALSE,\r
- const char *Cent = "V0M",\r
- Bool_t QC = kTRUE, // use qc2 and qc4\r
- Bool_t SP_TPC = kTRUE, //use tpc sp method\r
- Bool_t VZERO_SP = kFALSE, // use vzero sp method\r
- Int_t harmonic = 2,\r
- Bool_t shrinkSP = kTRUE,\r
- Bool_t debug = kFALSE,\r
- Int_t RPFilterBit = 1,\r
- Bool_t op_ang = kFALSE,\r
- Double_t op_angle_cut=3.\r
- )\r
+ TString uniqueID = "",\r
+ Float_t centrMin ,\r
+ Float_t centrMax ,\r
+ Double_t InvmassCut,\r
+ Double_t pTCut,\r
+ Int_t Trigger,\r
+ Double_t minTPC,\r
+ Double_t maxTPC,\r
+ Double_t minEovP,\r
+ Double_t maxEovP,\r
+ Double_t minM20,\r
+ Double_t maxM20,\r
+ Double_t minM02,\r
+ Double_t maxM02,\r
+ Double_t Dispersion,\r
+ Int_t minTPCCluster,\r
+ AliHFEextraCuts::ITSPixel_t pixel,\r
+ Bool_t PhotonicElectronDCA = kTRUE,\r
+ Int_t TPCClusterforAsso = 80,\r
+ Bool_t AssoITSref = kTRUE,\r
+ Bool_t purity = kTRUE,\r
+ Bool_t SideBandsFlow = kFALSE,\r
+ Bool_t Phi_minus_psi = kFALSE,\r
+ const char *Cent = "V0M",\r
+ Bool_t QC = kTRUE, // use qc2 and qc4\r
+ Bool_t SP_TPC = kTRUE, //use tpc sp method\r
+ Bool_t VZERO_SP = kFALSE, // use vzero sp method\r
+ Int_t harmonic = 2,\r
+ Bool_t shrinkSP = kTRUE,\r
+ Bool_t debug = kFALSE,\r
+ Int_t RPFilterBit = 1,\r
+ Bool_t op_ang = kFALSE,\r
+ Double_t op_angle_cut=3.\r
+ )\r
\r
{\r
-\r
-\r
-\r
- if(debug) cout << " === Adding Task ElectFlow === " << endl; \r
+ \r
+ \r
+ \r
+ if(debug) cout << " === Adding Task ElectFlow === " << endl;\r
TString fileName = AliAnalysisManager::GetCommonFileName();\r
fileName += ":ElectroID_";\r
fileName += uniqueID;\r
if(debug) cout << " Fatal error: no imput event handler found!" << endl;\r
return 0x0;\r
}\r
-\r
-//create a task\r
- AliAnalysisTaskFlowTPCEMCalQCSP *taskHFE = ConfigHFEemcalMod(kFALSE, minTPCCluster, pixel); //kTRUE if MC\r
\r
- if(debug) cout << " === AliAnalysisElectronFlow === " << taskHFE << endl;\r
- if(!taskHFE) {\r
+ //create a task\r
+ AliAnalysisTaskFlowTPCEMCalQCSP *taskHFE = ConfigHFEemcalMod(kFALSE, minTPCCluster, pixel); //kTRUE if MC\r
+ \r
+ if(debug) cout << " === AliAnalysisElectronFlow === " << taskHFE << endl;\r
+ if(!taskHFE) {\r
if(debug) cout << " --> Unexpected error occurred: NO TASK WAS CREATED! (could be a library problem!) " << endl;\r
return 0x0;\r
}\r
\r
-// Set centrality percentiles and method V0M, FMD, TRK, TKL, CL0, CL1, V0MvsFMD, TKLvsV0M, ZEMvsZDC\r
- taskHFE->SetCentralityParameters(centrMin, centrMax, Cent);\r
- taskHFE->SetInvariantMassCut(InvmassCut);\r
- taskHFE->SetTrigger(Trigger);\r
- taskHFE->SetIDCuts(minTPC, maxTPC, minEovP, maxEovP, minM20, maxM20, minM02, maxM02, Dispersion);\r
- taskHFE->SetFlowSideBands(SideBandsFlow);\r
- taskHFE->Setphiminuspsi(Phi_minus_psi);\r
- taskHFE->SetPurity(purity);\r
- taskHFE->SetpTCuttrack(pTCut);\r
- taskHFE->SelectPhotonicElectronMethod(PhotonicElectronDCA);\r
- taskHFE->SetOpeningAngleflag(op_ang);\r
- taskHFE->SetOpeningAngleCut(op_angle_cut);\r
- taskHFE->SetAssoTPCCluster(TPCClusterforAsso);\r
- taskHFE->SetAssoITSRefit(AssoITSref);\r
- \r
-//set RP cuts for flow package analysis\r
- cutsRP = new AliFlowTrackCuts(Form("RFPcuts%s",uniqueID));\r
+ // Set centrality percentiles and method V0M, FMD, TRK, TKL, CL0, CL1, V0MvsFMD, TKLvsV0M, ZEMvsZDC\r
+ taskHFE->SetCentralityParameters(centrMin, centrMax, Cent);\r
+ taskHFE->SetInvariantMassCut(InvmassCut);\r
+ taskHFE->SetTrigger(Trigger);\r
+ taskHFE->SetIDCuts(minTPC, maxTPC, minEovP, maxEovP, minM20, maxM20, minM02, maxM02, Dispersion);\r
+ taskHFE->SetFlowSideBands(SideBandsFlow);\r
+ taskHFE->Setphiminuspsi(Phi_minus_psi);\r
+ taskHFE->SetPurity(purity);\r
+ taskHFE->SetpTCuttrack(pTCut);\r
+ taskHFE->SelectPhotonicElectronMethod(PhotonicElectronDCA);\r
+ taskHFE->SetOpeningAngleflag(op_ang);\r
+ taskHFE->SetOpeningAngleCut(op_angle_cut);\r
+ taskHFE->SetAssoTPCCluster(TPCClusterforAsso);\r
+ taskHFE->SetAssoITSRefit(AssoITSref);\r
+ \r
+ //set RP cuts for flow package analysis\r
+ cutsRP = new AliFlowTrackCuts(Form("RFPcuts%s",uniqueID));\r
if(!cutsRP) {\r
if(debug) cout << " Fatal error: no RP cuts found, could be a library problem! " << endl;\r
return 0x0;\r
}\r
-\r
+ \r
if(!VZERO_SP) {\r
AliFlowTrackCuts::trackParameterType rptype = AliFlowTrackCuts::kGlobal;\r
cutsRP->SetParamType(rptype);\r
QC = kFALSE;\r
if(debug) cout << " --> VZERO RP's " << cutsRP << endl;\r
}\r
-\r
+ \r
AliFlowTrackSimpleCuts *POIfilterLeft = new AliFlowTrackSimpleCuts();\r
AliFlowTrackSimpleCuts *POIfilterRight = new AliFlowTrackSimpleCuts();\r
- if(SP_TPC){\r
+ if(VZERO_SP || SP_TPC){\r
POIfilterLeft->SetEtaMin(-0.7);\r
POIfilterLeft->SetEtaMax(0.0);\r
POIfilterLeft->SetMassMin(263731); POIfilterLeft->SetMassMax(263733);\r
-\r
+ \r
POIfilterRight->SetEtaMin(0.0);\r
POIfilterRight->SetEtaMax(0.7);\r
POIfilterRight->SetMassMin(263731); POIfilterRight->SetMassMax(263733);\r
}\r
-\r
\r
- AliFlowTrackSimpleCuts *POIfilterVZERO = new AliFlowTrackSimpleCuts();\r
- if(VZERO_SP || QC){\r
- POIfilterVZERO->SetEtaMin(-0.7);\r
- POIfilterVZERO->SetEtaMax(0.7);\r
- POIfilterVZERO->SetMassMin(263731); POIfilterVZERO->SetMassMax(263733);\r
- \r
+ \r
+ AliFlowTrackSimpleCuts *POIfilterQC = new AliFlowTrackSimpleCuts();\r
+ if(QC){\r
+ POIfilterQC->SetEtaMin(-0.7);\r
+ POIfilterQC->SetEtaMax(0.7);\r
+ POIfilterQC->SetMassMin(263731); POIfilterQC->SetMassMax(263733);\r
+ \r
}\r
- \r
+ \r
if(SideBandsFlow){\r
-\r
- AliFlowTrackSimpleCuts *POIfilterLeftH = new AliFlowTrackSimpleCuts();\r
- AliFlowTrackSimpleCuts *POIfilterRightH = new AliFlowTrackSimpleCuts();\r
- if(SP_TPC){\r
- POIfilterLeftH->SetEtaMin(-0.7);\r
- POIfilterLeftH->SetEtaMax(0.0);\r
- POIfilterLeftH->SetMassMin(2636); POIfilterLeftH->SetMassMax(2638);\r
\r
- POIfilterRightH->SetEtaMin(0.0);\r
- POIfilterRightH->SetEtaMax(0.7);\r
- POIfilterRightH->SetMassMin(2636); POIfilterRightH->SetMassMax(2638);\r
+ AliFlowTrackSimpleCuts *POIfilterLeftH = new AliFlowTrackSimpleCuts();\r
+ AliFlowTrackSimpleCuts *POIfilterRightH = new AliFlowTrackSimpleCuts();\r
+ if(SP_TPC){\r
+ POIfilterLeftH->SetEtaMin(-0.7);\r
+ POIfilterLeftH->SetEtaMax(0.0);\r
+ POIfilterLeftH->SetMassMin(2636); POIfilterLeftH->SetMassMax(2638);\r
+ \r
+ POIfilterRightH->SetEtaMin(0.0);\r
+ POIfilterRightH->SetEtaMax(0.7);\r
+ POIfilterRightH->SetMassMin(2636); POIfilterRightH->SetMassMax(2638);\r
+ }\r
+ \r
+ \r
+ AliFlowTrackSimpleCuts *POIfilterQCH = new AliFlowTrackSimpleCuts();\r
+ if(QC){\r
+ POIfilterQCH->SetEtaMin(-0.7);\r
+ POIfilterQCH->SetEtaMax(0.7);\r
+ POIfilterQCH->SetMassMin(2636); POIfilterQCH->SetMassMax(2638);\r
+ \r
+ }\r
+ \r
}\r
\r
+ taskHFE->SetRPCuts(cutsRP);\r
\r
- AliFlowTrackSimpleCuts *POIfilterVZEROH = new AliFlowTrackSimpleCuts();\r
- if(VZERO_SP || QC){\r
- POIfilterVZEROH->SetEtaMin(-0.7);\r
- POIfilterVZEROH->SetEtaMax(0.7);\r
- POIfilterVZEROH->SetMassMin(2636); POIfilterVZEROH->SetMassMax(2638);\r
- \r
- }\r
\r
- }\r
+ AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("ccontainer0_%s",uniqueID.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,fileName);\r
+ \r
+ mgr->ConnectInput(taskHFE,0,mgr->GetCommonInputContainer());\r
+ mgr->ConnectOutput(taskHFE,1,coutput3);\r
+ \r
\r
- taskHFE->SetRPCuts(cutsRP);\r
- \r
- \r
- AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("ccontainer0_%s",uniqueID.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,fileName);\r
- \r
- mgr->ConnectInput(taskHFE,0,mgr->GetCommonInputContainer());\r
- mgr->ConnectOutput(taskHFE,1,coutput3);\r
- \r
- \r
if(debug) cout << " === RECEIVED REQUEST FOR FLOW ANALYSIS === " << endl;\r
AliAnalysisDataContainer *flowEvent = mgr->CreateContainer(Form("FlowContainer_%s",uniqueID.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);\r
mgr->ConnectOutput(taskHFE, 2, flowEvent);\r
- if(debug) cout << " --> Created IO containers " << flowEvent << endl; \r
+ if(debug) cout << " --> Created IO containers " << flowEvent << endl;\r
\r
- if(SideBandsFlow){ \r
- if(debug) cout << " === RECEIVED REQUEST FOR FLOW ANALYSIS === " << endl;\r
- AliAnalysisDataContainer *flowEventCont = mgr->CreateContainer(Form("FlowContainer_Cont_%s",uniqueID.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);\r
- mgr->ConnectOutput(taskHFE, 3, flowEventCont);\r
- if(debug) cout << " --> Created IO containers " << flowEventCont << endl;\r
+ if(SideBandsFlow){\r
+ if(debug) cout << " === RECEIVED REQUEST FOR FLOW ANALYSIS === " << endl;\r
+ AliAnalysisDataContainer *flowEventCont = mgr->CreateContainer(Form("FlowContainer_Cont_%s",uniqueID.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);\r
+ mgr->ConnectOutput(taskHFE, 3, flowEventCont);\r
+ if(debug) cout << " --> Created IO containers " << flowEventCont << endl;\r
}\r
\r
\r
- mgr->AddTask(taskHFE);\r
+ mgr->AddTask(taskHFE);\r
\r
if (QC) { // add qc tasks\r
- AddQCmethod(Form("QCTPCin_%s",uniqueID.Data()), harmonic, flowEvent, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterVZERO);\r
+ AddQCmethod(Form("QCTPCin_%s",uniqueID.Data()), harmonic, flowEvent, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterQC);\r
if(debug) cout << " --> Hanging QC task ...succes! "<< endl;\r
- } \r
+ }\r
if (SP_TPC) { // add sp subevent tasks\r
AddSPmethod(Form("SPTPCQa_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, false, POIfilterRight);\r
if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r
if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r
}\r
if (VZERO_SP) { // add sp subevent tasks\r
- AddSPmethod(Form("SPVZEROQa_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterVZERO);\r
+ AddSPmethod(Form("SPVZEROQa_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterRight);\r
if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r
- AddSPmethod(Form("SPVZEROQb_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterVZERO);\r
+ AddSPmethod(Form("SPVZEROQb_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterLeft);\r
if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r
}\r
-\r
+ \r
//=========================================Flow event for elctronContamination==============================================================================================\r
if(SideBandsFlow){\r
- if (QC) { // add qc tasks\r
- AddQCmethod(Form("QCTPCCont_%s",uniqueID.Data()), harmonic, flowEventCont, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterVZEROH);\r
- if(debug) cout << " --> Hanging QC task ...succes! "<< endl;\r
- }\r
- if (SP_TPC) { // add sp subevent tasks\r
- AddSPmethod(Form("SPTPCQa_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterRightH);\r
- if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r
- AddSPmethod(Form("SPTPCQb_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterLeftH);\r
- if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r
- }\r
+ if (QC) { // add qc tasks\r
+ AddQCmethod(Form("QCTPCCont_%s",uniqueID.Data()), harmonic, flowEventCont, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterQCH);\r
+ if(debug) cout << " --> Hanging QC task ...succes! "<< endl;\r
+ }\r
+ if (SP_TPC) { // add sp subevent tasks\r
+ AddSPmethod(Form("SPTPCQa_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterRightH);\r
+ if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r
+ AddSPmethod(Form("SPTPCQb_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterLeftH);\r
+ if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r
+ }\r
}\r
//==========================================================================================================================================================================\r
\r
\r
-return taskHFE;\r
-\r
+ return taskHFE;\r
+ \r
}\r
\r
//_____________________________________________________________________________\r
\r
//_____________________________________________________________________________\r
void AddSPmethod(char *name, double minEtaA, double maxEtaA, double minEtaB, double maxEtaB, char *Qvector, int harmonic, AliAnalysisDataContainer *flowEvent, bool bEP, bool shrink = false, bool debug, TString uniqueID,Bool_t VZERO_SP = kFALSE, AliFlowTrackSimpleCuts* POIfilter)\r
- {\r
- // add sp task and invm filter tasks\r
- if(debug) (bEP) ? cout << " ****** Reveived request for EP task ****** " << endl : cout << " ******* Switching to SP task ******* " << endl;\r
- TString fileName = AliAnalysisManager::GetCommonFileName();\r
- (bEP) ? fileName+=":EP" : fileName+=":SP";\r
- // if(etagap) {\r
+{\r
+ // add sp task and invm filter tasks\r
+ if(debug) (bEP) ? cout << " ****** Reveived request for EP task ****** " << endl : cout << " ******* Switching to SP task ******* " << endl;\r
+ TString fileName = AliAnalysisManager::GetCommonFileName();\r
+ (bEP) ? fileName+=":EP" : fileName+=":SP";\r
+ // if(etagap) {\r
// fileName+="_SUBEVENTS";\r
- // if(debug) cout << " --> Setting up subevent analysis <-- " << endl;\r
- // }\r
- if(debug) cout << " --> fileName " << fileName << endl;\r
- TString myFolder = fileName;\r
- if(debug) cout << " --> myFolder " << myFolder << endl;\r
- TString myNameSP;\r
- (bEP) ? myNameSP = Form("%sEPv%d%s", name, harmonic, Qvector): myNameSP = Form("%sSPv%d%s", name, harmonic, Qvector);\r
- if(debug) cout << " myNameSP " << myNameSP << endl;\r
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
- AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s",myNameSP.Data()),AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r
- AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myNameSP.Data()), NULL, POIfilter);\r
- tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r
- if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r
- mgr->AddTask(tskFilter);\r
- mgr->ConnectInput(tskFilter, 0, flowEvent);\r
- mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r
- AliAnalysisDataContainer *outSP = mgr->CreateContainer(myNameSP.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r
- AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct(Form("TaskScalarProduct_%s", myNameSP.Data()), kFALSE);\r
- tskSP->SetApplyCorrectionForNUA(kTRUE);\r
- tskSP->SetHarmonic(harmonic);\r
- tskSP->SetTotalQvector(Qvector);\r
- if (bEP) tskSP->SetBehaveAsEP();\r
- if (shrink) tskSP->SetBookOnlyBasicCCH(kTRUE);\r
- mgr->AddTask(tskSP);\r
- mgr->ConnectInput(tskSP, 0, flowEventOut);\r
- mgr->ConnectOutput(tskSP, 1, outSP);\r
- }\r
+ // if(debug) cout << " --> Setting up subevent analysis <-- " << endl;\r
+ // }\r
+ if(debug) cout << " --> fileName " << fileName << endl;\r
+ TString myFolder = fileName;\r
+ if(debug) cout << " --> myFolder " << myFolder << endl;\r
+ TString myNameSP;\r
+ (bEP) ? myNameSP = Form("%sEPv%d%s", name, harmonic, Qvector): myNameSP = Form("%sSPv%d%s", name, harmonic, Qvector);\r
+ if(debug) cout << " myNameSP " << myNameSP << endl;\r
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
+ AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s",myNameSP.Data()),AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r
+ AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myNameSP.Data()), NULL, POIfilter);\r
+ tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r
+ if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r
+ mgr->AddTask(tskFilter);\r
+ mgr->ConnectInput(tskFilter, 0, flowEvent);\r
+ mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r
+ AliAnalysisDataContainer *outSP = mgr->CreateContainer(myNameSP.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r
+ AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct(Form("TaskScalarProduct_%s", myNameSP.Data()), kFALSE);\r
+ tskSP->SetApplyCorrectionForNUA(kTRUE);\r
+ tskSP->SetHarmonic(harmonic);\r
+ tskSP->SetTotalQvector(Qvector);\r
+ if (bEP) tskSP->SetBehaveAsEP();\r
+ if (shrink) tskSP->SetBookOnlyBasicCCH(kTRUE);\r
+ mgr->AddTask(tskSP);\r
+ mgr->ConnectInput(tskSP, 0, flowEventOut);\r
+ mgr->ConnectOutput(tskSP, 1, outSP);\r
+}\r
//_____________________________________________________________________________\r
void AddQCmethod(char *name, int harmonic, AliAnalysisDataContainer *flowEvent, Bool_t debug, TString uniqueID,double minEtaA, double maxEtaA, double minEtaB, double maxEtaB,Bool_t VZERO_SP = kFALSE, AliFlowTrackSimpleCuts* POIfilter)\r
- {\r
- // add qc task and invm filter tasks\r
- if(debug) cout << " ****** Received request for QC v" << harmonic << " task " << name << ", IO ****** " << flowEvent << endl;\r
- TString fileName = AliAnalysisManager::GetCommonFileName();\r
- fileName+=":QC";\r
- if(debug) cout << " --> Common filename: " << fileName << endl;\r
- TString myFolder = Form("v%d", harmonic);\r
- if(debug) cout << " --> myFolder: " << myFolder << endl;\r
- TString myName = Form("%s", name);\r
- if(debug) cout << " --> myName: " << myName << endl;\r
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
- AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s", myName.Data()), AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r
- AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myName.Data()), NULL, POIfilter);\r
- tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r
- // if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r
- mgr->AddTask(tskFilter);\r
- mgr->ConnectInput(tskFilter, 0, flowEvent);\r
- mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r
- \r
- AliAnalysisDataContainer *outQC = mgr->CreateContainer(myName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r
- AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants(Form("TaskQCumulants_%s", myName.Data()), kFALSE);\r
- tskQC->SetApplyCorrectionForNUA(kTRUE);\r
- tskQC->SetHarmonic(harmonic);\r
- tskQC->SetBookOnlyBasicCCH(kTRUE);\r
- mgr->AddTask(tskQC);\r
- mgr->ConnectInput(tskQC, 0, flowEventOut);\r
- mgr->ConnectOutput(tskQC, 1, outQC);\r
- }\r
+{\r
+ // add qc task and invm filter tasks\r
+ if(debug) cout << " ****** Received request for QC v" << harmonic << " task " << name << ", IO ****** " << flowEvent << endl;\r
+ TString fileName = AliAnalysisManager::GetCommonFileName();\r
+ fileName+=":QC";\r
+ if(debug) cout << " --> Common filename: " << fileName << endl;\r
+ TString myFolder = Form("v%d", harmonic);\r
+ if(debug) cout << " --> myFolder: " << myFolder << endl;\r
+ TString myName = Form("%s", name);\r
+ if(debug) cout << " --> myName: " << myName << endl;\r
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
+ AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s", myName.Data()), AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r
+ AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myName.Data()), NULL, POIfilter);\r
+ tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r
+ // if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r
+ mgr->AddTask(tskFilter);\r
+ mgr->ConnectInput(tskFilter, 0, flowEvent);\r
+ mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r
+ \r
+ AliAnalysisDataContainer *outQC = mgr->CreateContainer(myName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r
+ AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants(Form("TaskQCumulants_%s", myName.Data()), kFALSE);\r
+ tskQC->SetApplyCorrectionForNUA(kTRUE);\r
+ tskQC->SetHarmonic(harmonic);\r
+ tskQC->SetBookOnlyBasicCCH(kTRUE);\r
+ mgr->AddTask(tskQC);\r
+ mgr->ConnectInput(tskQC, 0, flowEventOut);\r
+ mgr->ConnectOutput(tskQC, 1, outQC);\r
+}\r
//_____________________________________________________________________________\r
\r
\r
//_____________________________________________________________________________\r
- \r
+\r
AliAnalysisTaskFlowTPCEMCalQCSP* ConfigHFEemcalMod(Bool_t useMC,Int_t minTPCCulster,AliHFEextraCuts::ITSPixel_t pixel){\r
//\r
// HFE standard task configuration\r
\r
}\r
\r
-//_____________________________________________________________________________\r
-\r
-\r
-\r
+//_____________________________________________________________________________
\ No newline at end of file