ROOT logo
//
// Task to analyse the AOD for for dN/deta in the forward regions 
//
#ifndef ALIFORWARDDNDETATASK_H
#define ALIFORWARDDNDETATASK_H
/**
 * @file   AliForwarddNdetaTask.h
 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
 * @date   Wed Mar 23 14:04:54 2011
 * 
 * @brief  
 * 
 * 
 * @ingroup pwglf_forward_dndeta
 */
#include "AliBasedNdetaTask.h"
class TList;
class TH2D;
class TH1D;

/**
 * Tasks to determine @f$ dN/d\eta@f$ in the forward regions
 *
 * @image html alice-int-2012-040-performance_spdfmdvzero.png "dN/deta in PbPb"
 * 
 * @ingroup pwglf_forward_tasks_dndeta
 * @ingroup pwglf_forward_dndeta
 */
class AliForwarddNdetaTask : public AliBasedNdetaTask
{
public:
  /** 
   * Constructor 
   * 
   */
  AliForwarddNdetaTask();
  /** 
   * Constructor
   * 
   * @param name    Name of task 
   */
  AliForwarddNdetaTask(const char* name);
  /**
   * Destructor
   * 
   */
  virtual ~AliForwarddNdetaTask() {}
protected:
  /** 
   * Copy constructor 
   *
   * @param o object to copy from 
   */
  AliForwarddNdetaTask(const AliForwarddNdetaTask& o);
  /** 
   * Assigmement operator
   * 
   * @return Reference to this
   */
  AliForwarddNdetaTask& operator=(const AliForwarddNdetaTask&);

  /** 
   * Retrieve the histogram 
   * 
   * @param aod AOD event 
   * @param mc  Whether to get the MC histogram or not
   * 
   * @return Retrieved histogram or null
   */
  TH2D* GetHistogram(const AliAODEvent& aod, Bool_t mc);
  /** 
   * Get the colour to use for markers (only pp - in PbPb we use a rainbow)
   * 
   * @return Marker colour 
   */
  virtual Int_t GetColor() const { return kRed+2; }
  /** 
   * Massage data histograms for certain vertices in the satellite analysis 
   * 
   * @param vtx 
   * @param data 
   * @param mcData 
   */
  virtual void CheckEventData(Double_t vtx, 
			      TH2*     data, 
			      TH2*     mcData);
  /** 
   * Make a new centrality bin
   * 
   * @param name   Histogram names
   * @param l      Lower cut
   * @param h      Upper cut
   * 
   * @return Newly allocated object (of our type)
   */
  AliBasedNdetaTask::CentralityBin* 
  MakeCentralityBin(const char* name, Short_t l, Short_t h) const;

  /**
   * A structure holding the per-centrality bin information 
   * 
   */
  class CentralityBin : public AliBasedNdetaTask::CentralityBin 
  {
  public:
    /** 
     * Constructor 
     */
    CentralityBin() : AliBasedNdetaTask::CentralityBin() {}
    /** 
     * Constructor 
     * 
     * @param name Name used for histograms (e.g., Forward)
     * @param low  Lower centrality cut in percent 
     * @param high Upper centrality cut in percent 
     */
    CentralityBin(const char* name, Short_t low, Short_t high)
      : AliBasedNdetaTask::CentralityBin(name, low, high)
    {}
    /** 
     * Copy constructor 
     * 
     * @param other Object to copy from 
     */
    CentralityBin(const CentralityBin& other);
    /** 
     * Destructor 
     */
    virtual ~CentralityBin() {}
    /** 
     * Assignement operator 
     * 
     * 
     * @return 
     */
    CentralityBin& operator=(const CentralityBin&);
    /** 
     * End of processing 
     * 
     * @param sums        List of sums
     * @param results     Output list of results
     * @param scheme      Normalisation scheme options
     * @param trigEff     Trigger efficiency 
     * @param trigEff0    0-bin trigger efficiency 
     * @param rootProj    If true, use TH2::ProjectionX
     * @param corrEmpty   Whether to correct for empty bins
     * @param triggerMask Trigger mask 
     * @param color       Marker colour 
     * @param marker      Marker style 
     * @param mclist      List of MC results 
     * @param truthlist   List of MC truth results 
     */
    virtual void End(TList*      sums, 
		     TList*      results,
		     UShort_t    scheme,
		     Double_t    trigEff,
		     Double_t    trigEff0,
		     Bool_t      rootProj,
		     Bool_t      corrEmpty, 
		     Int_t       triggerMask,
		     Int_t       marker,
		     Int_t       color,
		     TList*      mclist,
		     TList*      truthlist);
  protected: 
    ClassDef(CentralityBin,3); // A centrality bin     
  };

