]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDFMD.h
Clean-up in includes.
[u/mrichter/AliRoot.git] / STEER / AliESDFMD.h
1 #ifndef ALIESDFMD_H
2 #define ALIESDFMD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * See cxx source for full Copyright notice                               
7  */
8 //___________________________________________________________________
9 //
10 // AliESDFMD is the Event Summary Data entry for the FMD.  It contains
11 // a rough estimate of the charged particle multiplicity in each strip
12 // of the FMD.    It also contains the psuedo-rapidity of each strip.
13 // This is important, as it varies from event to event, due to a
14 // finite interaction point probability distribution. 
15 //
16 #ifndef ROOT_TObject
17 # include <TObject.h>
18 #endif
19 #ifndef ALIFMDFLOATMAP_H
20 # include "AliFMDFloatMap.h"
21 #endif
22
23 //___________________________________________________________________
24 /** @class AliESDFMD 
25     @brief Event Summary Data for the Forward Multiplicity Detector. 
26     @ingroup FMD_data
27     This stores the psuedo-multiplicity and -rapidiy for each strip of
28     the FMD. 
29  */
30 class AliESDFMD : public TObject
31 {
32 public:
33   /** Default constructor */
34   AliESDFMD();
35   /** Copy constructor 
36       @param other Object to construct from */
37   AliESDFMD(const AliESDFMD& other);
38   /** Assignment operator 
39       @param other Object to assign from
40       @return  reference to this object */
41   AliESDFMD& operator=(const AliESDFMD& other);
42   /** Destructor - does nothing */
43   virtual ~AliESDFMD() {}
44
45   void Clear(Option_t *option="");
46   /** Get the pseudo-multiplicity of 
47       @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle
48       sector\rangle\langle strip\rangle}@f$ 
49       @param detector Detector number (1-3)
50       @param ring     Ring identifier ('I' or 'O')
51       @param sector   Sector number (0-511, or 0-255)
52       @param strip    Strip number (0-19, or 0-39)
53       @return Psuedo multiplicity */
54   Float_t Multiplicity(UShort_t detector, Char_t ring, 
55                        UShort_t sector, UShort_t strip) const;
56   /** Get the pseudo-rapidity of 
57       @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle
58       sector\rangle\langle strip\rangle}@f$ 
59       @param detector Detector number (1-3)
60       @param ring     Ring identifier ('I' or 'O')
61       @param sector   Sector number (0-511, or 0-255)
62       @param strip    Strip number (0-19, or 0-39)
63       @return Psuedo rapidity */
64   Float_t Eta(UShort_t detector, Char_t ring, 
65               UShort_t sector, UShort_t strip) const;
66   /** Set the pseudo-multiplicity of 
67       @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle
68       sector\rangle\langle strip\rangle}@f$ 
69       @param detector Detector number (1-3)
70       @param ring     Ring identifier ('I' or 'O')
71       @param sector   Sector number (0-511, or 0-255)
72       @param strip    Strip number (0-19, or 0-39)
73       @param mult     Psuedo multiplicity */
74   void SetMultiplicity(UShort_t detector, Char_t ring, 
75                        UShort_t sector, UShort_t strip, 
76                        Float_t mult);
77   /** Set the pseudo-rapidity of 
78       @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle
79       sector\rangle\langle strip\rangle}@f$ 
80       @param detector Detector number (1-3)
81       @param ring     Ring identifier ('I' or 'O')
82       @param sector   Sector number (0-511, or 0-255)
83       @param strip    Strip number (0-19, or 0-39)
84       @param eta      Psuedo rapidity */
85   void SetEta(UShort_t detector, Char_t ring, 
86               UShort_t sector, UShort_t strip, 
87               Float_t eta);
88   /** @param f the factor for noise suppression */
89   void SetNoiseFactor(Float_t f) { fNoiseFactor = f; }
90   /** @param done Whether we've done angle correction or not */
91   void SetAngleCorrected(Bool_t done) { fAngleCorrected = done; }
92   /** @return Whether we've done angle correction or not */
93   Bool_t IsAngleCorrected() const { return fAngleCorrected; }
94   /** @return the  factor for noise suppression */
95   Float_t GetNoiseFactor() const { return fNoiseFactor; }
96   /** @return maximum number of detectors */
97   UShort_t MaxDetectors() const { return fMultiplicity.MaxDetectors(); }
98   /** @return maximum number of rings */
99   UShort_t MaxRings()     const { return fMultiplicity.MaxRings(); }
100   /** @return maximum number of sectors */
101   UShort_t MaxSectors()   const { return fMultiplicity.MaxSectors(); }
102   /** @return Maximum number of strips */
103   UShort_t MaxStrips()    const { return fMultiplicity.MaxStrips(); }
104   /** Print this object to standard out. 
105       @param option Options */
106   void Print(Option_t* option="") const;
107   /** Check if we need the @c UShort_t fix 
108       @param file File this object was read from */
109   void CheckNeedUShort(TFile* file);
110   enum {
111     /** Value used for undefined multiplicity */
112     kInvalidMult = 0
113   };
114   enum {
115     /** Value used for undefined pseudo rapidity */
116     kInvalidEta = 0
117   };
118   /** @return constant reference to multiplicity map */
119   const AliFMDFloatMap& MultiplicityMap() const { return fMultiplicity; }
120   /** @return constant reference to pseudo-rapidity map */
121   const AliFMDFloatMap& EtaMap() const { return fMultiplicity; }
122 protected:
123   AliFMDFloatMap fMultiplicity;   // Psuedo multplicity per strip
124   AliFMDFloatMap fEta;            // Psuedo-rapidity per strip
125   Float_t        fNoiseFactor;    // Factor used for noise suppresion
126   Bool_t         fAngleCorrected; // Whether we've done angle correction
127   ClassDef(AliESDFMD,3)           // ESD info from FMD
128 };
129 #endif
130 //____________________________________________________________________
131 //
132 // Local Variables:
133 //   mode: C++
134 // End:
135 //
136 // EOF
137 //