ROOT logo
// $Id$

AliEmcalParticleMaker* AddTaskEmcalParticleMaker(
  const char *tracksName          = "PicoTracks",
  const char *clustersName        = 0,
  const char *tracksOutName       = "EmcalTracks",
  const char *clustersOutName     = "EmcalClusters",
  const char *taskName            = "AliEmcalParticleMaker"
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskEmcalParticleMaker", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  AliVEventHandler *evhand = mgr->GetInputEventHandler();
  if (!evhand) {
    ::Error("AddTaskEmcalParticleMaker", "This task requires an input event handler");
    return NULL;
  }

  TString clusName(clustersName);
  if (!clustersName) {
    if (evhand->InheritsFrom("AliESDInputHandler")) {
      ::Info("AddTaskEmcalParticleMaker", "ESD analysis, clustersName = \"CaloClusters\"");
      clusName = "CaloClusters";
    } else {
      ::Info("AddTaskEmcalParticleMaker", "AOD analysis, clustersName = \"caloClusters\"");
      clusName,"caloClusters");
    }
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------
  TString toName(tracksOutName);
  if (!toName.EndsWith(tracksName)) {
    toName += "_";
    toName +=tracksName;
  }
  TString coName(clustersOutName);
  if (!coName.EndsWith(clusName)) {
    coName += "_";
    coName += clusName;
  }
  TString tName(taskName);
  tName += "_";
  tName += toName;
  tName += "_";
  tName += coName;

  AliEmcalParticleMaker *eTask = new AliEmcalParticleMaker(tName);
  eTask->SetTracksName(tracksName);
  eTask->SetClusName(clusName);
  eTask->SetTracksOutName(toName);
  eTask->SetClusOutName(coName);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------
  mgr->AddTask(eTask);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
  mgr->ConnectInput(eTask, 0, cinput1);
  
  return eTask;
}
 AddTaskEmcalParticleMaker.C:1
 AddTaskEmcalParticleMaker.C:2
 AddTaskEmcalParticleMaker.C:3
 AddTaskEmcalParticleMaker.C:4
 AddTaskEmcalParticleMaker.C:5
 AddTaskEmcalParticleMaker.C:6
 AddTaskEmcalParticleMaker.C:7
 AddTaskEmcalParticleMaker.C:8
 AddTaskEmcalParticleMaker.C:9
 AddTaskEmcalParticleMaker.C:10
 AddTaskEmcalParticleMaker.C:11
 AddTaskEmcalParticleMaker.C:12
 AddTaskEmcalParticleMaker.C:13
 AddTaskEmcalParticleMaker.C:14
 AddTaskEmcalParticleMaker.C:15
 AddTaskEmcalParticleMaker.C:16
 AddTaskEmcalParticleMaker.C:17
 AddTaskEmcalParticleMaker.C:18
 AddTaskEmcalParticleMaker.C:19
 AddTaskEmcalParticleMaker.C:20
 AddTaskEmcalParticleMaker.C:21
 AddTaskEmcalParticleMaker.C:22
 AddTaskEmcalParticleMaker.C:23
 AddTaskEmcalParticleMaker.C:24
 AddTaskEmcalParticleMaker.C:25
 AddTaskEmcalParticleMaker.C:26
 AddTaskEmcalParticleMaker.C:27
 AddTaskEmcalParticleMaker.C:28
 AddTaskEmcalParticleMaker.C:29
 AddTaskEmcalParticleMaker.C:30
 AddTaskEmcalParticleMaker.C:31
 AddTaskEmcalParticleMaker.C:32
 AddTaskEmcalParticleMaker.C:33
 AddTaskEmcalParticleMaker.C:34
 AddTaskEmcalParticleMaker.C:35
 AddTaskEmcalParticleMaker.C:36
 AddTaskEmcalParticleMaker.C:37
 AddTaskEmcalParticleMaker.C:38
 AddTaskEmcalParticleMaker.C:39
 AddTaskEmcalParticleMaker.C:40
 AddTaskEmcalParticleMaker.C:41
 AddTaskEmcalParticleMaker.C:42
 AddTaskEmcalParticleMaker.C:43
 AddTaskEmcalParticleMaker.C:44
 AddTaskEmcalParticleMaker.C:45
 AddTaskEmcalParticleMaker.C:46
 AddTaskEmcalParticleMaker.C:47
 AddTaskEmcalParticleMaker.C:48
 AddTaskEmcalParticleMaker.C:49
 AddTaskEmcalParticleMaker.C:50
 AddTaskEmcalParticleMaker.C:51
 AddTaskEmcalParticleMaker.C:52
 AddTaskEmcalParticleMaker.C:53
 AddTaskEmcalParticleMaker.C:54
 AddTaskEmcalParticleMaker.C:55
 AddTaskEmcalParticleMaker.C:56
 AddTaskEmcalParticleMaker.C:57
 AddTaskEmcalParticleMaker.C:58
 AddTaskEmcalParticleMaker.C:59
 AddTaskEmcalParticleMaker.C:60
 AddTaskEmcalParticleMaker.C:61
 AddTaskEmcalParticleMaker.C:62
 AddTaskEmcalParticleMaker.C:63
 AddTaskEmcalParticleMaker.C:64
 AddTaskEmcalParticleMaker.C:65
 AddTaskEmcalParticleMaker.C:66
 AddTaskEmcalParticleMaker.C:67
 AddTaskEmcalParticleMaker.C:68
 AddTaskEmcalParticleMaker.C:69
 AddTaskEmcalParticleMaker.C:70
 AddTaskEmcalParticleMaker.C:71
 AddTaskEmcalParticleMaker.C:72
 AddTaskEmcalParticleMaker.C:73
 AddTaskEmcalParticleMaker.C:74