]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/macros/AddTaskMTRchamberEfficiency.C
handle bash args properly using arrays
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskMTRchamberEfficiency.C
CommitLineData
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 15AliAnalysisTaskTrigChEff* 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}