]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTrackHitPattern.h
Adding a new TrackletVertexFinder method accepting an array of AliStrLine pointers...
[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>
683cb6c5 15#include <TMatrixD.h>
16#include <TArrayI.h>
17#include <TArrayF.h>
7771752e 18
7ec3b9cf 19class AliMUONVTrackStore;
20class AliMUONVTriggerStore;
683cb6c5 21class AliMUONVTriggerTrackStore;
7771752e 22class AliMUONTrackParam;
a721d89c 23class AliMUONDigitMaker;
7771752e 24class AliMUONGeometryTransformer;
7ec3b9cf 25class AliMUONVDigitStore;
683cb6c5 26class AliMUONTriggerTrack;
27class AliMUONTrack;
a0dc65b4 28class AliMUONRecoParam;
7771752e 29
7ec3b9cf 30class AliMUONTrackHitPattern : public TObject
31{
7771752e 32public:
7ec3b9cf 33
a0dc65b4 34 AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam,
35 const AliMUONGeometryTransformer& transformer,
7ec3b9cf 36 const AliMUONDigitMaker& digitMaker);
37 virtual ~AliMUONTrackHitPattern(); // Destructor
7ec3b9cf 38
9b1e069f 39 void ExecuteValidation(const AliMUONVTrackStore& trackStore,
683cb6c5 40 const AliMUONVTriggerTrackStore& triggerTrackStore,
41 const AliMUONVTriggerStore& triggerStore) const;
42
43 AliMUONTriggerTrack* MatchTriggerTrack(AliMUONTrack* track,
44 AliMUONTrackParam& trackParam,
45 const AliMUONVTriggerTrackStore& triggerTrackStore,
46 const AliMUONVTriggerStore& triggerStore) const;
7ec3b9cf 47
54355f2c 48 UShort_t GetHitPattern(AliMUONTriggerTrack* matchedTriggerTrack,
49 AliMUONVDigitStore& digitStore,
50 AliMUONTrackParam* trackParam=0x0) const;
683cb6c5 51
683cb6c5 52protected:
53 void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const;
54
683cb6c5 55 void InitMembers();
56
57 void SetBit(UShort_t& pattern, Int_t cathode, Int_t chamber) const;
58
59 void AddEffInfo(UShort_t& pattern, Int_t slat, Int_t effType) const;
60
61
62 // Methods for hit pattern from tracker track
9b1e069f 63 void FindPadMatchingTrack(const AliMUONVDigitStore& digitStore,
683cb6c5 64 const AliMUONTrackParam& trackParam,
65 Bool_t isMatch[2], Int_t iChamber) const;
66
67 Float_t MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t zPad,
68 Float_t dpx, Float_t dpy,
69 const AliMUONTrackParam& trackParam) const;
7771752e 70
683cb6c5 71 // Methods for hit pattern from matched trigger track
72 Bool_t PerformTrigTrackMatch(UShort_t &pattern,
9b1e069f 73 const AliMUONTriggerTrack* matchedTrigTrack,
683cb6c5 74 AliMUONVDigitStore& digitStore) const;
75
9b1e069f 76 Int_t FindPadMatchingTrig(const AliMUONVDigitStore& digitStore, Int_t &detElemId, Float_t coor[2],
683cb6c5 77 Bool_t isMatch[2], TArrayI nboard[2],
78 TArrayF &zRealMatch, Float_t y11) const;
79
80 Float_t PadMatchTrack(Float_t xPad, Float_t yPad, Float_t dpx, Float_t dpy,
81 Float_t xTrackAtPad, Float_t yTrackAtPad) const;
82
83 Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t cathode) const;
84
85 void LocalBoardFromPos(Float_t x, Float_t y, Int_t detElemId,
86 Int_t cathode, Int_t localBoard[4]) const;
7771752e 87
21973f26 88 /// Return reco parameters
9b1e069f 89 const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; }
a0dc65b4 90
7771752e 91private:
683cb6c5 92 /// Not implemented
93 AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs);
94 /// Not implemented
95 AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs);
96
97 void CheckConstants() const;
683cb6c5 98
9b1e069f 99 const AliMUONRecoParam* fkRecoParam; //!< pointer to reco parameters
100 const AliMUONGeometryTransformer& fkTransformer; //!< geometry transformer
101 const AliMUONDigitMaker& fkDigitMaker; //!< pointer to digit maker
683cb6c5 102
103 Double_t fDeltaZ; //!< distance between stations
104
105 TMatrixD* fTrigCovariance; //!< Covariance matrix 3x3 (X,Y,slopeY) for trigger tracks
106
107 const Float_t fkMaxDistance; //!< Maximum distance for reference
108 static const Int_t fgkNcathodes=2; //!<Number of cathodes
109 static const Int_t fgkNchambers=4; //!<Number of chambers
110 static const Int_t fgkNplanes=8; //!<Number of planes
111 static const Int_t fgkNlocations=4; //!<Number of locations
112
113 enum {
114 kNoEff,
115 kChEff,
116 kSlatEff,
117 kBoardEff
118 };
a0dc65b4 119
683cb6c5 120 ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern
7771752e 121};
122
123#endif