ROOT logo
#ifndef ALIFORWARDMULTDIST_H
#define ALIFORWARDMULTDIST_H
/**
 * @file   AliForwardMultDists.h
 * @author Christian Holm Christensen <cholm@nbi.dk>
 * @date   Tue Nov 12 09:57:28 2013
 * 
 * @brief  Class to make raw @f$P(N_{ch})@f$ distributions 
 * 
 * @ingroup pwglf_forward_multdist 
 */

#include "AliBaseAODTask.h"
#include <TList.h>
#include <TString.h>
class TH1;
class TH2;
class AliAODForwardMult;

/**
 * Class to make raw @f$ P(N_{ch})@f$ distributions 
 * 
 * @ingroup pwglf_forward_multdist
 */
class AliForwardMultDists : public AliBaseAODTask
{
public:
  enum { 
    /** Mark for invalid pseudo-rapidity */
    kInvalidEta = 999
  };
  /** 
   * Histogram enumeration 
   */
  enum { 
    /** Measured */
    kAnalysis = 1, 
    /** MC-truth */
    kMC       = 2, 
    /** MC-truth Triggered */
    kTrigger  = 3, 
    /** MC-truth w/vertex */
    kVertex   = 4, 
    /** MC-truth triggered and w/vertex */
    kTriggerVertex = 5
  };
  /**
   * Structure to define @f$\eta@f$ bins with an @f$ N_{ch}@f$ axis 
   */
  struct BinSpec 
  {
    /** 
     * Constructor
     * 
     * @param etaMin Low cut on @f$\eta@f$
     * @param etaMax High cut on @f$\eta@f$
     * @param nchLow Lowest @f$ N_{ch}@f$ (e.g., -0.5);
     */
    BinSpec(Double_t etaMin, Double_t etaMax, Double_t nchLow);
    /** 
     * Push @a n bins of with @a d in @f$ N_{ch}@f$ onto the axis 
     * 
     * If only a single push is done, then we will get an axis of
     * equally sized bins (@a d) from @f$ l@f$ edge to @f$ nd+low@f$ -
     * e.g., if one only does 
     *
     * @code
     * BinSpec b(e1, e2, -.5);
     * b.Push(10, 1);
     * @endcode 
     *
     * One ends up with 10 bins from -0.5 to 9.5. 
     *
     * @param n Number of bins to push
     * @param d Bin width of each of the bins
     */
    void Push(UShort_t n, Double_t d);
    /** 
     * Get the axis computed from the setup using Push
     * 
     * @return Reference to the axis 
     */
    const TAxis& Axis() const;
    Double_t fEtaMin; // Least pseudo-rapidity
    Double_t fEtaMax; // Largest pseudo-rapidity
    Double_t fLow;    // Low cut 
    TArrayI  fN;      // Number of bins
    TArrayD  fD;      // Bin widths 
    mutable TAxis    fAxis; // Our axis 
  };

