]>
Commit | Line | Data |
---|---|---|
0601d71e | 1 | // $Id$ |
2 | ||
f28a85be | 3 | AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack( |
4 | const char *name = "TpcSpdVertexConstrainedTracks", | |
5 | const char *trackCuts = "Hybrid_LHC11h" | |
6 | ) | |
e1bdcdfb | 7 | { |
8 | enum CutsType { | |
9 | kHybrid = 0, | |
10 | kTpcOnly = 1 | |
11 | }; | |
12 | ||
13 | enum DataSet { | |
e2b010c2 | 14 | kLHC10h = 0, |
15 | kLHC11a = 1, | |
16 | kLHC11c = 3, | |
17 | kLHC11d = 3, | |
18 | kLHC11h = 3 | |
e1bdcdfb | 19 | }; |
20 | ||
21 | CutsType cutsType = kHybrid; | |
22 | DataSet dataSet = kLHC11h; | |
23 | ||
24 | TString cutsLabel("hybrid tracks"); | |
25 | TString dataSetLabel("LHC11h"); | |
26 | ||
27 | TString strTrackCuts(trackCuts); | |
28 | ||
29 | if (strTrackCuts.Contains("Hybrid")) { | |
30 | cutsType = kHybrid; | |
31 | } | |
32 | else if (strTrackCuts.Contains("TpcOnly")) { | |
33 | cutsType = kTpcOnly; | |
34 | cutsLabel = "TPC only constrained tracks"; | |
35 | } | |
36 | else { | |
37 | ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid"); | |
38 | } | |
39 | ||
e2b010c2 | 40 | if (strTrackCuts.Contains("LHC10h")) { |
41 | dataSet = kLHC10h; | |
e1bdcdfb | 42 | } |
43 | else if (strTrackCuts.Contains("LHC11a")) { | |
44 | dataSet = kLHC11a; | |
45 | dataSetLabel = "LHC11a"; | |
46 | } | |
e2b010c2 | 47 | else if (strTrackCuts.Contains("LHC11c")) { |
48 | dataSet = kLHC11c; | |
49 | dataSetLabel = "LHC11c"; | |
50 | } | |
51 | else if (strTrackCuts.Contains("LHC11d")) { | |
52 | dataSet = kLHC11d; | |
53 | dataSetLabel = "LHC11d"; | |
54 | } | |
55 | else if (strTrackCuts.Contains("LHC11h")) { | |
56 | dataSet = kLHC11h; | |
57 | dataSetLabel = "LHC11h"; | |
58 | } | |
e1bdcdfb | 59 | else { |
60 | ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h"); | |
61 | } | |
62 | ||
25283b37 | 63 | // Get the pointer to the existing analysis manager via the static access method. |
64 | //============================================================================== | |
65 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
53dca394 | 66 | if (!mgr) { |
25283b37 | 67 | ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to."); |
68 | return NULL; | |
69 | } | |
70 | ||
71 | // Check the analysis type using the event handlers connected to the analysis manager. | |
72 | //============================================================================== | |
53dca394 | 73 | AliVEventHandler *evhand = mgr->GetInputEventHandler(); |
74 | if (!evhand) { | |
25283b37 | 75 | ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler"); |
76 | return NULL; | |
77 | } | |
78 | ||
53dca394 | 79 | if (!evhand->InheritsFrom("AliESDInputHandler")) { |
80 | ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added."); | |
81 | return NULL; | |
82 | } | |
83 | ||
25283b37 | 84 | //------------------------------------------------------- |
85 | // Init the task and do settings | |
86 | //------------------------------------------------------- | |
87 | ||
344cd45d | 88 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C"); |
89 | ||
e1bdcdfb | 90 | AliEmcalEsdTpcTrackTask *eTask = new AliEmcalEsdTpcTrackTask(); // default is TPC only tracks constrained to the vertex |
25283b37 | 91 | |
e2b010c2 | 92 | if ((dataSet == kLHC11c && cutsType == kHybrid) || |
93 | (dataSet == kLHC11d && cutsType == kHybrid) || | |
94 | (dataSet == kLHC11h && cutsType == kHybrid)) { | |
e1bdcdfb | 95 | /* hybrid track cuts*/ |
96 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001007); //1000 adds SPD any requirement | |
97 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041007); //1004 removes ITSrefit requirement from standard set | |
98 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); | |
99 | eTask->SetTrackCuts(cutsp); | |
100 | eTask->SetHybridTrackCuts(hybsp); | |
101 | } | |
e2b010c2 | 102 | else if ((dataSet == kLHC10h && cutsType == kHybrid) || |
c72f3f6f | 103 | (dataSet == kLHC11a && cutsType == kHybrid)) { |
e1bdcdfb | 104 | /* hybrid track cuts*/ |
105 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement | |
106 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set | |
107 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); | |
108 | eTask->SetTrackCuts(cutsp); | |
109 | eTask->SetHybridTrackCuts(hybsp); | |
110 | } | |
344cd45d | 111 | |
25283b37 | 112 | eTask->SetTracksName(name); |
113 | ||
e1bdcdfb | 114 | cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl; |
25283b37 | 115 | |
116 | //------------------------------------------------------- | |
117 | // Final settings, pass to manager and set the containers | |
118 | //------------------------------------------------------- | |
25283b37 | 119 | mgr->AddTask(eTask); |
120 | ||
121 | // Create containers for input/output | |
344cd45d | 122 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); |
123 | mgr->ConnectInput(eTask, 0, cinput1); | |
25283b37 | 124 | |
125 | return eTask; | |
25283b37 | 126 | } |