Line data Source code
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 :
9 : /// \ingroup rec
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 :
19 : class AliMUONGeometryTransformer;
20 : class AliMUONTriggerTrackToTrackerClusters;
21 : class AliMUONVClusterFinder;
22 : class AliMUONCluster;
23 : class AliMpVSegmentation;
24 : class AliMpExMap;
25 : class AliMpExMapIterator;
26 : class TClonesArray;
27 :
28 : class AliMUONSimpleClusterServer : public AliMUONVClusterServer
29 : {
30 : public:
31 : AliMUONSimpleClusterServer(AliMUONVClusterFinder* clusterFinder,
32 : const AliMUONGeometryTransformer& transformer);
33 :
34 : virtual ~AliMUONSimpleClusterServer();
35 :
36 : Int_t Clusterize(Int_t chamberId,
37 : AliMUONVClusterStore& clusterStore,
38 : const AliMpArea& area,
39 : const AliMUONRecoParam* recoParam = 0x0);
40 :
41 : void UseDigits(TIter& next, AliMUONVDigitStore* digitStore = 0x0);
42 :
43 : void Print(Option_t* opt="") const;
44 :
45 : /// Use trigger tracks. Return kFALSE if not used.
46 : virtual Bool_t UseTriggerTrackStore(AliMUONVTriggerTrackStore* trackStore);
47 :
48 : private:
49 : /// Not implemented
50 : AliMUONSimpleClusterServer(const AliMUONSimpleClusterServer& rhs);
51 : /// Not implemented
52 : AliMUONSimpleClusterServer& operator=(const AliMUONSimpleClusterServer& rhs);
53 :
54 : Bool_t Overlap(Int_t detElemId, const AliMpArea& area, AliMpArea& deArea) const;
55 :
56 : void Global2Local(Int_t detElemId, const AliMpArea& globalArea, AliMpArea& localArea) const;
57 :
58 : TObjArray* PadArray(Int_t detElemId, Int_t cathode) const;
59 :
60 : Int_t FindMCLabel(const AliMUONCluster& cluster, Int_t detElemId, const AliMpVSegmentation* seg[2]) const;
61 :
62 : private:
63 : AliMUONVDigitStore* fDigitStore; //!<! the digit store (not owner)
64 : AliMUONVClusterFinder* fClusterFinder; //!<! the cluster finder (owner)
65 : const AliMUONGeometryTransformer& fkTransformer; //!<! the geometry transformer (not owner)
66 : AliMpExMap* fPads[2]; ///< map of TClonesArray of AliMUONPads
67 : AliMpExMapIterator* fPadsIterator[2]; ///< iterator for the map of TClonesArray of AliMUONPads
68 : AliMUONVTriggerTrackStore* fTriggerTrackStore; ///< trigger track store (if bypassing of St45 was requested) (not owner)
69 : AliMUONTriggerTrackToTrackerClusters* fBypass; ///< to convert trigger track into tracker clusters (owner)
70 :
71 1114 : ClassDef(AliMUONSimpleClusterServer,0) // Cluster server
72 : };
73 :
74 : #endif
|