X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackHitPattern.h;h=f6b61028354b801980973a29ba1e0783ef04db27;hb=a5cad1a4744c4a29e2026a92df10d5bc232204cc;hp=9b0d21e616cd8c89112266376897c5201154b4a2;hpb=ea94c18bf6067f370cb3d1e48c21542936e5f437;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackHitPattern.h b/MUON/AliMUONTrackHitPattern.h index 9b0d21e616c..f6b61028354 100644 --- a/MUON/AliMUONTrackHitPattern.h +++ b/MUON/AliMUONTrackHitPattern.h @@ -12,49 +12,102 @@ // Author: Diego Stocco #include +#include +#include +#include class AliMUONVTrackStore; class AliMUONVTriggerStore; +class AliMUONVTriggerTrackStore; class AliMUONTrackParam; class AliMUONDigitMaker; class AliMUONGeometryTransformer; class AliMUONVDigitStore; +class AliMUONTriggerTrack; +class AliMUONTrack; +class AliMUONRecoParam; class AliMUONTrackHitPattern : public TObject { public: - AliMUONTrackHitPattern(const AliMUONGeometryTransformer& transformer, + AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam, + const AliMUONGeometryTransformer& transformer, const AliMUONDigitMaker& digitMaker); virtual ~AliMUONTrackHitPattern(); // Destructor - - void GetHitPattern(AliMUONVTrackStore& trackStore, - const AliMUONVTriggerStore& triggerStore) const; - - void FindPadMatchingTrack(AliMUONVDigitStore& digitStore, - 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; - - void GetPosUncertainty(const AliMUONTrackParam& trackParm, Float_t zChamber, - Float_t &sigmaX, Float_t &sigmaY, Float_t &sigmaMS) const; - - Bool_t TriggerDigits(const AliMUONVTriggerStore& triggerStore, - AliMUONVDigitStore& digitStore) const; + 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; + + UShort_t GetHitPattern(AliMUONTriggerTrack* matchedTriggerTrack, + AliMUONVDigitStore& digitStore) const; + + UShort_t GetHitPattern(AliMUONTrackParam* trackParam, + AliMUONVDigitStore& digitStore) const; + +protected: + void ApplyMCSCorrections(AliMUONTrackParam& trackParam) const; + + void InitMembers(); + + // Methods for hit pattern from tracker track + void FindPadMatchingTrack(const AliMUONVDigitStore& digitStore, + 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; + + // Methods for hit pattern from matched trigger track + Bool_t PerformTrigTrackMatch(UShort_t &pattern, + const AliMUONTriggerTrack* matchedTrigTrack, + AliMUONVDigitStore& digitStore) const; + + Int_t FindPadMatchingTrig(const AliMUONVDigitStore& digitStore, Int_t &detElemId, Float_t coor[2], + Bool_t isMatch[2], TArrayI nboard[2], + TArrayF &zRealMatch, Float_t y11) const; + + Float_t PadMatchTrack(Float_t xPad, Float_t yPad, Float_t dpx, Float_t dpy, + Float_t xTrackAtPad, Float_t yTrackAtPad) const; + + Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t cathode) const; + + void LocalBoardFromPos(Float_t x, Float_t y, Int_t detElemId, + Int_t cathode, Int_t localBoard[4]) const; + + /// Return reco parameters + const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; } + private: - /// Not implemented - AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs); - /// Not implemented - AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs); + /// Not implemented + AliMUONTrackHitPattern(const AliMUONTrackHitPattern& rhs); + /// Not implemented + AliMUONTrackHitPattern& operator = (const AliMUONTrackHitPattern& rhs); + + void CheckConstants() const; + + const AliMUONRecoParam* fkRecoParam; //!< pointer to reco parameters + const AliMUONGeometryTransformer& fkTransformer; //!< geometry transformer + const AliMUONDigitMaker& fkDigitMaker; //!< pointer to digit maker + + Double_t fDeltaZ; //!< distance between stations - const AliMUONGeometryTransformer& fTransformer; //!< geometry transformer - const AliMUONDigitMaker& fDigitMaker; ///< pointer to digit maker + TMatrixD* fTrigCovariance; //!< Covariance matrix 3x3 (X,Y,slopeY) for trigger tracks - ClassDef(AliMUONTrackHitPattern, 0) // MUON track hit pattern + const Float_t fkMaxDistance; //!< Maximum distance for reference + static const Int_t fgkNcathodes=2; //!