  ClassDef(AliForwarddNdetaTask,3); // Determine multiplicity in forward region
};

#endif
//
// Local Variables:
//  mode: C++
// End:
//
 AliForwarddNdetaTask.h:1
 AliForwarddNdetaTask.h:2
 AliForwarddNdetaTask.h:3
 AliForwarddNdetaTask.h:4
 AliForwarddNdetaTask.h:5
 AliForwarddNdetaTask.h:6
 AliForwarddNdetaTask.h:7
 AliForwarddNdetaTask.h:8
 AliForwarddNdetaTask.h:9
 AliForwarddNdetaTask.h:10
 AliForwarddNdetaTask.h:11
 AliForwarddNdetaTask.h:12
 AliForwarddNdetaTask.h:13
 AliForwarddNdetaTask.h:14
 AliForwarddNdetaTask.h:15
 AliForwarddNdetaTask.h:16
 AliForwarddNdetaTask.h:17
 AliForwarddNdetaTask.h:18
 AliForwarddNdetaTask.h:19
 AliForwarddNdetaTask.h:20
 AliForwarddNdetaTask.h:21
 AliForwarddNdetaTask.h:22
 AliForwarddNdetaTask.h:23
 AliForwarddNdetaTask.h:24
 AliForwarddNdetaTask.h:25
 AliForwarddNdetaTask.h:26
 AliForwarddNdetaTask.h:27
 AliForwarddNdetaTask.h:28
 AliForwarddNdetaTask.h:29
 AliForwarddNdetaTask.h:30
 AliForwarddNdetaTask.h:31
 AliForwarddNdetaTask.h:32
 AliForwarddNdetaTask.h:33
 AliForwarddNdetaTask.h:34
 AliForwarddNdetaTask.h:35
 AliForwarddNdetaTask.h:36
 AliForwarddNdetaTask.h:37
 AliForwarddNdetaTask.h:38
 AliForwarddNdetaTask.h:39
 AliForwarddNdetaTask.h:40
 AliForwarddNdetaTask.h:41
 AliForwarddNdetaTask.h:42
 AliForwarddNdetaTask.h:43
 AliForwarddNdetaTask.h:44
 AliForwarddNdetaTask.h:45
 AliForwarddNdetaTask.h:46
 AliForwarddNdetaTask.h:47
 AliForwarddNdetaTask.h:48
 AliForwarddNdetaTask.h:49
 AliForwarddNdetaTask.h:50
 AliForwarddNdetaTask.h:51
 AliForwarddNdetaTask.h:52
 AliForwarddNdetaTask.h:53
 AliForwarddNdetaTask.h:54
 AliForwarddNdetaTask.h:55
 AliForwarddNdetaTask.h:56
 AliForwarddNdetaTask.h:57
 AliForwarddNdetaTask.h:58
 AliForwarddNdetaTask.h:59
 AliForwarddNdetaTask.h:60
 AliForwarddNdetaTask.h:61
 AliForwarddNdetaTask.h:62
 AliForwarddNdetaTask.h:63
 AliForwarddNdetaTask.h:64
 AliForwarddNdetaTask.h:65
 AliForwarddNdetaTask.h:66
 AliForwarddNdetaTask.h:67
 AliForwarddNdetaTask.h:68
 AliForwarddNdetaTask.h:69
 AliForwarddNdetaTask.h:70
 AliForwarddNdetaTask.h:71
 AliForwarddNdetaTask.h:72
 AliForwarddNdetaTask.h:73
 AliForwarddNdetaTask.h:74
 AliForwarddNdetaTask.h:75
 AliForwarddNdetaTask.h:76
 AliForwarddNdetaTask.h:77
 AliForwarddNdetaTask.h:78
 AliForwarddNdetaTask.h:79
 AliForwarddNdetaTask.h:80
 AliForwarddNdetaTask.h:81
 AliForwarddNdetaTask.h:82
 AliForwarddNdetaTask.h:83
 AliForwarddNdetaTask.h:84
 AliForwarddNdetaTask.h:85
 AliForwarddNdetaTask.h:86
 AliForwarddNdetaTask.h:87
 AliForwarddNdetaTask.h:88
 AliForwarddNdetaTask.h:89
 AliForwarddNdetaTask.h:90
 AliForwarddNdetaTask.h:91
 AliForwarddNdetaTask.h:92
 AliForwarddNdetaTask.h:93
 AliForwarddNdetaTask.h:94
 AliForwarddNdetaTask.h:95
 AliForwarddNdetaTask.h:96
 AliForwarddNdetaTask.h:97
 AliForwarddNdetaTask.h:98
 AliForwarddNdetaTask.h:99
 AliForwarddNdetaTask.h:100
 AliForwarddNdetaTask.h:101
 AliForwarddNdetaTask.h:102
 AliForwarddNdetaTask.h:103
 AliForwarddNdetaTask.h:104
 AliForwarddNdetaTask.h:105
 AliForwarddNdetaTask.h:106
 AliForwarddNdetaTask.h:107
 AliForwarddNdetaTask.h:108
 AliForwarddNdetaTask.h:109
 AliForwarddNdetaTask.h:110
 AliForwarddNdetaTask.h:111
 AliForwarddNdetaTask.h:112
 AliForwarddNdetaTask.h:113
 AliForwarddNdetaTask.h:114
 AliForwarddNdetaTask.h:115
 AliForwarddNdetaTask.h:116
 AliForwarddNdetaTask.h:117
 AliForwarddNdetaTask.h:118
 AliForwarddNdetaTask.h:119
 AliForwarddNdetaTask.h:120
 AliForwarddNdetaTask.h:121
 AliForwarddNdetaTask.h:122
 AliForwarddNdetaTask.h:123
 AliForwarddNdetaTask.h:124
 AliForwarddNdetaTask.h:125
 AliForwarddNdetaTask.h:126
 AliForwarddNdetaTask.h:127
 AliForwarddNdetaTask.h:128
 AliForwarddNdetaTask.h:129
 AliForwarddNdetaTask.h:130
 AliForwarddNdetaTask.h:131
 AliForwarddNdetaTask.h:132
 AliForwarddNdetaTask.h:133
 AliForwarddNdetaTask.h:134
 AliForwarddNdetaTask.h:135
 AliForwarddNdetaTask.h:136
 AliForwarddNdetaTask.h:137
 AliForwarddNdetaTask.h:138
 AliForwarddNdetaTask.h:139
 AliForwarddNdetaTask.h:140
 AliForwarddNdetaTask.h:141
 AliForwarddNdetaTask.h:142
 AliForwarddNdetaTask.h:143
 AliForwarddNdetaTask.h:144
 AliForwarddNdetaTask.h:145
 AliForwarddNdetaTask.h:146
 AliForwarddNdetaTask.h:147
 AliForwarddNdetaTask.h:148
 AliForwarddNdetaTask.h:149
 AliForwarddNdetaTask.h:150
 AliForwarddNdetaTask.h:151
 AliForwarddNdetaTask.h:152
 AliForwarddNdetaTask.h:153
 AliForwarddNdetaTask.h:154
 AliForwarddNdetaTask.h:155
 AliForwarddNdetaTask.h:156
 AliForwarddNdetaTask.h:157
 AliForwarddNdetaTask.h:158
 AliForwarddNdetaTask.h:159
 AliForwarddNdetaTask.h:160
 AliForwarddNdetaTask.h:161
 AliForwarddNdetaTask.h:162
 AliForwarddNdetaTask.h:163
 AliForwarddNdetaTask.h:164
 AliForwarddNdetaTask.h:165
 AliForwarddNdetaTask.h:166
 AliForwarddNdetaTask.h:167
 AliForwarddNdetaTask.h:168
 AliForwarddNdetaTask.h:169
 AliForwarddNdetaTask.h:170
 AliForwarddNdetaTask.h:171
 AliForwarddNdetaTask.h:172
 AliForwarddNdetaTask.h:173
 AliForwarddNdetaTask.h:174
 AliForwarddNdetaTask.h:175
 AliForwarddNdetaTask.h:176
 AliForwarddNdetaTask.h:177