  /** 
   * Default constructor
   */
  AliForwardMultDists();
  /** 
   * User constructor 
   * 
   * @param name Name of the task 
   */
  AliForwardMultDists(const char* name);
  /** 
   * Destructor
   */
  virtual ~AliForwardMultDists() {}
  /** 
   * @{ 
   * @name Interface memer functions 
   */
  /** 
   * Create output objects - called at start of job in slave 
   * 
   * @return true on success
   */
  Bool_t Book();
  /** 
   * Set-up internal structures on first seen event 
   * 
   * @return true on success
   */
  Bool_t PreData();
  /** 
   * Executed before every event 
   * 
   * @return true on success
   */
  Bool_t PreEvent() { fIsSelected = false; return true; }
  /** 
   * Analyse a single event 
   * 
   * @param aod AOD Event
   *
   * @return true on success
   */
  Bool_t Event(AliAODEvent& aod);
  /** 
   * Called at the end of the final processing of the job on the
   * full data set (merged data)
   * 
   * @return true on success
   */
  Bool_t Finalize();
  /* @} */
  /**
   * @{
   * @name Bin definitions 
   */
  /** 
   * Add an @f$ \eta@f$ bin
   * 
   * @param spec Bin specification 
   */
  void AddBin(const BinSpec& spec);
  /** 
   * Add an @f$ \eta@f$ bin.
   * 
   * @param etaLow Low cut on @f$\eta@f$  
   * @param etaMax High cut on @f$\eta@f$ 
   * @param nAxis  Axis to use for measured @f$ N_{ch}@f$ 
   */
  void AddBin(Double_t etaLow, Double_t etaMax, const TAxis& nAxis); 
  /** 
   * Add an @f$\eta@f$ bin
   * 
   * @param etaLow Low cut on @f$\eta@f$ 
   * @param etaMax High cut on @f$\eta@f$ 
   * @param nMax   Maximum @f$ N_{ch}@f$ 
   * @param nDiv   Number of subdivisions per @f$ N_{ch}@f$
   *
   */
  void AddBin(Double_t etaLow, Double_t etaMax, UShort_t nMax, UShort_t nDiv); 
  /* @} */
  /** 
   * Whether to use the stored phi acceptance 
   * 
   * @param use If true, use stored phi acceptance 
   */
  void SetUsePhiAcc(Bool_t use) { fUsePhiAcc = use; }
  /** 
   * Print this task 
   * 
   * @param option Not used
   */
  void Print(Option_t* option="") const;
protected:
  /** 
   * Project a 2D histogram into a 1D histogram taking care to use
   * either the @f$\phi@f$ acceptance stored in the overflow bins, or
   * the @f$\eta@f$ coverage stored in the underflow bins.
   * 
   * @param input      2D histogram to project 
   * @param cache      1D histogram to project into 
   * @param usePhiAcc  If true, use the @f$\phi@f$ acceptance stored in
   * the overflow bins, or if false the @f$\eta@f$ coverage stored in
   * the underflow bins.
   */
  static void ProjectX(const TH2& input, TH1& cache, Bool_t usePhiAcc=true);
  /** 
   * Project on @f$\eta@f$ axis.  If any of the pointers passed is
   * zero, do nothing.
   * 
   * @param input 
   * @param cache 
   */
  static void ProjectX(const TH2* input, TH1* cache);
  /** 
   * An @f$\eta@f$ bin 
   */
  struct EtaBin : public TObject
  {
    /** 
     * I/O constructor
     */
    EtaBin();
    /** 
     * User constructor 
     * 
     * @param minEta Least @f$\eta@f$ to consider 
     * @param maxEta Largest @f$\eta@f$ to consider 
     * @param mAxis  The @f$ N_{ch}@f$ axis to use for measured data 
     */
    EtaBin(Double_t minEta, Double_t maxEta, const TAxis& mAxis); 
    /** 
     * Copy constructor
     *
     * @param o object to copy fron
     */
    EtaBin(const EtaBin& o);
    /** 
     * Assignment operator
     * 
     * @param o object to assign from 
     *
     * @return Reference to this object
     */
    EtaBin& operator=(const EtaBin& o);
    /** 
     * Destructor
     */
    virtual ~EtaBin() {}
    /** 
     * Get the name of the bin
     */
    const char* GetName() const { return fName.Data(); }
    /** 
     * Is this bin symmetric around 0?
     */
    Bool_t IsSymmetric() const;
    /** 
     * Is this bin positive only?
     */
    Bool_t IsNegative() const;
    /** 
     * Is this bin positive only?
     */
    Bool_t IsPositive() const;
    /** 
     * Get parent container name 
     * 
     * 
     * @return Parent container name
     */
    const char* ParentName() const;
    /** 
     * Find the parent container.  if not found, and @a create is
     * true, then make the container.
     * 
     * @param l       Top container 
     * @param create  If true, create container if not found
     * 
     * @return Container, or null
     */
    TList* FindParent(TList* l, Bool_t create=true) const;
    /** 
     * Create a 1D histogram with specified axis 
     * 
     * @param name  Name of histogram 
     * @param title Title of histogram 
     * @param xAxis X-axis to use 
     * 
     * @return Created histogram
     */
    static TH1* CreateH1(const char* name, const char* title, 
			 const TAxis& xAxis);
    /** 
     * Create a 2D histogram with specified axis 
     * 
     * @param name  Name of histogram 
     * @param title Title of histogram 
     * @param xAxis X-axis to use 
     * @param yAxis Y-axis to use 
     * 
     * @return Created histogram
     */
    static TH2* CreateH2(const char* name, const char* title, 
			 const TAxis& xAxis, const TAxis& yAxis);
    /** 
     * Set-up internal structures on first event. 
     * 
     * @param list  List to add information to
     * @param hist  Template histogram 
     * @param useMC Whether to set-up for MC input 
     */
    void SetupForData(TList* list, const TH2& hist, Bool_t useMC);
    /** 
     * Process a single event 
     * 
     * @param sumForward  Projection of forward data
     * @param sumCentral  Projection of the central data
     * @param forward     The original forward data 
     * @param central     The original central data
     * @param accepted    True if event is accepted for analysis
     * @param mc          Distribution of primary particles from MC
     */
    void Process(const TH1& sumForward, const TH1& sumCentral,
		 const TH2& forward,    const TH2& central,
		 Bool_t     accepted,   const TH1* mc);
    /** 
     * Called at the end of the final processing of the job on the
     * full data set (merged data)
     * 
     * @param in    Input list
     * @param out   Output list 
     */
    void Terminate(TList* in, TList* out);
      
