]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AddTaskNorm.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AddTaskNorm.C
1 AliAnalysisTaskNorm *AddTaskNorm ( Bool_t isESD = kFALSE, Bool_t isMC = kFALSE, TString sBeamConf = "p-Pb" )
2 {
3   /// Add AliAnalysisTaskDimuon to the train 
4   Info("AddTaskNorm", Form("beamConf %s isESD %d, isMC %d", sBeamConf.Data(), isESD, isMC));
5   
6   // Get the pointer to the existing analysis manager via the static access method.
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if(!mgr) { 
9     Error("AddTaskNorm","AliAnalysisManager not set!");
10     return NULL;
11   }
12   
13   // This task run on AOD and ESD
14   TString type = mgr->GetInputEventHandler()->GetDataType();
15   if (!type.Contains("AOD") && !isESD) {
16     Error("AddTaskNorm", "AOD input handler needed!");
17     return NULL;
18   }
19   if ( !type.Contains("ESD") && isESD ) {
20     Error("AddTaskNorm","ESD input handler needed!");
21     return NULL;
22   }
23
24   AliAnalysisTaskNorm *task = new AliAnalysisTaskNorm("TaskNorm");
25   if (!task) {
26     Error("AddTaskNorm", "Analysis task Norm cannot be created!");
27     return NULL;
28   }
29   task->SetIsMC(isMC);
30   task->SetIsESD(isESD);
31   task->SetBeamConf(sBeamConf);
32   ((AliMuonEventCuts*) task->GetMuonEventCuts())->SetFilterMask ( AliMuonEventCuts::kSelectedTrig );
33   ((AliMuonEventCuts*) task->GetMuonEventCuts())->SetTrigInputsMap("0MSL:12,0MUL:14");
34   ((AliMuonEventCuts*) task->GetMuonEventCuts())->SetTrigClassPatterns("CINT7-B-NOPF-ALLNOTRD,CINT7-B-NOPF-ALLNOTRD&0MSL,CINT7-B-NOPF-ALLNOTRD&0MUL,CMSL7-B-NOPF-MUON,CMSL7-B-NOPF-MUON&0MUL,CMUL7-B-NOPF-MUON,CMUL7-B-NOPF-ALLNOTRD");
35   // Add task to analysis manager
36   mgr->AddTask(task);
37   
38   // Connect input container
39   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
40   
41   // Define output file directory
42   TString outputFile = AliAnalysisManager::GetCommonFileName();
43   if ( outputFile.IsNull() ) {
44     Error("AddTaskMuon", "Common output file is not defined!");
45     return NULL;
46   }
47
48   if ( isESD )
49     outputFile = "Norm.ESD.Rec.root";
50   else 
51     outputFile = "Norm.AOD.Rec.root";
52
53   // Create and connect output containers
54   AliAnalysisDataContainer *coutputeventcounter = mgr->CreateContainer("eventCounters", AliCounterCollection::Class(),    AliAnalysisManager::kOutputContainer, outputFile);
55   AliAnalysisDataContainer *coutputruncounter = mgr->CreateContainer("runCounters", AliCounterCollection::Class(),    AliAnalysisManager::kOutputContainer, outputFile);
56   AliAnalysisDataContainer *coutputvertexlist = mgr->CreateContainer("vertex", TObjArray::Class(),    AliAnalysisManager::kOutputContainer, outputFile);
57   AliAnalysisDataContainer *coutputv0alist = mgr->CreateContainer("V0A", TObjArray::Class(),    AliAnalysisManager::kOutputContainer, outputFile);
58   AliAnalysisDataContainer *coutputznlist = mgr->CreateContainer("ZN", TObjArray::Class(),    AliAnalysisManager::kOutputContainer, outputFile);
59   
60   mgr->ConnectOutput(task, 1, coutputeventcounter);
61   mgr->ConnectOutput(task, 2, coutputruncounter);
62   mgr->ConnectOutput(task, 3, coutputvertexlist);
63   mgr->ConnectOutput(task, 4, coutputv0alist);
64   mgr->ConnectOutput(task, 5, coutputznlist);
65
66   return task;
67 }