]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/macros/AddTaskPhysicsSelection.C
Add INT1 and the TRD triggers S masks to the OADB for LHC13g
[u/mrichter/AliRoot.git] / ANALYSIS / macros / AddTaskPhysicsSelection.C
1 AliPhysicsSelectionTask* AddTaskPhysicsSelection(Bool_t mCAnalysisFlag = kFALSE, Bool_t deprecatedFlag = kTRUE, UInt_t computeBG = 0, Bool_t useSpecialOutput=kFALSE) 
2 {
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     ::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
6     return NULL;
7   }  
8   
9   // Check the analysis type using the event handlers connected to the analysis manager.
10   //==============================================================================
11   if (!mgr->GetInputEventHandler()) {
12     ::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
13     return NULL;
14   }
15
16   AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
17   
18   TString inputDataType = inputHandler->GetDataType(); // can be "ESD" or "AOD"
19
20   // Configure analysis
21   //===========================================================================
22   AliPhysicsSelectionTask *task = new AliPhysicsSelectionTask("");
23   task->SetUseSpecialOutput(useSpecialOutput); // RS: optionally use special output
24   // this makes physics selection to work using AliMultiInputEventHandler
25   if (inputHandler && (inputHandler->IsA() == AliMultiInputEventHandler::Class())) {
26     AliMultiInputEventHandler *multiInputHandler=(AliMultiInputEventHandler*)inputHandler;
27     AliInputEventHandler *ih = multiInputHandler->GetFirstInputEventHandler();
28     if (!ih) {
29       ::Error("AddTaskPhysicsSelection","ESD or AOD input handler is missing");
30       return NULL;
31     }
32     ih->SetEventSelection(multiInputHandler->GetEventSelection());
33     inputDataType = ih->GetDataType(); // can be "ESD" or "AOD"
34   }
35   
36   mgr->AddTask(task);
37   
38   AliPhysicsSelection* physSel = task->GetPhysicsSelection();
39   if (mCAnalysisFlag)      
40     physSel->SetAnalyzeMC();
41   if (computeBG)
42     physSel->SetComputeBG(computeBG);
43
44   if(!deprecatedFlag) 
45     AliFatal("The BG ID flag is deprecated. Please use the OADB to configure the cuts");
46
47   AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
48   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cstatsout",
49                 TList::Class(),
50                 AliAnalysisManager::kOutputContainer,
51                 "EventStat_temp.root");
52   //            
53   if (useSpecialOutput) coutput1->SetSpecialOutput(); // RS: optionally use special output
54   //
55   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
56   mgr->ConnectOutput(task,1,coutput1);
57
58   return task;
59 }