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