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