    TString  fName;          // Name of this bin
    TAxis    fMAxis;         // Axis used for measured Nch
    TAxis    fTAxis;         // Axis used for true Nch
    Double_t fMinEta;        // Least @f$\eta@f$ to consider
    Double_t fMaxEta;        // Largest @f$\eta@f$ to consider
    Int_t    fMinBin;        // Least @f$\eta@f$ bin to consider
    Int_t    fMaxBin;        // Largest @f$\eta@f$ bin to consider
    TH1*     fSum;           // Distribution 
    TH2*     fCorr;          // Correlation between forward and central
    TH2*     fResponse;      // Response matrix (for MC)
    TH1*     fTruth;         // `true' distribution 
    TH1*     fTruthAccepted; // `true' distribution for accepted events
    TH1*     fCoverage;      // How much was covered

    ClassDef(EtaBin,2);
  };
  /** 
   * Copy constructor
   *
   * @param o object to copy fron
   */
  AliForwardMultDists(const AliForwardMultDists& o);
  /** 
   * Assignment operator
   * 
   * @param o object to assign from 
   *
   * @return Reference to this object
   */
  AliForwardMultDists& operator=(const AliForwardMultDists& o);
  /** 
   * Check the event 
   * 
   * @param fwd Forward data structure 
   * 
   * @return Always true 
   */
  Bool_t CheckEvent(const AliAODForwardMult& fwd);

  TList    fBins;         // List of bins 
  TList*   fSymmetric;    // Bins symmetric around 0
  TList*   fNegative;     // Bins on negative side only 
  TList*   fPositive;     // Bins on the positive side only
  TH1*     fMCVertex;     // Histogram of MC IpZ
  TH2*     fDiag;         // Diagnostics
  TH1*     fForwardCache; // Projection cache 
  TH1*     fCentralCache; // Projection cache 
  TH1*     fMCCache;      // Projection cache 
  Bool_t   fUsePhiAcc;    // If true, scale by phi acceptance 
  Bool_t   fIsSelected;   // IF the even was selected

  ClassDef(AliForwardMultDists,1);
};

