]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSegment.h
- Adding the array of slat segmentation and GetLayerSegmentation(..) method
[u/mrichter/AliRoot.git] / MUON / AliMUONSegment.h
index e7a6fbf537e7376e22eaf6eebca6c8076eea45cc..a112f75291670cd0ee4bb786da1c52a2b9f7bbb5 100644 (file)
  * See cxx source for full Copyright notice                               */
 
 /*$Id$*/
+// Revision of includes 07/05/2004
 
-#include <TROOT.h>
+/// \ingroup rec
+/// \class AliMUONSegment
+/// \brief Segment for reconstruction in ALICE dimuon spectrometer
+///
+////////////////////////////////////////////////////////////
+/// Segment for reconstruction in ALICE dimuon  spectrometer
+////////////////////////////////////////////////////////////
+
+#include <TObject.h>
 
 class AliMUONHitForRec;
 class AliMUONTrackParam;
 
-class AliMUONSegment : public TObject {
+class AliMUONSegment : public TObject 
+{
  public:
-  AliMUONSegment(){
-    // Constructor
-    ;} // Constructor
-  virtual ~AliMUONSegment(){
-    // Destructor
-    ;} // Destructor
-  AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor
-  AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator
+  AliMUONSegment(); // default constructor
+  virtual ~AliMUONSegment(){} // Destructor
   AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2); // Constructor from two HitForRec's
 
   // Inline functions for Get and Set
-  AliMUONHitForRec* GetHitForRec1(void) {
-    // Get fHitForRecPtr1
-    return fHitForRecPtr1;}
-  AliMUONHitForRec* GetHitForRec2(void) {
-    // Get fHitForRecPtr2
-    return fHitForRecPtr2;}
-  Double_t GetBendingCoor(void) {
-    // Get fBendingCoor
-    return fBendingCoor;}
-  void SetBendingCoor(Double_t BendingCoor) {
-    // Set fBendingCoor
-    fBendingCoor = BendingCoor;}
-  Double_t GetBendingSlope(void) {
-    // Get fBendingSlope
-    return fBendingSlope;}
-  void SetBendingSlope(Double_t BendingSlope) {
-    // Set fBendingSlope
-    fBendingSlope = BendingSlope;}
-  Double_t GetNonBendingCoor(void) {
-    // Get fNonBendingCoor
-    return fNonBendingCoor;}
-  void SetNonBendingCoor(Double_t NonBendingCoor) {
-    // Set fNonBendingCoor
-    fNonBendingCoor = NonBendingCoor;}
-  Double_t GetNonBendingSlope(void) {
-    // Get fNonBendingSlope
-    return fNonBendingSlope;}
-  void SetNonBendingSlope(Double_t NonBendingSlope) {
-    // Set fNonBendingSlope
-    fNonBendingSlope = NonBendingSlope;}
-  Double_t GetBendingCoorReso2(void) {
-    // Get fBendingCoorReso2
-    return fBendingCoorReso2;}
-  void SetBendingCoorReso2(Double_t BendingCoorReso2) {
-    // Set fBendingCoorReso2
-    fBendingCoorReso2 = BendingCoorReso2;}
-  Double_t GetNonBendingCoorReso2(void) {
-    // Get fNonBendingCoorReso2
-    return fNonBendingCoorReso2;}
-  void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {
-    // Set fNonBendingCoorReso2
-    fNonBendingCoorReso2 = NonBendingCoorReso2;}
-  Double_t GetBendingImpact(void) {
-    // Get fBendingImpact
-    return fBendingImpact;}
-  Bool_t GetInTrack(void) {
-    // Get fInTrack
-    return fInTrack;}
-  void SetInTrack(Bool_t InTrack) {
-    // Set fInTrack
-    fInTrack = InTrack;}
+  AliMUONHitForRec* GetHitForRec1(void) const {return fHitForRecPtr1;}
+  AliMUONHitForRec* GetHitForRec2(void) const {return fHitForRecPtr2;}
+  Double_t GetBendingCoor(void) const {return fBendingCoor;}
+  void SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;}
+  Double_t GetBendingSlope(void) const {return fBendingSlope;}
+  void SetBendingSlope(Double_t BendingSlope) {fBendingSlope = BendingSlope;}
+  Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;}
+  void SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;}
+  Double_t GetNonBendingSlope(void) const {return fNonBendingSlope;}
+  void SetNonBendingSlope(Double_t NonBendingSlope) {fNonBendingSlope = NonBendingSlope;}
+  Double_t GetBendingCoorReso2(void) const {return fBendingCoorReso2;}
+  void SetBendingCoorReso2(Double_t BendingCoorReso2) {fBendingCoorReso2 = BendingCoorReso2;}
+  Double_t GetNonBendingCoorReso2(void) const {return fNonBendingCoorReso2;}
+  void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {fNonBendingCoorReso2 = NonBendingCoorReso2;}
+  Double_t GetZ(void) const {return fZ;}
+  
+  Double_t GetBendingImpact(void) const {return fBendingImpact;}
+  Bool_t GetInTrack(void) const {return fInTrack;}
+  void SetInTrack(Bool_t InTrack) {fInTrack = InTrack;}
 
