ROOT logo
#ifndef ALIFMDRECONSTRUCTOR_H
#define ALIFMDRECONSTRUCTOR_H
//
//  Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
//  reserved. 
//
//  See cxx source for full Copyright notice                               
//
//  AliFMDReconstructor.h 
//  Task Class for making TreeR for FMD                        
//
//-- Authors: Evgeny Karpechev (INR) and Alla Maevskaia (INR)
//   Latest changes by Christian Holm Christensen <cholm@nbi.dk>
/* $Id$ */
/** @file    AliFMDReconstructor.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:47:09 2006
    @brief   FMD reconstruction 
*/

//____________________________________________________________________
// Header guards in the header files speeds up the compilation
// considerably.  Please leave them in. 
#ifndef ALIRECONSTRUCTOR_H
# include <AliReconstructor.h>
#endif
#include "AliLog.h"
#include <AliFMDBoolMap.h>

//____________________________________________________________________
class TTree;
class TClonesArray;
class AliFMDDigit;
class AliRawReader;
class AliFMDRawReader;
class AliESDEvent;
class AliESDFMD;
class AliFMDRecoParam;
class TH1;


/** @defgroup FMD_rec Reconstruction */
//____________________________________________________________________
/** 
 * @brief This is a class that reconstructs AliFMDRecPoint objects
 *        from of Digits.  
 *
 * This class reads either digits from a TClonesArray or raw data
 * from a DDL file (or similar), and applies calibrations to get
 * psuedo-inclusive multiplicities per strip.
 * 
 * @ingroup FMD_rec
 */
class AliFMDReconstructor: public AliReconstructor 
{
public:
  /** 
   * CTOR 
   */
  AliFMDReconstructor();
  /** 
   * DTOR 
   */
  virtual ~AliFMDReconstructor();

  /** 
   * Initialize the reconstructor.  Here, we initialize the geometry
   * manager, and finds the local to global transformations from the
   * geometry.   The calibration parameter manager is also
   * initialized (meaning that the calibration parameters is read
   * from CDB).
   */
  virtual void   Init();
  /** 
   * Flag that we can convert raw data into digits. 
   *
   * @return always @c true 
   */
  virtual Bool_t HasDigitConversion() const { return kTRUE; }
  /** 
   * Convert raw data read from the AliRawReader @a reader into
   * digits.  This is done using AliFMDRawReader and
   * AliFMDAltroReader.  The digits are put in the passed TTree @a
   * digitsTree. 
   *
   * @note This is the first part of the reconstruction as done by the
   * offical steering class AliReconstruction.
   *
   * @param reader Raw reader.  @param digitsTree Tree to store read
   * digits in.
   */
  virtual void   ConvertDigits(AliRawReader* reader, TTree* digitsTree) const;
  /** 
   * Reconstruct one event from the digits passed in @a digitsTree.
   * The member function creates AliFMDRecPoint objects and stores
   * them on the output tree @a clusterTree.  An FMD ESD object is
   * created in parallel. 
   *
   * @note This is the second part of the reconstruction as done by
   * the offical steering class AliReconstruction.
   *
   * @param digitsTree  Tree holding the digits of this event
   * @param clusterTree Tree to store AliFMDRecPoint objects in. 
   */
  virtual void   Reconstruct(TTree* digitsTree, TTree* clusterTree) const;
  /** 
   * Not used 
   * @todo Implement this, such that we'll reconstruct directly from
   *       the read ADC values rather than going via an intermedant
   *       TClonesArray of AliFMDDigits
   */
  virtual void   Reconstruct(AliRawReader *, TTree*) const;
  /** 
   * Not used.
   *
   * @todo This is called by the above same member function but with a
   * pointer to a AliRawReader object and a pointer to a TTree object.
   *
   * @param reader Reader object 
   */
  virtual void Reconstruct(AliFMDRawReader& reader) const;
  /** 
   * Put in the ESD data, the FMD ESD data.  The object created by
   * the Reconstruct member function is copied to the ESD object. 
   *
   * @note This is the third part of the reconstruction as done by
   * the offical steering class AliReconstruction.
   *
   * @param digitsTree   Tree of digits for this event - not used
   * @param clusterTree  Tree of reconstructed points for this event -
   *        not used.
   * @param esd ESD object to store data in. 
   */
  virtual void   FillESD(TTree* digitsTree, TTree* clusterTree, 
			 AliESDEvent* esd) const;
  /** 
   * Forwards to above member function 
   */
  virtual void   FillESD(AliRawReader*, TTree* clusterTree, 
			 AliESDEvent* esd) const;
  /** 
   * Return the filled FMD ESD object
   * 
   * @return FMD ESD object
   */
  AliESDFMD* GetESDObject() const { return fESDObj; }
  /** 
   * Create SDigits from raw data
   * 
   * @param reader  The raw reader
   * @param sdigits Array to fill with AliFMDSDigit objects. 
   */  
  virtual void Digitize(AliRawReader* reader, 
			TClonesArray* sdigits) const;
  
