]>
Commit | Line | Data |
---|---|---|
7771752e | 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 | ||
ea94c18b | 6 | /*$Id$*/ |
7 | ||
7771752e | 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> | |
d5315275 | 15 | //#include <TObjArray.h> |
7771752e | 16 | |
7ec3b9cf | 17 | class AliMUONVTrackStore; |
18 | class AliMUONVTriggerStore; | |
683cb6c5 | 19 | class AliMUONVTriggerTrackStore; |
7771752e | 20 | class AliMUONTrackParam; |
7771752e | 21 | class AliMUONGeometryTransformer; |
7ec3b9cf | 22 | class AliMUONVDigitStore; |
683cb6c5 | 23 | class AliMUONTriggerTrack; |
24 | class AliMUONTrack; | |
a0dc65b4 | 25 | class AliMUONRecoParam; |
d5315275 | 26 | class AliMUONTriggerUtilities; |
27 | class AliMpPad; | |
28 | class TVector3; | |
7771752e | 29 | |
7ec3b9cf | 30 | class AliMUONTrackHitPattern : public TObject |
31 | { | |
7771752e | 32 | public: |
7ec3b9cf | 33 | |
a0dc65b4 | 34 | AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam, |
35 | const AliMUONGeometryTransformer& transformer, | |
d5315275 | 36 | const AliMUONVDigitStore& digitStore, |
37 | const AliMUONTriggerUtilities* triggerUtilities); | |
7ec3b9cf | 38 | virtual ~AliMUONTrackHitPattern(); // Destructor |
7ec3b9cf | 39 | |
9b1e069f | 40 | void ExecuteValidation(const AliMUONVTrackStore& trackStore, |
683cb6c5 | 41 | const AliMUONVTriggerTrackStore& triggerTrackStore, |
42 | const AliMUONVTriggerStore& triggerStore) const; | |
43 | ||
44 | AliMUONTriggerTrack* MatchTriggerTrack(AliMUONTrack* track, | |
45 | AliMUONTrackParam& trackParam, | |
46 | const AliMUONVTriggerTrackStore& triggerTrackStore, | |
47 | const AliMUONVTriggerStore& triggerStore) const; | |
67c201be | 48 | |
d5315275 | 49 | UShort_t GetHitPattern(const AliMUONTriggerTrack* matchedTriggerTrack) const; |
67c201be | 50 | |
64f628e9 | 51 | UShort_t GetHitPattern(AliMUONTrackParam* trackParam) const; |
683cb6c5 | 52 | |
683cb6c5 | 53 | protected: |
54 | void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const; | |
55 | ||
683cb6c5 | 56 | // Methods for hit pattern from tracker track |
64f628e9 | 57 | void FindPadMatchingTrack(const AliMUONTrackParam& trackParam, |
683cb6c5 | 58 | Bool_t isMatch[2], Int_t iChamber) const; |
59 | ||
60 | Float_t MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t zPad, | |
d5315275 | 61 | Float_t dpx, Float_t dpy, |
62 | const AliMUONTrackParam& trackParam) const; | |
7771752e | 63 | |
683cb6c5 | 64 | // Methods for hit pattern from matched trigger track |
65 | Bool_t PerformTrigTrackMatch(UShort_t &pattern, | |
64f628e9 | 66 | const AliMUONTriggerTrack* matchedTrigTrack) const; |
683cb6c5 | 67 | |
d5315275 | 68 | Bool_t FindPadMatchingTrig(const TVector3& vec11, const TVector3& vec21, |
69 | Int_t matchedDetElemId[2], TObjArray& matchedPads) const; | |
683cb6c5 | 70 | |
683cb6c5 | 71 | |
d5315275 | 72 | Float_t PadMatchTrack(const AliMpPad& pad, const TVector3& trackPosAtPad) const; |
73 | ||
74 | Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t foundDetElemId[2]) const; | |
75 | ||
76 | Bool_t PadsFromPos(const TVector3& vec11, const TVector3& vec21, | |
77 | Int_t detElemId, TObjArray& pads) const; | |
78 | ||
79 | Bool_t PosInDetElemIdLocal(TVector3& localCoor, const TVector3& globalPoint1, const TVector3& globalPoint2, Int_t detElemId) const; | |
683cb6c5 | 80 | |
7771752e | 81 | |
21973f26 | 82 | /// Return reco parameters |
9b1e069f | 83 | const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; } |
a0dc65b4 | 84 | |
d5315275 | 85 | Bool_t IsCloseToAccEdge(TObjArray& pads, Int_t detElemId, Float_t coor[2]) const; |
86 | ||
87 | Bool_t IsMasked(const AliMpPad& pad, Int_t detElemId, Int_t cathode, const TVector3& vec11, const TVector3& vec21) const; | |
88 | ||
7771752e | 89 | private: |
683cb6c5 | 90 | /// Not implemented |
91 | AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs); | |
92 | /// Not implemented | |
93 | AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs); | |
94 | ||
9b1e069f | 95 | const AliMUONRecoParam* fkRecoParam; //!< pointer to reco parameters |
96 | const AliMUONGeometryTransformer& fkTransformer; //!< geometry transformer | |
64f628e9 | 97 | const AliMUONVDigitStore& fkDigitStore; //!< digitStore |
d5315275 | 98 | const AliMUONTriggerUtilities* fkTriggerUtilities; //!< trigger utilities for mapping |
683cb6c5 | 99 | |
683cb6c5 | 100 | const Float_t fkMaxDistance; //!< Maximum distance for reference |
a0dc65b4 | 101 | |
683cb6c5 | 102 | ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern |
7771752e | 103 | }; |
104 | ||
105 | #endif |