ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TString.h"
#include "TObjArray.h"

#include "AliLog.h"
#include "AliVEventHandler.h"

#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"

#include "AliMuonTrackCuts.h"
#include "AliAnalysisTaskTrigChEff.h"
#endif

AliAnalysisTaskTrigChEff* AddTaskMTRchamberEfficiency(Bool_t isMC = kFALSE)
{
  //
  // Task for the determination of the MUON trigger chamber efficiency
  //
  // stocco@subatech.in2p3.fr
  //

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskMTRchamberEfficiency", "No analysis manager to connect to.");
    return NULL;
  }

  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddTaskMTRchamberEfficiency", "AliAnalysisTaskTrigChEff task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }

  // Create cuts
  AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts("StdMuonTrackCuts", "StdMuonTrackCuts");
  muonTrackCuts->SetIsMC(isMC);
  muonTrackCuts->ApplySharpPtCutInMatching(kTRUE);
  muonTrackCuts->SetAllowDefaultParams(kTRUE);

  // Create task
  AliAnalysisTaskTrigChEff* taskTrigChEff = new AliAnalysisTaskTrigChEff("TriggerChamberEfficiency", *muonTrackCuts);
  if ( isMC ) taskTrigChEff->SetTrigClassPatterns("ANY");
  else {
    TString trigClassPatterns = taskTrigChEff->GetDefaultTrigClassPatterns();
    trigClassPatterns.Prepend("ANY,");
    if ( ! trigClassPatterns.Contains("!CMUP") ) trigClassPatterns.Append(",!CMUP*");
    taskTrigChEff->SetTrigClassPatterns(trigClassPatterns);
  }
  taskTrigChEff->GetMuonEventCuts()->SetFilterMask(AliMuonEventCuts::kSelectedTrig);
  mgr->AddTask(taskTrigChEff);

  // Create container
  TString currName = "";
  TString outputfile = mgr->GetCommonFileName();
  if ( ! outputfile.IsNull() ) outputfile += ":MTR_ChamberEffMap";
  else outputfile = "TestTrigChEffAnalysis.root";

  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("testMTRChamberEff",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("triggerChamberEff", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile.Data());

   // Connect containers
   mgr->ConnectInput  (taskTrigChEff,  0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput (taskTrigChEff,  1, coutput1);
   mgr->ConnectOutput (taskTrigChEff,  2, coutput2);

   return taskTrigChEff;
}
 AddTaskMTRchamberEfficiency.C:1
 AddTaskMTRchamberEfficiency.C:2
 AddTaskMTRchamberEfficiency.C:3
 AddTaskMTRchamberEfficiency.C:4
 AddTaskMTRchamberEfficiency.C:5
 AddTaskMTRchamberEfficiency.C:6
 AddTaskMTRchamberEfficiency.C:7
 AddTaskMTRchamberEfficiency.C:8
 AddTaskMTRchamberEfficiency.C:9
 AddTaskMTRchamberEfficiency.C:10
 AddTaskMTRchamberEfficiency.C:11
 AddTaskMTRchamberEfficiency.C:12
 AddTaskMTRchamberEfficiency.C:13
 AddTaskMTRchamberEfficiency.C:14
 AddTaskMTRchamberEfficiency.C:15
 AddTaskMTRchamberEfficiency.C:16
 AddTaskMTRchamberEfficiency.C:17
 AddTaskMTRchamberEfficiency.C:18
 AddTaskMTRchamberEfficiency.C:19
 AddTaskMTRchamberEfficiency.C:20
 AddTaskMTRchamberEfficiency.C:21
 AddTaskMTRchamberEfficiency.C:22
 AddTaskMTRchamberEfficiency.C:23
 AddTaskMTRchamberEfficiency.C:24
 AddTaskMTRchamberEfficiency.C:25
 AddTaskMTRchamberEfficiency.C:26
 AddTaskMTRchamberEfficiency.C:27
 AddTaskMTRchamberEfficiency.C:28
 AddTaskMTRchamberEfficiency.C:29
 AddTaskMTRchamberEfficiency.C:30
 AddTaskMTRchamberEfficiency.C:31
 AddTaskMTRchamberEfficiency.C:32
 AddTaskMTRchamberEfficiency.C:33
 AddTaskMTRchamberEfficiency.C:34
 AddTaskMTRchamberEfficiency.C:35
 AddTaskMTRchamberEfficiency.C:36
 AddTaskMTRchamberEfficiency.C:37
 AddTaskMTRchamberEfficiency.C:38
 AddTaskMTRchamberEfficiency.C:39
 AddTaskMTRchamberEfficiency.C:40
 AddTaskMTRchamberEfficiency.C:41
 AddTaskMTRchamberEfficiency.C:42
 AddTaskMTRchamberEfficiency.C:43
 AddTaskMTRchamberEfficiency.C:44
 AddTaskMTRchamberEfficiency.C:45
 AddTaskMTRchamberEfficiency.C:46
 AddTaskMTRchamberEfficiency.C:47
 AddTaskMTRchamberEfficiency.C:48
 AddTaskMTRchamberEfficiency.C:49
 AddTaskMTRchamberEfficiency.C:50
 AddTaskMTRchamberEfficiency.C:51
 AddTaskMTRchamberEfficiency.C:52
 AddTaskMTRchamberEfficiency.C:53
 AddTaskMTRchamberEfficiency.C:54
 AddTaskMTRchamberEfficiency.C:55
 AddTaskMTRchamberEfficiency.C:56
 AddTaskMTRchamberEfficiency.C:57
 AddTaskMTRchamberEfficiency.C:58
 AddTaskMTRchamberEfficiency.C:59
 AddTaskMTRchamberEfficiency.C:60
 AddTaskMTRchamberEfficiency.C:61
 AddTaskMTRchamberEfficiency.C:62
 AddTaskMTRchamberEfficiency.C:63
 AddTaskMTRchamberEfficiency.C:64
 AddTaskMTRchamberEfficiency.C:65
 AddTaskMTRchamberEfficiency.C:66
 AddTaskMTRchamberEfficiency.C:67
 AddTaskMTRchamberEfficiency.C:68
 AddTaskMTRchamberEfficiency.C:69