]>
Commit | Line | Data |
---|---|---|
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: | |
762647ff | 15 | AliMUONSegment(); // default constructor |
a9e2aefa | 16 | virtual ~AliMUONSegment(){ |
17 | // Destructor | |
18 | ;} // Destructor | |
19 | AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor | |
20 | AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator | |
762647ff | 21 | AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2); // Constructor from two HitForRec's |
a9e2aefa | 22 | |
9b03f36b | 23 | // Inline functions for Get and Set |
31707406 | 24 | AliMUONHitForRec* GetHitForRec1(void) { |
9b03f36b | 25 | // Get fHitForRecPtr1 |
26 | return fHitForRecPtr1;} | |
31707406 | 27 | AliMUONHitForRec* GetHitForRec2(void) { |
9b03f36b | 28 | // Get fHitForRecPtr2 |
29 | return fHitForRecPtr2;} | |
d0bfce8d | 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;} | |
31707406 | 54 | Double_t GetBendingCoorReso2(void) { |
9b03f36b | 55 | // Get fBendingCoorReso2 |
56 | return fBendingCoorReso2;} | |
31707406 | 57 | void SetBendingCoorReso2(Double_t BendingCoorReso2) { |
9b03f36b | 58 | // Set fBendingCoorReso2 |
59 | fBendingCoorReso2 = BendingCoorReso2;} | |
31707406 | 60 | Double_t GetNonBendingCoorReso2(void) { |
9b03f36b | 61 | // Get fNonBendingCoorReso2 |
62 | return fNonBendingCoorReso2;} | |
31707406 | 63 | void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) { |
9b03f36b | 64 | // Set fNonBendingCoorReso2 |
65 | fNonBendingCoorReso2 = NonBendingCoorReso2;} | |
31707406 | 66 | Double_t GetBendingImpact(void) { |
9b03f36b | 67 | // Get fBendingImpact |
68 | return fBendingImpact;} | |
31707406 | 69 | Bool_t GetInTrack(void) { |
9b03f36b | 70 | // Get fInTrack |
71 | return fInTrack;} | |
31707406 | 72 | void SetInTrack(Bool_t InTrack) { |
9b03f36b | 73 | // Set fInTrack |
74 | fInTrack = InTrack;} | |
a9e2aefa | 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); | |
04b5ea16 | 79 | void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum); |
a9e2aefa | 80 | |
81 | // What is necessary for sorting TClonesArray's; sufficient too ???? | |
82 | Bool_t IsSortable() const { return kTRUE; } | |
2a941f4e | 83 | Int_t Compare(const TObject* Segment) const; // "Compare" function for sorting |
a9e2aefa | 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 | ||
044d512b | 106 | ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer |
a9e2aefa | 107 | }; |
108 | ||
109 | #endif |