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