3 AliEmcalEsdTrackFilterTask* AddTaskEmcalEsdTrackFilter(
4 const char *name = "AliEmcalEsdTrackFilter",
5 const char *trackCuts = "Hybrid_LHC11h"
21 CutsType cutsType = kHybrid;
22 DataSet dataSet = kLHC11h;
24 TString cutsLabel("hybrid tracks");
25 TString dataSetLabel("LHC11h");
27 TString strTrackCuts(trackCuts);
28 strTrackCuts.ToLower();
30 if (strTrackCuts.Contains("hybrid")) {
33 else if (strTrackCuts.Contains("tpconly")) {
35 cutsLabel = "TPC only constrained tracks";
38 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
41 if (strTrackCuts.Contains("lhc10h")) {
44 else if (strTrackCuts.Contains("lhc11a") || strTrackCuts.Contains("lhc12a15a")) {
46 dataSetLabel = "LHC11a";
48 else if (strTrackCuts.Contains("lhc11c")) {
50 dataSetLabel = "LHC11c";
52 else if (strTrackCuts.Contains("lhc11d")) {
54 dataSetLabel = "LHC11d";
56 else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e"))
59 dataSetLabel = "LHC11h";
61 else if (strTrackCuts.Contains("lhc12g"))
64 dataSetLabel = "LHC12g";
66 else if (strTrackCuts.Contains("lhc13b"))
69 dataSetLabel = "LHC13b";
71 else if (strTrackCuts.Contains("lhc13c"))
74 dataSetLabel = "LHC13c";
76 else if (strTrackCuts.Contains("lhc12a15f"))
79 dataSetLabel = "LHC12a15f";
81 else if (strTrackCuts.Contains("lhc12a15g"))
84 dataSetLabel = "LHC12a15g";
86 else if (strTrackCuts.Contains("lhc12f2a"))
89 dataSetLabel = "LHC12f2a";
92 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
95 // Get the pointer to the existing analysis manager via the static access method.
96 //==============================================================================
97 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
99 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
103 // Check the analysis type using the event handlers connected to the analysis manager.
104 //==============================================================================
105 AliVEventHandler *evhand = mgr->GetInputEventHandler();
107 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
111 if (!evhand->InheritsFrom("AliESDInputHandler")) {
112 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
116 //-------------------------------------------------------
117 // Init the task and do settings
118 //-------------------------------------------------------
120 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
121 Bool_t includeNoITS = kFALSE;
122 AliEmcalEsdTrackFilterTask *eTask = new AliEmcalEsdTrackFilterTask(); // default is TPC only tracks constrained to the vertex
124 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
125 (dataSet == kLHC11d && cutsType == kHybrid) ||
126 (dataSet == kLHC11h && cutsType == kHybrid)) {
127 /* hybrid track cuts*/
128 AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement
129 AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set
130 hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
131 eTask->SetTrackCuts(cutsp);
132 eTask->SetHybridTrackCuts(hybsp);
134 else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
135 (dataSet == kLHC11a && cutsType == kHybrid)) {
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);
142 includeNoITS = kTRUE;
145 eTask->SetTracksName(name);
146 eTask->SetIncludeNoITS(includeNoITS);
148 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
150 //-------------------------------------------------------
151 // Final settings, pass to manager and set the containers
152 //-------------------------------------------------------
155 // Create containers for input/output
156 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
157 mgr->ConnectInput(eTask, 0, cinput1);