]>
Commit | Line | Data |
---|---|---|
e148c639 | 1 | // $Id$ |
2 | ||
680855e5 | 3 | AliEmcalPicoTrackMaker* AddTaskEmcalPicoTrackMaker( |
bb99fbec | 4 | const char *name = "PicoTracks", |
5 | const char *inname = "tracks", | |
4d734c3d | 6 | const char *runperiod = "", |
bb99fbec | 7 | Bool_t includeNoITS = kTRUE, |
48eb0811 | 8 | Double_t ptmin = 0, |
9 | Double_t ptmax = 1000, | |
10 | Double_t etamin = -10, | |
11 | Double_t etamax = +10, | |
12 | Double_t phimin = -10, | |
13 | Double_t phimax = +10, | |
bb99fbec | 14 | AliESDtrackCuts *cuts = 0 |
e148c639 | 15 | ) |
680855e5 | 16 | { |
17 | // Get the pointer to the existing analysis manager via the static access method. | |
18 | //============================================================================== | |
19 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
20 | if (!mgr) | |
21 | { | |
22 | ::Error("AddTaskEmcalPicoTrackMaker", "No analysis manager to connect to."); | |
23 | return NULL; | |
24 | } | |
25 | ||
26 | // Check the analysis type using the event handlers connected to the analysis manager. | |
27 | //============================================================================== | |
28 | if (!mgr->GetInputEventHandler()) | |
29 | { | |
30 | ::Error("AddTaskEmcalPicoTrackMaker", "This task requires an input event handler"); | |
31 | return NULL; | |
32 | } | |
33 | ||
34 | //------------------------------------------------------- | |
35 | // Init the task and do settings | |
36 | //------------------------------------------------------- | |
37 | ||
680855e5 | 38 | AliEmcalPicoTrackMaker *eTask = new AliEmcalPicoTrackMaker(); |
39 | eTask->SetTracksOutName(name); | |
40 | eTask->SetTracksInName(inname); | |
bb99fbec | 41 | eTask->SetIncludeNoITS(includeNoITS); |
48eb0811 | 42 | eTask->SetTrackPtLimits(ptmin, ptmax); |
43 | eTask->SetTrackEtaLimits(etamin, etamax); | |
44 | eTask->SetTrackPhiLimits(phimin, phimax); | |
45 | ||
4d734c3d | 46 | TString runPeriod(runperiod); |
47 | runPeriod.ToLower(); | |
48 | if (runPeriod == "lhc11h") { | |
e148c639 | 49 | eTask->SetAODfilterBits(256,512); // hybrid tracks for LHC11h |
7f76e479 | 50 | eTask->SetMC(kFALSE); |
028cfeed | 51 | } else if (runPeriod == "lhc12a15e" || runPeriod == "lhc13b4") { |
c43a4e4d | 52 | eTask->SetAODfilterBits(256,512); // hybrid tracks for LHC12a15e and lhc13b4 |
fdd43a69 | 53 | eTask->SetMC(kTRUE); |
48eb0811 | 54 | } else if (runPeriod == "lhc11a") { |
7f76e479 | 55 | eTask->SetAODfilterBits(256,16); // hybrid tracks for LHC11a |
56 | eTask->SetMC(kFALSE); | |
817f62bc | 57 | } else if (runPeriod.Contains("lhc12a15a")) { |
fdd43a69 | 58 | eTask->SetAODfilterBits(256,16); // hybrid tracks for LHC12a15a |
7f76e479 | 59 | eTask->SetMC(kTRUE); |
48eb0811 | 60 | } else if (runPeriod.Contains(":")) { |
61 | TObjArray *arr = runPeriod.Tokenize(":"); | |
62 | TString arg1(arr->At(0)->GetName()); | |
63 | TString arg2("-1"); | |
64 | if (arr->GetEntries()>1) | |
65 | arg2 = arr->At(1)->GetName(); | |
66 | eTask->SetAODfilterBits(arg1.Atoi(),arg2.Atoi()); | |
67 | delete arr; | |
68 | } else { | |
8159f4cd | 69 | if (!runPeriod.IsNull()) |
70 | ::Warning("Run period %s not known. It will use IsHybridGlobalConstrainedGlobal.", runPeriod.Data()); | |
680855e5 | 71 | } |
72 | eTask->SetESDtrackCuts(cuts); | |
73 | ||
74 | //------------------------------------------------------- | |
75 | // Final settings, pass to manager and set the containers | |
76 | //------------------------------------------------------- | |
680855e5 | 77 | mgr->AddTask(eTask); |
78 | ||
79 | // Create containers for input/output | |
80 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); | |
680855e5 | 81 | mgr->ConnectInput (eTask, 0, cinput1 ); |
82 | ||
83 | return eTask; | |
680855e5 | 84 | } |