1 #ifndef ALIMUONSIMPLECLUSTERSERVER_H
2 #define ALIMUONSIMPLECLUSTERSERVER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONSimpleClusterServer
11 /// \brief Implementation of AliMUONVClusterServer interface
13 // Author Laurent Aphecetche, Subatech
15 #ifndef ALIMUONVCLUSTERSERVER_H
16 # include "AliMUONVClusterServer.h"
20 class AliMUONGeometryTransformer;
21 class AliMUONTriggerTrackToTrackerClusters;
22 class AliMUONVClusterFinder;
24 class AliMpVSegmentation;
26 class AliMpExMapIterator;
29 class AliMUONSimpleClusterServer : public AliMUONVClusterServer
32 AliMUONSimpleClusterServer(AliMUONVClusterFinder* clusterFinder,
33 const AliMUONGeometryTransformer& transformer);
35 virtual ~AliMUONSimpleClusterServer();
37 Int_t Clusterize(Int_t chamberId,
38 AliMUONVClusterStore& clusterStore,
39 const AliMpArea& area,
40 const AliMUONRecoParam* recoParam = 0x0);
42 void UseDigits(TIter& next, AliMUONVDigitStore* digitStore = 0x0);
44 void Print(Option_t* opt="") const;
46 /// Use trigger tracks. Return kFALSE if not used.
47 virtual Bool_t UseTriggerTrackStore(AliMUONVTriggerTrackStore* trackStore);
51 AliMUONSimpleClusterServer(const AliMUONSimpleClusterServer& rhs);
53 AliMUONSimpleClusterServer& operator=(const AliMUONSimpleClusterServer& rhs);
55 Bool_t Overlap(Int_t detElemId, const AliMpArea& area, AliMpArea& deArea) const;
57 void Global2Local(Int_t detElemId, const AliMpArea& globalArea, AliMpArea& localArea) const;
59 TObjArray* PadArray(Int_t detElemId, Int_t cathode) const;
61 Int_t FindMCLabel(const AliMUONCluster& cluster, Int_t detElemId, const AliMpVSegmentation* seg[2]) const;
64 AliMUONVDigitStore* fDigitStore; //!< the digit store (not owner)
65 AliMUONVClusterFinder* fClusterFinder; //!< the cluster finder (owner)
66 const AliMUONGeometryTransformer& fkTransformer; //!< the geometry transformer (not owner)
67 AliMpExMap* fPads[2]; ///< map of TClonesArray of AliMUONPads
68 AliMpExMapIterator* fPadsIterator[2]; ///< iterator for the map of TClonesArray of AliMUONPads
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)
72 ClassDef(AliMUONSimpleClusterServer,0) // Cluster server