  /** 
   * Not used 
   */
  virtual void   SetESD(AliESDEvent* esd) { fESD = esd; }
  /** 
   * Set the noise factor 
   *
   * @param f Factor to use 
   */
  virtual void SetNoiseFactor(Float_t f=3) { fNoiseFactor = f; }
  /** 
   * Set whether we should do angle correction or nor 
   *
   * @param use If true, do angle correction 
   */
  virtual void SetAngleCorrect(Bool_t use=kTRUE) { fAngleCorrect = use; }
  /** 
   * Set whether we want to do diagnostics.  If this is enabled, a
   * file named @c FMD.Diag.root will be made.  It contains a set of
   * histograms for each event, filed in separate directories in the
   * file.  The histograms are 
   * @verbatim 
   * diagStep1   Read ADC vs. Noise surpressed ADC 
   * diagStep2   Noise surpressed ADC vs. calculated Energy dep.
   * diagStep3   Energy deposition vs. angle corrected Energy dep.
   * diagStep4   Energy deposition vs. calculated multiplicity
   * diagAll     Read ADC vs. calculated multiplicity
   * @endverbatim 
   *
   * @param use If true, make the diagnostics file 
   */
  void SetDiagnose(Bool_t use=kTRUE) { fDiagnostics = use; }
  /** 
   * Process AliFMDDigit objects in @a digits.  For each digit, find
   * the psuedo-rapidity @f$ \eta@f$, azimuthal angle @f$ \varphi@f$,
   * energy deposited @f$ E@f$, and psuedo-inclusive multiplicity @f$
   * M@f$.
   * 
   * @param digits  Array of digits. 
   * @param rawRead Raw reader used 
   */
  virtual void ProcessDigits(TClonesArray* digits,
			     const AliFMDRawReader& rawRead) const;
    
protected:
  /** 
   * Copy CTOR 
   *
   * @param other Object to copy from. 
   */
  AliFMDReconstructor(const AliFMDReconstructor&); //Not implemented
  /** 
   * Assignment operator 
   *
   * @param other Object to assign from
   *
   * @return reference to this object 
   */
  AliFMDReconstructor& operator=(const AliFMDReconstructor&); //Not implemented
  /** 
   * Run some checks before reconstruction, clear internal arrays, etc. 
   * 
   * @return true on success 
   */
  Bool_t PreReconstruct() const;
  /** 
   * Try to get the vertex from either ESD or generator header.  Sets
   * @c fCurrentVertex to the found Z posistion of the vertex (if 
   * found), and sets the flag @c fVertexType accordingly 
   *
   * @param esd ESD structure to get Vz from
   */
  virtual void GetVertex(AliESDEvent* esd) const;
  /** 
   * Set-up reconstructor to use values from reconstruction
   * parameters, if present, for this event.   If the argument @a set
   * is @c false, then restore preset values. 
   * 
   * @param set 
   */  
  virtual void UseRecoParam(Bool_t set=kTRUE) const;
  /** 
   * Process AliFMDDigit objects in @a digits.  For each digit, find
   * the psuedo-rapidity @f$ \eta@f$, azimuthal angle @f$ \varphi@f$,
   * energy deposited @f$ E@f$, and psuedo-inclusive multiplicity @f$
   * M@f$.
   * 
   * @param digits Array of digits. 
   */
  virtual void ProcessDigits(TClonesArray* digits) const;
  /** 
   * Process a single digit 
   * 
   * @param digit Digiti to process
   */ 
  virtual void ProcessDigit(AliFMDDigit* digit) const;
  /** 
   * Process the signal from a single strip. 
   * 
   * @param det Detector number 
   * @param rng Ring identifier 
   * @param sec Sector number
   * @param str Strip number 
   * @param adc Number of ADC counts for this strip
   */  
  virtual void ProcessSignal(UShort_t det, 
			     Char_t   rng, 
			     UShort_t sec, 
			     UShort_t str, 
			     Short_t  adc) const;
  /** 
   * Process the signal from a single strip. 
   * 
   * @param sdigits Array to fill
   * @param det     Detector number 
   * @param rng     Ring identifier 
   * @param sec     Sector number
   * @param str     Strip number 
   * @param sam     Sample number 
   * @param adc     Number of ADC counts for this strip
   */  
  virtual void DigitizeSignal(TClonesArray* sdigits, 
			      UShort_t      det, 
			      Char_t         rng, 
			      UShort_t       sec, 
			      UShort_t       str, 
			      UShort_t       sam,
			      Short_t        adc) const;
  /** 
   * Subtract the pedestal off the ADC counts. 
   * 
   * @param det           Detector number
   * @param rng           Ring identifier
   * @param sec           Sector number
   * @param str           Strip number
   * @param adc           ADC counts
   * @param noiseFactor   If pedestal substracted pedestal is less then
   *        this times the noise, then consider this to be 0. 
   * @param zsEnabled     Whether zero-suppression is on.
   * @param zsNoiseFactor Noise factor used in on-line pedestal
   *        subtraction. 
   * 
   * @return The pedestal subtracted ADC counts (possibly 0), or @c
   *         USHRT_MAX in case of problems.
   */  
  virtual UShort_t SubtractPedestal(UShort_t det, 
				    Char_t   rng, 
				    UShort_t sec, 
				    UShort_t str, 
				    UShort_t adc, 
				    Float_t  noiseFactor,
				    Bool_t   zsEnabled, 
				    UShort_t zsNoiseFactor) const;
  /** 
   * Substract pedestals from raw ADC in @a digit
   * 
   * @param det	  Detector number  
   * @param rng   Ring identifier 
   * @param sec   Sector number
   * @param str   Strip number 
   * @param adc   Number of ADC counts
   *
   * @return Pedestal subtracted ADC count. 
   */
  virtual UShort_t SubtractPedestal(UShort_t det, 
				    Char_t   rng, 
				    UShort_t sec, 
				    UShort_t str, 
				    Short_t  adc) const;
  /** 
   * Converts number of ADC counts to energy deposited.   This is
   * done by 
   * @f[
   * E_i = A_i g_i
   * @f]
   * where @f$ A_i@f$ is the pedestal subtracted ADC counts, and @f$
   * g_i@f$ is the gain for the @f$ i^{\mbox{th}}@f$ strip. 
   * 
   * @param det	  Detector number  
   * @param rng   Ring identifier 
   * @param sec   Sector number
   * @param str   Strip number 
   * @param eta   Psuedo-rapidity of digit.
   * @param count Pedestal subtracted ADC counts
   *
   * @return Energy deposited @f$ E_i@f$ 
   */
  virtual Float_t  Adc2Energy(UShort_t det, 
			      Char_t   rng, 
			      UShort_t sec, 
			      UShort_t str, 
			      UShort_t count) const;
  /** 
   * Converts number of ADC counts to energy deposited.   This is
   * done by 
   * @f[
   * E_i = A_i g_i
   * @f]
   * where @f$ A_i@f$ is the pedestal subtracted ADC counts, and @f$
   * g_i@f$ is the gain for the @f$ i^{\mbox{th}}@f$ strip. 
   * 
   * @param det	  Detector number  
   * @param rng   Ring identifier 
   * @param sec   Sector number
   * @param str   Strip number 
   * @param eta   Psuedo-rapidity of digit.
   * @param count Pedestal subtracted ADC counts
   *
   * @return Energy deposited @f$ E_i@f$ 
   */
  virtual Float_t  Adc2Energy(UShort_t det, 
			      Char_t   rng, 
			      UShort_t sec, 
			      UShort_t str, 
			      Float_t  eta, 
			      UShort_t count) const;
  /** 
   * Converts an energy signal to number of particles. In this
   * implementation, it's done by 
   * @f[
   * M_i = E_i / E_{\mbox{MIP}}
   * @f]
   * where @f$ E_i@f$ is the energy deposited, and 
   * @f$ E_{\mbox{MIP}}@f$ is the average energy deposited by a
   * minimum ionizing particle
   * 
   * @param det	  Detector number  
   * @param rng   Ring identifier 
   * @param sec   Sector number
   * @param str   Strip number 
   * @param eta   On return, psuedo-rapidity @f$ \eta@f$
   * @param phi   On return, azimuthal angle @f$ \varphi@f$ 
   * @param edep Energy deposited @f$ E_i@f$
   *
   * @return Psuedo-inclusive multiplicity @f$ M@f$ 
   */
  virtual Float_t  Energy2Multiplicity(UShort_t det, 
				       Char_t   rng, 
				       UShort_t sec, 
				       UShort_t str, 
				       Float_t  edep) const;
  /** 
   * Calculate the physical coordinates psuedo-rapidity @f$ \eta@f$,
   * azimuthal angle @f$ \varphi@f$ of the strip corresponding to
   * the digit @a digit.   This is done by using the information
   * obtained, and previously cached by AliFMDGeometry, from the
   * TGeoManager. 
   * 
   * @param det	  Detector number  
   * @param rng   Ring identifier 
   * @param sec   Sector number
   * @param str   Strip number 
   * @param eta   On return, psuedo-rapidity @f$ \eta@f$
   * @param phi   On return, azimuthal angle @f$ \varphi@f$ 
   */
  virtual void     PhysicalCoordinates(UShort_t det, 
				       Char_t   rng, 
				       UShort_t sec, 
				       UShort_t str, 
				       Float_t& eta, 
				       Float_t& phi) const;
  /** 
   * Mark dead channels as invalid, and those that are marked as invalid 
   * but are not dead, get the zero signal. 
   * 
   * @param esd ESD object to modify. 
   */
  void MarkDeadChannels(AliESDFMD* esd) const;

