]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/macros/AddTaskMTRchamberEfficiency.C
add sharp pt cut in track selection (Diego)
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskMTRchamberEfficiency.C
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
15 AliAnalysisTaskTrigChEff* AddTaskMTRchamberEfficiency(Bool_t useGhosts = kFALSE, Bool_t isMC = kFALSE)
16 {
17   //
18   // Task for the determination of the MUON trigger chamber efficiency
19   //
20   // stocco@subatech.in2p3.fr
21   //
22
23   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24   if (!mgr) {
25     ::Error("AddTaskMTRchamberEfficiency", "No analysis manager to connect to.");
26     return NULL;
27   }
28
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.");
32     return NULL;
33   }
34
35   // Create cuts
36   AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts("StdMuonTrackCuts", "StdMuonTrackCuts", type.Contains("ESD"));
37   muonTrackCuts->SetFilterMask ( AliMuonTrackCuts::kMuEta | AliMuonTrackCuts::kMuThetaAbs | AliMuonTrackCuts::kMuPdca | AliMuonTrackCuts::kMuMatchApt );
38   muonTrackCuts->SetIsMC(isMC);
39
40   // Create task
41   AliAnalysisTaskTrigChEff* taskTrigChEff = new AliAnalysisTaskTrigChEff("TriggerChamberEfficiency", *muonTrackCuts);
42   taskTrigChEff->SetUseGhostTracks(useGhosts);
43   if ( isMC ) taskTrigChEff->SetTrigClassPatterns("ANY");
44   else taskTrigChEff->SetTrigClassPatterns("ANY CINT CMU !CMUP CMBAC CPBI !-ACE- !-AC- !-E- !WU !EGA !EJE");
45   mgr->AddTask(taskTrigChEff);
46
47   // Create container
48   TString currName = "";
49   TString outputfile = mgr->GetCommonFileName();
50   if ( ! outputfile.IsNull() ) outputfile += ":MTR_ChamberEffMap";
51   else outputfile = "TestTrigChEffAnalysis.root";
52
53   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("testMTRChamberEff",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
54   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("triggerChamberEff", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile.Data());
55
56    // Connect containers
57    mgr->ConnectInput  (taskTrigChEff,  0, mgr->GetCommonInputContainer());
58    mgr->ConnectOutput (taskTrigChEff,  1, coutput1);
59    mgr->ConnectOutput (taskTrigChEff,  2, coutput2);
60
61    return taskTrigChEff;
62 }