]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalEsdTrackFilter.C
Track QA
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalEsdTrackFilter.C
CommitLineData
0601d71e 1// $Id$
2
c8ff0efd 3AliEmcalEsdTrackFilterTask* AddTaskEmcalEsdTrackFilter(
4 const char *name = "AliEmcalEsdTrackFilter",
d0d15051 5 const char *trackCuts = "Hybrid_LHC11h"
f28a85be 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);
4289a713 28 strTrackCuts.ToLower();
e1bdcdfb 29
4289a713 30 if (strTrackCuts.Contains("hybrid")) {
e1bdcdfb 31 cutsType = kHybrid;
32 }
4289a713 33 else if (strTrackCuts.Contains("tpconly")) {
e1bdcdfb 34 cutsType = kTpcOnly;
35 cutsLabel = "TPC only constrained tracks";
36 }
37 else {
38 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
39 }
40
4289a713 41 if (strTrackCuts.Contains("lhc10h")) {
e2b010c2 42 dataSet = kLHC10h;
e1bdcdfb 43 }
4289a713 44 else if (strTrackCuts.Contains("lhc11a") || strTrackCuts.Contains("lhc12a15a")) {
e1bdcdfb 45 dataSet = kLHC11a;
46 dataSetLabel = "LHC11a";
47 }
4289a713 48 else if (strTrackCuts.Contains("lhc11c")) {
e2b010c2 49 dataSet = kLHC11c;
50 dataSetLabel = "LHC11c";
51 }
4289a713 52 else if (strTrackCuts.Contains("lhc11d")) {
e2b010c2 53 dataSet = kLHC11d;
54 dataSetLabel = "LHC11d";
55 }
4289a713 56 else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e"))
a66ac13a 57 {
e2b010c2 58 dataSet = kLHC11h;
59 dataSetLabel = "LHC11h";
60 }
4289a713 61 else if (strTrackCuts.Contains("lhc12g"))
a66ac13a 62 {
63 dataSet = kLHC11h;
64 dataSetLabel = "LHC12g";
65 }
4289a713 66 else if (strTrackCuts.Contains("lhc13b"))
67 {
68 dataSet = kLHC11h;
69 dataSetLabel = "LHC13b";
70 }
71 else if (strTrackCuts.Contains("lhc13c"))
72 {
73 dataSet = kLHC11h;
74 dataSetLabel = "LHC13c";
75 }
76 else if (strTrackCuts.Contains("lhc12a15f"))
77 {
78 dataSet = kLHC11h;
79 dataSetLabel = "LHC12a15f";
80 }
ee69aaf0 81 else if (strTrackCuts.Contains("lhc12a15g"))
82 {
83 dataSet = kLHC11d;
84 dataSetLabel = "LHC12a15g";
85 }
86 else if (strTrackCuts.Contains("lhc12f2a"))
87 {
88 dataSet = kLHC11d;
89 dataSetLabel = "LHC12f2a";
90 }
e1bdcdfb 91 else {
92 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
93 }
94
25283b37 95 // Get the pointer to the existing analysis manager via the static access method.
96 //==============================================================================
97 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
53dca394 98 if (!mgr) {
25283b37 99 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
100 return NULL;
101 }
102
103 // Check the analysis type using the event handlers connected to the analysis manager.
104 //==============================================================================
53dca394 105 AliVEventHandler *evhand = mgr->GetInputEventHandler();
106 if (!evhand) {
25283b37 107 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
108 return NULL;
109 }
110
53dca394 111 if (!evhand->InheritsFrom("AliESDInputHandler")) {
112 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
113 return NULL;
114 }
115
25283b37 116 //-------------------------------------------------------
117 // Init the task and do settings
118 //-------------------------------------------------------
119
344cd45d 120 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
c15f0298 121 Bool_t includeNoITS = kFALSE;
c8ff0efd 122 AliEmcalEsdTrackFilterTask *eTask = new AliEmcalEsdTrackFilterTask(); // default is TPC only tracks constrained to the vertex
25283b37 123
e2b010c2 124 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
125 (dataSet == kLHC11d && cutsType == kHybrid) ||
126 (dataSet == kLHC11h && cutsType == kHybrid)) {
e1bdcdfb 127 /* hybrid track cuts*/
6231f841 128 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement
a66ac13a 129 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set
e1bdcdfb 130 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
131 eTask->SetTrackCuts(cutsp);
132 eTask->SetHybridTrackCuts(hybsp);
133 }
e2b010c2 134 else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
c72f3f6f 135 (dataSet == kLHC11a && cutsType == kHybrid)) {
e1bdcdfb 136 /* hybrid track cuts*/
137 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement
138 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set
139 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
140 eTask->SetTrackCuts(cutsp);
141 eTask->SetHybridTrackCuts(hybsp);
c15f0298 142 includeNoITS = kTRUE;
e1bdcdfb 143 }
344cd45d 144
25283b37 145 eTask->SetTracksName(name);
f12033ec 146 eTask->SetIncludeNoITS(includeNoITS);
25283b37 147
e1bdcdfb 148 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
25283b37 149
150 //-------------------------------------------------------
151 // Final settings, pass to manager and set the containers
152 //-------------------------------------------------------
25283b37 153 mgr->AddTask(eTask);
154
155 // Create containers for input/output
344cd45d 156 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
157 mgr->ConnectInput(eTask, 0, cinput1);
25283b37 158
159 return eTask;
25283b37 160}