]>
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, |
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 | } |