]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C
From Marta:
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJet.C
CommitLineData
2096d71d 1// $Id$
2
25283b37 3AliEmcalJetTask* 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
146AliEmcalJetTask* 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}