]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIFMDEDEPMAP_H | |
2 | #define ALIFMDEDEPMAP_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 | /** @file AliFMDEdepMap.h | |
9 | @author Christian Holm Christensen <cholm@nbi.dk> | |
10 | @date Mon Mar 27 12:39:50 2006 | |
11 | @brief Per strip map of energy deposited and number of hits | |
12 | @ingroup FMD_sim | |
13 | */ | |
14 | // | |
15 | // Contains a pair of energy deposited @c fEdep and number of hits @c | |
16 | // fN, @c fEdep is the summed energy deposition, and @c fN is the | |
17 | // number of hits | |
18 | #ifndef ALIFMDMAP_H | |
19 | # include "AliFMDMap.h" | |
20 | #endif | |
21 | #ifndef ALIFMDEDEPHITPAIR_H | |
22 | # include <AliFMDEdepHitPair.h> | |
23 | #endif | |
24 | ||
25 | ||
26 | //____________________________________________________________________ | |
27 | /** @brief Map of Energy deposited, hit information per strip. | |
28 | Contains a pair of energy deposited @c fEdep and | |
29 | number of hits @c fN, @c fEdep is the summed energy deposition, | |
30 | and @c fN is the number of hits | |
31 | @ingroup FMD_sim | |
32 | */ | |
33 | class AliFMDEdepMap : public AliFMDMap | |
34 | { | |
35 | public: | |
36 | /** Copy constructor | |
37 | @param other Object to copy from. | |
38 | @return */ | |
39 | AliFMDEdepMap(const AliFMDEdepMap& other); | |
40 | /** Constructor */ | |
41 | AliFMDEdepMap(); | |
42 | /** Constructor | |
43 | @param maxDet Number of detectors (3) | |
44 | @param maxRing Number of rings (2) | |
45 | @param maxSec Number of sectors (40) | |
46 | @param maxStr Number of strips (20) */ | |
47 | AliFMDEdepMap(UShort_t maxDet, | |
48 | UShort_t maxRing= 0, | |
49 | UShort_t maxSec = 0, | |
50 | UShort_t maxStr = 0); | |
51 | /** DTOR */ | |
52 | virtual ~AliFMDEdepMap() { delete [] fData; } | |
53 | AliFMDEdepMap& operator=(const AliFMDEdepMap& other); | |
54 | /** Reset to default */ | |
55 | virtual void Reset(); | |
56 | /** Reset to value | |
57 | @param val Value to reset from */ | |
58 | virtual void Reset(const AliFMDEdepHitPair& val); | |
59 | /** Access operator | |
60 | @param detector Detector | |
61 | @param ring Ring | |
62 | @param sector Sector | |
63 | @param strip Strip | |
64 | @return reference value stored for the strip */ | |
65 | virtual AliFMDEdepHitPair& operator()(UShort_t detector, | |
66 | Char_t ring, | |
67 | UShort_t sector, | |
68 | UShort_t strip); | |
69 | /** Access operator | |
70 | @param detector Detector | |
71 | @param ring Ring | |
72 | @param sector Sector | |
73 | @param strip Strip | |
74 | @return value stored for the strip */ | |
75 | virtual const AliFMDEdepHitPair& operator()(UShort_t detector, | |
76 | Char_t ring, | |
77 | UShort_t sector, | |
78 | UShort_t strip) const; | |
79 | void* Ptr() const { return reinterpret_cast<void*>(fData); } | |
80 | protected: | |
81 | Int_t MaxIndex() const { return fTotal; } | |
82 | Int_t AtAsInt(Int_t idx) const { return fData[idx].fN; } | |
83 | Int_t& AtAsInt(Int_t idx) { return AliFMDMap::AtAsInt(idx); } | |
84 | Bool_t AtAsBool(Int_t idx) const { return fData[idx].fEdep > 0; } | |
85 | Bool_t& AtAsBool(Int_t idx) { return AliFMDMap::AtAsBool(idx); } | |
86 | Float_t AtAsFloat(Int_t idx) const { return fData[idx].fEdep; } | |
87 | Float_t& AtAsFloat(Int_t idx) { return fData[idx].fEdep; } | |
88 | UShort_t AtAsUShort(Int_t idx) const { return fData[idx].fN; } | |
89 | UShort_t& AtAsUShort(Int_t idx) { return fData[idx].fN; } | |
90 | Bool_t IsUShort() const { return kTRUE; } | |
91 | Bool_t IsFloat() const { return kTRUE; } | |
92 | Int_t fTotal; // Total number of entries | |
93 | AliFMDEdepHitPair* fData; //[fTotal] The data | |
94 | ClassDef(AliFMDEdepMap, 3) // Cache of edep,hit information per strip | |
95 | }; | |
96 | ||
97 | #endif | |
98 | //____________________________________________________________________ | |
99 | // | |
100 | // Local Variables: | |
101 | // mode: C++ | |
102 | // End: | |
103 | // | |
104 | // EOF | |
105 | // | |
106 | ||
107 |