]>
Commit | Line | Data |
---|---|---|
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 | 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 | ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern | |
110 | }; | |
111 | ||
112 | #endif |