3 AliEmcalPicoTrackMaker* AddTaskEmcalPicoTrackMaker(
4 const char *name = "PicoTracks",
5 const char *inname = "tracks",
6 const char *runperiod = "",
10 Double_t etamax = +10,
11 Double_t phimin = -10,
12 Double_t phimax = +10,
13 AliESDtrackCuts *cuts = 0,
14 const char *taskName = "AliEmcalPicoTrackMaker"
17 // Get the pointer to the existing analysis manager via the static access method.
18 //==============================================================================
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22 ::Error("AddTaskEmcalPicoTrackMaker", "No analysis manager to connect to.");
26 // Check the analysis type using the event handlers connected to the analysis manager.
27 //==============================================================================
28 if (!mgr->GetInputEventHandler())
30 ::Error("AddTaskEmcalPicoTrackMaker", "This task requires an input event handler");
34 //-------------------------------------------------------
35 // Init the task and do settings
36 //-------------------------------------------------------
38 AliEmcalPicoTrackMaker *eTask = new AliEmcalPicoTrackMaker(taskName);
39 eTask->SetTracksOutName(name);
40 eTask->SetTracksInName(inname);
41 eTask->SetTrackPtLimits(ptmin, ptmax);
42 eTask->SetTrackEtaLimits(etamin, etamax);
43 eTask->SetTrackPhiLimits(phimin, phimax);
45 TString runPeriod(runperiod);
46 Bool_t includeNoITS = kFALSE;
48 if (runPeriod == "lhc11h" || runPeriod == "lhc13b" || runPeriod == "lhc13c" || runPeriod == "lhc13d" || runPeriod == "lhc13e" || runPeriod == "lhc13f" || runPeriod == "lhc12g") {
49 eTask->SetAODfilterBits(256,512); // hybrid tracks for LHC11h
51 } else if (runPeriod == "lhc12a15e" || runPeriod == "lhc13b4" || runPeriod == "lhc13b4_fix" || runPeriod == "lhc12a15f") {
52 eTask->SetAODfilterBits(256,512); // hybrid tracks for LHC12a15e, LHC13b4, and LHC12a15f
54 } else if (runPeriod == "lhc11a") {
55 eTask->SetAODfilterBits(256,16); // hybrid tracks for LHC11a
58 } else if (runPeriod.Contains("lhc12a15a")) {
59 eTask->SetAODfilterBits(256,16); // hybrid tracks for LHC12a15a
62 } else if (runPeriod.Contains(":")) {
63 TObjArray *arr = runPeriod.Tokenize(":");
64 TString arg1(arr->At(0)->GetName());
66 if (arr->GetEntries()>1)
67 arg2 = arr->At(1)->GetName();
68 eTask->SetAODfilterBits(arg1.Atoi(),arg2.Atoi());
71 if (!runPeriod.IsNull())
72 ::Warning("Run period %s not known. It will use IsHybridGlobalConstrainedGlobal.", runPeriod.Data());
74 eTask->SetESDtrackCuts(cuts);
75 eTask->SetIncludeNoITS(includeNoITS);
77 //-------------------------------------------------------
78 // Final settings, pass to manager and set the containers
79 //-------------------------------------------------------
82 // Create containers for input/output
83 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
84 mgr->ConnectInput (eTask, 0, cinput1 );