]>
Commit | Line | Data |
---|---|---|
a8ea07c4 | 1 | /* AddTask macro for Jet V2 task |
eae37c5c | 2 | * Redmer Alexander Bertens, rbertens@cern.ch |
a8ea07c4 | 3 | * Utrecht University, Utrecht, Netherlands */ |
eae37c5c | 4 | |
5 | AliAnalysisTaskJetV2* AddTaskJetV2( | |
6 | const char *ntracks = "Tracks", | |
7 | const char *nclusters = "", | |
8 | const char *njets = "Jets", | |
9 | const char *nrho = "Rho", | |
10 | Double_t jetradius = 0.2, | |
11 | Double_t jetptcut = 1, | |
12 | Double_t jetareacut = 0.557, | |
13 | const char* type = "TPC", | |
14 | Int_t leadhadtype = 0, | |
15 | const char *taskname = "AliAnalysisTaskJetV2", | |
16 | UInt_t runMode = AliAnalysisTaskJetV2::kGrid, | |
17 | Bool_t fillQA = kTRUE, | |
18 | TString fitOpts = "WLQI", | |
a8ea07c4 | 19 | UInt_t fitType = AliAnalysisTaskJetV2::kCombined, |
eae37c5c | 20 | TArrayD *centralities = 0x0, |
21 | TRandom3 *randomizer = 0x0, | |
2e9c1578 | 22 | Double_t trackptcut = .15, |
23 | Bool_t LHC10h = kFALSE | |
eae37c5c | 24 | ) |
25 | { | |
26 | // Get the pointer to the existing analysis manager via the static access method. | |
27 | //============================================================================== | |
28 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
29 | if (!mgr) | |
30 | { | |
31 | ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to."); | |
32 | return NULL; | |
33 | } | |
34 | ||
35 | // Check the analysis type using the event handlers connected to the analysis manager. | |
36 | //============================================================================== | |
37 | if (!mgr->GetInputEventHandler()) | |
38 | { | |
39 | ::Error("AddTaskEmcalJetSample", "This task requires an input event handler"); | |
40 | return NULL; | |
41 | } | |
42 | ||
43 | //------------------------------------------------------- | |
44 | // Init the task and do settings | |
45 | //------------------------------------------------------- | |
46 | ||
47 | TString name(taskname); | |
48 | if (strcmp(njets,"")) { | |
49 | name += "_"; | |
50 | name += njets; | |
51 | } | |
52 | if (strcmp(nrho,"")) { | |
53 | name += "_"; | |
54 | name += nrho; | |
55 | } | |
56 | if (!strcmp(type, "TPC")) | |
57 | name += "_TPC"; | |
58 | else if (!strcmp(type, "EMCAL")) | |
59 | name += "_EMCAL"; | |
60 | else if (!strcmp(type, "USER")) | |
61 | name += "_USER"; | |
62 | ||
63 | // create instance of the object | |
64 | AliAnalysisTaskJetV2* jetTask = new AliAnalysisTaskJetV2(name, runMode); | |
65 | ||
66 | // create and connect data containers | |
67 | AliParticleContainer* partCont = jetTask->AddParticleContainer(ntracks); | |
68 | if(partCont) { | |
69 | partCont->SetName("Tracks"); | |
70 | partCont->SetParticlePtCut(trackptcut); | |
71 | } | |
72 | TString tmp(nclusters); | |
73 | AliClusterContainer* clusterCont = 0x0; | |
74 | if(!tmp.IsNull()) { | |
75 | clusterCont = jetTask->AddClusterContainer(nclusters); | |
76 | jetTask->SetAnalysisType(AliAnalysisTaskJetV2::kFull); | |
77 | } | |
78 | AliJetContainer* jetCont = jetTask->AddJetContainer(njets, type, jetradius); | |
79 | if(jetCont) { | |
80 | jetCont->SetName("Jets"); | |
81 | jetCont->SetPercAreaCut(jetareacut); | |
82 | jetCont->SetRhoName(nrho); | |
83 | if(partCont) jetCont->ConnectParticleContainer(partCont); | |
84 | if(clusterCont) jetCont->ConnectClusterContainer(clusterCont); | |
85 | } | |
86 | ||
87 | // task specific setters | |
88 | jetTask->SetFillQAHistograms(fillQA); | |
89 | jetTask->SetDebugMode(-1); | |
90 | jetTask->SetModulationFitType(fitType); | |
91 | jetTask->SetModulationFitOptions(fitOpts); | |
92 | jetTask->SetModulationFitMinMaxP(.01, 1); | |
93 | // if centralities haven't been specified use defaults | |
94 | if(!centralities) { | |
95 | Double_t c[] = {0., 10., 30., 50., 70., 90.}; | |
96 | jetTask->SetCentralityClasses(new TArrayD(sizeof(c)/sizeof(c[0]), c)); | |
97 | } | |
9274f9ad | 98 | else jetTask->SetCentralityClasses(centralities); |
eae37c5c | 99 | // if a randomized hasn't specified use a safe default |
100 | if(!randomizer) jetTask->SetRandomSeed(new TRandom3(0)); | |
101 | ||
102 | // pass the expected run lists to the task. the total list is used for QA plots which are stored per run-number, the semi-good list is used to change the phi acceptance of jets and pico trakcs, and - if an alternatie is provided - switch to a 'small rho' task, which also runs on limited acceptance | |
103 | Int_t totalRuns[] = {167813, 167988, 168066, 168068, 168069, 168076, 168104, 168212, 168311, 168322, 168325, 168341, 168361, 168362, 168458, 168460, 168461, 168992, 169091, 169094, 169138, 169143, 169167, 169417, 169835, 169837, 169838, 169846, 169855, 169858, 169859, 169923, 169956, 170027, 170036, 170081, /* up till here original good TPC list */169975, 169981, 170038, 170040, 170083, 170084, 170085, 170088, 170089, 170091, 170152, 170155, 170159, 170163, 170193, 170195, 170203, 170204, 170205, 170228, 170230, 170264, 170268, 170269, 170270, 170306, 170308, 170309, /* original semi-good tpc list */169415, 169411, 169035, 168988, 168984, 168826, 168777, 168512, 168511, 168467, 168464, 168342, 168310, 168115, 168108, 168107, 167987, 167915, 167903, /*new runs, good according to RCT */ 169238, 169160, 169156, 169148, 169145, 169144 /* run swith missing OROC 8 but seem ok in QA */}; | |
2e9c1578 | 104 | |
105 | Int_t totalRuns10h[] = {139510, 139507, 139505, 139503, 139465, 139438, 139437, 139360, 139329, 139328, 139314, 139310, 139309, 139173, 139107, 139105, 139038, 139037, 139036, 139029, 139028, 138872, 138871, 138870, 138837, 138732, 138730, 138666, 138662, 138653, 138652, 138638, 138624, 138621, 138583, 138582, 138579, 138578, 138534, 138469, 138442, 138439, 138438, 138396, 138364, 138275, 138225, 138201, 138197, 138192, 138190, 137848, 137844, 137752, 137751, 137724, 137722, 137718, 137704, 137693, 137692, 137691, 137686, 137685, 137639, 137638, 137608, 137595, 137549, 137544, 137541, 137539, 137443, 137441, 137440, 137439, 137434, 137432, 137431, 137430, 137366, 137243, 137236, 137235, 137232, 137231, 137230, 137162, 137161, 137135}; | |
106 | ||
107 | // set the runnumbers for either 10h or 11h | |
108 | (LHC10h) ? jetTask->SetExpectedRuns(new TArrayI(sizeof(totalRuns10h)/sizeof(totalRuns10h[0]), totalRuns10h)) : jetTask->SetExpectedRuns(new TArrayI(sizeof(totalRuns)/sizeof(totalRuns[0]), totalRuns)); | |
eae37c5c | 109 | |
110 | Int_t semiGoodRuns[] = {169975, 169981, 170038, 170040, 170083, 170084, 170085, 170088, 170089, 170091, 170152, 170155, 170159, 170163, 170193, 170195, 170203, 170204, 170205, 170228, 170230, 170264, 170268, 170269, 170270, 170306, 170308, 170309}; | |
2e9c1578 | 111 | |
112 | // set the semi-good runnumbers for 10h or 11h (10h has no semi-good numbers, so pass a NULL pointer) | |
113 | (LHC10h) ? jetTask->SetExpectedSemiGoodRuns(0x0) : jetTask->SetExpectedSemiGoodRuns(new TArrayI(sizeof(semiGoodRuns)/sizeof(semiGoodRuns[0]), semiGoodRuns)); | |
114 | ||
115 | // and if 10h, pass this info to the task so acceptance isn't changed | |
6c3fa11d | 116 | if(LHC10h) jetTask->SetCollisionType(AliAnalysisTaskJetV2::kPbPb10h); |
eae37c5c | 117 | |
118 | //------------------------------------------------------- | |
119 | // Final settings, pass to manager and set the containers | |
120 | //------------------------------------------------------- | |
121 | ||
122 | mgr->AddTask(jetTask); | |
123 | ||
124 | // Create containers for input/output | |
125 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ; | |
126 | TString contname(name); | |
127 | contname+="_PWGJE"; | |
128 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), | |
129 | TList::Class(),AliAnalysisManager::kOutputContainer, | |
130 | Form("%s", AliAnalysisManager::GetCommonFileName())); | |
131 | mgr->ConnectInput (jetTask, 0, cinput1 ); | |
132 | mgr->ConnectOutput (jetTask, 1, coutput1 ); | |
133 | ||
134 | switch (runMode) { | |
135 | case AliAnalysisTaskJetV2::kLocal : { | |
136 | gStyle->SetOptFit(1); | |
137 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("good_fits_%s", name.Data()), | |
138 | TList::Class(),AliAnalysisManager::kOutputContainer, | |
139 | Form("%s", AliAnalysisManager::GetCommonFileName())); | |
140 | AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("bad_fits_%s", name.Data()), | |
141 | TList::Class(),AliAnalysisManager::kOutputContainer, | |
142 | Form("%s", AliAnalysisManager::GetCommonFileName())); | |
143 | mgr->ConnectOutput (jetTask, 2, coutput2); | |
144 | mgr->ConnectOutput (jetTask, 3, coutput3); | |
145 | } break; | |
146 | default: break; | |
147 | } | |
148 | return jetTask; | |
149 | } |