]>
Commit | Line | Data |
---|---|---|
6eebc585 | 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 | } |