d08b5461 |
1 | #ifndef ALIMUONSIMPLECLUSTERSERVER_H |
2 | #define ALIMUONSIMPLECLUSTERSERVER_H |
3 | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ |
6 | |
7 | // $Id$ |
8 | |
e41c38cf |
9 | /// \ingroup rec |
d08b5461 |
10 | /// \class AliMUONSimpleClusterServer |
11 | /// \brief Implementation of AliMUONVClusterServer interface |
12 | /// |
13 | // Author Laurent Aphecetche, Subatech |
14 | |
15 | #ifndef ALIMUONVCLUSTERSERVER_H |
16 | # include "AliMUONVClusterServer.h" |
17 | #endif |
18 | |
9bf6860b |
19 | class AliESDMuonPad; |
d08b5461 |
20 | class AliMUONGeometryTransformer; |
9bf6860b |
21 | class AliMUONTriggerTrackToTrackerClusters; |
22 | class AliMUONVClusterFinder; |
2e2d0c44 |
23 | class AliMUONCluster; |
24 | class AliMpVSegmentation; |
d08b5461 |
25 | class AliMpExMap; |
e5b8601d |
26 | class AliMpExMapIterator; |
7deb8eb0 |
27 | class TClonesArray; |
d08b5461 |
28 | |
29 | class AliMUONSimpleClusterServer : public AliMUONVClusterServer |
30 | { |
31 | public: |
9bf6860b |
32 | AliMUONSimpleClusterServer(AliMUONVClusterFinder* clusterFinder, |
d08b5461 |
33 | const AliMUONGeometryTransformer& transformer); |
34 | |
35 | virtual ~AliMUONSimpleClusterServer(); |
36 | |
37 | Int_t Clusterize(Int_t chamberId, |
38 | AliMUONVClusterStore& clusterStore, |
35be7ed7 |
39 | const AliMpArea& area, |
40 | const AliMUONRecoParam* recoParam = 0x0); |
d08b5461 |
41 | |
2e2d0c44 |
42 | void UseDigits(TIter& next, AliMUONVDigitStore* digitStore = 0x0); |
d08b5461 |
43 | |
44 | void Print(Option_t* opt="") const; |
9bf6860b |
45 | |
46 | /// Use trigger tracks. Return kFALSE if not used. |
47 | virtual Bool_t UseTriggerTrackStore(AliMUONVTriggerTrackStore* trackStore); |
48 | |
d08b5461 |
49 | private: |
50 | /// Not implemented |
51 | AliMUONSimpleClusterServer(const AliMUONSimpleClusterServer& rhs); |
52 | /// Not implemented |
53 | AliMUONSimpleClusterServer& operator=(const AliMUONSimpleClusterServer& rhs); |
54 | |
55 | Bool_t Overlap(Int_t detElemId, const AliMpArea& area, AliMpArea& deArea) const; |
56 | |
57 | void Global2Local(Int_t detElemId, const AliMpArea& globalArea, AliMpArea& localArea) const; |
58 | |
9e41a340 |
59 | TObjArray* PadArray(Int_t detElemId, Int_t cathode) const; |
d08b5461 |
60 | |
2e2d0c44 |
61 | Int_t FindMCLabel(const AliMUONCluster& cluster, Int_t detElemId, const AliMpVSegmentation* seg[2]) const; |
62 | |
d08b5461 |
63 | private: |
2e2d0c44 |
64 | AliMUONVDigitStore* fDigitStore; //!< the digit store (not owner) |
9bf6860b |
65 | AliMUONVClusterFinder* fClusterFinder; //!< the cluster finder (owner) |
72dae9ff |
66 | const AliMUONGeometryTransformer& fkTransformer; //!< the geometry transformer (not owner) |
d08b5461 |
67 | AliMpExMap* fPads[2]; ///< map of TClonesArray of AliMUONPads |
e5b8601d |
68 | AliMpExMapIterator* fPadsIterator[2]; ///< iterator for the map of TClonesArray of AliMUONPads |
9bf6860b |
69 | AliMUONVTriggerTrackStore* fTriggerTrackStore; ///< trigger track store (if bypassing of St45 was requested) (not owner) |
70 | AliMUONTriggerTrackToTrackerClusters* fBypass; ///< to convert trigger track into tracker clusters (owner) |
d08b5461 |
71 | |
72 | ClassDef(AliMUONSimpleClusterServer,0) // Cluster server |
73 | }; |
74 | |
75 | #endif |