]>
Commit | Line | Data |
---|---|---|
eae6a777 | 1 | #if !defined(__CINT__) || defined(__MAKECINT__) |
2 | #include "TString.h" | |
3 | #include "TObjArray.h" | |
4 | ||
5 | #include "AliLog.h" | |
6 | #include "AliVEventHandler.h" | |
7 | ||
8 | #include "AliAnalysisManager.h" | |
9 | #include "AliAnalysisDataContainer.h" | |
10 | ||
11 | #include "AliMuonTrackCuts.h" | |
12 | #include "AliAnalysisTaskTrigChEff.h" | |
13 | #endif | |
14 | ||
028d3ff6 | 15 | AliAnalysisTaskTrigChEff* AddTaskMTRchamberEfficiency(Bool_t isMC = kFALSE) |
29f50363 | 16 | { |
17 | // | |
18 | // Task for the determination of the MUON trigger chamber efficiency | |
19 | // | |
20 | // stocco@subatech.in2p3.fr | |
21 | // | |
22 | ||
29f50363 | 23 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
24 | if (!mgr) { | |
1925ef8f | 25 | ::Error("AddTaskMTRchamberEfficiency", "No analysis manager to connect to."); |
29f50363 | 26 | return NULL; |
eae6a777 | 27 | } |
29f50363 | 28 | |
eae6a777 | 29 | TString type = mgr->GetInputEventHandler()->GetDataType(); |
30 | if (!type.Contains("ESD") && !type.Contains("AOD")) { | |
31 | ::Error("AddTaskMTRchamberEfficiency", "AliAnalysisTaskTrigChEff task needs the manager to have an ESD or AOD input handler."); | |
1925ef8f | 32 | return NULL; |
33 | } | |
34 | ||
eae6a777 | 35 | // Create cuts |
a12dc5da | 36 | AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts("StdMuonTrackCuts", "StdMuonTrackCuts"); |
22379e65 | 37 | muonTrackCuts->SetIsMC(isMC); |
10809b21 | 38 | muonTrackCuts->ApplySharpPtCutInMatching(kTRUE); |
028d3ff6 | 39 | muonTrackCuts->SetAllowDefaultParams(kTRUE); |
eae6a777 | 40 | |
41 | // Create task | |
42 | AliAnalysisTaskTrigChEff* taskTrigChEff = new AliAnalysisTaskTrigChEff("TriggerChamberEfficiency", *muonTrackCuts); | |
eae6a777 | 43 | if ( isMC ) taskTrigChEff->SetTrigClassPatterns("ANY"); |
ebba9ef0 | 44 | else { |
45 | TString trigClassPatterns = taskTrigChEff->GetDefaultTrigClassPatterns(); | |
1e36cb56 | 46 | trigClassPatterns.Prepend("ANY,"); |
47 | if ( ! trigClassPatterns.Contains("!CMUP") ) trigClassPatterns.Append(",!CMUP*"); | |
ebba9ef0 | 48 | taskTrigChEff->SetTrigClassPatterns(trigClassPatterns); |
49 | } | |
50 | taskTrigChEff->GetMuonEventCuts()->SetFilterMask(AliMuonEventCuts::kSelectedTrig); | |
29f50363 | 51 | mgr->AddTask(taskTrigChEff); |
52 | ||
eae6a777 | 53 | // Create container |
54 | TString currName = ""; | |
55 | TString outputfile = mgr->GetCommonFileName(); | |
56 | if ( ! outputfile.IsNull() ) outputfile += ":MTR_ChamberEffMap"; | |
57 | else outputfile = "TestTrigChEffAnalysis.root"; | |
58 | ||
59 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("testMTRChamberEff",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); | |
60 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("triggerChamberEff", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile.Data()); | |
61 | ||
62 | // Connect containers | |
63 | mgr->ConnectInput (taskTrigChEff, 0, mgr->GetCommonInputContainer()); | |
64 | mgr->ConnectOutput (taskTrigChEff, 1, coutput1); | |
65 | mgr->ConnectOutput (taskTrigChEff, 2, coutput2); | |
66 | ||
67 | return taskTrigChEff; | |
29f50363 | 68 | } |