]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C
from rongrong
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalPicoTrackMaker.C
CommitLineData
e148c639 1// $Id$
2
680855e5 3AliEmcalPicoTrackMaker* 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}