]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalTriggerMaker.C
CommitLineData
00c77045 1// $Id$
2
3AliEmcalTriggerMaker* AddTaskEmcalTriggerMaker(
4 const char *triggersOutName = "EmcalTriggers",
5 const char *triggerSetupOutName = "EmcalTriggerSetup",
6 const char *cellsName = 0,
7 const char *triggersName = 0,
001765f7 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,
19dfd8dd 14 int jetHighC = 0,
f753e800 15 bool useOldBitConfig = kFALSE,
19dfd8dd 16 bool doQA = kFALSE
00c77045 17)
18{
19 // Get the pointer to the existing analysis manager via the static access method.
20 //==============================================================================
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22 if (!mgr)
23 {
24 ::Error("AddTaskEmcalTriggerMaker", "No analysis manager to connect to.");
25 return NULL;
26 }
27
28 // Check the analysis type using the event handlers connected to the analysis manager.
29 //==============================================================================
30 AliVEventHandler *evhand = mgr->GetInputEventHandler();
31 if (!evhand) {
32 ::Error("AddTaskEmcalTriggerMaker", "This task requires an input event handler");
33 return NULL;
34 }
35
dbe9e647 36 TString strTriggersName(triggersName);
1508a00b 37 TString strCellsName(cellsName);
00c77045 38
1508a00b 39 if(strTriggersName.IsNull()) {
00c77045 40 if (evhand->InheritsFrom("AliESDInputHandler")) {
1508a00b 41 strTriggersName = "EMCALTrigger";
42 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
00c77045 43 }
44 else {
1508a00b 45 strTriggersName = "emcalTrigger";
46 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
00c77045 47 }
48 }
00c77045 49
827e8cc3 50 if(strCellsName.IsNull()) {
00c77045 51 if (evhand->InheritsFrom("AliESDInputHandler")) {
1508a00b 52 strCellsName = "EMCALCells";
53 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, cellsName = \"%s\"", strCellsName.Data() ));
00c77045 54 }
55 else {
1508a00b 56 strCellsName = "emcalCells";
57 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, cellsName = \"%s\"", strCellsName.Data() ));
00c77045 58 }
59 }
1508a00b 60
001765f7 61 char *v0Name;
62 v0Name = new char[100];
63 if (evhand->InheritsFrom("AliESDInputHandler")) {
64 strcpy(v0Name,"AliESDVZERO");
65 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, v0Name = \"%s\"", v0Name ));
66 }
67 else {
68 strcpy(v0Name,"AliAODVZERO");
1508a00b 69 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, v0Name = \"%s\"", v0Name ));
001765f7 70 }
00c77045 71
72 //-------------------------------------------------------
73 // Init the task and do settings
74 //-------------------------------------------------------
75
19dfd8dd 76 AliEmcalTriggerMaker *eTask = new AliEmcalTriggerMaker(taskName, doQA);
1508a00b 77 eTask->SetCaloTriggersName(strTriggersName.Data());
00c77045 78 eTask->SetCaloTriggersOutName(triggersOutName);
79 eTask->SetCaloTriggerSetupOutName(triggerSetupOutName);
1508a00b 80 eTask->SetCaloCellsName(strCellsName.Data());
001765f7 81 eTask->SetV0InName(v0Name);
82 eTask->SetTriggerThresholdJetLow( jetLowA, jetLowB, jetLowC );
83 eTask->SetTriggerThresholdJetHigh( jetHighA, jetHighB, jetHighC );
9b982dd9 84 if (useOldBitConfig)
85 eTask->SetUseTriggerBitConfig(AliEmcalTriggerMaker::kOldConfig);
00c77045 86
87 //-------------------------------------------------------
88 // Final settings, pass to manager and set the containers
89 //-------------------------------------------------------
90 mgr->AddTask(eTask);
91
92 // Create containers for input/output
93 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
94 mgr->ConnectInput (eTask, 0, cinput1 );
19dfd8dd 95
96 if(doQA){
97 TString commonoutput = mgr->GetCommonFileName();
98 commonoutput += ":TriggerQA";
99 mgr->ConnectOutput(eTask, 1, mgr->CreateContainer("TriggerQA", TList::Class(), AliAnalysisManager::kOutputContainer, commonoutput.Data()));
100 }
00c77045 101 return eTask;
102}