]>
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$*/ | |
30178c30 | 7 | // Revision of includes 07/05/2004 |
a9e2aefa | 8 | |
692de412 | 9 | /// \ingroup rec |
10 | /// \class AliMUONSegment | |
11 | /// \brief Segment for reconstruction in ALICE dimuon spectrometer | |
12 | /// | |
13 | //////////////////////////////////////////////////////////// | |
14 | /// Segment for reconstruction in ALICE dimuon spectrometer | |
15 | //////////////////////////////////////////////////////////// | |
3831f268 | 16 | |
17 | #include <TObject.h> | |
a9e2aefa | 18 | |
19 | class AliMUONHitForRec; | |
20 | class AliMUONTrackParam; | |
21 | ||
30178c30 | 22 | class AliMUONSegment : public TObject |
23 | { | |
a9e2aefa | 24 | public: |
762647ff | 25 | AliMUONSegment(); // default constructor |
30178c30 | 26 | virtual ~AliMUONSegment(){} // Destructor |
762647ff | 27 | AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2); // Constructor from two HitForRec's |
a9e2aefa | 28 | |
9b03f36b | 29 | // Inline functions for Get and Set |
3831f268 | 30 | AliMUONHitForRec* GetHitForRec1(void) const {return fHitForRecPtr1;} |
31 | AliMUONHitForRec* GetHitForRec2(void) const {return fHitForRecPtr2;} | |
32 | Double_t GetBendingCoor(void) const {return fBendingCoor;} | |
33 | void SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;} | |
34 | Double_t GetBendingSlope(void) const {return fBendingSlope;} | |
35 | void SetBendingSlope(Double_t BendingSlope) {fBendingSlope = BendingSlope;} | |
36 | Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;} | |
37 | void SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;} | |
38 | Double_t GetNonBendingSlope(void) const {return fNonBendingSlope;} | |
39 | void SetNonBendingSlope(Double_t NonBendingSlope) {fNonBendingSlope = NonBendingSlope;} | |
40 | Double_t GetBendingCoorReso2(void) const {return fBendingCoorReso2;} | |
41 | void SetBendingCoorReso2(Double_t BendingCoorReso2) {fBendingCoorReso2 = BendingCoorReso2;} | |
42 | Double_t GetNonBendingCoorReso2(void) const {return fNonBendingCoorReso2;} | |
43 | void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {fNonBendingCoorReso2 = NonBendingCoorReso2;} | |
e516b01d | 44 | Double_t GetZ(void) const {return fZ;} |
45 | ||
3831f268 | 46 | Double_t GetBendingImpact(void) const {return fBendingImpact;} |
47 | Bool_t GetInTrack(void) const {return fInTrack;} | |
48 | void SetInTrack(Bool_t InTrack) {fInTrack = InTrack;} | |
a9e2aefa | 49 | |
e516b01d | 50 | AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Double_t z, Double_t MCSfactor) const; |
30178c30 | 51 | Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut) const; |
e516b01d | 52 | AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Double_t z, Double_t MCSfactor) const; |
04b5ea16 | 53 | void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum); |
a9e2aefa | 54 | |
55 | // What is necessary for sorting TClonesArray's; sufficient too ???? | |
56 | Bool_t IsSortable() const { return kTRUE; } | |
2a941f4e | 57 | Int_t Compare(const TObject* Segment) const; // "Compare" function for sorting |
30178c30 | 58 | |
a9e2aefa | 59 | protected: |
30178c30 | 60 | AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor |
61 | AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator | |
62 | ||
a9e2aefa | 63 | private: |
64 | AliMUONHitForRec* fHitForRecPtr1; // pointer to HitForRec in first chamber | |
65 | AliMUONHitForRec* fHitForRecPtr2; // pointer to HitForRec in second chamber | |
66 | // Bending plane: | |
67 | Double_t fBendingCoor; // Coordinate in bending plane | |
68 | Double_t fBendingSlope; // Slope in bending plane | |
69 | // Covariance in bending plane: | |
70 | Double_t fBendingCoorReso2; // Covariance(coordinate C1 in first chamber) | |
71 | Double_t fBendingSlopeReso2; // Covariance(slope) | |
72 | Double_t fBendingCoorSlopeReso2; // Covariance(C1,slope) | |
73 | Double_t fBendingImpact; // Impact parameter in bending plane | |
74 | // Non Bending plane: | |
75 | Double_t fNonBendingCoor; // Coordinate in non bending plane | |
76 | Double_t fNonBendingSlope; // Slope in non bending plane | |
77 | // Covariance in non bending plane: | |
78 | Double_t fNonBendingCoorReso2; // Covariance(coordinate C1 in first chamber) | |
79 | Double_t fNonBendingSlopeReso2; // Covariance(slope) | |
80 | Double_t fNonBendingCoorSlopeReso2; // Covariance(C1,slope) | |
81 | Double_t fNonBendingImpact; // Impact parameter in non bending plane | |
e516b01d | 82 | Double_t fZ; // Z of the segment |
a9e2aefa | 83 | Bool_t fInTrack; // TRUE if segment belongs to one track |
84 | ||
044d512b | 85 | ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer |
30178c30 | 86 | }; |
a9e2aefa | 87 | |
88 | #endif |