Line data Source code
1 : #ifndef ALIMUONTRACKHITPATTERN_H
2 : #define ALIMUONTRACKHITPATTERN_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /*$Id$*/
7 :
8 : /// \ingroup rec
9 : /// \class AliMUONTrackHitPattern
10 : /// \brief Class for the MUON track hit pattern
11 : ///
12 : // Author: Diego Stocco
13 :
14 : #include <TObject.h>
15 : //#include <TObjArray.h>
16 :
17 : class AliMUONVTrackStore;
18 : class AliMUONVTriggerStore;
19 : class AliMUONVTriggerTrackStore;
20 : class AliMUONTrackParam;
21 : class AliMUONGeometryTransformer;
22 : class AliMUONVDigitStore;
23 : class AliMUONTriggerTrack;
24 : class AliMUONTrack;
25 : class AliMUONRecoParam;
26 : class AliMUONTriggerUtilities;
27 : class AliMpPad;
28 : class TVector3;
29 : class TArrayI;
30 :
31 : class AliMUONTrackHitPattern : public TObject
32 : {
33 : public:
34 :
35 : AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam,
36 : const AliMUONGeometryTransformer& transformer,
37 : const AliMUONVDigitStore& digitStore,
38 : const AliMUONTriggerUtilities* triggerUtilities);
39 : virtual ~AliMUONTrackHitPattern(); // Destructor
40 :
41 : void ExecuteValidation(const AliMUONVTrackStore& trackStore,
42 : const AliMUONVTriggerTrackStore& triggerTrackStore,
43 : const AliMUONVTriggerStore& triggerStore) const;
44 :
45 : AliMUONTriggerTrack* MatchTriggerTrack(AliMUONTrack* track,
46 : AliMUONTrackParam& trackParam,
47 : const AliMUONVTriggerTrackStore& triggerTrackStore,
48 : const AliMUONVTriggerStore& triggerStore) const;
49 :
50 : UInt_t GetHitPattern(const AliMUONTrackParam& trackParam, Bool_t isTriggerTrack) const;
51 :
52 : UInt_t GetHitPattern(const AliMUONTriggerTrack* matchedTriggerTrack) const; // obsolete
53 : UInt_t GetHitPattern(AliMUONTrackParam* trackParam) const; // obsolete
54 :
55 : protected:
56 : void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const;
57 :
58 : Int_t GetTrackParamAtChamber(const AliMUONTrackParam& inputTrackParam, Int_t chamber,
59 : TObjArray& trackParamList, TArrayI& foundDetElemId, TObjArray& padsFromPos) const;
60 :
61 : Bool_t FindMatchingPads(const AliMUONTrackParam* trackParam,
62 : TArrayI& matchedDetElemId, TObjArray& pads,
63 : const AliMUONVDigitStore& digitStore, Bool_t isTriggerTrack) const;
64 :
65 : Bool_t PosInDetElemIdLocal(TVector3& localCoor, const TVector3& globalPoint1, const TVector3& globalPoint2, Int_t detElemId) const;
66 :
67 : /// Return reco parameters
68 1136 : const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; }
69 :
70 : // THE FOLLOWING METHODS ARE OBSOLETE
71 :
72 : // Methods for hit pattern from tracker track
73 : void FindPadMatchingTrack(const AliMUONTrackParam& trackParam,
74 : Bool_t isMatch[2], Int_t iChamber) const;
75 :
76 : Float_t MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t zPad,
77 : Float_t dpx, Float_t dpy,
78 : const AliMUONTrackParam& trackParam) const;
79 :
80 : // Methods for hit pattern from matched trigger track
81 : Bool_t PerformTrigTrackMatch(UInt_t &pattern, const AliMUONTriggerTrack* matchedTrigTrack) const; // obsolete
82 :
83 : Bool_t FindPadMatchingTrig(const TVector3& vec11, const TVector3& vec21, Int_t matchedDetElemId[2], TObjArray& matchedPads) const; // obsolete
84 :
85 : Float_t PadMatchTrack(const AliMpPad& pad, const TVector3& trackPosAtPad) const; // obsolete
86 :
87 : Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t foundDetElemId[2]) const; // obsolete
88 :
89 : Bool_t PadsFromPos(const TVector3& vec11, const TVector3& vec21, Int_t detElemId, TObjArray& pads) const; // obsolete
90 :
91 :
92 : Bool_t IsCloseToAccEdge(TObjArray& pads, Int_t detElemId, Float_t coor[2]) const; // obsolete
93 :
94 : Bool_t IsMasked(const AliMpPad& pad, Int_t detElemId, Int_t cathode, const TVector3& vec11, const TVector3& vec21) const; // obsolete
95 :
96 : private:
97 : /// Not implemented
98 : AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs);
99 : /// Not implemented
100 : AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs);
101 :
102 : const AliMUONRecoParam* fkRecoParam; //!<! pointer to reco parameters
103 : const AliMUONGeometryTransformer& fkTransformer; //!<! geometry transformer
104 : const AliMUONVDigitStore& fkDigitStore; //!<! digitStore
105 : const AliMUONTriggerUtilities* fkTriggerUtilities; //!<! trigger utilities for mapping
106 :
107 : const Float_t fkMaxDistance; //!<! Maximum distance for reference // obsolete
108 :
109 1358 : ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern
110 : };
111 :
112 : #endif
|