Validation fail only in case the merging part of job failed
[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;
7771752e 29
7ec3b9cf 30class AliMUONTrackHitPattern : public TObject
31{
7771752e 32public:
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 53protected:
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 89private:
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