Modifications used for addendum to Dimuon TDR (JP Cussonneau):
[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:
15 AliMUONSegment(){
16 // Constructor
17 ;} // Constructor
18 virtual ~AliMUONSegment(){
19 // Destructor
20 ;} // Destructor
21 AliMUONSegment (const AliMUONSegment& AliMUONSegment); // copy constructor
22 AliMUONSegment& operator=(const AliMUONSegment& AliMUONSegment); // assignment operator
23 AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2); // Constructor from two HitForRec's
24
9b03f36b 25 // Inline functions for Get and Set
31707406 26 AliMUONHitForRec* GetHitForRec1(void) {
9b03f36b 27 // Get fHitForRecPtr1
28 return fHitForRecPtr1;}
31707406 29 AliMUONHitForRec* GetHitForRec2(void) {
9b03f36b 30 // Get fHitForRecPtr2
31 return fHitForRecPtr2;}
d0bfce8d 32 Double_t GetBendingCoor(void) {
33 // Get fBendingCoor
34 return fBendingCoor;}
35 void SetBendingCoor(Double_t BendingCoor) {
36 // Set fBendingCoor
37 fBendingCoor = BendingCoor;}
38 Double_t GetBendingSlope(void) {
39 // Get fBendingSlope
40 return fBendingSlope;}
41 void SetBendingSlope(Double_t BendingSlope) {
42 // Set fBendingSlope
43 fBendingSlope = BendingSlope;}
44 Double_t GetNonBendingCoor(void) {
45 // Get fNonBendingCoor
46 return fNonBendingCoor;}
47 void SetNonBendingCoor(Double_t NonBendingCoor) {
48 // Set fNonBendingCoor
49 fNonBendingCoor = NonBendingCoor;}
50 Double_t GetNonBendingSlope(void) {
51 // Get fNonBendingSlope
52 return fNonBendingSlope;}
53 void SetNonBendingSlope(Double_t NonBendingSlope) {
54 // Set fNonBendingSlope
55 fNonBendingSlope = NonBendingSlope;}
31707406 56 Double_t GetBendingCoorReso2(void) {
9b03f36b 57 // Get fBendingCoorReso2
58 return fBendingCoorReso2;}
31707406 59 void SetBendingCoorReso2(Double_t BendingCoorReso2) {
9b03f36b 60 // Set fBendingCoorReso2
61 fBendingCoorReso2 = BendingCoorReso2;}
31707406 62 Double_t GetNonBendingCoorReso2(void) {
9b03f36b 63 // Get fNonBendingCoorReso2
64 return fNonBendingCoorReso2;}
31707406 65 void SetNonBendingCoorReso2(Double_t NonBendingCoorReso2) {
9b03f36b 66 // Set fNonBendingCoorReso2
67 fNonBendingCoorReso2 = NonBendingCoorReso2;}
31707406 68 Double_t GetBendingImpact(void) {
9b03f36b 69 // Get fBendingImpact
70 return fBendingImpact;}
31707406 71 Bool_t GetInTrack(void) {
9b03f36b 72 // Get fInTrack
73 return fInTrack;}
31707406 74 void SetInTrack(Bool_t InTrack) {
9b03f36b 75 // Set fInTrack
76 fInTrack = InTrack;}
a9e2aefa 77
78 AliMUONSegment* CreateSegmentFromLinearExtrapToStation (Int_t Station, Double_t MCSfactor);
79 Double_t NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut);
80 AliMUONHitForRec* CreateHitForRecFromLinearExtrapToChamber (Int_t Chamber, Double_t MCSfactor);
04b5ea16 81 void UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum);
a9e2aefa 82
83 // What is necessary for sorting TClonesArray's; sufficient too ????
84 Bool_t IsSortable() const { return kTRUE; }
85 Int_t Compare(TObject* Segment); // "Compare" function for sorting
86 protected:
87 private:
88 AliMUONHitForRec* fHitForRecPtr1; // pointer to HitForRec in first chamber
89 AliMUONHitForRec* fHitForRecPtr2; // pointer to HitForRec in second chamber
90 // Bending plane:
91 Double_t fBendingCoor; // Coordinate in bending plane
92 Double_t fBendingSlope; // Slope in bending plane
93 // Covariance in bending plane:
94 Double_t fBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
95 Double_t fBendingSlopeReso2; // Covariance(slope)
96 Double_t fBendingCoorSlopeReso2; // Covariance(C1,slope)
97 Double_t fBendingImpact; // Impact parameter in bending plane
98 // Non Bending plane:
99 Double_t fNonBendingCoor; // Coordinate in non bending plane
100 Double_t fNonBendingSlope; // Slope in non bending plane
101 // Covariance in non bending plane:
102 Double_t fNonBendingCoorReso2; // Covariance(coordinate C1 in first chamber)
103 Double_t fNonBendingSlopeReso2; // Covariance(slope)
104 Double_t fNonBendingCoorSlopeReso2; // Covariance(C1,slope)
105 Double_t fNonBendingImpact; // Impact parameter in non bending plane
106 Bool_t fInTrack; // TRUE if segment belongs to one track
107
044d512b 108 ClassDef(AliMUONSegment, 1) // Segment for reconstruction in ALICE dimuon spectrometer
a9e2aefa 109 };
110
111#endif