]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C
Modified histo limits + addition of 3-d histos (Sadhana)
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalEsdTpcTrack.C
CommitLineData
0601d71e 1// $Id$
2
f28a85be 3AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack(
4 const char *name = "TpcSpdVertexConstrainedTracks",
5 const char *trackCuts = "Hybrid_LHC11h"
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);
28
29 if (strTrackCuts.Contains("Hybrid")) {
30 cutsType = kHybrid;
31 }
32 else if (strTrackCuts.Contains("TpcOnly")) {
33 cutsType = kTpcOnly;
34 cutsLabel = "TPC only constrained tracks";
35 }
36 else {
37 ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid");
38 }
39
e2b010c2 40 if (strTrackCuts.Contains("LHC10h")) {
41 dataSet = kLHC10h;
e1bdcdfb 42 }
43 else if (strTrackCuts.Contains("LHC11a")) {
44 dataSet = kLHC11a;
45 dataSetLabel = "LHC11a";
46 }
e2b010c2 47 else if (strTrackCuts.Contains("LHC11c")) {
48 dataSet = kLHC11c;
49 dataSetLabel = "LHC11c";
50 }
51 else if (strTrackCuts.Contains("LHC11d")) {
52 dataSet = kLHC11d;
53 dataSetLabel = "LHC11d";
54 }
55 else if (strTrackCuts.Contains("LHC11h")) {
56 dataSet = kLHC11h;
57 dataSetLabel = "LHC11h";
58 }
e1bdcdfb 59 else {
60 ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h");
61 }
62
25283b37 63 // Get the pointer to the existing analysis manager via the static access method.
64 //==============================================================================
65 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
53dca394 66 if (!mgr) {
25283b37 67 ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
68 return NULL;
69 }
70
71 // Check the analysis type using the event handlers connected to the analysis manager.
72 //==============================================================================
53dca394 73 AliVEventHandler *evhand = mgr->GetInputEventHandler();
74 if (!evhand) {
25283b37 75 ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
76 return NULL;
77 }
78
53dca394 79 if (!evhand->InheritsFrom("AliESDInputHandler")) {
80 ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
81 return NULL;
82 }
83
25283b37 84 //-------------------------------------------------------
85 // Init the task and do settings
86 //-------------------------------------------------------
87
344cd45d 88 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
89
e1bdcdfb 90 AliEmcalEsdTpcTrackTask *eTask = new AliEmcalEsdTpcTrackTask(); // default is TPC only tracks constrained to the vertex
25283b37 91
e2b010c2 92 if ((dataSet == kLHC11c && cutsType == kHybrid) ||
93 (dataSet == kLHC11d && cutsType == kHybrid) ||
94 (dataSet == kLHC11h && cutsType == kHybrid)) {
e1bdcdfb 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);
101 }
e2b010c2 102 else if ((dataSet == kLHC10h && cutsType == kHybrid) ||
c72f3f6f 103 (dataSet == kLHC11a && cutsType == kHybrid)) {
e1bdcdfb 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);
110 }
344cd45d 111
25283b37 112 eTask->SetTracksName(name);
113
e1bdcdfb 114 cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl;
25283b37 115
116 //-------------------------------------------------------
117 // Final settings, pass to manager and set the containers
118 //-------------------------------------------------------
25283b37 119 mgr->AddTask(eTask);
120
121 // Create containers for input/output
344cd45d 122 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
123 mgr->ConnectInput(eTask, 0, cinput1);
25283b37 124
125 return eTask;
25283b37 126}