]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C
Code to match jet patch trigger to jets (from Jiri Kral)
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalTriggerMaker.C
1 // $Id$
2
3 AliEmcalTriggerMaker* AddTaskEmcalTriggerMaker(
4   const char *triggersOutName     = "EmcalTriggers",
5   const char *triggerSetupOutName = "EmcalTriggerSetup",
6   const char *cellsName           = 0,
7   const char *triggersName        = 0,
8   const char *taskName            = "AliEmcalTriggerMaker"
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("AddTaskEmcalTriggerMaker", "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("AddTaskEmcalTriggerMaker", "This task requires an input event handler");
25     return NULL;
26   }
27
28   if (!triggersName) {
29     triggersName = new char[100];
30
31     if (evhand->InheritsFrom("AliESDInputHandler")) {
32       strcpy(triggersName,"EMCALTrigger");
33       ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, triggersName = \"%s\"", triggersName ));
34     }
35     else {
36       strcpy(triggersName,"emcalTrigger");
37       ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, triggersName = \"%s\"", triggersName ));
38     }
39   }
40   if (!cellsName) {
41     cellsName = new char[100];
42
43     if (evhand->InheritsFrom("AliESDInputHandler")) {
44       strcpy(cellsName,"EMCALCells");
45       ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, cellsName = \"%s\"", cellsName ));
46     }
47     else {
48       strcpy(cellsName,"emcalCells");
49       ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, cellsName = \"%s\"", cellsName ));
50     }
51   }
52  
53    //-------------------------------------------------------
54   // Init the task and do settings
55   //-------------------------------------------------------
56
57   AliEmcalTriggerMaker *eTask = new AliEmcalTriggerMaker(taskName);
58   eTask->SetCaloTriggersName(triggersName);
59   eTask->SetCaloTriggersOutName(triggersOutName);
60   eTask->SetCaloTriggerSetupOutName(triggerSetupOutName);
61   eTask->SetCaloCellsName(cellsName);
62   eTask->SetAnaType(AliAnalysisTaskEmcal::kEMCAL);
63
64   //-------------------------------------------------------
65   // Final settings, pass to manager and set the containers
66   //-------------------------------------------------------
67   mgr->AddTask(eTask);
68   
69   // Create containers for input/output
70   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
71   mgr->ConnectInput  (eTask, 0,  cinput1 );
72   
73   return eTask;
74 }