]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C
from rongrong
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalParticleMaker.C
1 // $Id$
2
3 AliEmcalParticleMaker* AddTaskEmcalParticleMaker(
4   const char *tracksName          = "PicoTracks",
5   char *clustersName              = 0,
6   const char *tracksOutName       = "EmcalTracks",
7   const char *clustersOutName     = "EmcalClusters",
8   const char *taskName            = "AliEmcalParticleMaker"
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("AddTaskEmcalParticleMaker", "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   AliVEventHandler *evhand = mgr->GetInputEventHandler();
23   if (!evhand) {
24     ::Error("AddTaskEmcalParticleMaker", "This task requires an input event handler");
25     return NULL;
26   }
27
28   if (!clustersName) {
29     clustersName = new char[100];
30
31     if (evhand->InheritsFrom("AliESDInputHandler")) {
32       ::Info("AddTaskEmcalParticleMaker", "ESD analysis, clustersName = \"CaloClusters\"");
33       strcpy(clustersName,"CaloClusters");
34     }
35     else {
36       ::Info("AddTaskEmcalParticleMaker", "AOD analysis, clustersName = \"caloClusters\"");
37       strcpy(clustersName,"caloClusters");
38     }
39   }
40   
41   //-------------------------------------------------------
42   // Init the task and do settings
43   //-------------------------------------------------------
44
45   AliEmcalParticleMaker *eTask = new AliEmcalParticleMaker(taskName);
46   eTask->SetTracksName(tracksName);
47   eTask->SetClusName(clustersName);
48   eTask->SetTracksOutName(tracksOutName);
49   eTask->SetClusOutName(clustersOutName);
50   eTask->SetAnaType(AliAnalysisTaskEmcal::kEMCAL);
51
52   //-------------------------------------------------------
53   // Final settings, pass to manager and set the containers
54   //-------------------------------------------------------
55   mgr->AddTask(eTask);
56   
57   // Create containers for input/output
58   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
59   mgr->ConnectInput  (eTask, 0,  cinput1 );
60   
61   return eTask;
62 }