ATLAS Offline Software
DinesRtRelation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 // $Id: DinesRtRelation.h,v 1.5 2008-12-16 14:35:47 dquarrie Exp $
12 
13 #ifndef TRTCONDITDIONSDATA_DINESRTRELATION_H
14 #define TRTCONDITDIONSDATA_DINESRTRELATION_H
15 
16 #include <cstring>
17 #include <math.h>
19 
20 namespace TRTCond
21 {
22 
25  class DinesRtRelation : public RtRelation
26  {
27  public:
29  DinesRtRelation() : m_status(Undefined) { m_cal[0] = m_cal[1] = m_cal[2] = m_cal[3] = 0 ; }
32  : m_status(stat) { set(cal) ; }
34  DinesRtRelation(const std::vector<float>& cal, Status stat = Calibrated )
35  : m_status(stat) { set(&(cal.front())) ; }
37  DinesRtRelation(const DinesRtRelation& rhs) : RtRelation(rhs) { *this = rhs ; }
39  virtual ~DinesRtRelation() {}
41  virtual RtRelation* clone() const { return new DinesRtRelation(*this) ; }
42 
45 
47  bool operator==(const DinesRtRelation& rhs) const {
48  return (&rhs == this) || memcmp( m_cal, rhs.m_cal, 4*sizeof(float) )==0 ;
49  }
50 
52  virtual int status() const { return m_status ; }
53 
55  virtual float radius( float driftime ) const ;
56 
58  virtual float drifttime( float radius ) const ;
59 
61  virtual float drdt( float driftime ) const ;
62 
64  virtual size_t footprint() const { return sizeof(*this) ; }
65 
67  virtual bool isequal( const RtRelation& rhs) const ;
68 
70  virtual std::ostream& write(std::ostream&) const ;
71 
73  virtual std::istream& read(std::istream&) ;
74 
76  const float* cal() const { return m_cal ; }
77 
78  private:
80  void setstatus( int status ) { m_status = status ; }
81 
83  void set( const float * cal ) { memcpy(m_cal,cal,4*sizeof(float)) ; }
84 
85  private:
86  unsigned char m_status ;
87  float m_cal[4] ;
88  } ;
89 
90 }
91 
92 inline std::ostream& operator<<(std::ostream& os, const TRTCond::DinesRtRelation& rtr) {
93  return rtr.write(os) ; }
94 
95 
96 
97 #endif
TRTCond::DinesRtRelation
Definition: DinesRtRelation.h:26
TRTCond::DinesRtRelation::~DinesRtRelation
virtual ~DinesRtRelation()
destructor
Definition: DinesRtRelation.h:39
TRTCond::DinesRtRelation::operator=
DinesRtRelation & operator=(const DinesRtRelation &rhs)
assignment operator
Definition: DinesRtRelation.cxx:10
RtRelation.h
abstract base class for rt-relations
TRTCond::DinesRtRelation::status
virtual int status() const
status flag of (calibrated) rtrelation
Definition: DinesRtRelation.h:52
TRTCond::DinesRtRelation::m_cal
float m_cal[4]
calibration constants
Definition: DinesRtRelation.h:87
TRTCond::DinesRtRelation::setstatus
void setstatus(int status)
set the status
Definition: DinesRtRelation.h:80
TRTCond::DinesRtRelation::operator==
bool operator==(const DinesRtRelation &rhs) const
equality operator
Definition: DinesRtRelation.h:47
TRTCond::RtRelation
Definition: RtRelation.h:27
TRTCond::DinesRtRelation::cal
const float * cal() const
return to calibration constants
Definition: DinesRtRelation.h:76
TRTCond::DinesRtRelation::drdt
virtual float drdt(float driftime) const
driftvelocity for given drifttime
Definition: DinesRtRelation.cxx:33
TRTCond::RtRelation::Calibrated
@ Calibrated
Definition: RtRelation.h:30
TRTCond::DinesRtRelation::footprint
virtual size_t footprint() const
memory allocated by this rt-relation
Definition: DinesRtRelation.h:64
TRTCond::DinesRtRelation::write
virtual std::ostream & write(std::ostream &) const
write to ascii ostream
Definition: DinesRtRelation.cxx:71
TRTCond::RtRelation::Status
Status
enumerates status
Definition: RtRelation.h:30
TRTCond::DinesRtRelation::clone
virtual RtRelation * clone() const
cloner
Definition: DinesRtRelation.h:41
beamspotman.stat
stat
Definition: beamspotman.py:266
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
TRTCond::DinesRtRelation::DinesRtRelation
DinesRtRelation()
constructor
Definition: DinesRtRelation.h:29
TRTCond::DinesRtRelation::DinesRtRelation
DinesRtRelation(const std::vector< float > &cal, Status stat=Calibrated)
constructor
Definition: DinesRtRelation.h:34
TRTCond::DinesRtRelation::set
void set(const float *cal)
set the calibration constants
Definition: DinesRtRelation.h:83
TRTCond::DinesRtRelation::read
virtual std::istream & read(std::istream &)
read from to ascii ostream
Definition: DinesRtRelation.cxx:77
TRTCond::DinesRtRelation::m_status
unsigned char m_status
status byte
Definition: DinesRtRelation.h:86
TRTCond
Definition: BasicRtRelation.cxx:8
TRTCond::DinesRtRelation::isequal
virtual bool isequal(const RtRelation &rhs) const
equality operator
Definition: DinesRtRelation.cxx:64
operator<<
std::ostream & operator<<(std::ostream &os, const TRTCond::DinesRtRelation &rtr)
Definition: DinesRtRelation.h:92
TRTCond::DinesRtRelation::DinesRtRelation
DinesRtRelation(const DinesRtRelation &rhs)
constructor
Definition: DinesRtRelation.h:37
TRTCond::DinesRtRelation::drifttime
virtual float drifttime(float radius) const
drifttime for given radius
Definition: DinesRtRelation.cxx:52
TRTCond::RtRelation::Undefined
@ Undefined
Definition: RtRelation.h:30
TRTCond::DinesRtRelation::DinesRtRelation
DinesRtRelation(const float *cal, Status stat=Calibrated)
constructor
Definition: DinesRtRelation.h:31
TRTCond::DinesRtRelation::radius
virtual float radius(float driftime) const
radius for given drifttime
Definition: DinesRtRelation.cxx:20