  /** 
   * Utility member function to get the reconstruction parameters for 
   * this event
   * 
   * @return Pointer to AliFMDRecoParam object or null if not
   * available. 
   */
  const AliFMDRecoParam* GetParameters() const;
  /** 
   * Get the numeric identifier of this detector
   * 
   * @return Should be 12
   */  
  Int_t GetIdentifier() const;
  enum Vertex_t {
    kNoVertex,   // Got no vertex
    kGenVertex,  // Got generator vertex 
    kESDVertex   // Got ESD vertex 
  };
  mutable TClonesArray* fMult;          // Cache of RecPoints
  mutable Int_t         fNMult;         // Number of entries in fMult 
  mutable TTree*        fTreeR;         // Output tree 
  mutable Float_t       fCurrentVertex; // Z-coordinate of primary vertex
  mutable AliESDFMD*    fESDObj;        // ESD output object
  mutable Float_t       fNoiseFactor;   // Factor of noise to check
  mutable Bool_t        fAngleCorrect;  // Whether to angle correct
  mutable Vertex_t      fVertexType;    // What kind of vertex we got
  AliESDEvent*          fESD;           // ESD object(?)
  Bool_t                fDiagnostics;   // Wheter to do diagnostics
  TH1*                  fDiagStep1;	// Diagnostics histogram
  TH1*                  fDiagStep2;	// Diagnostics histogram
  TH1*                  fDiagStep3;	// Diagnostics histogram
  TH1*                  fDiagStep4;	// Diagnostics histogram
  TH1*                  fDiagAll;	// Diagnostics histogram
  mutable Bool_t        fZS[3];         // Zero-suppredded?
  mutable UShort_t      fZSFactor[3];   // Noise factor for Zero-suppression
  mutable AliFMDBoolMap fBad;           // Strip marked bad
  Bool_t                fZombie;        // Are we a zombie?
private:
   
