#ifndef ALIMUONTRACKHITPATTERN_H
#define ALIMUONTRACKHITPATTERN_H
#include <TObject.h>
class AliMUONVTrackStore;
class AliMUONVTriggerStore;
class AliMUONVTriggerTrackStore;
class AliMUONTrackParam;
class AliMUONGeometryTransformer;
class AliMUONVDigitStore;
class AliMUONTriggerTrack;
class AliMUONTrack;
class AliMUONRecoParam;
class AliMUONTriggerUtilities;
class AliMpPad;
class TVector3;
class TArrayI;
class AliMUONTrackHitPattern : public TObject
{
public:
AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam,
const AliMUONGeometryTransformer& transformer,
const AliMUONVDigitStore& digitStore,
const AliMUONTriggerUtilities* triggerUtilities);
virtual ~AliMUONTrackHitPattern();
void ExecuteValidation(const AliMUONVTrackStore& trackStore,
const AliMUONVTriggerTrackStore& triggerTrackStore,
const AliMUONVTriggerStore& triggerStore) const;
AliMUONTriggerTrack* MatchTriggerTrack(AliMUONTrack* track,
AliMUONTrackParam& trackParam,
const AliMUONVTriggerTrackStore& triggerTrackStore,
const AliMUONVTriggerStore& triggerStore) const;
UInt_t GetHitPattern(const AliMUONTrackParam& trackParam, Bool_t isTriggerTrack) const;
UInt_t GetHitPattern(const AliMUONTriggerTrack* matchedTriggerTrack) const;
UInt_t GetHitPattern(AliMUONTrackParam* trackParam) const;
protected:
void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const;
Int_t GetTrackParamAtChamber(const AliMUONTrackParam& inputTrackParam, Int_t chamber,
TObjArray& trackParamList, TArrayI& foundDetElemId, TObjArray& padsFromPos) const;
Bool_t FindMatchingPads(const AliMUONTrackParam* trackParam,
TArrayI& matchedDetElemId, TObjArray& pads,
const AliMUONVDigitStore& digitStore, Bool_t isTriggerTrack) const;
Bool_t PosInDetElemIdLocal(TVector3& localCoor, const TVector3& globalPoint1, const TVector3& globalPoint2, Int_t detElemId) const;
const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; }
void FindPadMatchingTrack(const AliMUONTrackParam& trackParam,
Bool_t isMatch[2], Int_t iChamber) const;
Float_t MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t zPad,
Float_t dpx, Float_t dpy,
const AliMUONTrackParam& trackParam) const;
Bool_t PerformTrigTrackMatch(UInt_t &pattern, const AliMUONTriggerTrack* matchedTrigTrack) const;
Bool_t FindPadMatchingTrig(const TVector3& vec11, const TVector3& vec21, Int_t matchedDetElemId[2], TObjArray& matchedPads) const;
Float_t PadMatchTrack(const AliMpPad& pad, const TVector3& trackPosAtPad) const;
Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t foundDetElemId[2]) const;
Bool_t PadsFromPos(const TVector3& vec11, const TVector3& vec21, Int_t detElemId, TObjArray& pads) const;
Bool_t IsCloseToAccEdge(TObjArray& pads, Int_t detElemId, Float_t coor[2]) const;
Bool_t IsMasked(const AliMpPad& pad, Int_t detElemId, Int_t cathode, const TVector3& vec11, const TVector3& vec21) const;
private:
AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs);
AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs);
const AliMUONRecoParam* fkRecoParam;
const AliMUONGeometryTransformer& fkTransformer;
const AliMUONVDigitStore& fkDigitStore;
const AliMUONTriggerUtilities* fkTriggerUtilities;
const Float_t fkMaxDistance;
ClassDef(AliMUONTrackHitPattern, 0)
};
#endif
AliMUONTrackHitPattern.h:1 AliMUONTrackHitPattern.h:2 AliMUONTrackHitPattern.h:3 AliMUONTrackHitPattern.h:4 AliMUONTrackHitPattern.h:5 AliMUONTrackHitPattern.h:6 AliMUONTrackHitPattern.h:7 AliMUONTrackHitPattern.h:8 AliMUONTrackHitPattern.h:9 AliMUONTrackHitPattern.h:10 AliMUONTrackHitPattern.h:11 AliMUONTrackHitPattern.h:12 AliMUONTrackHitPattern.h:13 AliMUONTrackHitPattern.h:14 AliMUONTrackHitPattern.h:15 AliMUONTrackHitPattern.h:16 AliMUONTrackHitPattern.h:17 AliMUONTrackHitPattern.h:18 AliMUONTrackHitPattern.h:19 AliMUONTrackHitPattern.h:20 AliMUONTrackHitPattern.h:21 AliMUONTrackHitPattern.h:22 AliMUONTrackHitPattern.h:23 AliMUONTrackHitPattern.h:24 AliMUONTrackHitPattern.h:25 AliMUONTrackHitPattern.h:26 AliMUONTrackHitPattern.h:27 AliMUONTrackHitPattern.h:28 AliMUONTrackHitPattern.h:29 AliMUONTrackHitPattern.h:30 AliMUONTrackHitPattern.h:31 AliMUONTrackHitPattern.h:32 AliMUONTrackHitPattern.h:33 AliMUONTrackHitPattern.h:34 AliMUONTrackHitPattern.h:35 AliMUONTrackHitPattern.h:36 AliMUONTrackHitPattern.h:37 AliMUONTrackHitPattern.h:38 AliMUONTrackHitPattern.h:39 AliMUONTrackHitPattern.h:40 AliMUONTrackHitPattern.h:41 AliMUONTrackHitPattern.h:42 AliMUONTrackHitPattern.h:43 AliMUONTrackHitPattern.h:44 AliMUONTrackHitPattern.h:45 AliMUONTrackHitPattern.h:46 AliMUONTrackHitPattern.h:47 AliMUONTrackHitPattern.h:48 AliMUONTrackHitPattern.h:49 AliMUONTrackHitPattern.h:50 AliMUONTrackHitPattern.h:51 AliMUONTrackHitPattern.h:52 AliMUONTrackHitPattern.h:53 AliMUONTrackHitPattern.h:54 AliMUONTrackHitPattern.h:55 AliMUONTrackHitPattern.h:56 AliMUONTrackHitPattern.h:57 AliMUONTrackHitPattern.h:58 AliMUONTrackHitPattern.h:59 AliMUONTrackHitPattern.h:60 AliMUONTrackHitPattern.h:61 AliMUONTrackHitPattern.h:62 AliMUONTrackHitPattern.h:63 AliMUONTrackHitPattern.h:64 AliMUONTrackHitPattern.h:65 AliMUONTrackHitPattern.h:66 AliMUONTrackHitPattern.h:67 AliMUONTrackHitPattern.h:68 AliMUONTrackHitPattern.h:69 AliMUONTrackHitPattern.h:70 AliMUONTrackHitPattern.h:71 AliMUONTrackHitPattern.h:72 AliMUONTrackHitPattern.h:73 AliMUONTrackHitPattern.h:74 AliMUONTrackHitPattern.h:75 AliMUONTrackHitPattern.h:76 AliMUONTrackHitPattern.h:77 AliMUONTrackHitPattern.h:78 AliMUONTrackHitPattern.h:79 AliMUONTrackHitPattern.h:80 AliMUONTrackHitPattern.h:81 AliMUONTrackHitPattern.h:82 AliMUONTrackHitPattern.h:83 AliMUONTrackHitPattern.h:84 AliMUONTrackHitPattern.h:85 AliMUONTrackHitPattern.h:86 AliMUONTrackHitPattern.h:87 AliMUONTrackHitPattern.h:88 AliMUONTrackHitPattern.h:89 AliMUONTrackHitPattern.h:90 AliMUONTrackHitPattern.h:91 AliMUONTrackHitPattern.h:92 AliMUONTrackHitPattern.h:93 AliMUONTrackHitPattern.h:94 AliMUONTrackHitPattern.h:95 AliMUONTrackHitPattern.h:96 AliMUONTrackHitPattern.h:97 AliMUONTrackHitPattern.h:98 AliMUONTrackHitPattern.h:99 AliMUONTrackHitPattern.h:100 AliMUONTrackHitPattern.h:101 AliMUONTrackHitPattern.h:102 AliMUONTrackHitPattern.h:103 AliMUONTrackHitPattern.h:104 AliMUONTrackHitPattern.h:105 AliMUONTrackHitPattern.h:106 AliMUONTrackHitPattern.h:107 AliMUONTrackHitPattern.h:108 AliMUONTrackHitPattern.h:109 AliMUONTrackHitPattern.h:110 AliMUONTrackHitPattern.h:111 AliMUONTrackHitPattern.h:112