]>
Commit | Line | Data |
---|---|---|
2096d71d | 1 | // $Id$ |
2 | ||
25283b37 | 3 | AliEmcalJetTask* AddTaskEmcalJet( |
2096d71d | 4 | const char *nTracks = "Tracks", |
5 | const char *nClusters = "CaloClusters", | |
2096d71d | 6 | const Int_t algo = 1, |
7 | const Double_t radius = 0.4, | |
8 | const Int_t type = 0, | |
9 | const Double_t minTrPt = 0.15, | |
1f9c287f | 10 | const Double_t minClPt = 0.30, |
11 | const Double_t ghostArea = 0.01 | |
2096d71d | 12 | ) |
25283b37 | 13 | { |
14 | // Get the pointer to the existing analysis manager via the static access method. | |
15 | //============================================================================== | |
16 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
17 | if (!mgr) | |
18 | { | |
19 | ::Error("AddTaskAliEmcalJet", "No analysis manager to connect to."); | |
20 | return NULL; | |
21 | } | |
22 | ||
23 | // Check the analysis type using the event handlers connected to the analysis manager. | |
24 | //============================================================================== | |
25 | if (!mgr->GetInputEventHandler()) | |
26 | { | |
27 | ::Error("AddTaskAliEmcalJet", "This task requires an input event handler"); | |
28 | return NULL; | |
29 | } | |
30 | ||
31 | //------------------------------------------------------- | |
32 | // Init the task and do settings | |
33 | //------------------------------------------------------- | |
34 | ||
89d03e5a | 35 | Double_t minJetPt = 0; |
36 | ||
c683922f | 37 | char *algoString; |
89d03e5a | 38 | if (algo == 0) { |
c683922f | 39 | algoString = "KT"; |
89d03e5a | 40 | minJetPt = 0.1; |
41 | } else if (algo == 1) { | |
c683922f | 42 | algoString = "AKT"; |
89d03e5a | 43 | minJetPt = 1.0; |
44 | } | |
45 | ||
c683922f | 46 | char *typeString; |
47 | if (type == 0) | |
48 | typeString = "Full"; | |
49 | else if (type == 1) | |
50 | typeString = "Charged"; | |
51 | else if (type == 2) | |
52 | typeString = "Neutral"; | |
89d03e5a | 53 | |
c683922f | 54 | char radiusString[200]; |
55 | sprintf(radiusString,"R0%2.0f",radius*100.0); | |
89d03e5a | 56 | |
c683922f | 57 | char pTString[200]; |
01cb0d1f | 58 | if (minTrPt==0) |
59 | sprintf(pTString,"pT0000"); | |
60 | else if (minTrPt<1.0) | |
c683922f | 61 | sprintf(pTString,"pT0%3.0f",minTrPt*1000.0); |
62 | else if (minTrPt>=1.0) | |
63 | sprintf(pTString,"pT%4.0f",minTrPt*1000.0); | |
89d03e5a | 64 | |
c683922f | 65 | char ETString[200]; |
01cb0d1f | 66 | if (minClPt==0) |
67 | sprintf(ETString,"ET0000"); | |
68 | else if (minClPt<1.0) | |
c683922f | 69 | sprintf(ETString,"ET0%3.0f",minClPt*1000.0); |
70 | else if (minClPt>=1.0) | |
71 | sprintf(ETString,"ET%4.0f",minClPt*1000.0); | |
72 | ||
73 | TString name; | |
74 | if (type == 0) | |
70ff7133 | 75 | name = TString(Form("Jet_%s%s%s_%s_%s_%s_%s", |
89d03e5a | 76 | algoString,typeString,radiusString,nTracks,pTString,nClusters,ETString)); |
77 | else if (type == 1) | |
70ff7133 | 78 | name = TString(Form("Jet_%s%s%s_%s_%s", |
89d03e5a | 79 | algoString,typeString,radiusString,nTracks,pTString)); |
80 | else if (type == 2) | |
70ff7133 | 81 | name = TString(Form("Jet_%s%s%s_%s_%s", |
89d03e5a | 82 | algoString,typeString,radiusString,nClusters,ETString)); |
c683922f | 83 | |
89d03e5a | 84 | AliEmcalJetTask* mgrTask = mgr->GetTask(name.Data()); |
c683922f | 85 | if (mgrTask) |
86 | return mgrTask; | |
87 | ||
2096d71d | 88 | AliEmcalJetTask* jetTask = new AliEmcalJetTask(name); |
89 | jetTask->SetTracksName(nTracks); | |
90 | jetTask->SetClusName(nClusters); | |
c683922f | 91 | jetTask->SetJetsName(name); |
2096d71d | 92 | jetTask->SetAlgo(algo); |
25283b37 | 93 | jetTask->SetMinJetTrackPt(minTrPt); |
94 | jetTask->SetMinJetClusPt(minClPt); | |
89d03e5a | 95 | jetTask->SetMinJetPt(minJetPt); |
2096d71d | 96 | jetTask->SetRadius(radius); |
97 | jetTask->SetType(type); | |
1f9c287f | 98 | jetTask->SetGhostArea(ghostArea); |
25283b37 | 99 | |
100 | //------------------------------------------------------- | |
101 | // Final settings, pass to manager and set the containers | |
102 | //------------------------------------------------------- | |
103 | ||
104 | mgr->AddTask(jetTask); | |
105 | ||
106 | // Create containers for input/output | |
2096d71d | 107 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer() ; |
108 | mgr->ConnectInput (jetTask, 0, cinput); | |
109 | ||
25283b37 | 110 | return jetTask; |
25283b37 | 111 | } |