ROOT logo
/**
 * @file   AddTaskForwarddNdeta.C
 * @author Christian Holm Christensen <cholm@nbi.dk>
 * @date   Fri Jan 28 10:22:26 2011
 * 
 * @brief Script to add a multiplicity task for the central
 *        @f$\eta@f$ region
 * 
 * 
 * @ingroup pwglf_forward_scripts_tasks
 */
/** 
 * Create the Forward @f$ dN/d\eta@f$ analysis task 
 * 
 * @param trig      Trigger to use 
 * @param vzMin     Smallest @f$ v_z@f$
 * @param vzMax     Biggest @f$ v_z@f$
 * @param useCent   Whether to use the centrality or not
 * @param scheme    Normalisation scheme
 * @param cutEdges  Whether to cut edges when rebinning 
 * @param trigEff   Trigger efficiency 
 * @param trigEff0  Trigger efficiency for 0-bin
 * @param corrEmpty Correct for empty bins 
 * @param satVtx    Set to true for satellite analysis
 * @param mcanalysisfilename Take final MC corrections from this - if present
 * 
 * @return Newly created and configured task
 *
 * @ingroup pwglf_forward_dndeta
 */
AliAnalysisTask*
AddTaskForwarddNdeta(const char* config   = "dNdetaConfig.C",
		     const char* trig     = "INEL", 
		     Double_t    vzMin    = -10, 
		     Double_t    vzMax    = +10, 
		     const char* cent     = "none",
		     const char* scheme   = 0,
		     Double_t    trigEff  = 1, 
		     Double_t    trigEff0 = 1,
		     Bool_t      satVtx   = false)
{
  // --- Load libraries ----------------------------------------------
  gROOT->LoadClass("AliAODForwardMult", "libPWGLFforward2");

  // --- Analysis manager --------------------------------------------
  AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();

  // --- Check that we have an AOD input handler ---------------------
  UShort_t aodInput = 0;
  if (!(aodInput = AliForwardUtil::CheckForAOD())) 
    Fatal("","Cannot proceed without and AOD handler");
  if (aodInput == 2 &&
      !AliForwardUtil::CheckForTask("AliForwardMultiplicityBase")) 
    Fatal("","The relevant task wasn't added to the train");


  // --- Make our object ---------------------------------------------
  AliForwarddNdetaTask* task = new AliForwarddNdetaTask("Forward");
  
  // Set the vertex range to use 
  task->SetIpZRange(vzMin, vzMax);
  // Set the trigger mask to use (INEL,INEL>0,NSD)
  task->SetTriggerMask(trig);
  // Set the trigger efficiency 
  task->SetTriggerEff(trigEff); // 0.997535);
  task->SetTriggerEff0(trigEff0); 
  // Bit mask of 
  // 
  //    kNone           Normalise to accepted events 
  //    kEventLevel     Normalise to all events in selected range 
  //    kAltEventLevel  Normalise to all events in selected range 
  //    kBackground     Also correct for background triggers 
  // 
  // kNone, kEventLevel, and kAltEventLevel are mutually exclusive.
  // If neither kEventLevel, nor kAltEventLevel is specified, then
  // kNone is assumed.  kBackground (when implemented) only makes
  // sense with kEventLevel and kAltEventLevel.  Furthermore, there
  // are some constants that encode the common cases
  //     
  //    kFull    = kEventLevel |  kBackground  
  //    kAltFull = kAltEventLevel |  kBackground  
  // 
  // Default is kFull
  task->SetNormalizationScheme(AliBasedNdetaTask::kFull);
  if (scheme) task->SetNormalizationScheme(scheme);
  // Set the centrality bins to use.  These are mutually exclusive.
  // Note, that a bin specified as a-b, covers the interval from a,
  // inclusive to b exclusive.  An upper bound of 100 is treated
  // especially, and the upper bound is inclusive in that case .
  if (cent) {
    Info("", "Centrality estimator is %s (AddTask)", cent);
    if (task->SetCentralityMethod(cent)) {
      Short_t bins[] = { 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 100 };
      task->SetCentralityAxis(10, bins);
    }
  }
  // Set satellite vertex flag
  task->SetSatelliteVertices(satVtx);

  // Set-up task using a script 
  task->Configure(config);
  
  // Connect to manager 
  task->Connect(0,0);

  return task;
}

  
//________________________________________________________________________
//
// EOF
// 
 AddTaskForwarddNdeta.C:1
 AddTaskForwarddNdeta.C:2
 AddTaskForwarddNdeta.C:3
 AddTaskForwarddNdeta.C:4
 AddTaskForwarddNdeta.C:5
 AddTaskForwarddNdeta.C:6
 AddTaskForwarddNdeta.C:7
 AddTaskForwarddNdeta.C:8
 AddTaskForwarddNdeta.C:9
 AddTaskForwarddNdeta.C:10
 AddTaskForwarddNdeta.C:11
 AddTaskForwarddNdeta.C:12
 AddTaskForwarddNdeta.C:13
 AddTaskForwarddNdeta.C:14
 AddTaskForwarddNdeta.C:15
 AddTaskForwarddNdeta.C:16
 AddTaskForwarddNdeta.C:17
 AddTaskForwarddNdeta.C:18
 AddTaskForwarddNdeta.C:19
 AddTaskForwarddNdeta.C:20
 AddTaskForwarddNdeta.C:21
 AddTaskForwarddNdeta.C:22
 AddTaskForwarddNdeta.C:23
 AddTaskForwarddNdeta.C:24
 AddTaskForwarddNdeta.C:25
 AddTaskForwarddNdeta.C:26
 AddTaskForwarddNdeta.C:27
 AddTaskForwarddNdeta.C:28
 AddTaskForwarddNdeta.C:29
 AddTaskForwarddNdeta.C:30
 AddTaskForwarddNdeta.C:31
 AddTaskForwarddNdeta.C:32
 AddTaskForwarddNdeta.C:33
 AddTaskForwarddNdeta.C:34
 AddTaskForwarddNdeta.C:35
 AddTaskForwarddNdeta.C:36
 AddTaskForwarddNdeta.C:37
 AddTaskForwarddNdeta.C:38
 AddTaskForwarddNdeta.C:39
 AddTaskForwarddNdeta.C:40
 AddTaskForwarddNdeta.C:41
 AddTaskForwarddNdeta.C:42
 AddTaskForwarddNdeta.C:43
 AddTaskForwarddNdeta.C:44
 AddTaskForwarddNdeta.C:45
 AddTaskForwarddNdeta.C:46
 AddTaskForwarddNdeta.C:47
 AddTaskForwarddNdeta.C:48
 AddTaskForwarddNdeta.C:49
 AddTaskForwarddNdeta.C:50
 AddTaskForwarddNdeta.C:51
 AddTaskForwarddNdeta.C:52
 AddTaskForwarddNdeta.C:53
 AddTaskForwarddNdeta.C:54
 AddTaskForwarddNdeta.C:55
 AddTaskForwarddNdeta.C:56
 AddTaskForwarddNdeta.C:57
 AddTaskForwarddNdeta.C:58
 AddTaskForwarddNdeta.C:59
 AddTaskForwarddNdeta.C:60
 AddTaskForwarddNdeta.C:61
 AddTaskForwarddNdeta.C:62
 AddTaskForwarddNdeta.C:63
 AddTaskForwarddNdeta.C:64
 AddTaskForwarddNdeta.C:65
 AddTaskForwarddNdeta.C:66
 AddTaskForwarddNdeta.C:67
 AddTaskForwarddNdeta.C:68
 AddTaskForwarddNdeta.C:69
 AddTaskForwarddNdeta.C:70
 AddTaskForwarddNdeta.C:71
 AddTaskForwarddNdeta.C:72
 AddTaskForwarddNdeta.C:73
 AddTaskForwarddNdeta.C:74
 AddTaskForwarddNdeta.C:75
 AddTaskForwarddNdeta.C:76
 AddTaskForwarddNdeta.C:77
 AddTaskForwarddNdeta.C:78
 AddTaskForwarddNdeta.C:79
 AddTaskForwarddNdeta.C:80
 AddTaskForwarddNdeta.C:81
 AddTaskForwarddNdeta.C:82
 AddTaskForwarddNdeta.C:83
 AddTaskForwarddNdeta.C:84
 AddTaskForwarddNdeta.C:85
 AddTaskForwarddNdeta.C:86
 AddTaskForwarddNdeta.C:87
 AddTaskForwarddNdeta.C:88
 AddTaskForwarddNdeta.C:89
 AddTaskForwarddNdeta.C:90
 AddTaskForwarddNdeta.C:91
 AddTaskForwarddNdeta.C:92
 AddTaskForwarddNdeta.C:93
 AddTaskForwarddNdeta.C:94
 AddTaskForwarddNdeta.C:95
 AddTaskForwarddNdeta.C:96
 AddTaskForwarddNdeta.C:97
 AddTaskForwarddNdeta.C:98
 AddTaskForwarddNdeta.C:99
 AddTaskForwarddNdeta.C:100
 AddTaskForwarddNdeta.C:101
 AddTaskForwarddNdeta.C:102
 AddTaskForwarddNdeta.C:103
 AddTaskForwarddNdeta.C:104
 AddTaskForwarddNdeta.C:105
 AddTaskForwarddNdeta.C:106
 AddTaskForwarddNdeta.C:107
 AddTaskForwarddNdeta.C:108
 AddTaskForwarddNdeta.C:109
 AddTaskForwarddNdeta.C:110
 AddTaskForwarddNdeta.C:111
 AddTaskForwarddNdeta.C:112
 AddTaskForwarddNdeta.C:113
 AddTaskForwarddNdeta.C:114