Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ITkPixelOfflineCalibData.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ITkPixelOfflineCalibData.cxx, (c) ATLAS Detector software
8 
10 #include "Identifier/Identifier.h"
11 
12 #include <sstream>
13 
14 namespace ITk
15 {
16 
17  std::vector<float> PixelOfflineCalibData::getConstants() const {
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  }
29 
31  m_clusterErrorData->print("ITkPixelClusterDump.txt");
32  }
33 
34 
35  void PixelOfflineCalibData::setConstants(const std::vector<float> &constants) {
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  }
64 
65 } // end of namespace ITk
ITk::PixelOfflineCalibData::dump
void dump()
Definition: ITkPixelOfflineCalibData.cxx:30
ITkPixelOfflineCalibData.h
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
ITk::PixelOfflineCalibData::getConstants
std::vector< float > getConstants() const
Definition: ITkPixelOfflineCalibData.cxx:17
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:805
ITk::PixelOfflineCalibData::setConstants
void setConstants(const std::vector< float > &constants)
Definition: ITkPixelOfflineCalibData.cxx:35
ITk::PixelOfflineCalibData::m_clusterErrorData
std::unique_ptr< PixelClusterErrorData > m_clusterErrorData
Definition: ITkPixelOfflineCalibData.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
ITk
Definition: ITkPixelOfflineCalibCondAlg.cxx:13
constants
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:1
ITk::PixelClusterErrorData::kNParam
@ kNParam
Definition: ITkPixelClusterErrorData.h:37
Identifier
Definition: IdentifierFieldParser.cxx:14