ROOT logo
AliAnalysisTaskMuonQA *AddTaskMuonQA(Bool_t selectPhysics = kTRUE, Bool_t selectMatched = kTRUE, 
				     Bool_t applyAccCut = kTRUE, Bool_t selectTrigger = kFALSE,
				     UInt_t triggerMask = AliVEvent::kMUS7,
						 Short_t selectCharge = 0)
{
  /// Add AliAnalysisTaskMuonQA to the train (Philippe Pillot)
  
  
  // Get the pointer to the existing analysis manager via the static access method.
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if(!mgr) { 
    Error("AddTaskMuonQA","AliAnalysisManager not set!");
    return NULL;
  }
  
  // This task run on ESDs
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD")) {
    Error("AddTaskMuonQA", "ESD input handler needed!");
    return NULL;
  }
  
  // Create and configure task
  AliAnalysisTaskMuonQA *task = new AliAnalysisTaskMuonQA("MuonQA");
  if (!task) {
    Error("AddTaskMuonQA", "Muon QA task cannot be created!");
    return NULL;
  }
  task->SelectPhysics(selectPhysics);
  task->SelectTrigger(selectTrigger, triggerMask);
  task->SelectMatched(selectMatched);
  task->ApplyAccCut(applyAccCut);
  task->SelectCharge(selectCharge);
  
  // Add task to analysis manager
  mgr->AddTask(task);
  
  // Connect input container
  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
  
  // Define output file directory
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  if ( outputfile.IsNull() ) {
    Error("AddTaskMuonQA", "Common output file is not defined!");
    return NULL;
  }
  outputfile += ":MUON_QA";
  
  // Create and connect output containers
  AliAnalysisDataContainer *cout_histo1 = mgr->CreateContainer("general1", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
  AliAnalysisDataContainer *cout_histo2 = mgr->CreateContainer("expert", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
  AliAnalysisDataContainer *cout_trackStat = mgr->CreateContainer("trackCounters", AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile);
  AliAnalysisDataContainer *cout_eventStat = mgr->CreateContainer("eventCounters", AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile);
  AliAnalysisDataContainer *cout_normalized = mgr->CreateContainer("general2", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
  mgr->ConnectOutput(task, 1, cout_histo1);
  mgr->ConnectOutput(task, 2, cout_histo2);
  mgr->ConnectOutput(task, 3, cout_trackStat);
  mgr->ConnectOutput(task, 4, cout_eventStat);
  mgr->ConnectOutput(task, 5, cout_normalized);
  
  return task;
}   
 AddTaskMuonQA.C:1
 AddTaskMuonQA.C:2
 AddTaskMuonQA.C:3
 AddTaskMuonQA.C:4
 AddTaskMuonQA.C:5
 AddTaskMuonQA.C:6
 AddTaskMuonQA.C:7
 AddTaskMuonQA.C:8
 AddTaskMuonQA.C:9
 AddTaskMuonQA.C:10
 AddTaskMuonQA.C:11
 AddTaskMuonQA.C:12
 AddTaskMuonQA.C:13
 AddTaskMuonQA.C:14
 AddTaskMuonQA.C:15
 AddTaskMuonQA.C:16
 AddTaskMuonQA.C:17
 AddTaskMuonQA.C:18
 AddTaskMuonQA.C:19
 AddTaskMuonQA.C:20
 AddTaskMuonQA.C:21
 AddTaskMuonQA.C:22
 AddTaskMuonQA.C:23
 AddTaskMuonQA.C:24
 AddTaskMuonQA.C:25
 AddTaskMuonQA.C:26
 AddTaskMuonQA.C:27
 AddTaskMuonQA.C:28
 AddTaskMuonQA.C:29
 AddTaskMuonQA.C:30
 AddTaskMuonQA.C:31
 AddTaskMuonQA.C:32
 AddTaskMuonQA.C:33
 AddTaskMuonQA.C:34
 AddTaskMuonQA.C:35
 AddTaskMuonQA.C:36
 AddTaskMuonQA.C:37
 AddTaskMuonQA.C:38
 AddTaskMuonQA.C:39
 AddTaskMuonQA.C:40
 AddTaskMuonQA.C:41
 AddTaskMuonQA.C:42
 AddTaskMuonQA.C:43
 AddTaskMuonQA.C:44
 AddTaskMuonQA.C:45
 AddTaskMuonQA.C:46
 AddTaskMuonQA.C:47
 AddTaskMuonQA.C:48
 AddTaskMuonQA.C:49
 AddTaskMuonQA.C:50
 AddTaskMuonQA.C:51
 AddTaskMuonQA.C:52
 AddTaskMuonQA.C:53
 AddTaskMuonQA.C:54
 AddTaskMuonQA.C:55
 AddTaskMuonQA.C:56
 AddTaskMuonQA.C:57
 AddTaskMuonQA.C:58
 AddTaskMuonQA.C:59
 AddTaskMuonQA.C:60
 AddTaskMuonQA.C:61
 AddTaskMuonQA.C:62
 AddTaskMuonQA.C:63