]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C
update from Salvatore
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalPicoTrackMaker.C
1 // $Id$
2
3 AliEmcalPicoTrackMaker* AddTaskEmcalPicoTrackMaker(
4   const char *name         = "PicoTracks",
5   const char *inname       = "tracks",
6   const char *runperiod    = "",
7   Bool_t      includeNoITS = kTRUE,
8   AliESDtrackCuts *cuts    = 0
9 )
10 {  
11   // Get the pointer to the existing analysis manager via the static access method.
12   //==============================================================================
13   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14   if (!mgr)
15   {
16     ::Error("AddTaskEmcalPicoTrackMaker", "No analysis manager to connect to.");
17     return NULL;
18   }  
19   
20   // Check the analysis type using the event handlers connected to the analysis manager.
21   //==============================================================================
22   if (!mgr->GetInputEventHandler())
23   {
24     ::Error("AddTaskEmcalPicoTrackMaker", "This task requires an input event handler");
25     return NULL;
26   }
27   
28   //-------------------------------------------------------
29   // Init the task and do settings
30   //-------------------------------------------------------
31
32   AliEmcalPicoTrackMaker *eTask = new AliEmcalPicoTrackMaker();
33   eTask->SetTracksOutName(name);
34   eTask->SetTracksInName(inname);
35   eTask->SetIncludeNoITS(includeNoITS);
36   TString runPeriod(runperiod);
37   runPeriod.ToLower();
38   if (runPeriod == "lhc11h") {
39     eTask->SetAODfilterBits(256,512); // hybrid tracks for LHC11h
40   }
41   else if (runPeriod == "lhc11a" || runPeriod == "lhc12a15a" || runPeriod == "lhc12a15e") {
42     eTask->SetAODfilterBits(256,16); // hybrid tracks for LHC11a, LHC12a15a and LHC12a15e
43   }
44   else {
45     if (runPeriod.IsNull())
46       ::Warning("Run period %s not known. It will use IsHybridGlobalConstrainedGlobal.");
47   }
48   eTask->SetESDtrackCuts(cuts);
49
50   //-------------------------------------------------------
51   // Final settings, pass to manager and set the containers
52   //-------------------------------------------------------
53   mgr->AddTask(eTask);
54   
55   // Create containers for input/output
56   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
57   mgr->ConnectInput  (eTask, 0,  cinput1 );
58   
59   return eTask;
60 }