]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegment.h
Cleanuo Effc++ warnings (Sasha)
[u/mrichter/AliRoot.git] / MUON / AliMUONSegment.h
1 #ifndef ALIMUONSEGMENT_H
2 #define ALIMUONSEGMENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*$Id$*/
7 // Revision of includes 07/05/2004
8
9 /// \ingroup rec
10 /// \class AliMUONSegment
11 /// \brief Segment for reconstruction in ALICE dimuon spectrometer
12 ///
13 ////////////////////////////////////////////////////////////
14 /// Segment for reconstruction in ALICE dimuon  spectrometer
15 ////////////////////////////////////////////////////////////
16
17 #include <TObject.h>
18
19 class AliMUONHitForRec;
20 class AliMUONTrackParam;
21
22 class AliMUONSegment : public TObject 
23 {
24  public:
25   AliMUONSegment(); // default constructor
26   virtual ~AliMUONSegment(){} // Destructor
27   AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2); // Constructor from two HitForRec's
28
29   // Inline functions for Get and Set
30   AliMUONHitForRec* GetHitForRec1(void) const {return fHitForRecPtr1;}
31   AliMUONHitForRec* GetHitForRec2(void) const {return fHitForRecPtr2;}
32   Double_t GetBendingCoor(void) const {return fBendingCoor;}
33   void SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;}
34   Double_t GetBendingSlope(void) const {return fBendingSlope;}
35   void SetBendingSlope(Double_t BendingSlope) {fBendingSlope = BendingSlope;}
36   Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;}
37   void SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;}
38   Double_t GetNonBendingSlope(void) const {return fNonBendingSlope;}
39   void SetNonBendingSlope(Double_t NonBendingSlope) {fNonBendingSlope = NonBendingSlope;}
40   Double_t GetBendingCoorReso2(void) const {return fBendingCoorReso2;}
41   void SetBendingCoorReso2(Double_t BendingCoorReso2) {fBendingCoorReso2 = BendingCoorReso2;}
42   Double_t GetNonBendingCoorReso2(void) const {return fNonBendingCoorReso2;}
43   void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {fNonBendingCoorReso2 = NonBendingCoorReso2;}
44   Double_t GetZ(void) const {return fZ;}
45   
46   Double_t GetBendingImpact(void) const {return fBendingImpact;}
47   Bool_t GetInTrack(void) const {return fInTrack;}
48   void SetInTrack(Bool_t InTrack) {fInTrack = InTrack;}
49
50   AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Double_t z, Double_t MCSfactor) const;
51   Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut) const;
52   AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Double_t z, Double_t MCSfactor) const;
53   void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum);
54
55   // What is necessary for sorting TClonesArray's; sufficient too ????
56   Bool_t IsSortable() const { return kTRUE; }
57   Int_t Compare(const TObject* Segment) const; // "Compare" function for sorting
58
59  private:
60   AliMUONHitForRec* fHitForRecPtr1; ///< pointer to HitForRec in first chamber
61   AliMUONHitForRec* fHitForRecPtr2; ///< pointer to HitForRec in second chamber
62   // Bending plane:
63   Double_t fBendingCoor; ///< Coordinate in bending plane
64   Double_t fBendingSlope; ///< Slope in bending plane
65   // Covariance in bending plane:
66   Double_t fBendingCoorReso2; ///< Covariance(coordinate C1 in first chamber)
67   Double_t fBendingSlopeReso2; ///< Covariance(slope)
68   Double_t fBendingCoorSlopeReso2; ///< Covariance(C1,slope)
69   Double_t fBendingImpact; ///< Impact parameter in bending plane
70   // Non Bending plane:
71   Double_t fNonBendingCoor; ///< Coordinate in non bending plane
72   Double_t fNonBendingSlope; ///< Slope in non bending plane
73   // Covariance in non bending plane:
74   Double_t fNonBendingCoorReso2; ///< Covariance(coordinate C1 in first chamber)
75   Double_t fNonBendingSlopeReso2; ///< Covariance(slope)
76   Double_t fNonBendingCoorSlopeReso2; ///< Covariance(C1,slope)
77   Double_t fNonBendingImpact; ///< Impact parameter in non bending plane
78   Double_t fZ;                ///< Z of the segment
79   Bool_t fInTrack; ///< TRUE if segment belongs to one track
80   
81   AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor
82   AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator
83
84   ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer
85 };
86         
87 #endif