1 #if !defined(__CINT__) || defined(__MAKECINT__)
6 #include "AliVEventHandler.h"
8 #include "AliAnalysisManager.h"
9 #include "AliAnalysisDataContainer.h"
11 #include "AliMuonTrackCuts.h"
12 #include "AliAnalysisTaskTrigChEff.h"
15 AliAnalysisTaskTrigChEff* AddTaskMTRchamberEfficiency(Bool_t isMC = kFALSE)
18 // Task for the determination of the MUON trigger chamber efficiency
20 // stocco@subatech.in2p3.fr
23 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25 ::Error("AddTaskMTRchamberEfficiency", "No analysis manager to connect to.");
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.");
36 AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts("StdMuonTrackCuts", "StdMuonTrackCuts");
37 muonTrackCuts->SetIsMC(isMC);
38 muonTrackCuts->ApplySharpPtCutInMatching(kTRUE);
39 muonTrackCuts->SetAllowDefaultParams(kTRUE);
42 AliAnalysisTaskTrigChEff* taskTrigChEff = new AliAnalysisTaskTrigChEff("TriggerChamberEfficiency", *muonTrackCuts);
43 if ( isMC ) taskTrigChEff->SetTrigClassPatterns("ANY");
45 TString trigClassPatterns = taskTrigChEff->GetDefaultTrigClassPatterns();
46 trigClassPatterns.Prepend("ANY,");
47 if ( ! trigClassPatterns.Contains("!CMUP") ) trigClassPatterns.Append(",!CMUP*");
48 taskTrigChEff->SetTrigClassPatterns(trigClassPatterns);
50 taskTrigChEff->GetMuonEventCuts()->SetFilterMask(AliMuonEventCuts::kSelectedTrig);
51 mgr->AddTask(taskTrigChEff);
54 TString currName = "";
55 TString outputfile = mgr->GetCommonFileName();
56 if ( ! outputfile.IsNull() ) outputfile += ":MTR_ChamberEffMap";
57 else outputfile = "TestTrigChEffAnalysis.root";
59 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("testMTRChamberEff",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
60 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("triggerChamberEff", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile.Data());
63 mgr->ConnectInput (taskTrigChEff, 0, mgr->GetCommonInputContainer());
64 mgr->ConnectOutput (taskTrigChEff, 1, coutput1);
65 mgr->ConnectOutput (taskTrigChEff, 2, coutput2);