]>
Commit | Line | Data |
---|---|---|
9da38871 | 1 | #ifndef ALIFMDFLOATMAP_H |
2 | #define ALIFMDFLOATMAP_H | |
3 | /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights | |
4 | * reserved. | |
5 | * | |
6 | * See cxx source for full Copyright notice | |
7 | */ | |
8 | #ifndef ALIFMDMAP_H | |
d65adc48 | 9 | # include "AliFMDMap.h" |
9da38871 | 10 | #endif |
11 | //____________________________________________________________________ | |
12 | // | |
13 | // Array of floats indexed by strip identifier. | |
6169f936 | 14 | // the floats are indexed by the coordinates |
15 | // DETECTOR # (1-3) | |
16 | // RING ID ('I' or 'O', any case) | |
17 | // SECTOR # (0-39) | |
18 | // STRIP # (0-511) | |
9da38871 | 19 | // |
20 | class AliFMDFloatMap : public AliFMDMap | |
21 | { | |
22 | public: | |
021f1396 | 23 | AliFMDFloatMap(); |
24 | AliFMDFloatMap(Int_t maxDet, | |
25 | Int_t maxRing= 0, | |
26 | Int_t maxSec = 0, | |
27 | Int_t maxStr = 0); | |
28 | AliFMDFloatMap(const AliFMDMap& o); | |
9da38871 | 29 | AliFMDFloatMap(const AliFMDFloatMap& o); |
a2fbb067 | 30 | virtual ~AliFMDFloatMap() { delete [] fData;fData = 0; } |
9da38871 | 31 | AliFMDFloatMap& operator=(const AliFMDFloatMap& o); |
32 | virtual void Reset(const Float_t& v=Float_t()); | |
33 | virtual Float_t& operator()(UShort_t det, | |
34 | Char_t ring, | |
35 | UShort_t sec, | |
36 | UShort_t str); | |
37 | virtual const Float_t& operator()(UShort_t det, | |
38 | Char_t ring, | |
39 | UShort_t sec, | |
40 | UShort_t str) const; | |
c05d076f | 41 | Float_t* Data() const { return fData; } |
ac2e7f23 | 42 | void Print(Option_t* option="%8.4f") const { AliFMDMap::Print(option); } |
43 | void* Ptr() const { return reinterpret_cast<void*>(fData); } | |
9da38871 | 44 | protected: |
021f1396 | 45 | Int_t MaxIndex() const { return fTotal; } |
46 | Float_t AtAsFloat(Int_t i) const { return fData[i]; } | |
47 | Float_t& AtAsFloat(Int_t i) { return fData[i]; } | |
48 | Bool_t IsFloat() const { return kTRUE; } | |
49 | ||
fe12e09c | 50 | Int_t fTotal; // Total number of entries |
ac07a8f5 | 51 | Float_t* fData; //[fTotal] |
021f1396 | 52 | ClassDef(AliFMDFloatMap,3) // Map of floats |
9da38871 | 53 | }; |
54 | ||
021f1396 | 55 | inline AliFMDFloatMap |
56 | operator*(const AliFMDMap& lhs, const AliFMDMap& rhs) | |
57 | { | |
58 | AliFMDFloatMap r(lhs); | |
59 | r *= rhs; | |
60 | return r; | |
61 | } | |
62 | inline AliFMDFloatMap | |
63 | operator/(const AliFMDMap& lhs, const AliFMDMap& rhs) | |
64 | { | |
65 | AliFMDFloatMap r(lhs); | |
66 | r /= rhs; | |
67 | return r; | |
68 | } | |
69 | inline AliFMDFloatMap | |
70 | operator+(const AliFMDMap& lhs, const AliFMDMap& rhs) | |
71 | { | |
72 | AliFMDFloatMap r(lhs); | |
73 | r += rhs; | |
74 | return r; | |
75 | } | |
76 | inline AliFMDFloatMap | |
77 | operator-(const AliFMDMap& lhs, const AliFMDMap& rhs) | |
78 | { | |
79 | AliFMDFloatMap r(lhs); | |
80 | r -= rhs; | |
81 | return r; | |
82 | } | |
83 | ||
9da38871 | 84 | #endif |
85 | //____________________________________________________________________ | |
86 | // | |
87 | // Local Variables: | |
88 | // mode: C++ | |
89 | // End: | |
90 | // | |
91 |