]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrack.h
Use AddLine() when registering SSD digits.
[u/mrichter/AliRoot.git] / MUON / AliMUONTrack.h
index cd0d6b3c662b50d4791e307444a52281328da837..be7f2c5a56581e72632d1bc9b863fa427646c1db 100644 (file)
@@ -4,71 +4,97 @@
  * See cxx source for full Copyright notice                               */
 
 /*$Id$*/
+// Revision of includes 07/05/2004
 
-///////////////////////////////////////////////////
-// Reconstructed track in ALICE dimuon spectrometer
-///////////////////////////////////////////////////
+/// \ingroup rec
+/// \class AliMUONTrack
+/// \brief Reconstructed track in ALICE dimuon spectrometer
+///
+////////////////////////////////////////////////////
+/// Reconstructed track in ALICE dimuon spectrometer
+////////////////////////////////////////////////////
+
+#include <TClonesArray.h>
 
 #include "AliMUONTrackParam.h" // object belongs to the class
 
-class TObjArray;
-class TVirtualFitter;
-class AliMUONEventReconstructor;
 class AliMUONHitForRec;
 class AliMUONSegment;
 
-class AliMUONTrack : public TObject {
+class AliMUONTrack : public TObject 
+{
  public:
-  AliMUONTrack(){
-    // Constructor
-    ;} // Constructor
+  AliMUONTrack(); // Default constructor
   virtual ~AliMUONTrack(); // Destructor
   AliMUONTrack (const AliMUONTrack& AliMUONTrack); // copy constructor
   AliMUONTrack& operator=(const AliMUONTrack& AliMUONTrack); // assignment operator
 
-  AliMUONTrack(AliMUONSegment* BegSegment, AliMUONSegment* EndSegment, AliMUONEventReconstructor* EventReconstructor); // Constructor from two Segment's
-  AliMUONTrack(AliMUONSegment* Segment, AliMUONHitForRec* HitForRec, AliMUONEventReconstructor* EventReconstructor); // Constructor from one Segment and one HitForRec
-  void Remove(void);
+  AliMUONTrack(AliMUONSegment* BegSegment, AliMUONSegment* EndSegment); // Constructor from two Segment's
+  AliMUONTrack(AliMUONSegment* Segment, AliMUONHitForRec* HitForRec); // Constructor from one Segment and one HitForRec
+
+       /// return pointeur to track parameters at vertex
+  AliMUONTrackParam*         GetTrackParamAtVertex(void) {return &fTrackParamAtVertex;}
+       /// set track parameters at vertex
+  void                       SetTrackParamAtVertex(AliMUONTrackParam* TrackParam) {fTrackParamAtVertex = *TrackParam;}
 
-  AliMUONEventReconstructor* GetEventReconstructor(void) const {return fEventReconstructor;}
-  AliMUONTrackParam* GetTrackParamAtVertex(void) {return &fTrackParamAtVertex;}
-  void SetTrackParamAtVertex(void); // Set track parameters at vertex from last stations 4 & 5
-  void SetTrackParamAtVertex(AliMUONTrackParam* TrackParam) {fTrackParamAtVertex = *TrackParam;}
+       /// return array of track parameters at hit
+  TClonesArray*              GetTrackParamAtHit(void) const {return fTrackParamAtHit;}
+       /// reset array of track parameters at hit
+  void                       ResetTrackParamAtHit(void) { fTrackParamAtHit->Delete(); }
+       /// add track parameters to the array of track parameters at hit
+  void                       AddTrackParamAtHit(AliMUONTrackParam *trackParam, AliMUONHitForRec *hitForRec); 
+  
+       /// return array of hitForRec at hit
+  TClonesArray*              GetHitForRecAtHit(void) const {return fHitForRecAtHit;}
+       /// reset array of hitForRec at hit
+  void                       ResetHitForRecAtHit(void) { fHitForRecAtHit->Delete(); }
+  void                       AddHitForRecAtHit(const AliMUONHitForRec *hitForRec); 
 
-  TObjArray* GetTrackHitsPtr(void) const {return fTrackHitsPtr;}
-  Int_t GetNTrackHits(void) const {return fNTrackHits;}
-  Int_t GetFitMCS(void) const {return fFitMCS;}
-  Int_t GetFitNParam(void) const {return fFitNParam;}
-  Int_t GetFitStart(void) const {return fFitStart;}
-  Double_t GetFitFMin(void) const {return fFitFMin;}
-  void SetFitMCS(Int_t FitMCS);
-  void SetFitNParam(Int_t FitNParam);
-  void SetFitStart(Int_t FitStart);
+       /// return the number of hits attached to the track
+  Int_t                      GetNTrackHits(void) const {return fNTrackHits;}
+       /// set the number of hits attached to the track
+  void                       SetNTrackHits(Int_t nTrackHits) {fNTrackHits = nTrackHits;}
 
-  AliMUONTrackParam* GetTrackParamAtFirstHit(void) const;
+       /// return the minimum value of the function minimized by the fit
+  Double_t                   GetFitFMin(void) const {return fFitFMin;}
+       /// set the minimum value of the function minimized by the fit
+  void                       SetFitFMin(Double_t chi2) { fFitFMin = chi2; } // set Chi2
+       /// return kTrue if track matches with trigger track, kFalse if not
+  Bool_t                     GetMatchTrigger(void) const {return fMatchTrigger;}
+       /// set the flag telling whether track matches with trigger track or not
+  void                      SetMatchTrigger(Bool_t MatchTrigger) {fMatchTrigger = MatchTrigger;}
+       /// return the chi2 of trigger/track matching 
+  Double_t                   GetChi2MatchTrigger(void) const {return fChi2MatchTrigger;}
+       /// set the chi2 of trigger/track matching 
+  void                       SetChi2MatchTrigger(Double_t Chi2MatchTrigger) {fChi2MatchTrigger = Chi2MatchTrigger;}
+  
+  Int_t                      HitsInCommon(AliMUONTrack* Track) const;
+  Bool_t*                    CompatibleTrack(AliMUONTrack* Track, Double_t Sigma2Cut) const; // return array of compatible chamber
+  
+       /// return track number in TrackRefs
+  Int_t                      GetTrackID() const {return fTrackID;}
+       /// set track number in TrackRefs
+  void                       SetTrackID(Int_t trackID) {fTrackID = trackID;}
 
-  void RecursiveDump(void) const; // Recursive dump (with track hits)
-  void Fit(); // Fit
-  void AddSegment(AliMUONSegment* Segment); // Add Segment
-  void AddHitForRec(AliMUONHitForRec* HitForRec); // Add HitForRec
-  void SetTrackParamAtHit(Int_t indexHit, AliMUONTrackParam *TrackParam) const;
-  Int_t HitsInCommon(AliMUONTrack* Track);
+  void                       RecursiveDump(void) const; // Recursive dump (with track hits)
+
+  virtual void               Print(Option_t* opt="") const;
 
-  static TVirtualFitter* Fitter(void) {return fgFitter;}
 
- protected:
  private:
-  static TVirtualFitter* fgFitter; // Pointer to track fitter
-  AliMUONEventReconstructor* fEventReconstructor; // Pointer to EventReconstructor
-  AliMUONTrackParam fTrackParamAtVertex; // Track parameters at vertex
-  TObjArray *fTrackHitsPtr; // Pointer to array of pointers to TrackHit's
-  Int_t fNTrackHits; // Number of TrackHit's
-  Int_t fFitMCS; // 0(1) for fit without(with) multiple Coulomb scattering
-  Int_t fFitNParam; // 3(5) for fit with 3(5) parameters
-  Int_t fFitStart; // 0 or 1 for fit starting from parameters at vertex (0) or at first TrackHit(1)
-  Double_t fFitFMin; // minimum value of the function minimized by the fit
+  AliMUONTrackParam fTrackParamAtVertex; ///< Track parameters at vertex
+  TClonesArray *fTrackParamAtHit; ///< Track parameters at hit
+  TClonesArray *fHitForRecAtHit; ///< Cluster parameters at hit
+  Int_t fNTrackHits; ///< Number of hits attached to the track
+  
+  Double_t fFitFMin; ///< minimum value of the function minimized by the fit
+  Bool_t fMatchTrigger; ///< 1 if track matches with trigger track, 0 if not
+  Double_t fChi2MatchTrigger; ///< chi2 of trigger/track matching 
+  
+  Int_t fTrackID; ///< track ID = track number in TrackRefs
+  
   
-  ClassDef(AliMUONTrack, 1) // Reconstructed track in ALICE dimuon spectrometer
-    };
+  ClassDef(AliMUONTrack, 3) // Reconstructed track in ALICE dimuon spectrometer
+};
        
 #endif