]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalEsdTrackFilter.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalEsdTrackFilter.C
CommitLineData
0601d71e 1// $Id$
2
c8ff0efd 3AliEmcalEsdTrackFilterTask* AddTaskEmcalEsdTrackFilter(
33a8056d 4 const char *name = "TrackFilter",
5 const char *trackCuts = "Hybrid_LHC11h",
6 const char *taskName = "AliEmcalEsdTrackFilterTask"
f28a85be 7)
e1bdcdfb 8{
9 enum CutsType {
10 kHybrid = 0,
11 kTpcOnly = 1
12 };
13
14 enum DataSet {
e2b010c2 15 kLHC10h = 0,
16 kLHC11a = 1,
17 kLHC11c = 3,
18 kLHC11d = 3,
19 kLHC11h = 3
e1bdcdfb 20 };
21
22 CutsType cutsType = kHybrid;
23 DataSet dataSet = kLHC11h;
24
25 TString cutsLabel("hybrid tracks");
26 TString dataSetLabel("LHC11h");
27
28 TString strTrackCuts(trackCuts);
4289a713 29 strTrackCuts.ToLower();
e1bdcdfb 30
4289a713 31 if (strTrackCuts.Contains("hybrid")) {
e1bdcdfb 32 cutsType = kHybrid;
cf69275f 33 } else if (strTrackCuts.Contains("tpconly")) {
e1bdcdfb 34 cutsType = kTpcOnly;
35 cutsLabel = "TPC only constrained tracks";
cf69275f 36 } else {
e1bdcdfb 37 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
38 }
39
4289a713 40 if (strTrackCuts.Contains("lhc10h")) {
e2b010c2 41 dataSet = kLHC10h;
cf69275f 42 } else if (strTrackCuts.Contains("lhc11a") || strTrackCuts.Contains("lhc12a15a")) {
e1bdcdfb 43 dataSet = kLHC11a;
44 dataSetLabel = "LHC11a";
cf69275f 45 } else if (strTrackCuts.Contains("lhc10e") || strTrackCuts.Contains("lhc10d") ||
46 strTrackCuts.Contains("lhc10e20") || strTrackCuts.Contains("lhc10f6a") ||
47 strTrackCuts.Contains("lhc11a1a") || strTrackCuts.Contains("lhc11a1b") ||
48 strTrackCuts.Contains("lhc11a1c") || strTrackCuts.Contains("lhc11a1d") ||
49 strTrackCuts.Contains("lhc11a1e") || strTrackCuts.Contains("lhc11a1f") ||
50 strTrackCuts.Contains("lhc11a1g") || strTrackCuts.Contains("lhc11a1h") ||
51 strTrackCuts.Contains("lhc11a1i") || strTrackCuts.Contains("lhc11a1j")) {
843f944d 52 dataSet = kLHC11a;
53 dataSetLabel = "LHC10e";
cf69275f 54 } else if (strTrackCuts.Contains("lhc11c")) {
e2b010c2 55 dataSet = kLHC11c;
56 dataSetLabel = "LHC11c";
cf69275f 57 } else if (strTrackCuts.Contains("lhc11d")) {
e2b010c2 58 dataSet = kLHC11d;
59 dataSetLabel = "LHC11d";
cf69275f 60 } else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e")) {
e2b010c2 61 dataSet = kLHC11h;
62 dataSetLabel = "LHC11h";
cf69275f 63 } else if (strTrackCuts.Contains("lhc12g")) {
a66ac13a 64 dataSet = kLHC11h;
65 dataSetLabel = "LHC12g";
afb6291b 66 } else if (strTrackCuts.Contains("lhc12")) {
67 dataSet = kLHC11h;
68 dataSetLabel = "LHC12";
cf69275f 69 } else if (strTrackCuts.Contains("lhc13b")) {
4289a713 70 dataSet = kLHC11h;
71 dataSetLabel = "LHC13b";
cf69275f 72 } else if (strTrackCuts.Contains("lhc13c")) {
4289a713 73 dataSet = kLHC11h;
74 dataSetLabel = "LHC13c";
cf69275f 75 } else if (strTrackCuts.Contains("lhc13d")) {
843f944d 76 dataSet = kLHC11h;
77 dataSetLabel = "LHC13d";
cf69275f 78 } else if (strTrackCuts.Contains("lhc13e")) {
843f944d 79 dataSet = kLHC11h;
80 dataSetLabel = "LHC13e";
cf69275f 81 } else if (strTrackCuts.Contains("lhc13f")) {
843f944d 82 dataSet = kLHC11h;
83 dataSetLabel = "LHC13f";
cf69275f 84 } else if (strTrackCuts.Contains("lhc13g")) {
843f944d 85 dataSet = kLHC11h;
86 dataSetLabel = "LHC13g";
cf69275f 87 } else if (strTrackCuts.Contains("lhc12a15f")) {
4289a713 88 dataSet = kLHC11h;
89 dataSetLabel = "LHC12a15f";
cf69275f 90 } else if (strTrackCuts.Contains("lhc13b4")) {
843f944d 91 dataSet = kLHC11h;
92 dataSetLabel = "LHC13b4";
cf69275f 93 } else if (strTrackCuts.Contains("lhc12a15g")) {
ee69aaf0 94 dataSet = kLHC11d;
95 dataSetLabel = "LHC12a15g";
cf69275f 96 } else if (strTrackCuts.Contains("lhc12f2a")) {
ee69aaf0 97 dataSet = kLHC11d;
98 dataSetLabel = "LHC12f2a";
afb6291b 99 } else if (strTrackCuts.Contains("lhc12a17")) {
100 dataSet = kLHC11h;
101 dataSetLabel = "LHC12a17";
102 } else if (strTrackCuts.Contains("lhc14a1")) {
103 dataSet = kLHC11h;
104 dataSetLabel = "LHC14a1";
cf69275f 105 } else {
e1bdcdfb 106 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
107 }
108
25283b37 109 // Get the pointer to the existing analysis manager via the static access method.
110 //==============================================================================
111 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
53dca394 112 if (!mgr) {
25283b37 113 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
114 return NULL;
115 }
116
117 // Check the analysis type using the event handlers connected to the analysis manager.
118 //==============================================================================
53dca394 119 AliVEventHandler *evhand = mgr->GetInputEventHandler();
120 if (!evhand) {
25283b37 121 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
122 return NULL;
123 }
124
53dca394 125 if (!evhand->InheritsFrom("AliESDInputHandler")) {
126 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
127 return NULL;
128 }
129
25283b37 130 //-------------------------------------------------------
131 // Init the task and do settings
132 //-------------------------------------------------------
133
344cd45d 134 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
cf69275f 135 AliEmcalEsdTrackFilterTask *eTask = new AliEmcalEsdTrackFilterTask(taskName); // default is no cut
e2b010c2 136 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
137 (dataSet == kLHC11d && cutsType == kHybrid) ||
138 (dataSet == kLHC11h && cutsType == kHybrid)) {
e1bdcdfb 139 /* hybrid track cuts*/
6231f841 140 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement
cf69275f 141 eTask->SetTrackCuts(cutsp);
a66ac13a 142 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set
e1bdcdfb 143 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
e1bdcdfb 144 eTask->SetHybridTrackCuts(hybsp);
ce2a8490 145 eTask->SetIncludeNoITS(kFALSE);
58711fe0 146 } else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
cf69275f 147 (dataSet == kLHC11a && cutsType == kHybrid)) {
e1bdcdfb 148 /* hybrid track cuts*/
149 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement
cf69275f 150 eTask->SetTrackCuts(cutsp);
e1bdcdfb 151 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set
152 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
e1bdcdfb 153 eTask->SetHybridTrackCuts(hybsp);
ce2a8490 154 eTask->SetIncludeNoITS(kTRUE);
155 }
156 else if (dataSet == kLHC11h && cutsType == kTpcOnly) {
157 /* TPC-only constrained track cuts*/
158 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(2001); //TPC-only loose track cuts
159 eTask->SetTrackCuts(cutsp);
160 eTask->SetHybridTrackCuts(0);
161 }
162 else {
163 ::Error("AddTaskEmcalEsdTrackFilter","Track cuts type / period not recognized! Undefined beahviour will follow!");
e1bdcdfb 164 }
25283b37 165 eTask->SetTracksName(name);
166
e1bdcdfb 167 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
25283b37 168
169 //-------------------------------------------------------
170 // Final settings, pass to manager and set the containers
171 //-------------------------------------------------------
25283b37 172 mgr->AddTask(eTask);
173
174 // Create containers for input/output
344cd45d 175 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
176 mgr->ConnectInput(eTask, 0, cinput1);
25283b37 177
178 return eTask;
25283b37 179}