ATLAS Offline Software
TgcDigitJitterData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef TGCDIGITJITTERDATA_H
5 #define TGCDIGITJITTERDATA_H
6 
9 #include <GaudiKernel/SystemOfUnits.h>
11 #include <AthenaKernel/BaseInfo.h>
12 #include <AthenaKernel/CLASS_DEF.h>
13 #include <AthenaKernel/CondCont.h>
14 
15 #include <vector>
16 
20 namespace CLHEP {
21  class HepRandomEngine;
22 }
23 
25  public:
27 
28  ~TgcDigitJitterData() = default;
29 
30  double drawJitter(const Amg::Vector3D& localDir,
31  CLHEP::HepRandomEngine* rndmEngine) const;
32 
33  void cacheAngleInterval(const double minAngle, std::vector<double>&& timeProbs);
34 
36 
37  private:
38  struct JitterBin {
39  double minAngle{0.};
40  double maxAngle{0.};
41  bool operator<(const JitterBin& other) const{
42  return maxAngle < other.minAngle;
43  }
44  JitterBin(const double angle, std::vector<double>&& probs):
45  minAngle{angle}, maxAngle{angle}, timeProbs{std::move(probs)}{}
46  std::vector<double> timeProbs{};
47  };
48  std::vector<JitterBin> m_bins{};
49 
50  double m_timeInterval{-1.};
51  double m_angleInterval{-1.};
52 
53 };
54 CLASS_DEF( TgcDigitJitterData , 244147337 , 1 );
56 #endif
TgcDigitJitterData::m_timeInterval
double m_timeInterval
Definition: TgcDigitJitterData.h:50
CondCont.h
Hold mappings of ranges to condition objects.
TgcDigitJitterData::JitterBin::operator<
bool operator<(const JitterBin &other) const
Definition: TgcDigitJitterData.h:41
TgcDigitJitterData::JitterBin::maxAngle
double maxAngle
Definition: TgcDigitJitterData.h:40
TgcDigitJitterData::drawJitter
double drawJitter(const Amg::Vector3D &localDir, CLHEP::HepRandomEngine *rndmEngine) const
Definition: TgcDigitJitterData.cxx:14
TgcDigitJitterData::JitterBin::minAngle
double minAngle
Definition: TgcDigitJitterData.h:39
TgcDigitJitterData::initialize
StatusCode initialize()
Definition: TgcDigitJitterData.cxx:44
GeoPrimitives.h
BaseInfo.h
Provide an interface for finding inheritance information at run time.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
angle
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
Definition: TRTDetectorFactory_Full.cxx:73
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
TgcDigitJitterData::m_bins
std::vector< JitterBin > m_bins
Definition: TgcDigitJitterData.h:48
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TgcDigitJitterData::~TgcDigitJitterData
~TgcDigitJitterData()=default
CONDCONT_DEF
CONDCONT_DEF(TgcDigitJitterData, 132172807)
TgcDigitJitterData::m_angleInterval
double m_angleInterval
Definition: TgcDigitJitterData.h:51
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
AthMessaging.h
TgcDigitJitterData::JitterBin::JitterBin
JitterBin(const double angle, std::vector< double > &&probs)
Definition: TgcDigitJitterData.h:44
TgcDigitJitterData::cacheAngleInterval
void cacheAngleInterval(const double minAngle, std::vector< double > &&timeProbs)
Definition: TgcDigitJitterData.cxx:41
TgcDigitJitterData::JitterBin::timeProbs
std::vector< double > timeProbs
Definition: TgcDigitJitterData.h:46
TgcDigitJitterData::TgcDigitJitterData
TgcDigitJitterData()
Definition: TgcDigitJitterData.cxx:11
CLASS_DEF
CLASS_DEF(TgcDigitJitterData, 244147337, 1)
TgcDigitJitterData::JitterBin
Definition: TgcDigitJitterData.h:38
CLASS_DEF.h
macros to associate a CLID to a type
TgcDigitJitterData
Definition: TgcDigitJitterData.h:24