]>
Commit | Line | Data |
---|---|---|
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 | virtual void Copy(TObject &obj) const; | |
45 | ||
46 | ||
47 | void Clear(Option_t *option=""); | |
48 | /** Get the pseudo-multiplicity of | |
49 | @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle | |
50 | sector\rangle\langle strip\rangle}@f$ | |
51 | @param detector Detector number (1-3) | |
52 | @param ring Ring identifier ('I' or 'O') | |
53 | @param sector Sector number (0-511, or 0-255) | |
54 | @param strip Strip number (0-19, or 0-39) | |
55 | @return Psuedo multiplicity */ | |
56 | Float_t Multiplicity(UShort_t detector, Char_t ring, | |
57 | UShort_t sector, UShort_t strip) const; | |
58 | /** Get the pseudo-rapidity of | |
59 | @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle | |
60 | sector\rangle\langle strip\rangle}@f$ | |
61 | @param detector Detector number (1-3) | |
62 | @param ring Ring identifier ('I' or 'O') | |
63 | @param sector Sector number (0-511, or 0-255) | |
64 | @param strip Strip number (0-19, or 0-39) | |
65 | @return Psuedo rapidity */ | |
66 | Float_t Eta(UShort_t detector, Char_t ring, | |
67 | UShort_t sector, UShort_t strip) const; | |
68 | /** Set the pseudo-multiplicity of | |
69 | @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle | |
70 | sector\rangle\langle strip\rangle}@f$ | |
71 | @param detector Detector number (1-3) | |
72 | @param ring Ring identifier ('I' or 'O') | |
73 | @param sector Sector number (0-511, or 0-255) | |
74 | @param strip Strip number (0-19, or 0-39) | |
75 | @param mult Psuedo multiplicity */ | |
76 | void SetMultiplicity(UShort_t detector, Char_t ring, | |
77 | UShort_t sector, UShort_t strip, | |
78 | Float_t mult); | |
79 | /** Set the pseudo-rapidity of | |
80 | @f$ \text{FMD}\langle detector\rangle\lange ring\rangle_{\langle | |
81 | sector\rangle\langle strip\rangle}@f$ | |
82 | @param detector Detector number (1-3) | |
83 | @param ring Ring identifier ('I' or 'O') | |
84 | @param sector Sector number (0-511, or 0-255) | |
85 | @param strip Strip number (0-19, or 0-39) | |
86 | @param eta Psuedo rapidity */ | |
87 | void SetEta(UShort_t detector, Char_t ring, | |
88 | UShort_t sector, UShort_t strip, | |
89 | Float_t eta); | |
90 | /** @param f the factor for noise suppression */ | |
91 | void SetNoiseFactor(Float_t f) { fNoiseFactor = f; } | |
92 | /** @param done Whether we've done angle correction or not */ | |
93 | void SetAngleCorrected(Bool_t done) { fAngleCorrected = done; } | |
94 | /** @return Whether we've done angle correction or not */ | |
95 | Bool_t IsAngleCorrected() const { return fAngleCorrected; } | |
96 | /** @return the factor for noise suppression */ | |
97 | Float_t GetNoiseFactor() const { return fNoiseFactor; } | |
98 | /** @return maximum number of detectors */ | |
99 | UShort_t MaxDetectors() const { return fMultiplicity.MaxDetectors(); } | |
100 | /** @return maximum number of rings */ | |
101 | UShort_t MaxRings() const { return fMultiplicity.MaxRings(); } | |
102 | /** @return maximum number of sectors */ | |
103 | UShort_t MaxSectors() const { return fMultiplicity.MaxSectors(); } | |
104 | /** @return Maximum number of strips */ | |
105 | UShort_t MaxStrips() const { return fMultiplicity.MaxStrips(); } | |
106 | /** Print this object to standard out. | |
107 | @param option Options */ | |
108 | void Print(Option_t* option="") const; | |
109 | /** Check if we need the @c UShort_t fix | |
110 | @param file File this object was read from */ | |
111 | void CheckNeedUShort(TFile* file); | |
112 | enum { | |
113 | /** Value used for undefined multiplicity */ | |
114 | kInvalidMult = 1024 | |
115 | }; | |
116 | enum { | |
117 | /** Value used for undefined pseudo rapidity */ | |
118 | kInvalidEta = 1024 | |
119 | }; | |
120 | /** @return constant reference to multiplicity map */ | |
121 | const AliFMDFloatMap& MultiplicityMap() const { return fMultiplicity; } | |
122 | /** @return constant reference to pseudo-rapidity map */ | |
123 | const AliFMDFloatMap& EtaMap() const { return fMultiplicity; } | |
124 | protected: | |
125 | AliFMDFloatMap fMultiplicity; // Psuedo multplicity per strip | |
126 | AliFMDFloatMap fEta; // Psuedo-rapidity per strip | |
127 | Float_t fNoiseFactor; // Factor used for noise suppresion | |
128 | Bool_t fAngleCorrected; // Whether we've done angle correction | |
129 | ClassDef(AliESDFMD,3) // ESD info from FMD | |
130 | }; | |
131 | #endif | |
132 | //____________________________________________________________________ | |
133 | // | |
134 | // Local Variables: | |
135 | // mode: C++ | |
136 | // End: | |
137 | // | |
138 | // EOF | |
139 | // |