ATLAS Offline Software
BLinePar.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONALIGNMENTDATA_BLINEPAR_H
6 #define MUONALIGNMENTDATA_BLINEPAR_H
7 
9 #include <array>
10 #include <climits>
11 #include <iostream>
12 #include <algorithm>
13 
14 class BLinePar : public MuonAlignmentPar {
15 public:
16  // Default constructor
17  BLinePar() = default;
18  // destructor
19  virtual ~BLinePar() override = default;
20 
21  enum class Parameter{
22  bz=0, // tube bow in plane,
23  bp, // tube bow out of plane,
24  bn, // tube bow out of plane
25  sp, // cross plate sag out of plane
26  sn, // cross plate sag out of plane
27  tw, // twist
28  pg, // parallelogram
29  tr, // trapezoid
30  eg, // global expansion
31  ep, // local expansion
32  en, // local expansion
33  numPars
34  };
36  void setParameters(float bz, float bp, float bn, float sp, float sn, float tw, float pg, float tr, float eg, float ep, float en);
37 
39  float getParameter(const Parameter p) const {
40  return m_payload[static_cast<unsigned int>(p)];
41  }
43  operator bool () const {
44  return std::find_if(m_payload.begin(),
45  m_payload.end(),[](const float par){
46  return std::abs(par) > std::numeric_limits<float>::epsilon();
47  }) != m_payload.end();
48  }
49 
50 private:
51  std::array<float, static_cast<unsigned int>(Parameter::numPars)> m_payload{};
52 };
53 
54 std::ostream& operator<<(std::ostream& ostr, const BLinePar& par);
55 
56 
57 #endif // MUONALIGNMENTDATA_BLINEPAR_H
BLinePar::Parameter::sp
@ sp
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
BLinePar::Parameter::tr
@ tr
BLinePar::Parameter::bn
@ bn
BLinePar::m_payload
std::array< float, static_cast< unsigned int >Parameter::numPars)> m_payload
Definition: BLinePar.h:51
BLinePar::Parameter::eg
@ eg
BLinePar::getParameter
float getParameter(const Parameter p) const
Returns a given parameter.
Definition: BLinePar.h:39
BLinePar::Parameter::ep
@ ep
BLinePar::Parameter::tw
@ tw
BLinePar::setParameters
void setParameters(float bz, float bp, float bn, float sp, float sn, float tw, float pg, float tr, float eg, float ep, float en)
Cast the parameter to an unsigned int
Definition: BLinePar.cxx:26
BLinePar::Parameter::numPars
@ numPars
MuonAlignmentPar.h
BLinePar::Parameter::bz
@ bz
BLinePar
Definition: BLinePar.h:14
BLinePar::Parameter::bp
@ bp
MuonAlignmentPar
Basic class to map the MuonAlignment parameters to the different subdetectors inside the muon system.
Definition: MuonAlignmentPar.h:15
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
BLinePar::~BLinePar
virtual ~BLinePar() override=default
BLinePar::BLinePar
BLinePar()=default
BLinePar::Parameter
Parameter
Definition: BLinePar.h:21
BLinePar::Parameter::en
@ en
operator<<
std::ostream & operator<<(std::ostream &ostr, const BLinePar &par)
Definition: BLinePar.cxx:6
BLinePar::Parameter::pg
@ pg
BLinePar::Parameter::sn
@ sn
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60