]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONSegment.h
ZDC needs PIPE, ABSO, DIPO and SHIL
[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$*/
7
8#include <TROOT.h>
9
10class AliMUONHitForRec;
11class AliMUONTrackParam;
12
13class 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