]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTrackHitPattern.h
Fix bug in protection against division by 0.
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackHitPattern.h
CommitLineData
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 17class AliMUONVTrackStore;
18class AliMUONVTriggerStore;
683cb6c5 19class AliMUONVTriggerTrackStore;
7771752e 20class AliMUONTrackParam;
7771752e 21class AliMUONGeometryTransformer;
7ec3b9cf 22class AliMUONVDigitStore;
683cb6c5 23class AliMUONTriggerTrack;
24class AliMUONTrack;
a0dc65b4 25class AliMUONRecoParam;
d5315275 26class AliMUONTriggerUtilities;
27class AliMpPad;
28class TVector3;
0a2dcc83 29class TArrayI;
7771752e 30
7ec3b9cf 31class AliMUONTrackHitPattern : public TObject
32{
7771752e 33public:
7ec3b9cf 34
a0dc65b4 35 AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam,
36 const AliMUONGeometryTransformer& transformer,
d5315275 37 const AliMUONVDigitStore& digitStore,
38 const AliMUONTriggerUtilities* triggerUtilities);
7ec3b9cf 39 virtual ~AliMUONTrackHitPattern(); // Destructor
7ec3b9cf 40
9b1e069f 41 void ExecuteValidation(const AliMUONVTrackStore& trackStore,
683cb6c5 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;
67c201be 49
0a2dcc83 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
683cb6c5 54
683cb6c5 55protected:
56 void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const;
57
0a2dcc83 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
683cb6c5 72 // Methods for hit pattern from tracker track
64f628e9 73 void FindPadMatchingTrack(const AliMUONTrackParam& trackParam,
0a2dcc83 74 Bool_t isMatch[2], Int_t iChamber) const;
683cb6c5 75
76 Float_t MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t zPad,
d5315275 77 Float_t dpx, Float_t dpy,
78 const AliMUONTrackParam& trackParam) const;
7771752e 79
683cb6c5 80 // Methods for hit pattern from matched trigger track
0a2dcc83 81 Bool_t PerformTrigTrackMatch(UInt_t &pattern, const AliMUONTriggerTrack* matchedTrigTrack) const; // obsolete
683cb6c5 82
0a2dcc83 83 Bool_t FindPadMatchingTrig(const TVector3& vec11, const TVector3& vec21, Int_t matchedDetElemId[2], TObjArray& matchedPads) const; // obsolete
d5315275 84
0a2dcc83 85 Float_t PadMatchTrack(const AliMpPad& pad, const TVector3& trackPosAtPad) const; // obsolete
d5315275 86
0a2dcc83 87 Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t foundDetElemId[2]) const; // obsolete
d5315275 88
0a2dcc83 89 Bool_t PadsFromPos(const TVector3& vec11, const TVector3& vec21, Int_t detElemId, TObjArray& pads) const; // obsolete
683cb6c5 90
a0dc65b4 91
0a2dcc83 92 Bool_t IsCloseToAccEdge(TObjArray& pads, Int_t detElemId, Float_t coor[2]) const; // obsolete
d5315275 93
0a2dcc83 94 Bool_t IsMasked(const AliMpPad& pad, Int_t detElemId, Int_t cathode, const TVector3& vec11, const TVector3& vec21) const; // obsolete
d5315275 95
7771752e 96private:
683cb6c5 97 /// Not implemented
98 AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs);
99 /// Not implemented
100 AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs);
101
9b1e069f 102 const AliMUONRecoParam* fkRecoParam; //!< pointer to reco parameters
103 const AliMUONGeometryTransformer& fkTransformer; //!< geometry transformer
64f628e9 104 const AliMUONVDigitStore& fkDigitStore; //!< digitStore
d5315275 105 const AliMUONTriggerUtilities* fkTriggerUtilities; //!< trigger utilities for mapping
683cb6c5 106
0a2dcc83 107 const Float_t fkMaxDistance; //!< Maximum distance for reference // obsolete
a0dc65b4 108
683cb6c5 109 ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern
7771752e 110};
111
112#endif