]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FLOW/macros/AddTaskJetFlow.C
removing all library checks from the (deprecated) HLT autoconf build system to make...
[u/mrichter/AliRoot.git] / PWGCF / FLOW / macros / AddTaskJetFlow.C
CommitLineData
e1dc3f11 1///////////////////////////////////////////////////////////////////
2// //
3// AddTaskJetFlow //
4// Author: Redmer A. Bertens, Utrecht University, 2013 //
5// //
6///////////////////////////////////////////////////////////////////
7class AliAnalysisDataContainer;
8class AliFlowTrackCuts;
9
a4a06f0e 10void AddTaskJetFlow( TString name = "name",
11 TString jets = "jets",
12 Float_t ptbump = 0,
13 TArrayI* cent = 0x0,
14 Float_t MinPOIPt = 0.15,
15 Float_t MaxPOIPt = 150,
16 Float_t CCBinsInPt = 100,
17 Bool_t VParticle = kFALSE,
5a4d96c7 18 Int_t year = -1,
19 Bool_t testFlow = kFALSE,
a4a06f0e 20 Bool_t debug = kFALSE )
e1dc3f11 21{
22 // first check the environment (common to all tasks)
23 if(debug) printf("\n\n >> AddTaskJetFlow <<\n");
24 TString fileName = AliAnalysisManager::GetCommonFileName();
25 fileName += ":JetFlow";
26 if(debug) printf(" - filename: %s \n",fileName.Data());
27 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
28 if (!mgr) {
29 if(debug) cout << " Fatal error: no analysis manager found! " << endl;
30 return 0x0;
31 }
32 if (!mgr->GetInputEventHandler()) {
33 if(debug) cout << " Fatal error: no imput event handler found!" << endl;
34 return 0x0;
35 }
98bd4878 36 // check the centrality setup
37 if(!cent) {
2db2a6d0 38 Int_t c[] = {0, 10, 30, 50, 70, 90};
98bd4878 39 cent = new TArrayI(sizeof(c)/sizeof(c[0]), c);
40 printf(" > Setup default centrality binning with %i bins \n ", cent->GetSize());
e1dc3f11 41 }
98bd4878 42 // create the cut objects
6f5e34fa 43 AliFlowTrackCuts* CutsRP_VZERO = new AliFlowTrackCuts("CutsRP_VZERO");
44 CutsRP_VZERO = CutsRP_VZERO->GetStandardVZEROOnlyTrackCuts();
45 AliFlowTrackCuts* CutsRP_TPC = new AliFlowTrackCuts("CutsRP_TPC");
46 CutsRP_TPC = CutsRP_TPC->GetStandardTPCStandaloneTrackCuts();
47 CutsRP_TPC->SetAODfilterBit(1);
98bd4878 48 AliFlowTrackCuts* CutsNull = new AliFlowTrackCuts("CutsNull");
49 CutsNull->SetParamType(AliFlowTrackCuts::kGlobal);
50 CutsNull->SetEtaRange(+1, -1);
51 CutsNull->SetPtRange(+1, -1);
52 // add the tasks in a loop, one task for each centrality bin
53 for(Int_t i(0); i < cent->GetSize()-1; i++) {
54 TString tempName(Form("%s_%i_%i", name.Data(), cent->At(i), cent->At(i+1)));
55 // create the task
56 AliAnalysisTaskJetFlow* task = new AliAnalysisTaskJetFlow(tempName.Data());
a4a06f0e 57 task->SetCCMaxPt(MaxPOIPt);
58 task->SetCCBinsInPt(CCBinsInPt);
59 task->SetDoVParticleAnalysis(VParticle);
5a4d96c7 60 task->SetDoTestFlowAnalysis(testFlow);
61 task->SetExplicitOutlierCut(year);
a4a06f0e 62 task->SetMinMaxPOIPt(MinPOIPt, MaxPOIPt);
63 (debug) ? task->SetDebugMode(1) : task->SetDebugMode(-1);
98bd4878 64 if(!task) {
65 if(debug) cout << " --> Unexpected error occurred: NO TASK WAS CREATED! (could be a library problem!) " << endl;
66 return 0x0;
67 }
68 else printf(" > added task with name %s and jet collection %s < \n", tempName.Data(), jets.Data());
69 task->SetJetCollectionName(jets.Data());
70 // pass specific objects and settigns to the task
6f5e34fa 71 task->SetCutsRP(CutsRP_TPC, CutsRP_VZERO);
98bd4878 72 task->SetCutsNull(CutsNull);
73 task->SetMinMaxCentrality(cent->At(i), cent->At(1+i));
74 task->SetPtBump(ptbump);
75 mgr->AddTask(task);
76 mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
77 mgr->ConnectOutput(task,1,mgr->CreateContainer(Form("%s_histograms", tempName.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName.Data()));
6f5e34fa 78 // connect flow anaysis task
79 AliAnalysisDataContainer *flowEvent_VZERO = mgr->CreateContainer(Form("flowEvent_VZERO_%s", tempName.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);
80 mgr->ConnectOutput(task, 2, flowEvent_VZERO);
81 AliAnalysisDataContainer *flowEvent_TPC = mgr->CreateContainer(Form("flowEvent_TPC_%s", tempName.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);
82 mgr->ConnectOutput(task, 3, flowEvent_TPC);
83 TaskJetFlow::AddSPmethod(Form("SPVZERO_A_%s", tempName.Data()), "Qa", 2, flowEvent_VZERO);
84 TaskJetFlow::AddSPmethod(Form("SPVZERO_B_%s", tempName.Data()), "Qb", 2, flowEvent_VZERO);
85 TaskJetFlow::AddQCmethod(Form("QC_%s", tempName.Data()), 2, flowEvent_TPC);
98bd4878 86 }
e1dc3f11 87}
88//_____________________________________________________________________________
89namespace TaskJetFlow{ // use unique namespace to avoid problems in TRAIN analysis
6f5e34fa 90 void AddSPmethod(char *name, char *Qvector, int harmonic, AliAnalysisDataContainer *flowEvent)
91 {
92 TString fileName = AliAnalysisManager::GetCommonFileName();
93 fileName+=":SP";
94 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
95 AliAnalysisDataContainer *outSP = mgr->CreateContainer(name, TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
96 AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct(Form("TaskScalarProduct_%s", name), kFALSE);
97 tskSP->SetApplyCorrectionForNUA(kTRUE);
98 tskSP->SetHarmonic(harmonic);
99 if(!strcmp("Qa", Qvector)) tskSP->SetTotalQvector("Qa");
100 if(!strcmp("Qb", Qvector)) tskSP->SetTotalQvector("Qb");
101 tskSP->SetBookOnlyBasicCCH(kFALSE);
102 mgr->AddTask(tskSP);
103 mgr->ConnectInput(tskSP, 0, flowEvent);
104 mgr->ConnectOutput(tskSP, 1, outSP);
105 }
106//_____________________________________________________________________________
107 void AddQCmethod(char *name, int harmonic, AliAnalysisDataContainer *flowEvent)
e1dc3f11 108 {
e1dc3f11 109 TString fileName = AliAnalysisManager::GetCommonFileName();
6f5e34fa 110 fileName+=":QC";
e1dc3f11 111 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6f5e34fa 112 AliAnalysisDataContainer *outQC = mgr->CreateContainer(name, TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
113 AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants(Form("TaskQCumulants_%s", name), kFALSE);
114 tskQC->SetApplyCorrectionForNUA(kTRUE);
115 tskQC->SetHarmonic(harmonic);
116 tskQC->SetBookOnlyBasicCCH(kFALSE);
117 mgr->AddTask(tskQC);
118 mgr->ConnectInput(tskQC, 0, flowEvent);
119 mgr->ConnectOutput(tskQC, 1, outQC);
e1dc3f11 120 }
6f5e34fa 121//_____________________________________________________________________________
e1dc3f11 122}// end of namespace TaskJetFlow