]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C
also set default names of input cells and triggers when empty string is given
[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   int jetLowA                     = 0,
10   int jetLowB                     = 0,
11   int jetLowC                     = 0,
12   int jetHighA                    = 0,
13   int jetHighB                    = 0,
14   int jetHighC                    = 0
15 )
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("AddTaskEmcalTriggerMaker", "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   AliVEventHandler *evhand = mgr->GetInputEventHandler();
29   if (!evhand) {
30     ::Error("AddTaskEmcalTriggerMaker", "This task requires an input event handler");
31     return NULL;
32   }
33
34   TString strTrigersName(triggersName);
35   TString strCellsName(cellsName);
36
37   if(strTriggersName.IsNull()) {
38     if (evhand->InheritsFrom("AliESDInputHandler")) {
39       strTriggersName = "EMCALTrigger";
40       ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
41     }
42     else {
43       strTriggersName = "emcalTrigger";
44       ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
45     }
46   }
47
48   if(strCellssName.IsNull()) {
49     if (evhand->InheritsFrom("AliESDInputHandler")) {
50       strCellsName = "EMCALCells";
51       ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, cellsName = \"%s\"", strCellsName.Data() ));
52     }
53     else {
54       strCellsName = "emcalCells";
55       ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, cellsName = \"%s\"", strCellsName.Data() ));
56     }
57   }
58
59   char *v0Name;
60   v0Name = new char[100];
61   if (evhand->InheritsFrom("AliESDInputHandler")) {
62     strcpy(v0Name,"AliESDVZERO");
63     ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, v0Name = \"%s\"", v0Name ));
64   }
65   else {
66     strcpy(v0Name,"AliAODVZERO");
67     ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, v0Name = \"%s\"", v0Name ));
68   }
69  
70    //-------------------------------------------------------
71   // Init the task and do settings
72   //-------------------------------------------------------
73
74   AliEmcalTriggerMaker *eTask = new AliEmcalTriggerMaker(taskName);
75   eTask->SetCaloTriggersName(strTriggersName.Data());
76   eTask->SetCaloTriggersOutName(triggersOutName);
77   eTask->SetCaloTriggerSetupOutName(triggerSetupOutName);
78   eTask->SetCaloCellsName(strCellsName.Data());
79   eTask->SetV0InName(v0Name);
80   eTask->SetTriggerThresholdJetLow( jetLowA, jetLowB, jetLowC );
81   eTask->SetTriggerThresholdJetHigh( jetHighA, jetHighB, jetHighC );
82
83   //-------------------------------------------------------
84   // Final settings, pass to manager and set the containers
85   //-------------------------------------------------------
86   mgr->AddTask(eTask);
87   
88   // Create containers for input/output
89   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
90   mgr->ConnectInput  (eTask, 0,  cinput1 );
91   
92   return eTask;
93 }