]>
Commit | Line | Data |
---|---|---|
2096d71d | 1 | // $Id$ |
2 | ||
25283b37 | 3 | AliEmcalJetTask* AddTaskEmcalJet( |
6a20534a | 4 | const UInt_t type = AliEmcalJetTask::kAKT | AliEmcalJetTask::kFullJet | AliEmcalJetTask::kR040Jet, |
2096d71d | 5 | const char *nTracks = "Tracks", |
6 | const char *nClusters = "CaloClusters", | |
2096d71d | 7 | const Double_t minTrPt = 0.15, |
1f9c287f | 8 | const Double_t minClPt = 0.30, |
22be30e2 | 9 | const Double_t ghostArea = 0.005, |
6a20534a | 10 | const Double_t radius = 0.4, |
8612dfc8 | 11 | const Int_t recombScheme = 1, |
6a20534a | 12 | const char *tag = "Jet" |
8612dfc8 | 13 | |
2096d71d | 14 | ) |
25283b37 | 15 | { |
16 | // Get the pointer to the existing analysis manager via the static access method. | |
17 | //============================================================================== | |
18 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
19 | if (!mgr) | |
20 | { | |
21 | ::Error("AddTaskAliEmcalJet", "No analysis manager to connect to."); | |
22 | return NULL; | |
23 | } | |
24 | ||
25 | // Check the analysis type using the event handlers connected to the analysis manager. | |
26 | //============================================================================== | |
27 | if (!mgr->GetInputEventHandler()) | |
28 | { | |
29 | ::Error("AddTaskAliEmcalJet", "This task requires an input event handler"); | |
30 | return NULL; | |
31 | } | |
32 | ||
33 | //------------------------------------------------------- | |
34 | // Init the task and do settings | |
35 | //------------------------------------------------------- | |
36 | ||
89d03e5a | 37 | Double_t minJetPt = 0; |
38 | ||
c683922f | 39 | char *algoString; |
6a20534a | 40 | if ((type & AliEmcalJetTask::kKT) != 0) { |
c683922f | 41 | algoString = "KT"; |
89d03e5a | 42 | minJetPt = 0.1; |
6a20534a | 43 | } else if ((type & AliEmcalJetTask::kAKT) != 0) { |
c683922f | 44 | algoString = "AKT"; |
89d03e5a | 45 | minJetPt = 1.0; |
46 | } | |
47 | ||
c683922f | 48 | char *typeString; |
6a20534a | 49 | if ((type & AliEmcalJetTask::kFullJet) != 0) |
c683922f | 50 | typeString = "Full"; |
6a20534a | 51 | else if ((type & AliEmcalJetTask::kChargedJet) != 0) |
c683922f | 52 | typeString = "Charged"; |
6a20534a | 53 | else if ((type & AliEmcalJetTask::kNeutralJet) != 0) |
c683922f | 54 | typeString = "Neutral"; |
89d03e5a | 55 | |
c683922f | 56 | char radiusString[200]; |
6a20534a | 57 | if ((type & AliEmcalJetTask::kR020Jet) != 0) |
58 | sprintf(radiusString,"R020"); | |
59 | else if ((type & AliEmcalJetTask::kR030Jet) != 0) | |
60 | sprintf(radiusString,"R030"); | |
61 | else if ((type & AliEmcalJetTask::kR040Jet) != 0) | |
62 | sprintf(radiusString,"R040"); | |
63 | else | |
64 | sprintf(radiusString,"R0%2.0f",radius*100.0); | |
89d03e5a | 65 | |
c683922f | 66 | char pTString[200]; |
01cb0d1f | 67 | if (minTrPt==0) |
68 | sprintf(pTString,"pT0000"); | |
69 | else if (minTrPt<1.0) | |
c683922f | 70 | sprintf(pTString,"pT0%3.0f",minTrPt*1000.0); |
71 | else if (minTrPt>=1.0) | |
72 | sprintf(pTString,"pT%4.0f",minTrPt*1000.0); | |
89d03e5a | 73 | |
c683922f | 74 | char ETString[200]; |
01cb0d1f | 75 | if (minClPt==0) |
76 | sprintf(ETString,"ET0000"); | |
77 | else if (minClPt<1.0) | |
c683922f | 78 | sprintf(ETString,"ET0%3.0f",minClPt*1000.0); |
79 | else if (minClPt>=1.0) | |
80 | sprintf(ETString,"ET%4.0f",minClPt*1000.0); | |
81 | ||
8612dfc8 | 82 | char recombSchemeString[200]; |
83 | if(recombScheme==0) | |
84 | sprintf(recombSchemeString,"%s","E_scheme"); | |
85 | else if(recombScheme==1) | |
86 | sprintf(recombSchemeString,"%s","pt_scheme"); | |
87 | else if(recombScheme==2) | |
88 | sprintf(recombSchemeString,"%s","pt2_scheme"); | |
89 | else if(recombScheme==3) | |
90 | sprintf(recombSchemeString,"%s","Et_scheme"); | |
91 | else if(recombScheme==4) | |
92 | sprintf(recombSchemeString,"%s","Et2_scheme"); | |
93 | else if(recombScheme==5) | |
94 | sprintf(recombSchemeString,"%s","BIpt_scheme"); | |
95 | else if(recombScheme==6) | |
96 | sprintf(recombSchemeString,"%s","BIpt2_scheme"); | |
97 | else if(recombScheme==99) | |
98 | sprintf(recombSchemeString,"%s","ext_scheme"); | |
99 | else { | |
100 | ::Error("AddTaskAliEmcalJet", "Recombination scheme not recognized."); | |
101 | return NULL; | |
102 | } | |
103 | ||
c683922f | 104 | TString name; |
6a20534a | 105 | if (*nTracks && *nClusters) |
8612dfc8 | 106 | name = TString(Form("%s_%s%s%s_%s_%s_%s_%s_%s", |
107 | tag,algoString,typeString,radiusString,nTracks,pTString,nClusters,ETString,recombSchemeString)); | |
6a20534a | 108 | else if (!*nClusters) |
8612dfc8 | 109 | name = TString(Form("%s_%s%s%s_%s_%s_%s", |
110 | tag,algoString,typeString,radiusString,nTracks,pTString,recombSchemeString)); | |
6a20534a | 111 | else if (!*nTracks) |
8612dfc8 | 112 | name = TString(Form("%s_%s%s%s_%s_%s_%s", |
113 | tag,algoString,typeString,radiusString,nClusters,ETString,recombSchemeString)); | |
c683922f | 114 | |
89d03e5a | 115 | AliEmcalJetTask* mgrTask = mgr->GetTask(name.Data()); |
c683922f | 116 | if (mgrTask) |
117 | return mgrTask; | |
118 | ||
2096d71d | 119 | AliEmcalJetTask* jetTask = new AliEmcalJetTask(name); |
120 | jetTask->SetTracksName(nTracks); | |
121 | jetTask->SetClusName(nClusters); | |
c683922f | 122 | jetTask->SetJetsName(name); |
6a20534a | 123 | jetTask->SetJetType(type); |
25283b37 | 124 | jetTask->SetMinJetTrackPt(minTrPt); |
125 | jetTask->SetMinJetClusPt(minClPt); | |
89d03e5a | 126 | jetTask->SetMinJetPt(minJetPt); |
6a20534a | 127 | if ((type & (AliEmcalJetTask::kRX1Jet|AliEmcalJetTask::kRX2Jet|AliEmcalJetTask::kRX3Jet)) != 0) |
128 | jetTask->SetRadius(radius); | |
1f9c287f | 129 | jetTask->SetGhostArea(ghostArea); |
8612dfc8 | 130 | jetTask->SetRecombScheme(recombScheme); |
25283b37 | 131 | |
132 | //------------------------------------------------------- | |
133 | // Final settings, pass to manager and set the containers | |
134 | //------------------------------------------------------- | |
135 | ||
136 | mgr->AddTask(jetTask); | |
137 | ||
138 | // Create containers for input/output | |
2096d71d | 139 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer() ; |
140 | mgr->ConnectInput (jetTask, 0, cinput); | |
141 | ||
25283b37 | 142 | return jetTask; |
25283b37 | 143 | } |
6a20534a | 144 | |
145 | ||
146 | AliEmcalJetTask* AddTaskEmcalJet( | |
147 | const char *nTracks = "Tracks", | |
148 | const char *nClusters = "CaloClusters", | |
149 | const Int_t algo = 1, | |
150 | const Double_t radius = 0.4, | |
151 | const Int_t type = 0, | |
152 | const Double_t minTrPt = 0.15, | |
153 | const Double_t minClPt = 0.30, | |
8612dfc8 | 154 | const Double_t ghostArea = 0.01, |
155 | const Int_t recombScheme = 1, | |
6a20534a | 156 | const char *tag = "Jet" |
157 | ) | |
158 | { | |
159 | ||
160 | UInt_t jetType = 0; | |
161 | ||
162 | if (algo == 0) | |
163 | jetType |= AliEmcalJetTask::kKT; | |
164 | else | |
165 | jetType |= AliEmcalJetTask::kAKT; | |
166 | ||
167 | if (type==0) | |
168 | jetType |= AliEmcalJetTask::kFullJet; | |
169 | else if (type==1) | |
170 | jetType |= AliEmcalJetTask::kChargedJet; | |
171 | else if (type==2) | |
172 | jetType |= AliEmcalJetTask::kNeutralJet; | |
173 | ||
174 | if (radius==0.2) | |
175 | jetType |= AliEmcalJetTask::kR020Jet; | |
176 | else if (radius==0.3) | |
177 | jetType |= AliEmcalJetTask::kR030Jet; | |
178 | else if (radius==0.4) | |
179 | jetType |= AliEmcalJetTask::kR040Jet; | |
180 | else | |
181 | jetType |= AliEmcalJetTask::kRX1Jet; | |
182 | ||
8612dfc8 | 183 | return AddTaskEmcalJet(jetType, nTracks, nClusters, minTrPt, minClPt, ghostArea, radius, recombScheme, tag); |
6a20534a | 184 | } |