3 AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack(
4 const char *name = "TpcSpdVertexConstrainedTracks",
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);
29 if (strTrackCuts.Contains("Hybrid")) {
32 else if (strTrackCuts.Contains("TpcOnly")) {
34 cutsLabel = "TPC only constrained tracks";
37 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
40 if (strTrackCuts.Contains("LHC10h")) {
43 else if (strTrackCuts.Contains("LHC11a")) {
45 dataSetLabel = "LHC11a";
47 else if (strTrackCuts.Contains("LHC11c")) {
49 dataSetLabel = "LHC11c";
51 else if (strTrackCuts.Contains("LHC11d")) {
53 dataSetLabel = "LHC11d";
55 else if (strTrackCuts.Contains("LHC11h")) {
57 dataSetLabel = "LHC11h";
60 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
63 // Get the pointer to the existing analysis manager via the static access method.
64 //==============================================================================
65 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
67 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
71 // Check the analysis type using the event handlers connected to the analysis manager.
72 //==============================================================================
73 AliVEventHandler *evhand = mgr->GetInputEventHandler();
75 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
79 if (!evhand->InheritsFrom("AliESDInputHandler")) {
80 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
84 //-------------------------------------------------------
85 // Init the task and do settings
86 //-------------------------------------------------------
88 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
90 AliEmcalEsdTpcTrackTask *eTask = new AliEmcalEsdTpcTrackTask(); // default is TPC only tracks constrained to the vertex
92 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
93 (dataSet == kLHC11d && cutsType == kHybrid) ||
94 (dataSet == kLHC11h && cutsType == kHybrid)) {
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);
102 else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
103 (dataSet == kLHC11a && cutsType == kHybrid) {
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);
112 eTask->SetTracksName(name);
114 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
116 //-------------------------------------------------------
117 // Final settings, pass to manager and set the containers
118 //-------------------------------------------------------
121 // Create containers for input/output
122 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
123 mgr->ConnectInput(eTask, 0, cinput1);