ATLAS Offline Software
Loading...
Searching...
No Matches
ITk::PixelOfflineCalibData Class Reference

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

#include <ITkPixelOfflineCalibData.h>

Collaboration diagram for ITk::PixelOfflineCalibData:

Public Member Functions

 PixelOfflineCalibData ()
 Constructor:
 PixelOfflineCalibData (const PixelOfflineCalibData &rhs)
PixelOfflineCalibDataoperator= (const PixelOfflineCalibData &rhs)
 ~PixelOfflineCalibData ()=default
 default destructor
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>()) {}
std::unique_ptr< PixelClusterErrorData > m_clusterErrorData

◆ 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 }
static Double_t ss
void set(const std::string &id)
build from a string form - hexadecimal

◆ 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.

51{};

The documentation for this class was generated from the following files: