3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * See cxx source for full Copyright notice
8 //___________________________________________________________________
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.
19 #ifndef ALIFMDFLOATMAP_H
20 # include "AliFMDFloatMap.h"
23 //___________________________________________________________________
25 @brief Event Summary Data for the Forward Multiplicity Detector.
27 This stores the psuedo-multiplicity and -rapidiy for each strip of
30 class AliESDFMD : public TObject
33 /** Default 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() {}
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,
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,
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);
111 /** Value used for undefined multiplicity */
115 /** Value used for undefined pseudo rapidity */
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; }
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
130 //____________________________________________________________________