]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegment.h
Compare() declared const (R.Brun)
[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
8 #include <TROOT.h>
9
10 class AliMUONHitForRec;
11 class AliMUONTrackParam;
12
13 class AliMUONSegment : public TObject {
14  public:
15   virtual ~AliMUONSegment(){
16     // Destructor
17     ;} // Destructor
18   AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor
19   AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator
20   AliMUONSegment(AliMUONHitForRec* Hit1=0, AliMUONHitForRec* Hit2=0); // Constructor from two HitForRec's
21
22   // Inline functions for Get and Set
23   AliMUONHitForRec* GetHitForRec1(void) {
24     // Get fHitForRecPtr1
25     return fHitForRecPtr1;}
26   AliMUONHitForRec* GetHitForRec2(void) {
27     // Get fHitForRecPtr2
28     return fHitForRecPtr2;}
29   Double_t GetBendingCoor(void) {
30     // Get fBendingCoor
31     return fBendingCoor;}
32   void SetBendingCoor(Double_t BendingCoor) {
33     // Set fBendingCoor
34     fBendingCoor = BendingCoor;}
35   Double_t GetBendingSlope(void) {
36     // Get fBendingSlope
37     return fBendingSlope;}
38   void SetBendingSlope(Double_t BendingSlope) {
39     // Set fBendingSlope
40     fBendingSlope = BendingSlope;}
41   Double_t GetNonBendingCoor(void) {
42     // Get fNonBendingCoor
43     return fNonBendingCoor;}
44   void SetNonBendingCoor(Double_t NonBendingCoor) {
45     // Set fNonBendingCoor
46     fNonBendingCoor = NonBendingCoor;}
47   Double_t GetNonBendingSlope(void) {
48     // Get fNonBendingSlope
49     return fNonBendingSlope;}
50   void SetNonBendingSlope(Double_t NonBendingSlope) {
51     // Set fNonBendingSlope
52     fNonBendingSlope = NonBendingSlope;}
53   Double_t GetBendingCoorReso2(void) {
54     // Get fBendingCoorReso2
55     return fBendingCoorReso2;}
56   void SetBendingCoorReso2(Double_t BendingCoorReso2) {
57     // Set fBendingCoorReso2
58     fBendingCoorReso2 = BendingCoorReso2;}
59   Double_t GetNonBendingCoorReso2(void) {
60     // Get fNonBendingCoorReso2
61     return fNonBendingCoorReso2;}
62   void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {
63     // Set fNonBendingCoorReso2
64     fNonBendingCoorReso2 = NonBendingCoorReso2;}
65   Double_t GetBendingImpact(void) {
66     // Get fBendingImpact
67     return fBendingImpact;}
68   Bool_t GetInTrack(void) {
69     // Get fInTrack
70     return fInTrack;}
71   void SetInTrack(Bool_t InTrack) {
72     // Set fInTrack
73     fInTrack = InTrack;}
74
75   AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Int_t Station, Double_t MCSfactor);
76   Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut);
77   AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Int_t Chamber, Double_t MCSfactor);
78   void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum);
79
80   // What is necessary for sorting TClonesArray's; sufficient too ????
81   Bool_t IsSortable() const { return kTRUE; }
82   Int_t Compare(const TObject* Segment) const; // "Compare" function for sorting
83  protected:
84  private:
85   AliMUONHitForRec* fHitForRecPtr1; // pointer to HitForRec in first chamber
86   AliMUONHitForRec* fHitForRecPtr2; // pointer to HitForRec in second chamber
87   // Bending plane:
88   Double_t fBendingCoor; // Coordinate in bending plane
89   Double_t fBendingSlope; // Slope in bending plane
90   // Covariance in bending plane:
91   Double_t fBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
92   Double_t fBendingSlopeReso2; // Covariance(slope)
93   Double_t fBendingCoorSlopeReso2; // Covariance(C1,slope)
94   Double_t fBendingImpact; // Impact parameter in bending plane
95   // Non Bending plane:
96   Double_t fNonBendingCoor; // Coordinate in non bending plane
97   Double_t fNonBendingSlope; // Slope in non bending plane
98   // Covariance in non bending plane:
99   Double_t fNonBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
100   Double_t fNonBendingSlopeReso2; // Covariance(slope)
101   Double_t fNonBendingCoorSlopeReso2; // Covariance(C1,slope)
102   Double_t fNonBendingImpact; // Impact parameter in non bending plane
103   Bool_t fInTrack; // TRUE if segment belongs to one track
104   
105   ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer
106     };
107         
108 #endif