X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONVTrackReconstructor.h;h=be29209708e038518dc2e9c5140516ea80cb786c;hb=dac20c1b501c120d09d28a73f32bcf3dded11c1c;hp=195892653c3824f2836f11c2a267409388a56a41;hpb=5a240757bd78901da589c49d12109dbdd63cfe46;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONVTrackReconstructor.h b/MUON/AliMUONVTrackReconstructor.h index 195892653c3..be29209708e 100644 --- a/MUON/AliMUONVTrackReconstructor.h +++ b/MUON/AliMUONVTrackReconstructor.h @@ -28,6 +28,7 @@ class AliMUONDigitMaker; class AliMUONTriggerCircuit; class TClonesArray; class AliMUONRecoParam; +class AliMUONLocalTrigger; class AliMUONVTrackReconstructor : public TObject { @@ -48,11 +49,18 @@ class AliMUONVTrackReconstructor : public TObject { const AliMUONVTriggerStore& triggerStore, const AliMUONTrackHitPattern& trackHitPattern); + /// Return reco parameters const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; } - /// re-fit the given track + /// Re-fit the given track virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE) = 0; + void TriggerToTrack(const AliMUONTriggerCircuit& circuit, + const AliMUONLocalTrigger& locTrg, + AliMUONTriggerTrack& triggerTrack, + UChar_t globalTriggerPattern = 0); + + protected: @@ -63,30 +71,36 @@ class AliMUONVTrackReconstructor : public TObject { const AliMUONRecoParam* fkRecoParam; ///< reference to reco parameters + Double_t* fMaxMCSAngle2; ///< maximum angle dispersion due to MCS + // Functions AliMUONVTrackReconstructor (const AliMUONVTrackReconstructor& rhs); ///< copy constructor AliMUONVTrackReconstructor& operator=(const AliMUONVTrackReconstructor& rhs); ///< assignment operator /// Make track candidates from clusters in stations(1..) 4 and 5 - virtual void MakeTrackCandidates(AliMUONVClusterStore& clusterStore) = 0; + virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore) = 0; /// Make extra track candidates from clusters in stations(1..) 4 and 5 - virtual void MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore) = 0; + virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore) = 0; /// Follow tracks in stations(1..) 3, 2 and 1 - virtual void FollowTracks(AliMUONVClusterStore& clusterStore) = 0; + virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore) = 0; /// Complement the reconstructed tracks - virtual void ComplementTracks(const AliMUONVClusterStore& clusterStore) = 0; + virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore) = 0; void ImproveTracks(); /// Improve the given reconstructed track virtual void ImproveTrack(AliMUONTrack &track) = 0; void Finalize(); /// Finalize the given track - virtual void FinalizeTrack(AliMUONTrack &track) = 0; + virtual Bool_t FinalizeTrack(AliMUONTrack &track) = 0; + + Bool_t IsAcceptable(AliMUONTrackParam &trackParam); TClonesArray* MakeSegmentsBetweenChambers(const AliMUONVClusterStore& clusterStore, Int_t ch1, Int_t ch2); + void RemoveUsedSegments(TClonesArray& segments); void RemoveIdenticalTracks(); void RemoveDoubleTracks(); - void RemoveConnectedTracks(Bool_t inSt345 = kFALSE); + void RemoveConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all); + void TagConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all); void AskForNewClustersInStation(const AliMUONTrackParam &trackParam, AliMUONVClusterStore& clusterStore, Int_t station); @@ -101,7 +115,6 @@ class AliMUONVTrackReconstructor : public TObject { Bool_t FollowLinearTrackInChamber(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextChamber); Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextStation); - private: