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",
15 bool useOldBitConfig = kFALSE,
19 // Get the pointer to the existing analysis manager via the static access method.
20 //==============================================================================
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24 ::Error("AddTaskEmcalTriggerMaker", "No analysis manager to connect to.");
28 // Check the analysis type using the event handlers connected to the analysis manager.
29 //==============================================================================
30 AliVEventHandler *evhand = mgr->GetInputEventHandler();
32 ::Error("AddTaskEmcalTriggerMaker", "This task requires an input event handler");
36 TString strTriggersName(triggersName);
37 TString strCellsName(cellsName);
39 if(strTriggersName.IsNull()) {
40 if (evhand->InheritsFrom("AliESDInputHandler")) {
41 strTriggersName = "EMCALTrigger";
42 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
45 strTriggersName = "emcalTrigger";
46 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, triggersName = \"%s\"", strTriggersName.Data() ));
50 if(strCellsName.IsNull()) {
51 if (evhand->InheritsFrom("AliESDInputHandler")) {
52 strCellsName = "EMCALCells";
53 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, cellsName = \"%s\"", strCellsName.Data() ));
56 strCellsName = "emcalCells";
57 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, cellsName = \"%s\"", strCellsName.Data() ));
62 v0Name = new char[100];
63 if (evhand->InheritsFrom("AliESDInputHandler")) {
64 strcpy(v0Name,"AliESDVZERO");
65 ::Info("AddTaskEmcalTriggerMaker", Form( "ESD analysis, v0Name = \"%s\"", v0Name ));
68 strcpy(v0Name,"AliAODVZERO");
69 ::Info("AddTaskEmcalTriggerMaker", Form( "AOD analysis, v0Name = \"%s\"", v0Name ));
72 //-------------------------------------------------------
73 // Init the task and do settings
74 //-------------------------------------------------------
76 AliEmcalTriggerMaker *eTask = new AliEmcalTriggerMaker(taskName, doQA);
77 eTask->SetCaloTriggersName(strTriggersName.Data());
78 eTask->SetCaloTriggersOutName(triggersOutName);
79 eTask->SetCaloTriggerSetupOutName(triggerSetupOutName);
80 eTask->SetCaloCellsName(strCellsName.Data());
81 eTask->SetV0InName(v0Name);
82 eTask->SetTriggerThresholdJetLow( jetLowA, jetLowB, jetLowC );
83 eTask->SetTriggerThresholdJetHigh( jetHighA, jetHighB, jetHighC );
85 eTask->SetUseTriggerBitConfig(AliEmcalTriggerMaker::kOldConfig);
87 //-------------------------------------------------------
88 // Final settings, pass to manager and set the containers
89 //-------------------------------------------------------
92 // Create containers for input/output
93 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
94 mgr->ConnectInput (eTask, 0, cinput1 );
97 TString commonoutput = mgr->GetCommonFileName();
98 commonoutput += ":TriggerQA";
99 mgr->ConnectOutput(eTask, 1, mgr->CreateContainer("TriggerQA", TList::Class(), AliAnalysisManager::kOutputContainer, commonoutput.Data()));