  ClassDef(AliFMDReconstructor, 3)  // class for the FMD reconstruction
}; 
#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
// EOF
//
 AliFMDReconstructor.h:1
 AliFMDReconstructor.h:2
 AliFMDReconstructor.h:3
 AliFMDReconstructor.h:4
 AliFMDReconstructor.h:5
 AliFMDReconstructor.h:6
 AliFMDReconstructor.h:7
 AliFMDReconstructor.h:8
 AliFMDReconstructor.h:9
 AliFMDReconstructor.h:10
 AliFMDReconstructor.h:11
 AliFMDReconstructor.h:12
 AliFMDReconstructor.h:13
 AliFMDReconstructor.h:14
 AliFMDReconstructor.h:15
 AliFMDReconstructor.h:16
 AliFMDReconstructor.h:17
 AliFMDReconstructor.h:18
 AliFMDReconstructor.h:19
 AliFMDReconstructor.h:20
 AliFMDReconstructor.h:21
 AliFMDReconstructor.h:22
 AliFMDReconstructor.h:23
 AliFMDReconstructor.h:24
 AliFMDReconstructor.h:25
 AliFMDReconstructor.h:26
 AliFMDReconstructor.h:27
 AliFMDReconstructor.h:28
 AliFMDReconstructor.h:29
 AliFMDReconstructor.h:30
 AliFMDReconstructor.h:31
 AliFMDReconstructor.h:32
 AliFMDReconstructor.h:33
 AliFMDReconstructor.h:34
 AliFMDReconstructor.h:35
 AliFMDReconstructor.h:36
 AliFMDReconstructor.h:37
 AliFMDReconstructor.h:38
 AliFMDReconstructor.h:39
 AliFMDReconstructor.h:40
 AliFMDReconstructor.h:41
 AliFMDReconstructor.h:42
 AliFMDReconstructor.h:43
 AliFMDReconstructor.h:44
 AliFMDReconstructor.h:45
 AliFMDReconstructor.h:46
 AliFMDReconstructor.h:47
 AliFMDReconstructor.h:48
 AliFMDReconstructor.h:49
 AliFMDReconstructor.h:50
 AliFMDReconstructor.h:51
 AliFMDReconstructor.h:52
 AliFMDReconstructor.h:53
 AliFMDReconstructor.h:54
 AliFMDReconstructor.h:55
 AliFMDReconstructor.h:56
 AliFMDReconstructor.h:57
 AliFMDReconstructor.h:58
 AliFMDReconstructor.h:59
 AliFMDReconstructor.h:60
 AliFMDReconstructor.h:61
 AliFMDReconstructor.h:62
 AliFMDReconstructor.h:63
 AliFMDReconstructor.h:64
 AliFMDReconstructor.h:65
 AliFMDReconstructor.h:66
 AliFMDReconstructor.h:67
 AliFMDReconstructor.h:68
 AliFMDReconstructor.h:69
 AliFMDReconstructor.h:70
 AliFMDReconstructor.h:71
 AliFMDReconstructor.h:72
 AliFMDReconstructor.h:73
 AliFMDReconstructor.h:74
 AliFMDReconstructor.h:75
 AliFMDReconstructor.h:76
 AliFMDReconstructor.h:77
 AliFMDReconstructor.h:78
 AliFMDReconstructor.h:79
 AliFMDReconstructor.h:80
 AliFMDReconstructor.h:81
 AliFMDReconstructor.h:82
 AliFMDReconstructor.h:83
 AliFMDReconstructor.h:84
 AliFMDReconstructor.h:85
 AliFMDReconstructor.h:86
 AliFMDReconstructor.h:87
 AliFMDReconstructor.h:88
 AliFMDReconstructor.h:89
 AliFMDReconstructor.h:90
 AliFMDReconstructor.h:91
 AliFMDReconstructor.h:92
 AliFMDReconstructor.h:93
 AliFMDReconstructor.h:94
 AliFMDReconstructor.h:95
 AliFMDReconstructor.h:96
 AliFMDReconstructor.h:97
 AliFMDReconstructor.h:98
 AliFMDReconstructor.h:99
 AliFMDReconstructor.h:100
 AliFMDReconstructor.h:101
 AliFMDReconstructor.h:102
 AliFMDReconstructor.h:103
 AliFMDReconstructor.h:104
 AliFMDReconstructor.h:105
 AliFMDReconstructor.h:106
 AliFMDReconstructor.h:107
 AliFMDReconstructor.h:108
 AliFMDReconstructor.h:109
 AliFMDReconstructor.h:110
 AliFMDReconstructor.h:111
 AliFMDReconstructor.h:112
 AliFMDReconstructor.h:113
 AliFMDReconstructor.h:114
 AliFMDReconstructor.h:115
 AliFMDReconstructor.h:116
 AliFMDReconstructor.h:117
 AliFMDReconstructor.h:118
 AliFMDReconstructor.h:119
 AliFMDReconstructor.h:120
 AliFMDReconstructor.h:121
 AliFMDReconstructor.h:122
 AliFMDReconstructor.h:123
 AliFMDReconstructor.h:124
 AliFMDReconstructor.h:125
 AliFMDReconstructor.h:126
 AliFMDReconstructor.h:127
 AliFMDReconstructor.h:128
 AliFMDReconstructor.h:129
 AliFMDReconstructor.h:130
 AliFMDReconstructor.h:131
 AliFMDReconstructor.h:132
 AliFMDReconstructor.h:133
 AliFMDReconstructor.h:134
 AliFMDReconstructor.h:135
 AliFMDReconstructor.h:136
 AliFMDReconstructor.h:137
 AliFMDReconstructor.h:138
 AliFMDReconstructor.h:139
 AliFMDReconstructor.h:140
 AliFMDReconstructor.h:141
 AliFMDReconstructor.h:142
 AliFMDReconstructor.h:143
 AliFMDReconstructor.h:144
 AliFMDReconstructor.h:145
 AliFMDReconstructor.h:146
 AliFMDReconstructor.h:147
 AliFMDReconstructor.h:148
 AliFMDReconstructor.h:149
 AliFMDReconstructor.h:150
 AliFMDReconstructor.h:151
 AliFMDReconstructor.h:152
 AliFMDReconstructor.h:153
 AliFMDReconstructor.h:154
 AliFMDReconstructor.h:155
 AliFMDReconstructor.h:156
 AliFMDReconstructor.h:157
 AliFMDReconstructor.h:158
 AliFMDReconstructor.h:159
 AliFMDReconstructor.h:160
 AliFMDReconstructor.h:161
 AliFMDReconstructor.h:162
 AliFMDReconstructor.h:163
 AliFMDReconstructor.h:164
 AliFMDReconstructor.h:165
 AliFMDReconstructor.h:166
 AliFMDReconstructor.h:167
 AliFMDReconstructor.h:168
 AliFMDReconstructor.h:169
 AliFMDReconstructor.h:170
 AliFMDReconstructor.h:171
 AliFMDReconstructor.h:172
 AliFMDReconstructor.h:173
 AliFMDReconstructor.h:174
 AliFMDReconstructor.h:175
 AliFMDReconstructor.h:176
 AliFMDReconstructor.h:177
 AliFMDReconstructor.h:178
 AliFMDReconstructor.h:179
 AliFMDReconstructor.h:180
 AliFMDReconstructor.h:181
 AliFMDReconstructor.h:182
 AliFMDReconstructor.h:183
 AliFMDReconstructor.h:184
 AliFMDReconstructor.h:185
 AliFMDReconstructor.h:186
 AliFMDReconstructor.h:187
 AliFMDReconstructor.h:188
 AliFMDReconstructor.h:189
 AliFMDReconstructor.h:190
 AliFMDReconstructor.h:191
 AliFMDReconstructor.h:192
 AliFMDReconstructor.h:193
 AliFMDReconstructor.h:194
 AliFMDReconstructor.h:195
 AliFMDReconstructor.h:196
 AliFMDReconstructor.h:197
 AliFMDReconstructor.h:198
 AliFMDReconstructor.h:199
 AliFMDReconstructor.h:200
 AliFMDReconstructor.h:201
 AliFMDReconstructor.h:202
 AliFMDReconstructor.h:203
 AliFMDReconstructor.h:204
 AliFMDReconstructor.h:205
 AliFMDReconstructor.h:206
 AliFMDReconstructor.h:207
 AliFMDReconstructor.h:208
 AliFMDReconstructor.h:209
 AliFMDReconstructor.h:210
 AliFMDReconstructor.h:211
 AliFMDReconstructor.h:212
 AliFMDReconstructor.h:213
 AliFMDReconstructor.h:214
 AliFMDReconstructor.h:215
 AliFMDReconstructor.h:216
 AliFMDReconstructor.h:217
 AliFMDReconstructor.h:218
 AliFMDReconstructor.h:219
 AliFMDReconstructor.h:220
 AliFMDReconstructor.h:221
 AliFMDReconstructor.h:222
 AliFMDReconstructor.h:223
 AliFMDReconstructor.h:224
 AliFMDReconstructor.h:225
 AliFMDReconstructor.h:226
 AliFMDReconstructor.h:227
 AliFMDReconstructor.h:228
 AliFMDReconstructor.h:229
 AliFMDReconstructor.h:230
 AliFMDReconstructor.h:231
 AliFMDReconstructor.h:232
 AliFMDReconstructor.h:233
 AliFMDReconstructor.h:234
 AliFMDReconstructor.h:235
 AliFMDReconstructor.h:236
 AliFMDReconstructor.h:237
 AliFMDReconstructor.h:238
 AliFMDReconstructor.h:239
 AliFMDReconstructor.h:240
 AliFMDReconstructor.h:241
 AliFMDReconstructor.h:242
 AliFMDReconstructor.h:243
 AliFMDReconstructor.h:244
 AliFMDReconstructor.h:245
 AliFMDReconstructor.h:246
 AliFMDReconstructor.h:247
 AliFMDReconstructor.h:248
 AliFMDReconstructor.h:249
 AliFMDReconstructor.h:250
 AliFMDReconstructor.h:251
 AliFMDReconstructor.h:252
 AliFMDReconstructor.h:253
 AliFMDReconstructor.h:254
 AliFMDReconstructor.h:255
 AliFMDReconstructor.h:256
 AliFMDReconstructor.h:257
 AliFMDReconstructor.h:258
 AliFMDReconstructor.h:259
 AliFMDReconstructor.h:260
 AliFMDReconstructor.h:261
 AliFMDReconstructor.h:262
 AliFMDReconstructor.h:263
 AliFMDReconstructor.h:264
 AliFMDReconstructor.h:265
 AliFMDReconstructor.h:266
 AliFMDReconstructor.h:267
 AliFMDReconstructor.h:268
 AliFMDReconstructor.h:269
 AliFMDReconstructor.h:270
 AliFMDReconstructor.h:271
 AliFMDReconstructor.h:272
 AliFMDReconstructor.h:273
 AliFMDReconstructor.h:274
 AliFMDReconstructor.h:275
 AliFMDReconstructor.h:276
 AliFMDReconstructor.h:277
 AliFMDReconstructor.h:278
 AliFMDReconstructor.h:279
 AliFMDReconstructor.h:280
 AliFMDReconstructor.h:281
 AliFMDReconstructor.h:282
 AliFMDReconstructor.h:283
 AliFMDReconstructor.h:284
 AliFMDReconstructor.h:285
 AliFMDReconstructor.h:286
 AliFMDReconstructor.h:287
 AliFMDReconstructor.h:288
 AliFMDReconstructor.h:289
 AliFMDReconstructor.h:290
 AliFMDReconstructor.h:291
 AliFMDReconstructor.h:292
 AliFMDReconstructor.h:293
 AliFMDReconstructor.h:294
 AliFMDReconstructor.h:295
 AliFMDReconstructor.h:296
 AliFMDReconstructor.h:297
 AliFMDReconstructor.h:298
 AliFMDReconstructor.h:299
 AliFMDReconstructor.h:300
 AliFMDReconstructor.h:301
 AliFMDReconstructor.h:302
 AliFMDReconstructor.h:303
 AliFMDReconstructor.h:304
 AliFMDReconstructor.h:305
 AliFMDReconstructor.h:306
 AliFMDReconstructor.h:307
 AliFMDReconstructor.h:308
 AliFMDReconstructor.h:309
 AliFMDReconstructor.h:310
 AliFMDReconstructor.h:311
 AliFMDReconstructor.h:312
 AliFMDReconstructor.h:313
 AliFMDReconstructor.h:314
 AliFMDReconstructor.h:315
 AliFMDReconstructor.h:316
 AliFMDReconstructor.h:317
 AliFMDReconstructor.h:318
 AliFMDReconstructor.h:319
 AliFMDReconstructor.h:320
 AliFMDReconstructor.h:321
 AliFMDReconstructor.h:322
 AliFMDReconstructor.h:323
 AliFMDReconstructor.h:324
 AliFMDReconstructor.h:325
 AliFMDReconstructor.h:326
 AliFMDReconstructor.h:327
 AliFMDReconstructor.h:328
 AliFMDReconstructor.h:329
 AliFMDReconstructor.h:330
 AliFMDReconstructor.h:331
 AliFMDReconstructor.h:332
 AliFMDReconstructor.h:333
 AliFMDReconstructor.h:334
 AliFMDReconstructor.h:335
 AliFMDReconstructor.h:336
 AliFMDReconstructor.h:337
 AliFMDReconstructor.h:338
 AliFMDReconstructor.h:339
 AliFMDReconstructor.h:340
 AliFMDReconstructor.h:341
 AliFMDReconstructor.h:342
 AliFMDReconstructor.h:343
 AliFMDReconstructor.h:344
 AliFMDReconstructor.h:345
 AliFMDReconstructor.h:346
 AliFMDReconstructor.h:347
 AliFMDReconstructor.h:348
 AliFMDReconstructor.h:349
 AliFMDReconstructor.h:350
 AliFMDReconstructor.h:351
 AliFMDReconstructor.h:352
 AliFMDReconstructor.h:353
 AliFMDReconstructor.h:354
 AliFMDReconstructor.h:355
 AliFMDReconstructor.h:356
 AliFMDReconstructor.h:357
 AliFMDReconstructor.h:358
 AliFMDReconstructor.h:359
 AliFMDReconstructor.h:360
 AliFMDReconstructor.h:361
 AliFMDReconstructor.h:362
 AliFMDReconstructor.h:363
 AliFMDReconstructor.h:364
 AliFMDReconstructor.h:365
 AliFMDReconstructor.h:366
 AliFMDReconstructor.h:367
 AliFMDReconstructor.h:368
 AliFMDReconstructor.h:369
 AliFMDReconstructor.h:370
 AliFMDReconstructor.h:371
 AliFMDReconstructor.h:372
 AliFMDReconstructor.h:373
 AliFMDReconstructor.h:374
 AliFMDReconstructor.h:375
 AliFMDReconstructor.h:376
 AliFMDReconstructor.h:377
 AliFMDReconstructor.h:378
 AliFMDReconstructor.h:379
 AliFMDReconstructor.h:380
 AliFMDReconstructor.h:381
 AliFMDReconstructor.h:382
 AliFMDReconstructor.h:383
 AliFMDReconstructor.h:384
 AliFMDReconstructor.h:385
 AliFMDReconstructor.h:386
 AliFMDReconstructor.h:387
 AliFMDReconstructor.h:388
 AliFMDReconstructor.h:389
 AliFMDReconstructor.h:390
 AliFMDReconstructor.h:391
 AliFMDReconstructor.h:392
 AliFMDReconstructor.h:393
 AliFMDReconstructor.h:394
 AliFMDReconstructor.h:395
 AliFMDReconstructor.h:396
 AliFMDReconstructor.h:397
 AliFMDReconstructor.h:398
 AliFMDReconstructor.h:399
 AliFMDReconstructor.h:400
 AliFMDReconstructor.h:401
 AliFMDReconstructor.h:402
 AliFMDReconstructor.h:403
 AliFMDReconstructor.h:404
 AliFMDReconstructor.h:405
 AliFMDReconstructor.h:406
 AliFMDReconstructor.h:407
 AliFMDReconstructor.h:408
 AliFMDReconstructor.h:409
 AliFMDReconstructor.h:410
 AliFMDReconstructor.h:411
 AliFMDReconstructor.h:412
 AliFMDReconstructor.h:413
 AliFMDReconstructor.h:414
 AliFMDReconstructor.h:415
 AliFMDReconstructor.h:416
 AliFMDReconstructor.h:417
 AliFMDReconstructor.h:418
 AliFMDReconstructor.h:419
 AliFMDReconstructor.h:420
 AliFMDReconstructor.h:421
 AliFMDReconstructor.h:422
 AliFMDReconstructor.h:423
 AliFMDReconstructor.h:424
 AliFMDReconstructor.h:425
 AliFMDReconstructor.h:426
 AliFMDReconstructor.h:427
 AliFMDReconstructor.h:428
 AliFMDReconstructor.h:429
 AliFMDReconstructor.h:430
 AliFMDReconstructor.h:431
 AliFMDReconstructor.h:432
 AliFMDReconstructor.h:433
 AliFMDReconstructor.h:434
 AliFMDReconstructor.h:435
 AliFMDReconstructor.h:436
 AliFMDReconstructor.h:437
 AliFMDReconstructor.h:438
 AliFMDReconstructor.h:439
 AliFMDReconstructor.h:440
 AliFMDReconstructor.h:441
 AliFMDReconstructor.h:442
 AliFMDReconstructor.h:443
 AliFMDReconstructor.h:444
 AliFMDReconstructor.h:445
 AliFMDReconstructor.h:446
 AliFMDReconstructor.h:447
 AliFMDReconstructor.h:448
 AliFMDReconstructor.h:449
 AliFMDReconstructor.h:450
 AliFMDReconstructor.h:451
 AliFMDReconstructor.h:452
 AliFMDReconstructor.h:453
 AliFMDReconstructor.h:454
 AliFMDReconstructor.h:455
 AliFMDReconstructor.h:456
 AliFMDReconstructor.h:457
 AliFMDReconstructor.h:458
 AliFMDReconstructor.h:459
 AliFMDReconstructor.h:460
 AliFMDReconstructor.h:461
 AliFMDReconstructor.h:462
 AliFMDReconstructor.h:463
 AliFMDReconstructor.h:464
 AliFMDReconstructor.h:465
 AliFMDReconstructor.h:466
 AliFMDReconstructor.h:467
 AliFMDReconstructor.h:468
 AliFMDReconstructor.h:469
 AliFMDReconstructor.h:470
 AliFMDReconstructor.h:471
 AliFMDReconstructor.h:472
 AliFMDReconstructor.h:473
 AliFMDReconstructor.h:474
 AliFMDReconstructor.h:475