#endif
// Local Variables:
//  mode: C++
// End:


 AliForwardMultDists.h:1
 AliForwardMultDists.h:2
 AliForwardMultDists.h:3
 AliForwardMultDists.h:4
 AliForwardMultDists.h:5
 AliForwardMultDists.h:6
 AliForwardMultDists.h:7
 AliForwardMultDists.h:8
 AliForwardMultDists.h:9
 AliForwardMultDists.h:10
 AliForwardMultDists.h:11
 AliForwardMultDists.h:12
 AliForwardMultDists.h:13
 AliForwardMultDists.h:14
 AliForwardMultDists.h:15
 AliForwardMultDists.h:16
 AliForwardMultDists.h:17
 AliForwardMultDists.h:18
 AliForwardMultDists.h:19
 AliForwardMultDists.h:20
 AliForwardMultDists.h:21
 AliForwardMultDists.h:22
 AliForwardMultDists.h:23
 AliForwardMultDists.h:24
 AliForwardMultDists.h:25
 AliForwardMultDists.h:26
 AliForwardMultDists.h:27
 AliForwardMultDists.h:28
 AliForwardMultDists.h:29
 AliForwardMultDists.h:30
 AliForwardMultDists.h:31
 AliForwardMultDists.h:32
 AliForwardMultDists.h:33
 AliForwardMultDists.h:34
 AliForwardMultDists.h:35
 AliForwardMultDists.h:36
 AliForwardMultDists.h:37
 AliForwardMultDists.h:38
 AliForwardMultDists.h:39
 AliForwardMultDists.h:40
 AliForwardMultDists.h:41
 AliForwardMultDists.h:42
 AliForwardMultDists.h:43
 AliForwardMultDists.h:44
 AliForwardMultDists.h:45
 AliForwardMultDists.h:46
 AliForwardMultDists.h:47
 AliForwardMultDists.h:48
 AliForwardMultDists.h:49
 AliForwardMultDists.h:50
 AliForwardMultDists.h:51
 AliForwardMultDists.h:52
 AliForwardMultDists.h:53
 AliForwardMultDists.h:54
 AliForwardMultDists.h:55
 AliForwardMultDists.h:56
 AliForwardMultDists.h:57
 AliForwardMultDists.h:58
 AliForwardMultDists.h:59
 AliForwardMultDists.h:60
 AliForwardMultDists.h:61
 AliForwardMultDists.h:62
 AliForwardMultDists.h:63
 AliForwardMultDists.h:64
 AliForwardMultDists.h:65
 AliForwardMultDists.h:66
 AliForwardMultDists.h:67
 AliForwardMultDists.h:68
 AliForwardMultDists.h:69
 AliForwardMultDists.h:70
 AliForwardMultDists.h:71
 AliForwardMultDists.h:72
 AliForwardMultDists.h:73
 AliForwardMultDists.h:74
 AliForwardMultDists.h:75
 AliForwardMultDists.h:76
 AliForwardMultDists.h:77
 AliForwardMultDists.h:78
 AliForwardMultDists.h:79
 AliForwardMultDists.h:80
 AliForwardMultDists.h:81
 AliForwardMultDists.h:82
 AliForwardMultDists.h:83
 AliForwardMultDists.h:84
 AliForwardMultDists.h:85
 AliForwardMultDists.h:86
 AliForwardMultDists.h:87
 AliForwardMultDists.h:88
 AliForwardMultDists.h:89
 AliForwardMultDists.h:90
 AliForwardMultDists.h:91
 AliForwardMultDists.h:92
 AliForwardMultDists.h:93
 AliForwardMultDists.h:94
 AliForwardMultDists.h:95
 AliForwardMultDists.h:96
 AliForwardMultDists.h:97
 AliForwardMultDists.h:98
 AliForwardMultDists.h:99
 AliForwardMultDists.h:100
 AliForwardMultDists.h:101
 AliForwardMultDists.h:102
 AliForwardMultDists.h:103
 AliForwardMultDists.h:104
 AliForwardMultDists.h:105
 AliForwardMultDists.h:106
 AliForwardMultDists.h:107
 AliForwardMultDists.h:108
 AliForwardMultDists.h:109
 AliForwardMultDists.h:110
 AliForwardMultDists.h:111
 AliForwardMultDists.h:112
 AliForwardMultDists.h:113
 AliForwardMultDists.h:114
 AliForwardMultDists.h:115
 AliForwardMultDists.h:116
 AliForwardMultDists.h:117
 AliForwardMultDists.h:118
 AliForwardMultDists.h:119
 AliForwardMultDists.h:120
 AliForwardMultDists.h:121
 AliForwardMultDists.h:122
 AliForwardMultDists.h:123
 AliForwardMultDists.h:124
 AliForwardMultDists.h:125
 AliForwardMultDists.h:126
 AliForwardMultDists.h:127
 AliForwardMultDists.h:128
 AliForwardMultDists.h:129
 AliForwardMultDists.h:130
 AliForwardMultDists.h:131
 AliForwardMultDists.h:132
 AliForwardMultDists.h:133
 AliForwardMultDists.h:134
 AliForwardMultDists.h:135
 AliForwardMultDists.h:136
 AliForwardMultDists.h:137
 AliForwardMultDists.h:138
 AliForwardMultDists.h:139
 AliForwardMultDists.h:140
 AliForwardMultDists.h:141
 AliForwardMultDists.h:142
 AliForwardMultDists.h:143
 AliForwardMultDists.h:144
 AliForwardMultDists.h:145
 AliForwardMultDists.h:146
 AliForwardMultDists.h:147
 AliForwardMultDists.h:148
 AliForwardMultDists.h:149
 AliForwardMultDists.h:150
 AliForwardMultDists.h:151
 AliForwardMultDists.h:152
 AliForwardMultDists.h:153
 AliForwardMultDists.h:154
 AliForwardMultDists.h:155
 AliForwardMultDists.h:156
 AliForwardMultDists.h:157
 AliForwardMultDists.h:158
 AliForwardMultDists.h:159
 AliForwardMultDists.h:160
 AliForwardMultDists.h:161
 AliForwardMultDists.h:162
 AliForwardMultDists.h:163
 AliForwardMultDists.h:164
 AliForwardMultDists.h:165
 AliForwardMultDists.h:166
 AliForwardMultDists.h:167
 AliForwardMultDists.h:168
 AliForwardMultDists.h:169
 AliForwardMultDists.h:170
 AliForwardMultDists.h:171
 AliForwardMultDists.h:172
 AliForwardMultDists.h:173
 AliForwardMultDists.h:174
 AliForwardMultDists.h:175
 AliForwardMultDists.h:176
 AliForwardMultDists.h:177
 AliForwardMultDists.h:178
 AliForwardMultDists.h:179
 AliForwardMultDists.h:180
 AliForwardMultDists.h:181
 AliForwardMultDists.h:182
 AliForwardMultDists.h:183
 AliForwardMultDists.h:184
 AliForwardMultDists.h:185
 AliForwardMultDists.h:186
 AliForwardMultDists.h:187
 AliForwardMultDists.h:188
 AliForwardMultDists.h:189
 AliForwardMultDists.h:190
 AliForwardMultDists.h:191
 AliForwardMultDists.h:192
 AliForwardMultDists.h:193
 AliForwardMultDists.h:194
 AliForwardMultDists.h:195
 AliForwardMultDists.h:196
 AliForwardMultDists.h:197
 AliForwardMultDists.h:198
 AliForwardMultDists.h:199
 AliForwardMultDists.h:200
 AliForwardMultDists.h:201
 AliForwardMultDists.h:202
 AliForwardMultDists.h:203
 AliForwardMultDists.h:204
 AliForwardMultDists.h:205
 AliForwardMultDists.h:206
 AliForwardMultDists.h:207
 AliForwardMultDists.h:208
 AliForwardMultDists.h:209
 AliForwardMultDists.h:210
 AliForwardMultDists.h:211
 AliForwardMultDists.h:212
 AliForwardMultDists.h:213
 AliForwardMultDists.h:214
 AliForwardMultDists.h:215
 AliForwardMultDists.h:216
 AliForwardMultDists.h:217
 AliForwardMultDists.h:218
 AliForwardMultDists.h:219
 AliForwardMultDists.h:220
 AliForwardMultDists.h:221
 AliForwardMultDists.h:222
 AliForwardMultDists.h:223
 AliForwardMultDists.h:224
 AliForwardMultDists.h:225
 AliForwardMultDists.h:226
 AliForwardMultDists.h:227
 AliForwardMultDists.h:228
 AliForwardMultDists.h:229
 AliForwardMultDists.h:230
 AliForwardMultDists.h:231
 AliForwardMultDists.h:232
 AliForwardMultDists.h:233
 AliForwardMultDists.h:234
 AliForwardMultDists.h:235
 AliForwardMultDists.h:236
 AliForwardMultDists.h:237
 AliForwardMultDists.h:238
 AliForwardMultDists.h:239
 AliForwardMultDists.h:240
 AliForwardMultDists.h:241
 AliForwardMultDists.h:242
 AliForwardMultDists.h:243
 AliForwardMultDists.h:244
 AliForwardMultDists.h:245
 AliForwardMultDists.h:246
 AliForwardMultDists.h:247
 AliForwardMultDists.h:248
 AliForwardMultDists.h:249
 AliForwardMultDists.h:250
 AliForwardMultDists.h:251
 AliForwardMultDists.h:252
 AliForwardMultDists.h:253
 AliForwardMultDists.h:254
 AliForwardMultDists.h:255
 AliForwardMultDists.h:256
 AliForwardMultDists.h:257
 AliForwardMultDists.h:258
 AliForwardMultDists.h:259
 AliForwardMultDists.h:260
 AliForwardMultDists.h:261
 AliForwardMultDists.h:262
 AliForwardMultDists.h:263
 AliForwardMultDists.h:264
 AliForwardMultDists.h:265
 AliForwardMultDists.h:266
 AliForwardMultDists.h:267
 AliForwardMultDists.h:268
 AliForwardMultDists.h:269
 AliForwardMultDists.h:270
 AliForwardMultDists.h:271
 AliForwardMultDists.h:272
 AliForwardMultDists.h:273
 AliForwardMultDists.h:274
 AliForwardMultDists.h:275
 AliForwardMultDists.h:276
 AliForwardMultDists.h:277
 AliForwardMultDists.h:278
 AliForwardMultDists.h:279
 AliForwardMultDists.h:280
 AliForwardMultDists.h:281
 AliForwardMultDists.h:282
 AliForwardMultDists.h:283
 AliForwardMultDists.h:284
 AliForwardMultDists.h:285
 AliForwardMultDists.h:286
 AliForwardMultDists.h:287
 AliForwardMultDists.h:288
 AliForwardMultDists.h:289
 AliForwardMultDists.h:290
 AliForwardMultDists.h:291
 AliForwardMultDists.h:292
 AliForwardMultDists.h:293
 AliForwardMultDists.h:294
 AliForwardMultDists.h:295
 AliForwardMultDists.h:296
 AliForwardMultDists.h:297
 AliForwardMultDists.h:298
 AliForwardMultDists.h:299
 AliForwardMultDists.h:300
 AliForwardMultDists.h:301
 AliForwardMultDists.h:302
 AliForwardMultDists.h:303
 AliForwardMultDists.h:304
 AliForwardMultDists.h:305
 AliForwardMultDists.h:306
 AliForwardMultDists.h:307
 AliForwardMultDists.h:308
 AliForwardMultDists.h:309
 AliForwardMultDists.h:310
 AliForwardMultDists.h:311
 AliForwardMultDists.h:312
 AliForwardMultDists.h:313
 AliForwardMultDists.h:314
 AliForwardMultDists.h:315
 AliForwardMultDists.h:316
 AliForwardMultDists.h:317
 AliForwardMultDists.h:318
 AliForwardMultDists.h:319
 AliForwardMultDists.h:320
 AliForwardMultDists.h:321
 AliForwardMultDists.h:322
 AliForwardMultDists.h:323
 AliForwardMultDists.h:324
 AliForwardMultDists.h:325
 AliForwardMultDists.h:326
 AliForwardMultDists.h:327
 AliForwardMultDists.h:328
 AliForwardMultDists.h:329
 AliForwardMultDists.h:330
 AliForwardMultDists.h:331
 AliForwardMultDists.h:332
 AliForwardMultDists.h:333
 AliForwardMultDists.h:334
 AliForwardMultDists.h:335
 AliForwardMultDists.h:336
 AliForwardMultDists.h:337
 AliForwardMultDists.h:338
 AliForwardMultDists.h:339
 AliForwardMultDists.h:340
 AliForwardMultDists.h:341
 AliForwardMultDists.h:342
 AliForwardMultDists.h:343
 AliForwardMultDists.h:344
 AliForwardMultDists.h:345
 AliForwardMultDists.h:346
 AliForwardMultDists.h:347
 AliForwardMultDists.h:348
 AliForwardMultDists.h:349
 AliForwardMultDists.h:350
 AliForwardMultDists.h:351
 AliForwardMultDists.h:352
 AliForwardMultDists.h:353
 AliForwardMultDists.h:354
 AliForwardMultDists.h:355
 AliForwardMultDists.h:356
 AliForwardMultDists.h:357
 AliForwardMultDists.h:358
 AliForwardMultDists.h:359
 AliForwardMultDists.h:360
 AliForwardMultDists.h:361
 AliForwardMultDists.h:362
 AliForwardMultDists.h:363
 AliForwardMultDists.h:364
 AliForwardMultDists.h:365
 AliForwardMultDists.h:366
 AliForwardMultDists.h:367
 AliForwardMultDists.h:368
 AliForwardMultDists.h:369
 AliForwardMultDists.h:370
 AliForwardMultDists.h:371
 AliForwardMultDists.h:372
 AliForwardMultDists.h:373
 AliForwardMultDists.h:374
 AliForwardMultDists.h:375
 AliForwardMultDists.h:376
 AliForwardMultDists.h:377
 AliForwardMultDists.h:378
 AliForwardMultDists.h:379
 AliForwardMultDists.h:380
 AliForwardMultDists.h:381
 AliForwardMultDists.h:382
 AliForwardMultDists.h:383
 AliForwardMultDists.h:384
 AliForwardMultDists.h:385
 AliForwardMultDists.h:386