3 AliEmcalJetTask* AddTaskEmcalJet(
4 const UInt_t type = AliEmcalJetTask::kAKT | AliEmcalJetTask::kFullJet | AliEmcalJetTask::kR040Jet,
5 const char *nTracks = "Tracks",
6 const char *nClusters = "CaloClusters",
7 const Double_t minTrPt = 0.15,
8 const Double_t minClPt = 0.30,
9 const Double_t ghostArea = 0.005,
10 const Double_t radius = 0.4,
11 const Int_t recombScheme = 1,
12 const char *tag = "Jet"
16 // Get the pointer to the existing analysis manager via the static access method.
17 //==============================================================================
18 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 ::Error("AddTaskAliEmcalJet", "No analysis manager to connect to.");
25 // Check the analysis type using the event handlers connected to the analysis manager.
26 //==============================================================================
27 if (!mgr->GetInputEventHandler())
29 ::Error("AddTaskAliEmcalJet", "This task requires an input event handler");
33 //-------------------------------------------------------
34 // Init the task and do settings
35 //-------------------------------------------------------
37 Double_t minJetPt = 0;
40 if ((type & AliEmcalJetTask::kKT) != 0) {
43 } else if ((type & AliEmcalJetTask::kAKT) != 0) {
49 if ((type & AliEmcalJetTask::kFullJet) != 0)
51 else if ((type & AliEmcalJetTask::kChargedJet) != 0)
52 typeString = "Charged";
53 else if ((type & AliEmcalJetTask::kNeutralJet) != 0)
54 typeString = "Neutral";
56 char radiusString[200];
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");
64 sprintf(radiusString,"R0%2.0f",radius*100.0);
68 sprintf(pTString,"pT0000");
70 sprintf(pTString,"pT0%3.0f",minTrPt*1000.0);
71 else if (minTrPt>=1.0)
72 sprintf(pTString,"pT%4.0f",minTrPt*1000.0);
76 sprintf(ETString,"ET0000");
78 sprintf(ETString,"ET0%3.0f",minClPt*1000.0);
79 else if (minClPt>=1.0)
80 sprintf(ETString,"ET%4.0f",minClPt*1000.0);
82 char recombSchemeString[200];
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");
100 ::Error("AddTaskAliEmcalJet", "Recombination scheme not recognized.");
105 if (*nTracks && *nClusters)
106 name = TString(Form("%s_%s%s%s_%s_%s_%s_%s_%s",
107 tag,algoString,typeString,radiusString,nTracks,pTString,nClusters,ETString,recombSchemeString));
108 else if (!*nClusters)
109 name = TString(Form("%s_%s%s%s_%s_%s_%s",
110 tag,algoString,typeString,radiusString,nTracks,pTString,recombSchemeString));
112 name = TString(Form("%s_%s%s%s_%s_%s_%s",
113 tag,algoString,typeString,radiusString,nClusters,ETString,recombSchemeString));
115 AliEmcalJetTask* mgrTask = mgr->GetTask(name.Data());
119 AliEmcalJetTask* jetTask = new AliEmcalJetTask(name);
120 jetTask->SetTracksName(nTracks);
121 jetTask->SetClusName(nClusters);
122 jetTask->SetJetsName(name);
123 jetTask->SetJetType(type);
124 jetTask->SetMinJetTrackPt(minTrPt);
125 jetTask->SetMinJetClusPt(minClPt);
126 jetTask->SetMinJetPt(minJetPt);
127 if ((type & (AliEmcalJetTask::kRX1Jet|AliEmcalJetTask::kRX2Jet|AliEmcalJetTask::kRX3Jet)) != 0)
128 jetTask->SetRadius(radius);
129 jetTask->SetGhostArea(ghostArea);
130 jetTask->SetRecombScheme(recombScheme);
132 //-------------------------------------------------------
133 // Final settings, pass to manager and set the containers
134 //-------------------------------------------------------
136 mgr->AddTask(jetTask);
138 // Create containers for input/output
139 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer() ;
140 mgr->ConnectInput (jetTask, 0, cinput);
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,
154 const Double_t ghostArea = 0.01,
155 const Int_t recombScheme = 1,
156 const char *tag = "Jet"
163 jetType |= AliEmcalJetTask::kKT;
165 jetType |= AliEmcalJetTask::kAKT;
168 jetType |= AliEmcalJetTask::kFullJet;
170 jetType |= AliEmcalJetTask::kChargedJet;
172 jetType |= AliEmcalJetTask::kNeutralJet;
175 jetType |= AliEmcalJetTask::kR020Jet;
176 else if (radius==0.3)
177 jetType |= AliEmcalJetTask::kR030Jet;
178 else if (radius==0.4)
179 jetType |= AliEmcalJetTask::kR040Jet;
181 jetType |= AliEmcalJetTask::kRX1Jet;
183 return AddTaskEmcalJet(jetType, nTracks, nClusters, minTrPt, minClPt, ghostArea, radius, recombScheme, tag);