ROOT logo
/**
 * @file   AliForwardMultiplicityDistribution.h
 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
 * @date   Thu Feb  7 01:02:42 2013
 * 
 * @brief  
 * 
 * 
 * @ingroup pwglf_forward_multdist
 */
#ifndef ALIFORWARDMULTIPLICITYDISTRIBUTION_H
#define ALIFORWARDMULTIPLICITYDISTRIBUTION_H
#include "AliBaseAODTask.h"

class TH2D;

/**
 * Task to do the multiplicity distibution
 * 
 * @ingroup pwglf_forward Tasks
 * @ingroup pwglf_forward_multdist
 * @todo Should not inherit from AliBasedNdetaTask 
 */
class AliForwardMultiplicityDistribution : public AliBaseAODTask
{
public:
  /**
   * Default Constructor
   */
  AliForwardMultiplicityDistribution();
  /**
   * Constructor
   */
  AliForwardMultiplicityDistribution(const char* name);
  /**
   * Destructor
   */
  virtual ~AliForwardMultiplicityDistribution(){}
  /**
   * Embedded Class begins here
   */
  struct Bin : public TNamed
  {
    /**
     * Default Constructor
     */
    Bin();
    /**
     * Constructor
     */
    Bin(Double_t etaLow, Double_t etaHigh);
    /**
     * Copy Constructor
     */    
    Bin(const Bin&);
    /**
     * Assignment operator
     */
    Bin& operator=(const Bin&){return*this;}
    /**
     * Destructor
     */    
    ~Bin(){}
    /**
     *  Define outputs of a single eta bin
     */
    virtual void CreateOutputObjectss(TList* cont,  Int_t max);
    /**
     * Process a single eta bin
     */
    virtual void Process(TH1D* dndetaForward, TH1D* dndetaCentral, TH1D* normForward,   TH1D* normCentral, Double_t VtxZ);
    Double_t fEtaLow;           // low eta limit 
    Double_t fEtaHigh;          // high eta limit 
    TH1D*    fHist;             // multiplicity distribution hist 
    TH1D*    fHistPlus05;       // mult. dist. hist scaled up with 5%
    TH1D*    fHistPlus075;      // mult. dist. hist scaled up with 7.5%
    TH1D*    fHistPlus10;       // mult. dist. hist scaled up with 10%
    TH1D*    fHistMinus05;      // mult. dist. hist scaled down with 5%
    TH1D*    fHistMinus075;     // mult. dist. hist scaled down with 7.5%
    TH1D*    fHistMinus10;      // mult. dist. hist scaled down with 10%
    TH1D*    fHistPlusSys;      // mult. dist. hist scaled up with the event uncertainty
    TH1D*    fHistMinusSys;     // mult. dist, hist scaled down with the event uncertainty
    TH2D*    fAcceptance;       // histogram showing the 'holes' in acceptance. 
                                // BinContent of 1 shows a hole, and BinContent of 10 shows data coverage
    TH2D*    fVtxZvsNdataBins;  // VtxZ vs. number of data acceptance bins (normalised to the eta range) 
    
    ClassDef(Bin,3);  // Manager of data 
  };
  /**
   * Create Output Objects
   */
  virtual Bool_t Book();
  /**
   * User Exec
   */
  Bool_t Event(AliAODEvent& aod);
  /**
   * Terminate
   */
  Bool_t Finalize() { return true; }
  /**
   * Set Centrality
   */
  void SetCentrality(Int_t low, Int_t high) { SetCentralityAxis(low, high); }
  /**
   * Set fNBins, multiplicity histos run from 0 to fNBins
   */
  void SetNBins(Int_t n){fNBins= n;}
  /** 
   * Add another eta bin to the task
   */
  void AddBin(Double_t etaLow, Double_t etaHigh){fBins.Add(new Bin(etaLow, etaHigh)); }
  /**
   *  Form name of eta bin
   */
  static const Char_t* FormBinName(Double_t etaLow, Double_t etaHigh);
protected:
  /**
   * Copy Constructor
   */ 
  AliForwardMultiplicityDistribution(const AliForwardMultiplicityDistribution&);
  /**
   * Assignment Operator
   */
  AliForwardMultiplicityDistribution& 
  operator=(const AliForwardMultiplicityDistribution&);

