3 AliEmcalEsdTrackFilterTask* AddTaskEmcalEsdTrackFilter(
4 const char *name = "TrackFilter",
5 const char *trackCuts = "Hybrid_LHC11h",
6 const char *taskName = "AliEmcalEsdTrackFilterTask"
22 CutsType cutsType = kHybrid;
23 DataSet dataSet = kLHC11h;
25 TString cutsLabel("hybrid tracks");
26 TString dataSetLabel("LHC11h");
28 TString strTrackCuts(trackCuts);
29 strTrackCuts.ToLower();
31 if (strTrackCuts.Contains("hybrid")) {
34 else if (strTrackCuts.Contains("tpconly")) {
36 cutsLabel = "TPC only constrained tracks";
39 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
42 if (strTrackCuts.Contains("lhc10h")) {
45 else if (strTrackCuts.Contains("lhc11a") || strTrackCuts.Contains("lhc12a15a")) {
47 dataSetLabel = "LHC11a";
49 else if (strTrackCuts.Contains("lhc10e") || strTrackCuts.Contains("lhc10d") ||
50 strTrackCuts.Contains("lhc10e20") || strTrackCuts.Contains("lhc10f6a") ||
51 strTrackCuts.Contains("lhc11a1a") || strTrackCuts.Contains("lhc11a1b") ||
52 strTrackCuts.Contains("lhc11a1c") || strTrackCuts.Contains("lhc11a1d") ||
53 strTrackCuts.Contains("lhc11a1e") || strTrackCuts.Contains("lhc11a1f") ||
54 strTrackCuts.Contains("lhc11a1g") || strTrackCuts.Contains("lhc11a1h") ||
55 strTrackCuts.Contains("lhc11a1i") || strTrackCuts.Contains("lhc11a1j")) {
57 dataSetLabel = "LHC10e";
59 else if (strTrackCuts.Contains("lhc11c")) {
61 dataSetLabel = "LHC11c";
63 else if (strTrackCuts.Contains("lhc11d")) {
65 dataSetLabel = "LHC11d";
67 else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e"))
70 dataSetLabel = "LHC11h";
72 else if (strTrackCuts.Contains("lhc12g"))
75 dataSetLabel = "LHC12g";
77 else if (strTrackCuts.Contains("lhc13b"))
80 dataSetLabel = "LHC13b";
82 else if (strTrackCuts.Contains("lhc13c"))
85 dataSetLabel = "LHC13c";
87 else if (strTrackCuts.Contains("lhc13d"))
90 dataSetLabel = "LHC13d";
92 else if (strTrackCuts.Contains("lhc13e"))
95 dataSetLabel = "LHC13e";
97 else if (strTrackCuts.Contains("lhc13f"))
100 dataSetLabel = "LHC13f";
102 else if (strTrackCuts.Contains("lhc13g"))
105 dataSetLabel = "LHC13g";
107 else if (strTrackCuts.Contains("lhc12a15f"))
110 dataSetLabel = "LHC12a15f";
112 else if (strTrackCuts.Contains("lhc13b4"))
115 dataSetLabel = "LHC13b4";
117 else if (strTrackCuts.Contains("lhc12a15g"))
120 dataSetLabel = "LHC12a15g";
122 else if (strTrackCuts.Contains("lhc12f2a"))
125 dataSetLabel = "LHC12f2a";
128 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
131 // Get the pointer to the existing analysis manager via the static access method.
132 //==============================================================================
133 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
135 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
139 // Check the analysis type using the event handlers connected to the analysis manager.
140 //==============================================================================
141 AliVEventHandler *evhand = mgr->GetInputEventHandler();
143 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
147 if (!evhand->InheritsFrom("AliESDInputHandler")) {
148 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
152 //-------------------------------------------------------
153 // Init the task and do settings
154 //-------------------------------------------------------
156 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
157 Bool_t includeNoITS = kFALSE;
158 AliEmcalEsdTrackFilterTask *eTask = new AliEmcalEsdTrackFilterTask(taskName); // default is TPC only tracks constrained to the vertex
160 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
161 (dataSet == kLHC11d && cutsType == kHybrid) ||
162 (dataSet == kLHC11h && cutsType == kHybrid)) {
163 /* hybrid track cuts*/
164 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement
165 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set
166 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
167 eTask->SetTrackCuts(cutsp);
168 eTask->SetHybridTrackCuts(hybsp);
170 else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
171 (dataSet == kLHC11a && cutsType == kHybrid)) {
172 /* hybrid track cuts*/
173 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement
174 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set
175 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
176 eTask->SetTrackCuts(cutsp);
177 eTask->SetHybridTrackCuts(hybsp);
178 includeNoITS = kTRUE;
181 eTask->SetTracksName(name);
182 eTask->SetIncludeNoITS(includeNoITS);
184 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
186 //-------------------------------------------------------
187 // Final settings, pass to manager and set the containers
188 //-------------------------------------------------------
191 // Create containers for input/output
192 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
193 mgr->ConnectInput(eTask, 0, cinput1);