ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Attributes | Private Attributes | List of all members
PixelRIO_OnTrackErrorScaling Class Referencefinal

#include <PixelRIO_OnTrackErrorScaling.h>

Inheritance diagram for PixelRIO_OnTrackErrorScaling:
Collaboration diagram for PixelRIO_OnTrackErrorScaling:

Public Types

enum  EPixelErrorScalingRegions {
  kPixBarrelPhi, kPixBarrelEta, kPixEndcapPhi, kPixEndcapEta,
  kPixIBLPhi, kPixIBLEta, kNParamTypes
}
 
enum  Type {
  Pixel = 0, SCT = 1, TRT = 2, MuonEtaPhi = 3,
  Unknown = 99
}
 

Public Member Functions

virtual CLID clid () const override final
 
Amg::MatrixX getScaledCovariance (Amg::MatrixX &&cov_input, const PixelID &pixel_id, const Identifier &id) const
 
virtual bool postProcess () override final
 
virtual Type type () const override final
 
std::vector< std::vector< double > > & params ()
 
const std::vector< std::vector< double > > & params () const
 

Static Public Member Functions

static const char *constparamNames ()
 

Static Public Attributes

static constexpr RIO_OnTrackErrorScaling::Type s_type = RIO_OnTrackErrorScaling::Pixel
 

Protected Member Functions

void checkParameters (const char *label, unsigned int n_paramter_sets, const char *const *param_names, unsigned int n_paramters) const
 Convenience function to check whether the number of parameters is correct. More...
 

Static Protected Attributes

static const char *const s_names [kNParamTypes]
 

Private Attributes

std::vector< std::vector< double > > m_params
 

Detailed Description

Definition at line 11 of file PixelRIO_OnTrackErrorScaling.h.

Member Enumeration Documentation

◆ EPixelErrorScalingRegions

Enumerator
kPixBarrelPhi 
kPixBarrelEta 
kPixEndcapPhi 
kPixEndcapEta 
kPixIBLPhi 
kPixIBLEta 
kNParamTypes 

Definition at line 21 of file PixelRIO_OnTrackErrorScaling.h.

22  {
27  kPixIBLPhi,
28  kPixIBLEta,
30  };

◆ Type

Enumerator
Pixel 
SCT 
TRT 
MuonEtaPhi 
Unknown 

Definition at line 16 of file RIO_OnTrackErrorScaling.h.

16  {
17  Pixel = 0,
18  SCT = 1,
19  TRT = 2,
20  MuonEtaPhi = 3,
21  Unknown = 99
22  };

Member Function Documentation

◆ checkParameters()

void RIO_OnTrackErrorScaling::checkParameters ( const char *  label,
unsigned int  n_paramter_sets,
const char *const param_names,
unsigned int  n_paramters 
) const
protectedinherited

Convenience function to check whether the number of parameters is correct.

Parameters
labela label for the error scaling class in case an error is issued.
n_paramter_setsthe number of parameter sets
param_namesthe names of the parameter sets
n_paramtersthe number of parameters per set.

Definition at line 14 of file RIO_OnTrackErrorScaling.cxx.

18 {
19  if (params().size() != n_paramter_sets ) {
20  std::stringstream message;
21  message << label << ": Expecting parameters for 2 parameters for";
22  for (unsigned int idx=0; idx < n_paramter_sets; ++idx) {
23  message << " " << param_names[idx];
24  }
25  message << " But got " << params().size() << ".";
26  throw std::runtime_error( message.str() );
27  }
28  for (unsigned int idx=0; idx<params().size(); ++idx) {
29  if (params()[idx].size() != n_paramters) {
30  assert( idx < n_paramter_sets );
31  std::stringstream message;
32  message << label << ": Expected 2 parameters for " << param_names[idx] << " but got " << params()[idx].size()
33  << ".";
34  throw std::runtime_error( message.str() );
35  }
36  }
37 }

◆ clid()

CLID PixelRIO_OnTrackErrorScaling::clid ( ) const
finaloverridevirtual

Reimplemented from RIO_OnTrackErrorScaling.

Definition at line 38 of file PixelRIO_OnTrackErrorScaling.cxx.

◆ getScaledCovariance()

Amg::MatrixX PixelRIO_OnTrackErrorScaling::getScaledCovariance ( Amg::MatrixX &&  cov_input,
const PixelID pixel_id,
const Identifier id 
) const

Definition at line 72 of file PixelRIO_OnTrackErrorScaling.cxx.

75 {
76 
77  Amg::MatrixX newCov = std::move(cov_input);
78 
79  // from SiDetectorElement::isEndcap
80  bool is_endcap = !(pixel_id.is_barrel(id) || pixel_id.is_dbm(id));
81  unsigned int idx=kNParamTypes;
82 
83  if (is_endcap) {
85  } else {
86 
87  // from PixelDigitizationTool::getReadoutTech
88  int barrel_ec = pixel_id.barrel_ec(id);
89  bool is_ibl = abs(barrel_ec)==4 || pixel_id.eta_module_max(id)>6;
90  if (is_ibl) {
91  idx = kPixIBLPhi;
92  }
93  else {
95  }
96  }
97 
98  // checked in postprocess
99  assert(params().size() > idx + 1);
100  assert(params()[idx].size() > 1 && params()[idx + 1].size() > 1);
101 
102  scale2by2(newCov,params()[idx] /* phi */ ,params()[idx+1] /* eta */);
103  return newCov;
104 }

◆ paramNames()

static const char* const* PixelRIO_OnTrackErrorScaling::paramNames ( )
inlinestatic

Definition at line 32 of file PixelRIO_OnTrackErrorScaling.h.

32 { return s_names; }

◆ params() [1/2]

