ROOT logo
AliAnalysisTaskCaloCellsQA* AddTaskCaloCellsQA(Int_t nmods = 10, Int_t det = 0,
                                               char* fname = "CellsQA.root", char* contname = NULL)
{
  // Task to add EMCAL/PHOS cellsQA/runsQA to your analysis.
  //
  // Usage example for EMCAL:
  //
  //   gSystem->Load("libPWGGAPHOSTasks.so");
  //   gROOT->LoadMacro("$ALICE_ROOT/PWGGA/PHOSTasks/CaloCellQA/macros/AddTaskCaloCellsQA.C");
  //   AliAnalysisTaskCaloCellsQA *taskQA = AddTaskCaloCellsQA(10); // 10 supermodules
  //   taskQA->SelectCollisionCandidates(AliVEvent::kMB); // if necessary
  //   // taskQA->SetAvoidPileup(kFALSE); // some customization
  //   // taskQA->GetCaloCellsQA()->ActivateFullAnalysis(); // more histograms, not usually necessary
  //   // Int_t badcells[] = {74,103,917};
  //   // taskQA->SetBadCells(badcells, 3); // reject clusters containing any of these cells
  //
  // Usage example for PHOS:
  //
  //   gSystem->Load("libPWGAPHOSTasks.so");
  //   gROOT->LoadMacro("$ALICE_ROOT/PWGGA/PHOSTasks/CaloCellQA/macros/AddTaskCaloCellsQA.C");
  //   AliAnalysisTaskCaloCellsQA *taskQA = AddTaskCaloCellsQA(4, 1);
  //   taskQA->SelectCollisionCandidates(AliVEvent::kMB); // if necessary
  //   taskQA->GetCaloCellsQA()->SetClusterEnergyCuts(0.3,0.1); // increase statistics
  //   // taskQA->SetAvoidPileup(kFALSE); // some customization
  //   // taskQA->GetCaloCellsQA()->ActivateFullAnalysis(); // more histograms, not usually necessary
  //   // Int_t badcells[] = {1234};
  //   // taskQA->SetBadCells(badcells, 1); // reject clusters containing any of these cells
  //
  // nmods -- maximum supermodule number + 1:
  //   use 4 for EMCAL <= 2010;
  //   use 4 for PHOS (PHOS numbers start from 1, not from zero);
  //   use 10 for EMCAL >= 2011;
  // det -- detector, 0/EMCAL, 1/PHOS;
  // fname -- output file name;
  //   if NULL, the output will be written into mgr->GetCommonFileName() + container;
  // contname -- TObjArray container name in the output file;
  //   if not NULL (or fname = NULL), the output will be written into output container and
  //   cannot be later merged for different run numbers;
  //   contname must be unique, if you are going to call AddTaskCaloCellsQA() several times.
  //
  // Note that if fname = NULL and contname = NULL, the output will be written into
  //   file mgr->GetCommonFileName() with container name CellsQAResults.

  // get manager instance
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskCaloCellsQA", "No analysis manager to connect to");
    return NULL;
  }

  // check the analysis type using the event handlers connected to the analysis manager
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskCaloCellsQA", "This task requires an input event handler");
    return NULL;
  }

  // Configure analysis
  //===========================================================================

  // detector number
  Int_t det2 = -1;
  if       (det == 0) det2 = AliAnalysisTaskCaloCellsQA::kEMCAL;
  else  if (det == 1) det2 = AliAnalysisTaskCaloCellsQA::kPHOS;
  else
  ::Fatal("AddTaskCaloCellsQA", "Wrong detector provided");

  AliAnalysisTaskCaloCellsQA* task;

  if (fname && !contname) task = new AliAnalysisTaskCaloCellsQA("AliAnalysisTaskCaloCellsQA", nmods, det2, fname);
  else                    task = new AliAnalysisTaskCaloCellsQA("AliAnalysisTaskCaloCellsQA", nmods, det2);
  mgr->AddTask(task);

  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

  // container output into particular file
  if (fname && contname)
    mgr->ConnectOutput(task, 1, mgr->CreateContainer(contname,
                       TObjArray::Class(), AliAnalysisManager::kOutputContainer, fname));

  // container output into common file
  if (!fname) {
    if (!contname) contname = "CellsQAResults";
    mgr->ConnectOutput(task, 1, mgr->CreateContainer(contname,
                       TObjArray::Class(), AliAnalysisManager::kOutputContainer, mgr->GetCommonFileName()));
  }

  return task;
}
 AddTaskCaloCellsQA.C:1
 AddTaskCaloCellsQA.C:2
 AddTaskCaloCellsQA.C:3
 AddTaskCaloCellsQA.C:4
 AddTaskCaloCellsQA.C:5
 AddTaskCaloCellsQA.C:6
 AddTaskCaloCellsQA.C:7
 AddTaskCaloCellsQA.C:8
 AddTaskCaloCellsQA.C:9
 AddTaskCaloCellsQA.C:10
 AddTaskCaloCellsQA.C:11
 AddTaskCaloCellsQA.C:12
 AddTaskCaloCellsQA.C:13
 AddTaskCaloCellsQA.C:14
 AddTaskCaloCellsQA.C:15
 AddTaskCaloCellsQA.C:16
 AddTaskCaloCellsQA.C:17
 AddTaskCaloCellsQA.C:18
 AddTaskCaloCellsQA.C:19
 AddTaskCaloCellsQA.C:20
 AddTaskCaloCellsQA.C:21
 AddTaskCaloCellsQA.C:22
 AddTaskCaloCellsQA.C:23
 AddTaskCaloCellsQA.C:24
 AddTaskCaloCellsQA.C:25
 AddTaskCaloCellsQA.C:26
 AddTaskCaloCellsQA.C:27
 AddTaskCaloCellsQA.C:28
 AddTaskCaloCellsQA.C:29
 AddTaskCaloCellsQA.C:30
 AddTaskCaloCellsQA.C:31
 AddTaskCaloCellsQA.C:32
 AddTaskCaloCellsQA.C:33
 AddTaskCaloCellsQA.C:34
 AddTaskCaloCellsQA.C:35
 AddTaskCaloCellsQA.C:36
 AddTaskCaloCellsQA.C:37
 AddTaskCaloCellsQA.C:38
 AddTaskCaloCellsQA.C:39
 AddTaskCaloCellsQA.C:40
 AddTaskCaloCellsQA.C:41
 AddTaskCaloCellsQA.C:42
 AddTaskCaloCellsQA.C:43
 AddTaskCaloCellsQA.C:44
 AddTaskCaloCellsQA.C:45
 AddTaskCaloCellsQA.C:46
 AddTaskCaloCellsQA.C:47
 AddTaskCaloCellsQA.C:48
 AddTaskCaloCellsQA.C:49
 AddTaskCaloCellsQA.C:50
 AddTaskCaloCellsQA.C:51
 AddTaskCaloCellsQA.C:52
 AddTaskCaloCellsQA.C:53
 AddTaskCaloCellsQA.C:54
 AddTaskCaloCellsQA.C:55
 AddTaskCaloCellsQA.C:56
 AddTaskCaloCellsQA.C:57
 AddTaskCaloCellsQA.C:58
 AddTaskCaloCellsQA.C:59
 AddTaskCaloCellsQA.C:60
 AddTaskCaloCellsQA.C:61
 AddTaskCaloCellsQA.C:62
 AddTaskCaloCellsQA.C:63
 AddTaskCaloCellsQA.C:64
 AddTaskCaloCellsQA.C:65
 AddTaskCaloCellsQA.C:66
 AddTaskCaloCellsQA.C:67
 AddTaskCaloCellsQA.C:68
 AddTaskCaloCellsQA.C:69
 AddTaskCaloCellsQA.C:70
 AddTaskCaloCellsQA.C:71
 AddTaskCaloCellsQA.C:72
 AddTaskCaloCellsQA.C:73
 AddTaskCaloCellsQA.C:74
 AddTaskCaloCellsQA.C:75
 AddTaskCaloCellsQA.C:76
 AddTaskCaloCellsQA.C:77
 AddTaskCaloCellsQA.C:78
 AddTaskCaloCellsQA.C:79
 AddTaskCaloCellsQA.C:80
 AddTaskCaloCellsQA.C:81
 AddTaskCaloCellsQA.C:82
 AddTaskCaloCellsQA.C:83
 AddTaskCaloCellsQA.C:84
 AddTaskCaloCellsQA.C:85
 AddTaskCaloCellsQA.C:86
 AddTaskCaloCellsQA.C:87
 AddTaskCaloCellsQA.C:88
 AddTaskCaloCellsQA.C:89