ROOT logo
AliAnalysisTaskCaloConv * AddTaskCaloConv(){
  //Macro to add class CaloConv (conversion+calorimeters pi0 analysis) to train
  //Argument is the path to the PHOS recalibration parameters (file with OCDB entry)
  //Default path to the file with unit recalibration == no recalibnration
  //If file does not exist, no recalibration histograms will be filled

  // Get the pointer to the existing analysis manager via the static access method.
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskCaloConv", "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("AddTaskCaloConv", "This task requires an input event handler");
    return NULL;
  }

  // Add task
  AliAnalysisTaskCaloConv *task = new AliAnalysisTaskCaloConv("CaloConv");
  mgr->AddTask(task);

  TDirectory* saveDir = gDirectory;
  TGrid a;
  if(a.IsConnected()){
    TFile *fBadMap = TFile::Open("alien:///alice/cern.ch/user/p/prsnko/BadMaps/BadMap_LHC10b.root") ;
    if(fBadMap->IsOpen()){
      if (saveDir) saveDir->cd(); else gROOT->cd();

      printf("Adding PHOS and EMCAL bad maps \n") ;
      char key[55] ;
      for(Int_t mod=1;mod<4; mod++){
        sprintf(key,"PHOS_BadMap_mod%d",mod) ;
        TH2I * h = (TH2I*)fBadMap->Get(key) ;
        if(h)
          task->SetPHOSBadMap(mod,h) ;
      }
      for(Int_t sm=0; sm<5; sm++){
        sprintf(key,"EMCAL_BadMap_mod%d",sm) ;
        TH2I * h = (TH2I*)fBadMap->Get(key) ;
        if(h)
          task->SetEMCALBadMap(mod,h) ;
      }
      fBadMap->Close() ;
    }
  }
  else{
    printf("Can not open Bad Map file \n") ;
  }


  // Create containers for input/output
  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
  mgr->ConnectInput(task, 0, cinput);

  TString outputfile = AliAnalysisManager::GetCommonFileName();
  AliAnalysisDataContainer *coutput = mgr->CreateContainer("CaloConv", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:PWGGA_CaloConv",outputfile.Data()));
  mgr->ConnectOutput(task, 1, coutput);
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("CFCaloConv", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:PWGGA_CFCaloConv",outputfile.Data()));
  mgr->ConnectOutput(task, 2, coutput2);

  return task ;

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