std::vector<std::vector<double> >& RIO_OnTrackErrorScaling::params ( )
inlineinherited

Definition at line 29 of file RIO_OnTrackErrorScaling.h.

29 { return m_params; }

◆ params() [2/2]

const std::vector<std::vector<double> >& RIO_OnTrackErrorScaling::params ( ) const
inlineinherited

Definition at line 30 of file RIO_OnTrackErrorScaling.h.

30 { return m_params; }

◆ postProcess()

bool PixelRIO_OnTrackErrorScaling::postProcess ( )
finaloverridevirtual

Reimplemented from RIO_OnTrackErrorScaling.

Definition at line 42 of file PixelRIO_OnTrackErrorScaling.cxx.

42  {
43  if (params().size() != kPixIBLPhi && params().size() != kNParamTypes ) {
44  std::stringstream message;
45  message << " PixelRIO_OnTrackErrorScaling: Expecting parameters for";
46  {
47  unsigned int idx=0;
48  for (; idx < kPixIBLPhi; ++idx) {
49  message << " " << s_names[idx];
50  }
51  message << "(" << kPixIBLPhi << ")" << " and ";
52  for (; idx < kNParamTypes; ++idx) {
53  message << " " << s_names[idx];
54  }
55  message << "(" << kNParamTypes << ") for run2.";
56  }
57  message << " But got " << params().size() << ".";
58  throw std::runtime_error( message.str() );
59  }
60  for (unsigned int idx=0; idx <params().size(); ++idx) {
61  if (params()[idx].size()!=2 ) {
62  assert( idx < kNParamTypes);
63  std::stringstream message;
64  message << " PixelRIO_OnTrackErrorScaling: Expected 2 parameters for " << s_names[idx] << " but got " << params()[idx].size()
65  << ".";
66  throw std::runtime_error( message.str() );
67  }
68  }
69  return true;
70 }

◆ type()

virtual Type PixelRIO_OnTrackErrorScaling::type ( ) const
inlinefinaloverridevirtual

Reimplemented from RIO_OnTrackErrorScaling.

Definition at line 35 of file PixelRIO_OnTrackErrorScaling.h.

35 {return s_type;}

Member Data Documentation

◆ m_params

std::vector<std::vector<double> > RIO_OnTrackErrorScaling::m_params
privateinherited

Definition at line 47 of file RIO_OnTrackErrorScaling.h.

◆ s_names

const char *const PixelRIO_OnTrackErrorScaling::s_names
staticprotected
Initial value:
={
"PixPhi Barrel",
"PixEta Barrel",
"PixPhi Endcap",
"PixEta Endcap",
"PixPhi IBL",
"PixEta IBL"
}

Definition at line 37 of file PixelRIO_OnTrackErrorScaling.h.

◆ s_type

constexpr RIO_OnTrackErrorScaling::Type PixelRIO_OnTrackErrorScaling::s_type = RIO_OnTrackErrorScaling::Pixel
staticconstexpr

Definition at line 14 of file PixelRIO_OnTrackErrorScaling.h.


The documentation for this class was generated from the following files:
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
Pixel
Definition: PixelFEUtils.h:16
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
PixelRIO_OnTrackErrorScaling::kPixEndcapEta
@ kPixEndcapEta
Definition: PixelRIO_OnTrackErrorScaling.h:26
ReweightUtils.message
message
Definition: ReweightUtils.py:15
PixelID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition: PixelID.cxx:79
PixelRIO_OnTrackErrorScaling::kPixIBLPhi
@ kPixIBLPhi
Definition: PixelRIO_OnTrackErrorScaling.h:27
PixelRIO_OnTrackErrorScaling::s_names
static const char *const s_names[kNParamTypes]
Definition: PixelRIO_OnTrackErrorScaling.h:37
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
PixelRIO_OnTrackErrorScaling::s_type
static constexpr RIO_OnTrackErrorScaling::Type s_type
Definition: PixelRIO_OnTrackErrorScaling.h:14
PixelID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
Definition: PixelID.h:605
TRT
Definition: HitInfo.h:33
RIO_OnTrackErrorScaling::m_params
std::vector< std::vector< double > > m_params
Definition: RIO_OnTrackErrorScaling.h:47
ClassID_traits
Default, invalid implementation of ClassID_traits.
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:40
SCT
Definition: SCT_ChipUtils.h:14
PixelRIO_OnTrackErrorScaling::kNParamTypes
@ kNParamTypes
Definition: PixelRIO_OnTrackErrorScaling.h:29
PixelRIO_OnTrackErrorScaling::kPixEndcapPhi
@ kPixEndcapPhi
Definition: PixelRIO_OnTrackErrorScaling.h:25
PixelID::is_dbm
bool is_dbm(const Identifier &id) const
Test for dbm - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for gene...
Definition: PixelID.h:612
PixelRIO_OnTrackErrorScaling::kPixBarrelEta
@ kPixBarrelEta
Definition: PixelRIO_OnTrackErrorScaling.h:24
PixelRIO_OnTrackErrorScaling::kPixIBLEta
@ kPixIBLEta
Definition: PixelRIO_OnTrackErrorScaling.h:28
PixelRIO_OnTrackErrorScaling::kPixBarrelPhi
@ kPixBarrelPhi
Definition: PixelRIO_OnTrackErrorScaling.h:23
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
RIO_OnTrackErrorScaling::Unknown
@ Unknown
Definition: RIO_OnTrackErrorScaling.h:21
RIO_OnTrackErrorScaling::MuonEtaPhi
@ MuonEtaPhi
Definition: RIO_OnTrackErrorScaling.h:20
RIO_OnTrackErrorScaling::params
std::vector< std::vector< double > > & params()
Definition: RIO_OnTrackErrorScaling.h:29