ROOT logo
/**
 * @file   AddTaskFMDELoss.C
 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
 * @date   Wed Mar 23 12:14:03 2011
 * 
 * @brief  
 * 
 * 
 * @ingroup pwglf_forward_scripts_tasks
 */
/**
 * @defgroup pwglf_forward_eloss Energy Loss Fits
 *
 * Fitting the energy loss @f$\Delta/\Delta_{mip}@f$ spectra 
 *
 * @ingroup pwglf_forward_topical
 */

/**
 * This is the macro to include the FMD energy fitter in a train.  
 * 
 * @param mc        Assume MC input 
 * @param useCent   Use centrality information 
 * @param onlyMB    Only collect statistics for MB (INEL) events
 * @param debug     Debug level
 * @param residuals If set, also do residuals 
 *
 * @return Newly created task 
 *
 * @ingroup pwglf_forward_eloss
 */
AliAnalysisTask*
AddTaskFMDELoss(Bool_t        mc, 
		Bool_t        onlyMB=false, 
		const Char_t* config="elossFitConfig.C",
		const Char_t* corrs="")
{
  // --- Load libraries ----------------------------------------------
  gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");

  // --- Get analysis manager ----------------------------------------
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskFMDELoss", "No analysis manager to connect to.");
    return NULL;
  }   
  
  // --- Set alternative corrections path ----------------------------
  AliForwardCorrectionManager& cm = AliForwardCorrectionManager::Instance();
  if (corrs && corrs[0] != '\0') cm.SetPrefix(corrs);

  // --- Make the task and add it to the manager ---------------------
  AliFMDEnergyFitterTask* task = new AliFMDEnergyFitterTask("ForwardELoss");
  // --- Set parameters on the algorithms ----------------------------
  task->Configure(config);

  // For MC input we explicitly disable the noise correction 
  if (mc) task->GetESDFixer().SetRecoNoiseFactor(4);

  // --- General -----------------------------------------------------
  // If set, only collect statistics for MB.  This is to prevent a
  // bias when looping over data where the MB trigger is downscaled.
  task->SetOnlyMB(onlyMB);

  // --- Make the output container and connect it --------------------
  task->Connect(0,0);

  Printf("Returning task %p", task);
  return task;
}
//
// EOF
//
 AddTaskFMDELoss.C:1
 AddTaskFMDELoss.C:2
 AddTaskFMDELoss.C:3
 AddTaskFMDELoss.C:4
 AddTaskFMDELoss.C:5
 AddTaskFMDELoss.C:6
 AddTaskFMDELoss.C:7
 AddTaskFMDELoss.C:8
 AddTaskFMDELoss.C:9
 AddTaskFMDELoss.C:10
 AddTaskFMDELoss.C:11
 AddTaskFMDELoss.C:12
 AddTaskFMDELoss.C:13
 AddTaskFMDELoss.C:14
 AddTaskFMDELoss.C:15
 AddTaskFMDELoss.C:16
 AddTaskFMDELoss.C:17
 AddTaskFMDELoss.C:18
 AddTaskFMDELoss.C:19
 AddTaskFMDELoss.C:20
 AddTaskFMDELoss.C:21
 AddTaskFMDELoss.C:22
 AddTaskFMDELoss.C:23
 AddTaskFMDELoss.C:24
 AddTaskFMDELoss.C:25
 AddTaskFMDELoss.C:26
 AddTaskFMDELoss.C:27
 AddTaskFMDELoss.C:28
 AddTaskFMDELoss.C:29
 AddTaskFMDELoss.C:30
 AddTaskFMDELoss.C:31
 AddTaskFMDELoss.C:32
 AddTaskFMDELoss.C:33
 AddTaskFMDELoss.C:34
 AddTaskFMDELoss.C:35
 AddTaskFMDELoss.C:36
 AddTaskFMDELoss.C:37
 AddTaskFMDELoss.C:38
 AddTaskFMDELoss.C:39
 AddTaskFMDELoss.C:40
 AddTaskFMDELoss.C:41
 AddTaskFMDELoss.C:42
 AddTaskFMDELoss.C:43
 AddTaskFMDELoss.C:44
 AddTaskFMDELoss.C:45
 AddTaskFMDELoss.C:46
 AddTaskFMDELoss.C:47
 AddTaskFMDELoss.C:48
 AddTaskFMDELoss.C:49
 AddTaskFMDELoss.C:50
 AddTaskFMDELoss.C:51
 AddTaskFMDELoss.C:52
 AddTaskFMDELoss.C:53
 AddTaskFMDELoss.C:54
 AddTaskFMDELoss.C:55
 AddTaskFMDELoss.C:56
 AddTaskFMDELoss.C:57
 AddTaskFMDELoss.C:58
 AddTaskFMDELoss.C:59
 AddTaskFMDELoss.C:60
 AddTaskFMDELoss.C:61
 AddTaskFMDELoss.C:62
 AddTaskFMDELoss.C:63
 AddTaskFMDELoss.C:64
 AddTaskFMDELoss.C:65
 AddTaskFMDELoss.C:66
 AddTaskFMDELoss.C:67
 AddTaskFMDELoss.C:68
 AddTaskFMDELoss.C:69
 AddTaskFMDELoss.C:70
 AddTaskFMDELoss.C:71
 AddTaskFMDELoss.C:72
 AddTaskFMDELoss.C:73
 AddTaskFMDELoss.C:74