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 */
10 class AliMUONHitForRec;
11 class AliMUONTrackParam;
13 class AliMUONSegment : public TObject {
15 virtual ~AliMUONSegment(){
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
22 // Inline functions for Get and Set
23 AliMUONHitForRec* GetHitForRec1(void) {
25 return fHitForRecPtr1;}
26 AliMUONHitForRec* GetHitForRec2(void) {
28 return fHitForRecPtr2;}
29 Double_t GetBendingCoor(void) {
32 void SetBendingCoor(Double_t BendingCoor) {
34 fBendingCoor = BendingCoor;}
35 Double_t GetBendingSlope(void) {
37 return fBendingSlope;}
38 void SetBendingSlope(Double_t BendingSlope) {
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) {
67 return fBendingImpact;}
68 Bool_t GetInTrack(void) {
71 void SetInTrack(Bool_t InTrack) {
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);
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
85 AliMUONHitForRec* fHitForRecPtr1; // pointer to HitForRec in first chamber
86 AliMUONHitForRec* fHitForRecPtr2; // pointer to HitForRec in second chamber
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
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
105 ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer