Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Attributes | List of all members
ITk::PixelOfflineCalibData Class Reference

#include <ITkPixelOfflineCalibData.h>

Collaboration diagram for ITk::PixelOfflineCalibData:

Public Member Functions

 PixelOfflineCalibData ()
 Constructor: More...
 
 PixelOfflineCalibData (const PixelOfflineCalibData &rhs)
 
PixelOfflineCalibDataoperator= (const PixelOfflineCalibData &rhs)
 
 ~PixelOfflineCalibData ()=default
 default destructor More...
 
bool update (const PixelClusterErrorData &idat)
 
PixelClusterErrorDatagetClusterErrorData ()
 
const PixelClusterErrorDatagetClusterErrorData () const
 
std::vector< float > getConstants () const
 
void setConstants (const std::vector< float > &constants)
 
void dump ()
 

Private Attributes

std::unique_ptr< PixelClusterErrorDatam_clusterErrorData {}
 

Detailed Description

The ITk::PixelOfflineCalibData is a class that designed to hold the data used by ITk pixel offline algorithms.

Definition at line 27 of file ITkPixelOfflineCalibData.h.

Constructor & Destructor Documentation

◆ PixelOfflineCalibData() [1/2]

ITk::PixelOfflineCalibData::PixelOfflineCalibData ( )
inline

Constructor:

Definition at line 31 of file ITkPixelOfflineCalibData.h.

32  : m_clusterErrorData(std::make_unique<PixelClusterErrorData>()) {}

◆ PixelOfflineCalibData() [2/2]

PixelOfflineCalibData::PixelOfflineCalibData ( const PixelOfflineCalibData rhs)
inline

Definition at line 55 of file ITkPixelOfflineCalibData.h.

55  {
56  m_clusterErrorData.reset(new PixelClusterErrorData(*rhs.m_clusterErrorData));
57 }

◆ ~PixelOfflineCalibData()

ITk::PixelOfflineCalibData::~PixelOfflineCalibData ( )
default

default destructor

Member Function Documentation

◆ dump()

void PixelOfflineCalibData::dump ( )

Definition at line 30 of file ITkPixelOfflineCalibData.cxx.

30  {
31  m_clusterErrorData->print("ITkPixelClusterDump.txt");
32  }

◆ getClusterErrorData() [1/2]

PixelClusterErrorData * PixelOfflineCalibData::getClusterErrorData ( )
inline

Definition at line 71 of file ITkPixelOfflineCalibData.h.

71  {
72  return m_clusterErrorData.get();
73 }

◆ getClusterErrorData() [2/2]

const PixelClusterErrorData * PixelOfflineCalibData::getClusterErrorData ( ) const
inline

Definition at line 75 of file ITkPixelOfflineCalibData.h.

75  {
76  return m_clusterErrorData.get();
77 }

◆ getConstants()

std::vector< float > PixelOfflineCalibData::getConstants ( ) const

Definition at line 17 of file ITkPixelOfflineCalibData.cxx.

17  {
18  const std::vector< std::array<float, ITk::PixelClusterErrorData::kNParam> > &constMap = m_clusterErrorData->getConstMap();
19  std::vector<float> constants;
20  constants.reserve( (ITk::PixelClusterErrorData::kNParam+1) * constMap.size() );
21  //
22  for(unsigned int id_hash=0; const std::array<float, ITk::PixelClusterErrorData::kNParam>& values : constMap){
23  long long pixelId = m_clusterErrorData->getIdentifier(id_hash++).get_compact();
24  constants.push_back(pixelId); // @TODO not necessariy lossless to convert an IdentifierHash into a float
25  constants.insert(constants.end(), values.begin(),values.end());
26  }
27  return constants;
28  }

◆ operator=()

PixelOfflineCalibData & PixelOfflineCalibData::operator= ( const PixelOfflineCalibData rhs)
inline

Definition at line 59 of file ITkPixelOfflineCalibData.h.

59  {
60  if (this != &rhs) {
61  m_clusterErrorData.reset(new PixelClusterErrorData(*rhs.m_clusterErrorData));
62  }
63  return (*this);
64 }

◆ setConstants()

void PixelOfflineCalibData::setConstants ( const std::vector< float > &  constants)

Definition at line 35 of file ITkPixelOfflineCalibData.cxx.

35  {
36 
37  int entry_size = 9;
38  int map_size = constants.size()/entry_size;
39 
40  for(int i=0;i<map_size;i++){
41 
42  long long pixelId_long = constants[i*entry_size];
43  std::ostringstream ss;
44  ss << "0x" << std::hex << pixelId_long;
45  std::string pixelId_str(ss.str());
46  Identifier pixelId;
47  pixelId.set(pixelId_str);
48 
49  double period_phi = constants[i*entry_size + 1];
50  double period_sinheta = constants[i*entry_size + 2];
51  double delta_x_slope = constants[i*entry_size + 3];
52  double delta_x_offset = constants[i*entry_size + 4];
53  double delta_err_x = constants[i*entry_size + 5];
54  double delta_y_slope = constants[i*entry_size + 6];
55  double delta_y_offset = constants[i*entry_size + 7];
56  double delta_err_y = constants[i*entry_size + 8];
57 
58  m_clusterErrorData->setDeltaError(m_clusterErrorData->getIdentifierHash(pixelId), period_phi, period_sinheta,
59  delta_x_slope, delta_x_offset, delta_err_x,
60  delta_y_slope, delta_y_offset, delta_err_y);
61 
62  }
63  }

◆ update()

bool PixelOfflineCalibData::update ( const PixelClusterErrorData idat)
inline

Definition at line 66 of file ITkPixelOfflineCalibData.h.

66  {
67  *m_clusterErrorData = idat;
68  return true;
69 }

Member Data Documentation

◆ m_clusterErrorData

std::unique_ptr<PixelClusterErrorData> ITk::PixelOfflineCalibData::m_clusterErrorData {}
private

Definition at line 51 of file ITkPixelOfflineCalibData.h.


The documentation for this class was generated from the following files:
Identifier::set
void set(const std::string &id)
build from a string form - hexadecimal
Definition: Identifier.cxx:12
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:805
ITk::PixelOfflineCalibData::m_clusterErrorData
std::unique_ptr< PixelClusterErrorData > m_clusterErrorData
Definition: ITkPixelOfflineCalibData.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
constants
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:1
ITk::PixelClusterErrorData::kNParam
@ kNParam
Definition: ITkPixelClusterErrorData.h:37
Identifier
Definition: IdentifierFieldParser.cxx:14