-  AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Int_t Station, Double_t MCSfactor);
-  Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut);
-  AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Int_t Chamber, Double_t MCSfactor);
+  AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Double_t z, Double_t MCSfactor) const;
+  Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut) const;
+  AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Double_t z, Double_t MCSfactor) const;
   void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum);
 
   // What is necessary for sorting TClonesArray's; sufficient too ????
   Bool_t IsSortable() const { return kTRUE; }
-  Int_t Compare(TObject* Segment); // "Compare" function for sorting
- protected:
+  Int_t Compare(const TObject* Segment) const; // "Compare" function for sorting
+
+  void Print(Option_t* opt="") const;
+  
  private:
-  AliMUONHitForRec* fHitForRecPtr1; // pointer to HitForRec in first chamber
-  AliMUONHitForRec* fHitForRecPtr2; // pointer to HitForRec in second chamber
+  AliMUONHitForRec* fHitForRecPtr1; ///< pointer to HitForRec in first chamber
+  AliMUONHitForRec* fHitForRecPtr2; ///< pointer to HitForRec in second chamber
   // Bending plane:
-  Double_t fBendingCoor; // Coordinate in bending plane
-  Double_t fBendingSlope; // Slope in bending plane
+  Double_t fBendingCoor; ///< Coordinate in bending plane
+  Double_t fBendingSlope; ///< Slope in bending plane
   // Covariance in bending plane:
-  Double_t fBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
-  Double_t fBendingSlopeReso2; // Covariance(slope)
-  Double_t fBendingCoorSlopeReso2; // Covariance(C1,slope)
-  Double_t fBendingImpact; // Impact parameter in bending plane
+  Double_t fBendingCoorReso2; ///< Covariance(coordinate C1 in first chamber)
+  Double_t fBendingSlopeReso2; ///< Covariance(slope)
+  Double_t fBendingCoorSlopeReso2; ///< Covariance(C1,slope)
+  Double_t fBendingImpact; ///< Impact parameter in bending plane
   // Non Bending plane:
-  Double_t fNonBendingCoor; // Coordinate in non bending plane
-  Double_t fNonBendingSlope; // Slope in non bending plane
+  Double_t fNonBendingCoor; ///< Coordinate in non bending plane
+  Double_t fNonBendingSlope; ///< Slope in non bending plane
   // Covariance in non bending plane:
-  Double_t fNonBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
-  Double_t fNonBendingSlopeReso2; // Covariance(slope)
-  Double_t fNonBendingCoorSlopeReso2; // Covariance(C1,slope)
-  Double_t fNonBendingImpact; // Impact parameter in non bending plane
-  Bool_t fInTrack; // TRUE if segment belongs to one track
+  Double_t fNonBendingCoorReso2; ///< Covariance(coordinate C1 in first chamber)
+  Double_t fNonBendingSlopeReso2; ///< Covariance(slope)
+  Double_t fNonBendingCoorSlopeReso2; ///< Covariance(C1,slope)
+  Double_t fNonBendingImpact; ///< Impact parameter in non bending plane
+  Double_t fZ;                ///< Z of the segment
+  Bool_t fInTrack; ///< TRUE if segment belongs to one track
   
+  AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor
+  AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator
+
   ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer
-    };
+};
        
 #endif