  TList  fBins;      // eta bin list
  Int_t  fNBins;     // multiplicity axis' runs from 0 to fNbins
  ClassDef(AliForwardMultiplicityDistribution, 3); 
};

#endif
// Local Variables:
//   mode: C++
// End:
 AliForwardMultiplicityDistribution.h:1
 AliForwardMultiplicityDistribution.h:2
 AliForwardMultiplicityDistribution.h:3
 AliForwardMultiplicityDistribution.h:4
 AliForwardMultiplicityDistribution.h:5
 AliForwardMultiplicityDistribution.h:6
 AliForwardMultiplicityDistribution.h:7
 AliForwardMultiplicityDistribution.h:8
 AliForwardMultiplicityDistribution.h:9
 AliForwardMultiplicityDistribution.h:10
 AliForwardMultiplicityDistribution.h:11
 AliForwardMultiplicityDistribution.h:12
 AliForwardMultiplicityDistribution.h:13
 AliForwardMultiplicityDistribution.h:14
 AliForwardMultiplicityDistribution.h:15
 AliForwardMultiplicityDistribution.h:16
 AliForwardMultiplicityDistribution.h:17
 AliForwardMultiplicityDistribution.h:18
 AliForwardMultiplicityDistribution.h:19
 AliForwardMultiplicityDistribution.h:20
 AliForwardMultiplicityDistribution.h:21
 AliForwardMultiplicityDistribution.h:22
 AliForwardMultiplicityDistribution.h:23
 AliForwardMultiplicityDistribution.h:24
 AliForwardMultiplicityDistribution.h:25
 AliForwardMultiplicityDistribution.h:26
 AliForwardMultiplicityDistribution.h:27
 AliForwardMultiplicityDistribution.h:28
 AliForwardMultiplicityDistribution.h:29
 AliForwardMultiplicityDistribution.h:30
 AliForwardMultiplicityDistribution.h:31
 AliForwardMultiplicityDistribution.h:32
 AliForwardMultiplicityDistribution.h:33
 AliForwardMultiplicityDistribution.h:34
 AliForwardMultiplicityDistribution.h:35
 AliForwardMultiplicityDistribution.h:36
 AliForwardMultiplicityDistribution.h:37
 AliForwardMultiplicityDistribution.h:38
 AliForwardMultiplicityDistribution.h:39
 AliForwardMultiplicityDistribution.h:40
 AliForwardMultiplicityDistribution.h:41
 AliForwardMultiplicityDistribution.h:42
 AliForwardMultiplicityDistribution.h:43
 AliForwardMultiplicityDistribution.h:44
 AliForwardMultiplicityDistribution.h:45
 AliForwardMultiplicityDistribution.h:46
 AliForwardMultiplicityDistribution.h:47
 AliForwardMultiplicityDistribution.h:48
 AliForwardMultiplicityDistribution.h:49
 AliForwardMultiplicityDistribution.h:50
 AliForwardMultiplicityDistribution.h:51
 AliForwardMultiplicityDistribution.h:52
 AliForwardMultiplicityDistribution.h:53
 AliForwardMultiplicityDistribution.h:54
 AliForwardMultiplicityDistribution.h:55
 AliForwardMultiplicityDistribution.h:56
 AliForwardMultiplicityDistribution.h:57
 AliForwardMultiplicityDistribution.h:58
 AliForwardMultiplicityDistribution.h:59
 AliForwardMultiplicityDistribution.h:60
 AliForwardMultiplicityDistribution.h:61
 AliForwardMultiplicityDistribution.h:62
 AliForwardMultiplicityDistribution.h:63
 AliForwardMultiplicityDistribution.h:64
 AliForwardMultiplicityDistribution.h:65
 AliForwardMultiplicityDistribution.h:66
 AliForwardMultiplicityDistribution.h:67
 AliForwardMultiplicityDistribution.h:68
 AliForwardMultiplicityDistribution.h:69
 AliForwardMultiplicityDistribution.h:70
 AliForwardMultiplicityDistribution.h:71
 AliForwardMultiplicityDistribution.h:72
 AliForwardMultiplicityDistribution.h:73
 AliForwardMultiplicityDistribution.h:74
 AliForwardMultiplicityDistribution.h:75
 AliForwardMultiplicityDistribution.h:76
 AliForwardMultiplicityDistribution.h:77
 AliForwardMultiplicityDistribution.h:78
 AliForwardMultiplicityDistribution.h:79
 AliForwardMultiplicityDistribution.h:80
 AliForwardMultiplicityDistribution.h:81
 AliForwardMultiplicityDistribution.h:82
 AliForwardMultiplicityDistribution.h:83
 AliForwardMultiplicityDistribution.h:84
 AliForwardMultiplicityDistribution.h:85
 AliForwardMultiplicityDistribution.h:86
 AliForwardMultiplicityDistribution.h:87
 AliForwardMultiplicityDistribution.h:88
 AliForwardMultiplicityDistribution.h:89
 AliForwardMultiplicityDistribution.h:90
 AliForwardMultiplicityDistribution.h:91
 AliForwardMultiplicityDistribution.h:92
 AliForwardMultiplicityDistribution.h:93
 AliForwardMultiplicityDistribution.h:94
 AliForwardMultiplicityDistribution.h:95
 AliForwardMultiplicityDistribution.h:96
 AliForwardMultiplicityDistribution.h:97
 AliForwardMultiplicityDistribution.h:98
 AliForwardMultiplicityDistribution.h:99
 AliForwardMultiplicityDistribution.h:100
 AliForwardMultiplicityDistribution.h:101
 AliForwardMultiplicityDistribution.h:102
 AliForwardMultiplicityDistribution.h:103
 AliForwardMultiplicityDistribution.h:104
 AliForwardMultiplicityDistribution.h:105
 AliForwardMultiplicityDistribution.h:106
 AliForwardMultiplicityDistribution.h:107
 AliForwardMultiplicityDistribution.h:108
 AliForwardMultiplicityDistribution.h:109
 AliForwardMultiplicityDistribution.h:110
 AliForwardMultiplicityDistribution.h:111
 AliForwardMultiplicityDistribution.h:112
 AliForwardMultiplicityDistribution.h:113
 AliForwardMultiplicityDistribution.h:114
 AliForwardMultiplicityDistribution.h:115
 AliForwardMultiplicityDistribution.h:116
 AliForwardMultiplicityDistribution.h:117
 AliForwardMultiplicityDistribution.h:118
 AliForwardMultiplicityDistribution.h:119
 AliForwardMultiplicityDistribution.h:120
 AliForwardMultiplicityDistribution.h:121
 AliForwardMultiplicityDistribution.h:122
 AliForwardMultiplicityDistribution.h:123
 AliForwardMultiplicityDistribution.h:124
 AliForwardMultiplicityDistribution.h:125
 AliForwardMultiplicityDistribution.h:126
 AliForwardMultiplicityDistribution.h:127
 AliForwardMultiplicityDistribution.h:128
 AliForwardMultiplicityDistribution.h:129
 AliForwardMultiplicityDistribution.h:130
 AliForwardMultiplicityDistribution.h:131
 AliForwardMultiplicityDistribution.h:132
 AliForwardMultiplicityDistribution.h:133
 AliForwardMultiplicityDistribution.h:134
 AliForwardMultiplicityDistribution.h:135
 AliForwardMultiplicityDistribution.h:136