]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerTrack.h
- Apply trigger algorithm to MC tracks when defining a triggerable track (for perform...
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerTrack.h
index 8fa6986e9264f7ccc3ec9aa3a48d1abadce0fa74..ae5f2600c0133745f0a7c4d4ee1d2f3a4f0723e4 100644 (file)
@@ -6,13 +6,16 @@
 /*$Id$*/
 // Revision of includes 07/05/2004
 
-///////////////////////////////////////////////////
-// Reconstructed trigger track in ALICE dimuon spectrometer
-///////////////////////////////////////////////////
+/// \ingroup rec
+/// \class AliMUONTriggerTrack
+/// \brief Reconstructed trigger track in ALICE dimuon spectrometer
+/// \author Philippe Crochet
 
 #include <TObject.h>
+#include <TMatrixD.h>
+#include <TMath.h>
 
-class AliMUONEventReconstructor;
+class AliMUONTrackReconstructor;
 
 class AliMUONTriggerTrack : public TObject 
 {
@@ -21,27 +24,87 @@ class AliMUONTriggerTrack : public TObject
     virtual ~AliMUONTriggerTrack(); // Destructor
     AliMUONTriggerTrack (const AliMUONTriggerTrack& AliMUONTriggerTrack); // copy constructor
     AliMUONTriggerTrack& operator=(const AliMUONTriggerTrack& AliMUONTriggerTrack); // assignment operator
-    AliMUONTriggerTrack(Float_t x11, Float_t y11, Float_t thetax, Float_t thetay,
-                        Long_t theGTPattern,  AliMUONEventReconstructor* eventReconstructor); 
-                       // Constructor
-    Float_t GetX11() const {return fx11;}
-    Float_t GetY11() const {return fy11;}
-    Float_t GetThetax() const {return fthetax;}
-    Float_t GetThetay() const {return fthetay;}    
-
-    void SetGTPattern(const Long_t pat) {fGTPattern = pat;}    
-    Long_t GetGTPattern() const {return fGTPattern;}    
+    AliMUONTriggerTrack(Float_t x11, Float_t y11, Float_t z11, Float_t z21,
+                       Float_t slopeX, Float_t slopeY,
+                       Int_t iloTrg, Long_t theGTPattern, Int_t ptCutLevel=1); 
+    
+    // getters
+    
+    /// Return x position of fired Y strip in MC11
+    Float_t GetX11()    const {return fx11;}
+    /// Return y position of fired X strip in MC11
+    Float_t GetY11()    const {return fy11;}
+    /// Return z position of fired X strip in MC11
+    Float_t GetZ11()    const {return fz11;}
+    /// Return z position of fired X strip in MC21
+    Float_t GetZ21()    const {return fz21;}
+    /// Return track theta angle in X 
+    Float_t GetThetax() const {return TMath::ATan(fSlopeX);}
+    /// Return track theta angle in Y
+    Float_t GetThetay() const {return TMath::ATan(fSlopeY);}
+    /// Return track slope in X 
+    Float_t GetSlopeX() const {return fSlopeX;}
+    /// Return track slope in Y
+    Float_t GetSlopeY() const {return fSlopeY;}
+    /// Return local trigger number
+    Int_t   GetLoTrgNum() const {return floTrgNum;}    
+
+    // setters
+    
+    /// Set x position of fired Y strip in MC11
+    void SetX11(Float_t x)     {fx11 = x;}
+    /// Set y position of fired X strip in MC11
+    void SetY11(Float_t y)     {fy11 = y;}
+    /// Set z position of fired X strip in MC11
+    void SetZ11(Float_t z)     {fz11 = z;}
+    /// Set z position of fired X strip in MC21
+    void SetZ21(Float_t z)     {fz21 = z;}
+    /// Set track slope in X 
+    void SetSlopeX(Float_t slopeX) {fSlopeX = slopeX;}
+    /// Set track slope in Y
+    void SetSlopeY(Float_t slopeY) {fSlopeY = slopeY;}
+    /// Set local trigger number
+    void SetLoTrgNum(Int_t loTrgNum) {floTrgNum = loTrgNum;}    
+
+    /// Set Global trigger pattern  (do not work with static statement) 
+    void SetGTPattern(UChar_t pat) {fGTPattern = pat;}    
+    /// Return Global trigger pattern  (do not work with static statement) 
+    UChar_t GetGTPattern() const {return fGTPattern;}
+
+    /// Set word telling which trigger chambers where hit by track
+    void     SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;}
+    /// Get word telling which trigger chambers where hit by track
+    UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;}
+  
+    /// Set pt cut level
+    void  SetPtCutLevel(Int_t ptCutLevel) { fPtCutLevel = ptCutLevel;}
+    /// Get pt cut level
+    Int_t GetPtCutLevel() const {return fPtCutLevel;}
+
+    
+    virtual void Print(Option_t* opt="FULL") const;
+
+    const TMatrixD& GetCovariances() const;
+    void  SetCovariances(const TMatrixD& covariances);
+    void  SetCovariances(const Double_t matrix[3][3]);
+  
+    Bool_t Match(AliMUONTriggerTrack &track, Double_t sigmaCut) const;
     
 protected:
   private:
-  AliMUONEventReconstructor* fEventReconstructor; //!   Pointer to EventReconstructor
-  Float_t fx11;    // x position of fired Y strip in MC11
-  Float_t fy11;    // y position of fired X strip in MC11
-  Float_t fthetax; // track theta angle in X   
-  Float_t fthetay; // track theta angle in Y
-  Long_t fGTPattern; // Global trigger pattern  (do not work with static statement) 
-
-  ClassDef(AliMUONTriggerTrack, 3) // Reconstructed trigger track in ALICE dimuon spectrometer
+  Float_t fx11;    ///< x position of fired Y strip in MC11
+  Float_t fy11;    ///< y position of fired X strip in MC11
+  Float_t fz11;    ///< z position of fired X strip in MC11
+  Float_t fz21;    ///< z position of fired X strip in MC21
+  Float_t fSlopeX; ///< track slope in X   
+  Float_t fSlopeY; ///< track slope in Y
+  Int_t   floTrgNum; ///< local trigger number
+  UChar_t fGTPattern; ///< Global trigger pattern  (do not work with static statement)
+  Int_t   fPtCutLevel;  ///< Trigger pt cut level as in ESDs (1->Apt; 2->Lpt; 3->Hpt)
+  UShort_t fHitsPatternInTrigCh; ///< Word containing info on the hits left in trigger chambers
+  mutable TMatrixD *fCovariances; ///< Covariance matrix of track parameters 
+
+  ClassDef(AliMUONTriggerTrack, 7) // Reconstructed trigger track in ALICE dimuon spectrometer
     };
        
 #endif