1 #ifndef ALIMUONALIGNMENTRECORD_H
2 #define ALIMUONALIGNMENTRECORD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 /// \class AliMUONAlignmentClusterRecord
10 /// \brief Class to store alignment local and global derivatives of muon spectrometer
12 // Author: Hugo Pereira Da Costa
14 #include <TClonesArray.h>
18 class AliMUONAlignmentClusterRecord:public TObject
24 AliMUONAlignmentClusterRecord( void );
27 virtual ~AliMUONAlignmentClusterRecord( void )
31 virtual void Print(Option_t* = "") const;
36 /// detetion element Id
37 void SetDetElemId( Int_t value )
40 fDetElemNumber = fDetElemId%100;
43 /// detection element number
44 void SetDetElemNumber( Int_t value )
45 { fDetElemNumber = value; }
48 void SetMeas( Double_t value )
51 /// error on measurement
52 void SetSigma( Double_t value )
56 void SetLocalDerivative( Int_t index, Double_t value )
58 // todo: bound check ?
59 fLocalDerivatives[index] = value;
63 void SetGlobalDerivative( Int_t index, Double_t value )
65 // todo: bound check ?
66 fGlobalDerivatives[index] = value;
74 /// detection element id
75 Int_t GetDetElemId( void ) const
76 { return fDetElemId; }
78 /// detection element number
79 Int_t GetDetElemNumber( void ) const
80 { return fDetElemNumber; }
83 Double_t GetMeas( void ) const
86 /// error on measurement
87 Double_t GetSigma( void ) const
91 Double_t GetLocalDerivative( Int_t index ) const
93 // todo: bound check ?
94 return fLocalDerivatives[index];
98 Double_t GetGlobalDerivative( Int_t index ) const
100 // todo: bound check ?
101 return fGlobalDerivatives[index];
108 /// Detection element Id
111 /// Detection element number
112 Int_t fDetElemNumber;
117 /// error on measurement
120 /// local derivatives
121 Double_t fLocalDerivatives[4];
123 /// global derivatives
124 Double_t fGlobalDerivatives[4];
126 ClassDef(AliMUONAlignmentClusterRecord, 1)
131 /// \class AliMUONAlignmentTrackRecord
132 /// \brief Class to store alignment local and global derivatives of muon spectrometer
134 // Author: Hugo Pereira Da Costa
135 class AliMUONAlignmentTrackRecord:public TObject
141 AliMUONAlignmentTrackRecord(TRootIOCtor* dummy);
144 AliMUONAlignmentTrackRecord( void );
147 virtual ~AliMUONAlignmentTrackRecord( void );
150 AliMUONAlignmentTrackRecord (const AliMUONAlignmentTrackRecord& );
152 /// assignment operator
153 AliMUONAlignmentTrackRecord& operator=(const AliMUONAlignmentTrackRecord& );
156 virtual void Print(Option_t* option = "") const;
162 TClonesArray* GetClusterRecords( void ) const
163 { return fClusterRecords; }
165 /// number of records
166 Int_t GetNRecords( void ) const
167 { return fClusterCount; }
169 /// return record for given index
170 AliMUONAlignmentClusterRecord* GetRecord( Int_t index ) const
171 { return fClusterRecords ? static_cast<AliMUONAlignmentClusterRecord*>(fClusterRecords->UncheckedAt( index )) : 0x0; }
178 /// add cluster record
179 void AddClusterRecord( const AliMUONAlignmentClusterRecord& );
181 /// remove cluster record
182 void RemoveClusterRecord( AliMUONAlignmentClusterRecord* );
185 virtual void Clear( Option_t* ="" );
191 /// default clonesarray size
194 /// alignment parameters at cluster
195 TClonesArray* fClusterRecords;
197 /// number of cluster records in array
200 ClassDef(AliMUONAlignmentTrackRecord, 1)