Skip to content
Snippets Groups Projects
Commit f1741d51 authored by Adam Edward Barton's avatar Adam Edward Barton
Browse files

Revert "Merge branch '22.0-cleanup-PixelConditionsData' into 'master'"

parent 449c808d
No related branches found
No related tags found
No related merge requests found
......@@ -76,7 +76,7 @@ StatusCode PixelOfflineCalibCondAlg::execute(const EventContext& ctx) const {
// First constants are info on the number of bins of parametrizations
ATH_MSG_DEBUG("Get error constants");
std::vector<float> constants = calibData->getConstants();
std::vector<float> constants = calibData->GetConstants();
if (!constants.empty()) { ATH_MSG_VERBOSE("constants are defined"); }
else { ATH_MSG_ERROR("constants size is NULL!!!"); }
......@@ -88,7 +88,7 @@ StatusCode PixelOfflineCalibCondAlg::execute(const EventContext& ctx) const {
if (!constants.empty()) {
ATH_MSG_DEBUG("Found constants with new-style Identifier key");
writeCdo->setConstants(constants);
writeCdo->SetConstants(constants);
}
if (writeHandle.record(rangeW, std::move(writeCdo)).isFailure()) {
......@@ -99,7 +99,7 @@ StatusCode PixelOfflineCalibCondAlg::execute(const EventContext& ctx) const {
if (m_dump!=0) {
ATH_MSG_DEBUG("Dump the constants to file");
calibData->dump();
calibData->Dump();
}
delete calibData;
......@@ -127,7 +127,7 @@ for (int i=0; i<readCdo->size(); i++) { constants.push_back(readCdo->get(Identif
if (!constants.empty()) {
ATH_MSG_DEBUG("Found constants with new-style Identifier key");
writeCdo->setConstants(constants);
writeCdo->SetConstants(constants);
}
else {
Identifier key;
......@@ -140,7 +140,7 @@ for (int i=0; i<readCdo->size(); i++) { const2.push_back(readCdo->get(key.set_li
if (!const2.empty()) {
ATH_MSG_DEBUG("Found constants with old-style Identifier key");
writeCdo->setConstants(const2);
writeCdo->SetConstants(const2);
}
else {
ATH_MSG_ERROR("Could not get the constants!");
......
......@@ -22,6 +22,9 @@
The PixelOfflineCalibData is a class that designed to hold the
data used by pixel offline algorithms. This includes
Pixel Cluster error parametrizations, and other stuff will follow
The details can be found at
https://twiki.cern.ch/twiki/bin/view/Atlas/AWikiPageNotExistingYet
@author Tommaso Lari <lari@mi.infn.it>
*/
......@@ -33,12 +36,13 @@ class PixelOfflineCalibData{
public:
/** Constructor:*/
PixelOfflineCalibData();
PixelOfflineCalibData(const PixelOfflineCalibData& rhs) = delete;
PixelOfflineCalibData& operator=(const PixelOfflineCalibData& rhs) = delete;
PixelOfflineCalibData(const PixelOfflineCalibData& rhs);
PixelOfflineCalibData& operator=(const PixelOfflineCalibData& rhs);
// PixelOfflineCalibData(const Identifier & ident);
// PixelOfflineCalibData(Identifier & ident);
/** default destructor */
~PixelOfflineCalibData () = default;
~PixelOfflineCalibData ();
bool update(const PixelClusterErrorData& idat);
bool update(const PixelChargeInterpolationParameters& idat);
......@@ -46,7 +50,7 @@ class PixelOfflineCalibData{
int size() const;
// get the pointer to pixel cluster error data (observer only)
// get the pointer to pixel cluster error data
PixelClusterErrorData* getPixelClusterErrorData();
PixelChargeInterpolationParameters* getPixelChargeInterpolationParameters();
PixelClusterOnTrackErrorData* getPixelClusterOnTrackErrorData();
......@@ -55,32 +59,50 @@ class PixelOfflineCalibData{
const PixelClusterOnTrackErrorData* getPixelClusterOnTrackErrorData() const;
// Get/Set the numerical constants
int getNumberOfConstants() const;
int GetNumberOfConstants() const;
std::vector<float> getConstants() const;
void setConstants(const std::vector<float> &constants);
std::vector<float> GetConstants() const;
void SetConstants(const std::vector<float> &constants);
void dump();
void Dump();
private:
std::unique_ptr<PixelClusterErrorData> m_clustererrordata{};
std::unique_ptr<PixelChargeInterpolationParameters> m_chargeinterpolationparameters{};
std::unique_ptr<PixelClusterOnTrackErrorData> m_clusterontrackerrordata{};
// Identifier m_ident;
PixelClusterErrorData* m_clustererrordata;
PixelChargeInterpolationParameters* m_chargeinterpolationparameters;
PixelClusterOnTrackErrorData* m_clusterontrackerrordata;
};
//CLASS_DEF(PixelOfflineCalibData, 27089939, 1)
inline PixelOfflineCalibData::PixelOfflineCalibData() {
m_clustererrordata = std::make_unique<PixelClusterErrorData>();
m_clusterontrackerrordata = std::make_unique<PixelClusterOnTrackErrorData>();
m_chargeinterpolationparameters = std::make_unique<PixelChargeInterpolationParameters>();
m_clustererrordata = new PixelClusterErrorData();
m_clusterontrackerrordata = new PixelClusterOnTrackErrorData();
m_chargeinterpolationparameters = new PixelChargeInterpolationParameters();
}
inline PixelOfflineCalibData::PixelOfflineCalibData(const PixelOfflineCalibData& rhs){
m_clustererrordata = rhs.m_clustererrordata;
m_clusterontrackerrordata = rhs.m_clusterontrackerrordata;
m_chargeinterpolationparameters = rhs.m_chargeinterpolationparameters;
}
inline PixelOfflineCalibData& PixelOfflineCalibData::operator=(const PixelOfflineCalibData& rhs){
if(this != &rhs){
m_clustererrordata = rhs.m_clustererrordata;
m_clusterontrackerrordata = rhs.m_clusterontrackerrordata;
m_chargeinterpolationparameters = rhs.m_chargeinterpolationparameters;
}
return (*this);
}
inline bool PixelOfflineCalibData::update(const PixelClusterErrorData& idat){
*m_clustererrordata = idat;
return true;
}
inline bool PixelOfflineCalibData::update(const PixelChargeInterpolationParameters& idat){
inline bool PixelOfflineCalibData::update(
const PixelChargeInterpolationParameters& idat){
*m_chargeinterpolationparameters = idat;
return true;
}
......@@ -91,32 +113,39 @@ inline bool PixelOfflineCalibData::update(const PixelClusterOnTrackErrorData& id
}
inline PixelClusterErrorData* PixelOfflineCalibData::getPixelClusterErrorData() {
return m_clustererrordata.get();
return m_clustererrordata;
}
inline PixelChargeInterpolationParameters* PixelOfflineCalibData::getPixelChargeInterpolationParameters() {
return m_chargeinterpolationparameters.get();
return m_chargeinterpolationparameters;
}
inline PixelClusterOnTrackErrorData*
PixelOfflineCalibData::getPixelClusterOnTrackErrorData() {
return m_clusterontrackerrordata.get();
return m_clusterontrackerrordata;
}
inline const PixelClusterErrorData* PixelOfflineCalibData::getPixelClusterErrorData() const {
return m_clustererrordata.get();
return m_clustererrordata;
}
inline const PixelChargeInterpolationParameters* PixelOfflineCalibData::getPixelChargeInterpolationParameters() const {
return m_chargeinterpolationparameters.get();
return m_chargeinterpolationparameters;
}
inline const PixelClusterOnTrackErrorData*
PixelOfflineCalibData::getPixelClusterOnTrackErrorData() const {
return m_clusterontrackerrordata.get();
return m_clusterontrackerrordata;
}
//================ Destructor =================================================
inline PixelOfflineCalibData::~PixelOfflineCalibData(){
delete m_clustererrordata;
delete m_chargeinterpolationparameters;
delete m_clusterontrackerrordata;
}
}
CLASS_DEF(PixelCalib::PixelOfflineCalibData, 209342487, 1)
......
......@@ -12,13 +12,12 @@ namespace PixelCalib{
// PixelCalibData::~PixelCalibData(){}
std::vector<float> PixelOfflineCalibData::getConstants() const {
std::vector<float> PixelOfflineCalibData::GetConstants() const {
// format version of parametrizations (note it is an increasing NEGATIVE number)
int v1 = m_clustererrordata->getVersion();
int v2 = m_clusterontrackerrordata->getVersion();
int v3 = m_chargeinterpolationparameters->getVersion();
const bool includesIBL = (v1< -1) or (v2< -1) or (v3< -1);
int v3 = m_chargeinterpolationparameters->getVersion();
int n1 = m_clustererrordata->getNumberOfBarrelBins();
int n2 = m_clustererrordata->getNumberOfEndcapBins();
......@@ -79,15 +78,27 @@ std::vector<float> PixelOfflineCalibData::getConstants() const {
+n4+n5; // number of ChargeInterpolation values
int offset = 13;
if(includesIBL) {
if(v1<-1||v2<-1||v3<-1) { // including IBL
offset +=8;
datasize +=2*n1 + netaibl+1 + nalphaibl+1 + n3c +n3d + netaibl2+1 + nalphaibl2+1 + n6 + n7;
}
std::vector<float> constants;
constants.reserve(datasize+offset);// NOTE: this was 'resize' before; may change output
constants = {float(v1),float(v2), float(v3), float(n1), float(n2), float(ncsx), float(ncsy), float(neta),
float(nalpha), float(ncsx2),float(ncsy2), float(neta2), float(nalpha2)};
constants.resize(datasize+offset);
constants.push_back(v1);
constants.push_back(v2);
constants.push_back(v3);
constants.push_back(n1);
constants.push_back(n2);
constants.push_back(ncsx);
constants.push_back(ncsy);
constants.push_back(neta);
constants.push_back(nalpha);
constants.push_back(ncsx2);
constants.push_back(ncsy2);
constants.push_back(neta2);
constants.push_back(nalpha2);
if(offset>13){
constants.push_back(ncsx_ibl);
constants.push_back(ncsx_ibl);
......@@ -100,22 +111,19 @@ std::vector<float> PixelOfflineCalibData::getConstants() const {
}
// set bins of cluster error on track parametrization (uppermost value implicit)
auto insert = [&constants](const std::vector<float> & v)->void{
if (not v.empty()) constants.insert(constants.end(), v.begin(), v.end());
};
insert(csx);
insert(csy);
for(int i=0; i<ncsx; i++){ constants.push_back(csx[i]); }
for(int i=0; i<ncsy; i++){ constants.push_back(csy[i]); }
if(netaibl>0){
for(int i=0; i<netaibl+1; i++){ constants.push_back(etaibl[i]); }
}
if(nalphaibl>0){
for(int i=0; i<nalphaibl+1; i++){ constants.push_back(alphaibl[i]); }
}
insert(eta);
insert(alpha);
for(int i=0; i<neta; i++){ constants.push_back(eta[i]); }
for(int i=0; i<nalpha; i++){ constants.push_back(alpha[i]); }
// set bins of charge interpolation parametrization (uppermost value stored)
insert(csx2);
insert(csy2);
for(int i=0; i<ncsx2+1; i++){ constants.push_back(csx2[i]); }
for(int i=0; i<ncsy2+1; i++){ constants.push_back(csy2[i]); }
if(netaibl2>0){
for(int i=0; i<netaibl2+1; i++){ constants.push_back(etaibl2[i]); }
}
......@@ -148,13 +156,13 @@ std::vector<float> PixelOfflineCalibData::getConstants() const {
return constants;
}
void PixelOfflineCalibData::dump(){
void PixelOfflineCalibData::Dump(){
m_clustererrordata->Print("PixelClusterDump.txt");
m_clusterontrackerrordata->Print("PixelClusterOnTrackDump.txt");
m_chargeinterpolationparameters->Print("PixelChargeInterpolationParametersDump.txt");
}
void PixelOfflineCalibData::setConstants(const std::vector<float> &constants){
void PixelOfflineCalibData::SetConstants(const std::vector<float> &constants){
if(constants.at(0) > 0){ // old format
m_clustererrordata->setVersion(0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment