From f1741d51dcb06987e8f6313f64673ca76aee948e Mon Sep 17 00:00:00 2001 From: Adam Edward Barton <adam.edward.barton@cern.ch> Date: Fri, 28 Jan 2022 20:55:42 +0100 Subject: [PATCH] Revert "Merge branch '22.0-cleanup-PixelConditionsData' into 'master'" --- .../src/PixelOfflineCalibCondAlg.cxx | 10 +-- .../PixelOfflineCalibData.h | 73 +++++++++++++------ .../src/PixelOfflineCalibData.cxx | 44 ++++++----- 3 files changed, 82 insertions(+), 45 deletions(-) diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelOfflineCalibCondAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelOfflineCalibCondAlg.cxx index aa17222fdb0..345bb22341c 100644 --- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelOfflineCalibCondAlg.cxx +++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelOfflineCalibCondAlg.cxx @@ -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!"); diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h index 5b01aab755b..c77c29d0da4 100644 --- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h +++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h @@ -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) diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelOfflineCalibData.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelOfflineCalibData.cxx index 4d4995d61b4..c5062503525 100644 --- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelOfflineCalibData.cxx +++ b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelOfflineCalibData.cxx @@ -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); -- GitLab