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