ROOT logo
// $Id$

AliEmcalClusterMaker* AddTaskEmcalClusterMaker(
  const UInt_t nonLinFunct   = AliEMCALRecoUtils::kBeamTestCorrected,
  const Bool_t remExClus     = kTRUE,
  const char *nClusters      = 0,
  const char *outClusName    = "EmcCaloClusters",
  const Double_t emin        = 0.3,
  const Bool_t   histo       = kFALSE,
  const char *outputname     = "AnalysisResults.root"
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskHadCorr", "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("AddTaskHadCorr", "This task requires an input event handler");
    return NULL;
  }

  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"

  TString nCells = "emcalCells";
  if (inputDataType == "ESD")
    nCells = "EMCALCells";

  if (nClusters==0) {
    if (inputDataType != "ESD")
      nClusters = "caloClusters";
    else 
      nClusters = "CaloClusters";
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  TString name(Form("EmcalClusterMaker_%s_%s", nClusters, outClusName));
  AliEmcalClusterMaker *ecm = new AliEmcalClusterMaker(name, histo);
  ecm->SetOutClusName(outClusName);
  ecm->SetCaloCellsName(nCells);
  AliEMCALRecoUtils *ru = new AliEMCALRecoUtils;
  ru->SetNonLinearityFunction(nonLinFunct);
  if(remExClus) ru->SwitchOnRejectExoticCluster();
  ecm->SetRecoUtils(ru);
  AliClusterContainer *clusCont = ecm->AddClusterContainer(nClusters);
  clusCont->SetClusECut(emin);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------

  mgr->AddTask(ecm);
    
  // Create containers for input/output
  mgr->ConnectInput (ecm, 0, mgr->GetCommonInputContainer());

  if (histo) {
    AliAnalysisDataContainer *coecm = mgr->CreateContainer(name,
							   TList::Class(),
							   AliAnalysisManager::kOutputContainer,
							   outputname);
    mgr->ConnectOutput(ecm,1,coecm);
  }
    
  return ecm;
}
 AddTaskEmcalClusterMaker.C:1
 AddTaskEmcalClusterMaker.C:2
 AddTaskEmcalClusterMaker.C:3
 AddTaskEmcalClusterMaker.C:4
 AddTaskEmcalClusterMaker.C:5
 AddTaskEmcalClusterMaker.C:6
 AddTaskEmcalClusterMaker.C:7
 AddTaskEmcalClusterMaker.C:8
 AddTaskEmcalClusterMaker.C:9
 AddTaskEmcalClusterMaker.C:10
 AddTaskEmcalClusterMaker.C:11
 AddTaskEmcalClusterMaker.C:12
 AddTaskEmcalClusterMaker.C:13
 AddTaskEmcalClusterMaker.C:14
 AddTaskEmcalClusterMaker.C:15
 AddTaskEmcalClusterMaker.C:16
 AddTaskEmcalClusterMaker.C:17
 AddTaskEmcalClusterMaker.C:18
 AddTaskEmcalClusterMaker.C:19
 AddTaskEmcalClusterMaker.C:20
 AddTaskEmcalClusterMaker.C:21
 AddTaskEmcalClusterMaker.C:22
 AddTaskEmcalClusterMaker.C:23
 AddTaskEmcalClusterMaker.C:24
 AddTaskEmcalClusterMaker.C:25
 AddTaskEmcalClusterMaker.C:26
 AddTaskEmcalClusterMaker.C:27
 AddTaskEmcalClusterMaker.C:28
 AddTaskEmcalClusterMaker.C:29
 AddTaskEmcalClusterMaker.C:30
 AddTaskEmcalClusterMaker.C:31
 AddTaskEmcalClusterMaker.C:32
 AddTaskEmcalClusterMaker.C:33
 AddTaskEmcalClusterMaker.C:34
 AddTaskEmcalClusterMaker.C:35
 AddTaskEmcalClusterMaker.C:36
 AddTaskEmcalClusterMaker.C:37
 AddTaskEmcalClusterMaker.C:38
 AddTaskEmcalClusterMaker.C:39
 AddTaskEmcalClusterMaker.C:40
 AddTaskEmcalClusterMaker.C:41
 AddTaskEmcalClusterMaker.C:42
 AddTaskEmcalClusterMaker.C:43
 AddTaskEmcalClusterMaker.C:44
 AddTaskEmcalClusterMaker.C:45
 AddTaskEmcalClusterMaker.C:46
 AddTaskEmcalClusterMaker.C:47
 AddTaskEmcalClusterMaker.C:48
 AddTaskEmcalClusterMaker.C:49
 AddTaskEmcalClusterMaker.C:50
 AddTaskEmcalClusterMaker.C:51
 AddTaskEmcalClusterMaker.C:52
 AddTaskEmcalClusterMaker.C:53
 AddTaskEmcalClusterMaker.C:54
 AddTaskEmcalClusterMaker.C:55
 AddTaskEmcalClusterMaker.C:56
 AddTaskEmcalClusterMaker.C:57
 AddTaskEmcalClusterMaker.C:58
 AddTaskEmcalClusterMaker.C:59
 AddTaskEmcalClusterMaker.C:60
 AddTaskEmcalClusterMaker.C:61
 AddTaskEmcalClusterMaker.C:62
 AddTaskEmcalClusterMaker.C:63
 AddTaskEmcalClusterMaker.C:64
 AddTaskEmcalClusterMaker.C:65
 AddTaskEmcalClusterMaker.C:66
 AddTaskEmcalClusterMaker.C:67
 AddTaskEmcalClusterMaker.C:68
 AddTaskEmcalClusterMaker.C:69
 AddTaskEmcalClusterMaker.C:70
 AddTaskEmcalClusterMaker.C:71
 AddTaskEmcalClusterMaker.C:72
 AddTaskEmcalClusterMaker.C:73
 AddTaskEmcalClusterMaker.C:74
 AddTaskEmcalClusterMaker.C:75
 AddTaskEmcalClusterMaker.C:76
 AddTaskEmcalClusterMaker.C:77