diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt b/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt index 84ba59b342928ec9b6819285eb2aad4c8a265788..79186a5a532f1d28a3050109d8efc3b0f2e27e59 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt +++ b/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt @@ -24,7 +24,12 @@ gaudi_add_module(MatrixPandora target_include_directories(MatrixPandora PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>/include - $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> + ${GEAR_INCLUDE_DIRS} + ${PandoraSDK_INCLUDE_DIRS} + ${LCContent_INCLUDE_DIRS} + ${LCIO_INCLUDE_DIRS} +) install(TARGETS MatrixPandora EXPORT CEPCSWTargets diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/include/CaloHitCreator.h b/Reconstruction/PFA/Pandora/MatrixPandora/include/CaloHitCreator.h index fb601edbaa87f0ba0d547308097692ed54ab1911..cdde80f0b47cd80d43a2ee361991b12c928b5ff0 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/include/CaloHitCreator.h +++ b/Reconstruction/PFA/Pandora/MatrixPandora/include/CaloHitCreator.h @@ -25,7 +25,7 @@ #include <string> -typedef std::vector<edm4hep::CalorimeterHit *> CalorimeterHitVector; +typedef std::vector<edm4hep::ConstCalorimeterHit *> CalorimeterHitVector; namespace gear { class GearMgr; } @@ -165,7 +165,7 @@ private: * @brief Get common calo hit properties: position, parent address, input energy and time * */ - void GetCommonCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, PandoraApi::CaloHit::Parameters &caloHitParameters) const; + void GetCommonCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, PandoraApi::CaloHit::Parameters &caloHitParameters) const; /** * @brief Get end cap specific calo hit properties: cell size, absorber radiation and interaction lengths, normal vector @@ -175,7 +175,7 @@ private: * @param caloHitParameters the calo hit parameters to populate * @param absorberCorrection to receive the absorber thickness correction for the mip equivalent energy */ - void GetEndCapCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, + void GetEndCapCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const; /** @@ -189,11 +189,11 @@ private: * @param caloHitParameters the calo hit parameters to populate * @param absorberCorrection to receive the absorber thickness correction for the mip equivalent energy */ - void GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, + void GetBarrelCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, unsigned int barrelSymmetryOrder, float barrelPhi0, unsigned int staveNumber, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const; - void GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout, + void GetBarrelCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout, unsigned int barrelSymmetryOrder, float barrelPhi0, unsigned int staveNumber, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const; /** @@ -201,7 +201,7 @@ private: * * @param pCaloHit the lcio calorimeter hit */ - int GetNLayersFromEdge(const edm4hep::CalorimeterHit *const pCaloHit) const; + int GetNLayersFromEdge(edm4hep::ConstCalorimeterHit *const pCaloHit) const; /** * @brief Get the maximum radius of a calo hit in a polygonal detector structure @@ -212,10 +212,10 @@ private: * * @return the maximum radius */ - float GetMaximumRadius(const edm4hep::CalorimeterHit *const pCaloHit, const unsigned int symmetryOrder, const float phi0) const; + float GetMaximumRadius(edm4hep::ConstCalorimeterHit *const pCaloHit, const unsigned int symmetryOrder, const float phi0) const; - void GetCoding(const edm4hep::CalorimeterHit* pCaloHit, long& sys, long& x, long& y, long& z) const ; - int GetBarrelLayer(const edm4hep::CalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout) const; + void GetCoding(edm4hep::ConstCalorimeterHit* pCaloHit, long& sys, long& x, long& y, long& z) const ; + int GetBarrelLayer(edm4hep::ConstCalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout) const; /** * @brief Get the layer coding string from the provided cell id encoding string * diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/include/MCParticleCreator.h b/Reconstruction/PFA/Pandora/MatrixPandora/include/MCParticleCreator.h index 3c1ea57efa4ebd5d6015830af7feec301deac09f..d7c882f588255efdc3b269de3f020f228d781968 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/include/MCParticleCreator.h +++ b/Reconstruction/PFA/Pandora/MatrixPandora/include/MCParticleCreator.h @@ -86,7 +86,7 @@ private: const Settings m_settings; ///< The mc particle creator settings const pandora::Pandora *m_pPandora; ///< Address of the pandora object to create the mc particles const float m_bField; ///< The bfield - std::map<unsigned int, const edm4hep::MCParticle*>* m_id_pMC_map; + std::map<unsigned int, edm4hep::ConstMCParticle*>* m_id_pMC_map; }; inline void MCParticleCreator::Reset() diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/include/PandoraMatrixAlg.h b/Reconstruction/PFA/Pandora/MatrixPandora/include/PandoraMatrixAlg.h index 1c1c96315c5bd36fb6b081b8a7f214dafb14618a..7a11b8137e4e6a564a23c92353d8fc0180c631c2 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/include/PandoraMatrixAlg.h +++ b/Reconstruction/PFA/Pandora/MatrixPandora/include/PandoraMatrixAlg.h @@ -59,12 +59,12 @@ public: CollectionMaps(); void clear(); - std::map<std::string, std::vector<edm4hep::MCParticle> > collectionMap_MC; - std::map<std::string, std::vector<edm4hep::CalorimeterHit> > collectionMap_CaloHit; - std::map<std::string, std::vector<edm4hep::Vertex> > collectionMap_Vertex; - std::map<std::string, std::vector<edm4hep::Track> > collectionMap_Track; - std::map<std::string, std::vector<edm4hep::MCRecoCaloAssociation> > collectionMap_CaloRel; - std::map<std::string, std::vector<edm4hep::MCRecoTrackerAssociation> > collectionMap_TrkRel; + std::map<std::string, std::vector<edm4hep::ConstMCParticle> > collectionMap_MC; + std::map<std::string, std::vector<edm4hep::ConstCalorimeterHit> > collectionMap_CaloHit; + std::map<std::string, std::vector<edm4hep::ConstVertex> > collectionMap_Vertex; + std::map<std::string, std::vector<edm4hep::ConstTrack> > collectionMap_Track; + std::map<std::string, std::vector<edm4hep::ConstMCRecoCaloAssociation> > collectionMap_CaloRel; + std::map<std::string, std::vector<edm4hep::ConstMCRecoTrackerAssociation> > collectionMap_TrkRel; }; diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/include/TrackCreator.h b/Reconstruction/PFA/Pandora/MatrixPandora/include/TrackCreator.h index b5daa829d8b6ef94a5d14d7a01c9a93558fde5e3..ffa8b90ab0a99d6e1022f43dddae40ca6de78d0b 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/include/TrackCreator.h +++ b/Reconstruction/PFA/Pandora/MatrixPandora/include/TrackCreator.h @@ -25,7 +25,7 @@ namespace gear { class GearMgr; } class CollectionMaps; -typedef std::vector<const edm4hep::Track *> TrackVector; +typedef std::vector<edm4hep::ConstTrack *> TrackVector; typedef std::set<unsigned int> TrackList; typedef std::map<edm4hep::ConstTrack, int> TrackToPidMap; /* @@ -127,7 +127,7 @@ public: */ pandora::StatusCode CreateTrackAssociations(const CollectionMaps& collectionMaps); - const edm4hep::Track* GetTrackAddress(const CollectionMaps& collectionMaps, const edm4hep::ConstTrack& pTrack ); + edm4hep::ConstTrack* GetTrackAddress(const CollectionMaps& collectionMaps, const edm4hep::ConstTrack& pTrack ); /** * @brief Create tracks, insert user code here * @@ -199,7 +199,7 @@ private: * @brief Copy track states stored in lcio tracks to pandora track parameters * */ - void GetTrackStates(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; + void GetTrackStates(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; /** * @brief Copy track state from lcio track state instance to pandora input track state @@ -211,13 +211,13 @@ private: * @brief Obtain track time when it reaches ECAL * */ - float CalculateTrackTimeAtCalorimeter(const edm4hep::Track *const pTrack) const; + float CalculateTrackTimeAtCalorimeter(edm4hep::ConstTrack *const pTrack) const; /** * @brief Decide whether track reaches the ecal surface * */ - void TrackReachesECAL(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; + void TrackReachesECAL(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; /** * @brief Determine whether a track can be used to form a pfo under the following conditions: @@ -225,7 +225,7 @@ private: * 2) if the track proves to have no cluster associations * */ - void DefineTrackPfoUsage(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; + void DefineTrackPfoUsage(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const; /** * @brief Whether track passes the quality cuts required in order to be used to form a pfo @@ -233,20 +233,20 @@ private: * * @return boolean */ - bool PassesQualityCuts(const edm4hep::Track *const pTrack, const PandoraApi::Track::Parameters &trackParameters) const; + bool PassesQualityCuts(edm4hep::ConstTrack *const pTrack, const PandoraApi::Track::Parameters &trackParameters) const; /** * @brief Get number of hits in TPC of a track * */ - int GetNTpcHits(const edm4hep::Track *const pTrack) const; + int GetNTpcHits(edm4hep::ConstTrack *const pTrack) const; /** * @brief Get number of hits in FTD of a track * * */ - int GetNFtdHits(const edm4hep::Track *const pTrack) const; + int GetNFtdHits(edm4hep::ConstTrack *const pTrack) const; const Settings m_settings; ///< The track creator settings const pandora::Pandora *m_pPandora; ///< Address of the pandora object to create tracks and track relationships diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/src/CaloHitCreator.cpp b/Reconstruction/PFA/Pandora/MatrixPandora/src/CaloHitCreator.cpp index 5bda03ba495910bda0c738739736eb25eab68c3c..b8343a145ac5e09f1c1319dba2814f21d9db5a99 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/src/CaloHitCreator.cpp +++ b/Reconstruction/PFA/Pandora/MatrixPandora/src/CaloHitCreator.cpp @@ -137,18 +137,20 @@ pandora::StatusCode CaloHitCreator::CreateECalCaloHits(const CollectionMaps& col if(collectionMaps.collectionMap_CaloHit.find(*iter) == collectionMaps.collectionMap_CaloHit.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::CalorimeterHit>& pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; + auto pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; const int nElements(pCaloHitCollection.size()); std::cout<<(*iter)<<"has nElements="<<nElements<<std::endl; if (0 == nElements) continue; + auto tmpCaloHit0 = pCaloHitCollection.at(0); + const gear::LayerLayout &endcapLayerLayout(_GEAR->getEcalEndcapParameters().getLayerLayout()); const dd4hep::DetElement &detElement = m_dd4hep->detector("CaloDetector"); dd4hep::rec::LayeredCalorimeterData* Data = detElement.extension<dd4hep::rec::LayeredCalorimeterData>() ; const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer>& barrelLayerLayout = Data->layers; - ID_UTIL::CellIDDecoder<const edm4hep::CalorimeterHit> cellIdDecoder(m_encoder_str); + ID_UTIL::CellIDDecoder<decltype(tmpCaloHit0)> cellIdDecoder(m_encoder_str); const std::string layerCodingString(m_encoder_str); const std::string layerCoding(this->GetLayerCoding(layerCodingString)); const std::string staveCoding(this->GetStaveCoding(layerCodingString)); @@ -157,8 +159,8 @@ pandora::StatusCode CaloHitCreator::CreateECalCaloHits(const CollectionMaps& col { try { - const edm4hep::CalorimeterHit& pCaloHit0 = pCaloHitCollection.at(i); - const edm4hep::CalorimeterHit* pCaloHit = &(pCaloHit0); + auto pCaloHit0 = pCaloHitCollection.at(i); + auto pCaloHit = &(pCaloHit0); if (NULL == pCaloHit) throw ("CreateECalCaloHits pCaloHit Collection type mismatch"); @@ -231,7 +233,7 @@ pandora::StatusCode CaloHitCreator::CreateECalCaloHits(const CollectionMaps& col } PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::CaloHit::Create(*m_pPandora, caloHitParameters)); - m_calorimeterHitVector.push_back(const_cast<edm4hep::CalorimeterHit*>(pCaloHit)); + m_calorimeterHitVector.push_back((pCaloHit)); } catch (pandora::StatusCodeException &statusCodeException) { @@ -262,17 +264,19 @@ pandora::StatusCode CaloHitCreator::CreateHCalCaloHits(const CollectionMaps& col if(collectionMaps.collectionMap_CaloHit.find(*iter) == collectionMaps.collectionMap_CaloHit.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::CalorimeterHit>& pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; + auto pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; const int nElements(pCaloHitCollection.size()); std::cout<<(*iter)<<"has nElements="<<nElements<<std::endl; if (0 == nElements) continue; + auto tmpCaloHit0 = pCaloHitCollection.at(0); + const gear::LayerLayout &endcapLayerLayout(_GEAR->getHcalEndcapParameters().getLayerLayout()); const gear::LayerLayout &barrelLayerLayout(_GEAR->getHcalBarrelParameters().getLayerLayout()); - ID_UTIL::CellIDDecoder<const edm4hep::CalorimeterHit> cellIdDecoder(m_encoder_str); + ID_UTIL::CellIDDecoder<decltype(tmpCaloHit0)> cellIdDecoder(m_encoder_str); const std::string layerCodingString(m_encoder_str); const std::string layerCoding(this->GetLayerCoding(layerCodingString)); const std::string staveCoding(this->GetStaveCoding(layerCodingString)); @@ -281,8 +285,8 @@ pandora::StatusCode CaloHitCreator::CreateHCalCaloHits(const CollectionMaps& col { try { - const edm4hep::CalorimeterHit& pCaloHit0 = pCaloHitCollection.at(i); - const edm4hep::CalorimeterHit* pCaloHit = &(pCaloHit0); + auto pCaloHit0 = pCaloHitCollection.at(i); + auto pCaloHit = &(pCaloHit0); if (NULL == pCaloHit) throw ("CreateHCalCaloHits Collection type mismatch"); @@ -315,7 +319,7 @@ pandora::StatusCode CaloHitCreator::CreateHCalCaloHits(const CollectionMaps& col caloHitParameters.m_electromagneticEnergy = m_settings.m_hCalToEMGeV * pCaloHit->getEnergy(); PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::CaloHit::Create(*m_pPandora, caloHitParameters)); - m_calorimeterHitVector.push_back(const_cast<edm4hep::CalorimeterHit*>(pCaloHit)); + m_calorimeterHitVector.push_back((pCaloHit)); } catch (pandora::StatusCodeException &statusCodeException) { @@ -346,18 +350,20 @@ pandora::StatusCode CaloHitCreator::CreateMuonCaloHits(const CollectionMaps& col if(collectionMaps.collectionMap_CaloHit.find(*iter) == collectionMaps.collectionMap_CaloHit.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::CalorimeterHit>& pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; + auto pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; const int nElements(pCaloHitCollection.size()); std::cout<<(*iter)<<"has nElements="<<nElements<<std::endl; if (0 == nElements) continue; + auto tmpCaloHit0 = pCaloHitCollection.at(0); + const gear::LayerLayout &endcapLayerLayout(_GEAR->getYokeEndcapParameters().getLayerLayout()); const gear::LayerLayout &barrelLayerLayout(_GEAR->getYokeBarrelParameters().getLayerLayout()); const gear::LayerLayout &plugLayerLayout(_GEAR->getYokePlugParameters().getLayerLayout()); - ID_UTIL::CellIDDecoder<const edm4hep::CalorimeterHit> cellIdDecoder(m_encoder_str_MUON); + ID_UTIL::CellIDDecoder<decltype(tmpCaloHit0)> cellIdDecoder(m_encoder_str_MUON); const std::string layerCodingString(m_encoder_str_MUON); const std::string layerCoding(this->GetLayerCoding(layerCodingString)); const std::string staveCoding(this->GetStaveCoding(layerCodingString)); @@ -366,8 +372,8 @@ pandora::StatusCode CaloHitCreator::CreateMuonCaloHits(const CollectionMaps& col { try { - const edm4hep::CalorimeterHit& pCaloHit0 = pCaloHitCollection.at(i); - const edm4hep::CalorimeterHit* pCaloHit = &(pCaloHit0); + auto pCaloHit0 = pCaloHitCollection.at(i); + auto pCaloHit = &(pCaloHit0); if (NULL == pCaloHit) throw ("Muon Collection type mismatch"); @@ -418,7 +424,7 @@ pandora::StatusCode CaloHitCreator::CreateMuonCaloHits(const CollectionMaps& col } PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::CaloHit::Create(*m_pPandora, caloHitParameters)); - m_calorimeterHitVector.push_back(const_cast<edm4hep::CalorimeterHit*>(pCaloHit)); + m_calorimeterHitVector.push_back((pCaloHit)); } catch (pandora::StatusCodeException &statusCodeException) { @@ -449,16 +455,18 @@ pandora::StatusCode CaloHitCreator::CreateLCalCaloHits(const CollectionMaps& col if(collectionMaps.collectionMap_CaloHit.find(*iter) == collectionMaps.collectionMap_CaloHit.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::CalorimeterHit>& pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; + auto pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; const int nElements(pCaloHitCollection.size()); std::cout<<(*iter)<<"has nElements="<<nElements<<std::endl; if (0 == nElements) continue; + auto tmpCaloHit0 = pCaloHitCollection.at(0); + const gear::LayerLayout &endcapLayerLayout(_GEAR->getLcalParameters().getLayerLayout()); - ID_UTIL::CellIDDecoder<const edm4hep::CalorimeterHit> cellIdDecoder(m_encoder_str_LCal); + ID_UTIL::CellIDDecoder<decltype(tmpCaloHit0)> cellIdDecoder(m_encoder_str_LCal); const std::string layerCodingString(m_encoder_str_LCal); const std::string layerCoding(this->GetLayerCoding(layerCodingString)); @@ -466,8 +474,8 @@ pandora::StatusCode CaloHitCreator::CreateLCalCaloHits(const CollectionMaps& col { try { - const edm4hep::CalorimeterHit& pCaloHit0 = pCaloHitCollection.at(i); - const edm4hep::CalorimeterHit* pCaloHit = &(pCaloHit0); + auto pCaloHit0 = pCaloHitCollection.at(i); + auto pCaloHit = &(pCaloHit0); if (NULL == pCaloHit) throw ("LCal Collection type mismatch"); @@ -491,7 +499,7 @@ pandora::StatusCode CaloHitCreator::CreateLCalCaloHits(const CollectionMaps& col caloHitParameters.m_hadronicEnergy = m_settings.m_eCalToHadGeVEndCap * pCaloHit->getEnergy(); PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::CaloHit::Create(*m_pPandora, caloHitParameters)); - m_calorimeterHitVector.push_back(const_cast<edm4hep::CalorimeterHit*>(pCaloHit)); + m_calorimeterHitVector.push_back((pCaloHit)); } catch (pandora::StatusCodeException &statusCodeException) { @@ -522,16 +530,19 @@ pandora::StatusCode CaloHitCreator::CreateLHCalCaloHits(const CollectionMaps& co if(collectionMaps.collectionMap_CaloHit.find(*iter) == collectionMaps.collectionMap_CaloHit.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::CalorimeterHit>& pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; + auto pCaloHitCollection = (collectionMaps.collectionMap_CaloHit.find(*iter))->second; const int nElements(pCaloHitCollection.size()); std::cout<<(*iter)<<"has nElements="<<nElements<<std::endl; if (0 == nElements) continue; + auto tmpCaloHit0 = pCaloHitCollection.at(0); + + const gear::LayerLayout &endcapLayerLayout(_GEAR->getLHcalParameters().getLayerLayout()); - ID_UTIL::CellIDDecoder<const edm4hep::CalorimeterHit> cellIdDecoder(m_encoder_str_LHCal); + ID_UTIL::CellIDDecoder<decltype(tmpCaloHit0)> cellIdDecoder(m_encoder_str_LHCal); const std::string layerCodingString(m_encoder_str_LHCal); const std::string layerCoding(this->GetLayerCoding(layerCodingString)); @@ -539,8 +550,8 @@ pandora::StatusCode CaloHitCreator::CreateLHCalCaloHits(const CollectionMaps& co { try { - const edm4hep::CalorimeterHit& pCaloHit0 = pCaloHitCollection.at(i); - const edm4hep::CalorimeterHit* pCaloHit = &(pCaloHit0); + auto pCaloHit0 = pCaloHitCollection.at(i); + auto pCaloHit = &(pCaloHit0); if (NULL == pCaloHit) throw ("LHCal Collection type mismatch"); @@ -564,7 +575,7 @@ pandora::StatusCode CaloHitCreator::CreateLHCalCaloHits(const CollectionMaps& co caloHitParameters.m_electromagneticEnergy = m_settings.m_hCalToEMGeV * pCaloHit->getEnergy(); PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::CaloHit::Create(*m_pPandora, caloHitParameters)); - m_calorimeterHitVector.push_back(const_cast<edm4hep::CalorimeterHit*>(pCaloHit)); + m_calorimeterHitVector.push_back((pCaloHit)); } catch (pandora::StatusCodeException &statusCodeException) { @@ -587,7 +598,7 @@ pandora::StatusCode CaloHitCreator::CreateLHCalCaloHits(const CollectionMaps& co //------------------------------------------------------------------------------------------------------------------------------------------ -void CaloHitCreator::GetCommonCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, PandoraApi::CaloHit::Parameters &caloHitParameters) const +void CaloHitCreator::GetCommonCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, PandoraApi::CaloHit::Parameters &caloHitParameters) const { const float pCaloHitPosition[3]={pCaloHit->getPosition()[0], pCaloHit->getPosition()[1], pCaloHit->getPosition()[2]}; const pandora::CartesianVector positionVector(pCaloHitPosition[0], pCaloHitPosition[1], pCaloHitPosition[2]); @@ -602,7 +613,7 @@ void CaloHitCreator::GetCommonCaloHitProperties(const edm4hep::CalorimeterHit *c //------------------------------------------------------------------------------------------------------------------------------------------ -void CaloHitCreator::GetEndCapCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, +void CaloHitCreator::GetEndCapCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const { caloHitParameters.m_hitRegion = pandora::ENDCAP; @@ -648,7 +659,7 @@ void CaloHitCreator::GetEndCapCaloHitProperties(const edm4hep::CalorimeterHit *c //------------------------------------------------------------------------------------------------------------------------------------------ -void CaloHitCreator::GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, +void CaloHitCreator::GetBarrelCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const gear::LayerLayout &layerLayout, unsigned int barrelSymmetryOrder, float barrelPhi0, unsigned int staveNumber, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const { @@ -713,7 +724,7 @@ void CaloHitCreator::GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *c } } -void CaloHitCreator::GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout, +void CaloHitCreator::GetBarrelCaloHitProperties(edm4hep::ConstCalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout, unsigned int barrelSymmetryOrder, float barrelPhi0, unsigned int staveNumber, PandoraApi::CaloHit::Parameters &caloHitParameters, float &absorberCorrection) const { @@ -778,7 +789,7 @@ void CaloHitCreator::GetBarrelCaloHitProperties(const edm4hep::CalorimeterHit *c } } //------------------------------------------------------------------------------------------------------------------------------------------ -int CaloHitCreator::GetBarrelLayer(const edm4hep::CalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout) const +int CaloHitCreator::GetBarrelLayer(edm4hep::ConstCalorimeterHit *const pCaloHit, const std::vector<dd4hep::rec::LayeredCalorimeterData::Layer> &layerLayout) const { int layer = -1 ; for (unsigned int i = 0, iMax = layerLayout.size(); i < iMax; ++i) @@ -796,7 +807,7 @@ int CaloHitCreator::GetBarrelLayer(const edm4hep::CalorimeterHit *const pCaloHit return layer; } -int CaloHitCreator::GetNLayersFromEdge(const edm4hep::CalorimeterHit *const pCaloHit) const +int CaloHitCreator::GetNLayersFromEdge(edm4hep::ConstCalorimeterHit *const pCaloHit) const { // Calo hit coordinate calculations const float barrelMaximumRadius(this->GetMaximumRadius(pCaloHit, m_hCalBarrelOuterSymmetry, m_hCalBarrelOuterPhi0)); @@ -838,7 +849,7 @@ int CaloHitCreator::GetNLayersFromEdge(const edm4hep::CalorimeterHit *const pCal //------------------------------------------------------------------------------------------------------------------------------------------ -float CaloHitCreator::GetMaximumRadius(const edm4hep::CalorimeterHit *const pCaloHit, const unsigned int symmetryOrder, const float phi0) const +float CaloHitCreator::GetMaximumRadius(edm4hep::ConstCalorimeterHit *const pCaloHit, const unsigned int symmetryOrder, const float phi0) const { const float pCaloHitPosition[3]={pCaloHit->getPosition()[0], pCaloHit->getPosition()[1], pCaloHit->getPosition()[2]}; @@ -860,7 +871,7 @@ float CaloHitCreator::GetMaximumRadius(const edm4hep::CalorimeterHit *const pCal return maximumRadius; } -void CaloHitCreator::GetCoding(const edm4hep::CalorimeterHit* pCaloHit, long& sys, long& x, long& y, long& z) const +void CaloHitCreator::GetCoding(edm4hep::ConstCalorimeterHit* pCaloHit, long& sys, long& x, long& y, long& z) const { //sys = (pCaloHit->getCellID() << (64-8)) >> (64-8) ; //x = (pCaloHit->getCellID() << (64-(8+16))) >> (64-(8+16)) ; diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/src/MCParticleCreator.cpp b/Reconstruction/PFA/Pandora/MatrixPandora/src/MCParticleCreator.cpp index c05190ebebc7efc39813bcaf22820743406afa1d..06c5aa2cb2dd541c43674d838f9dc5821804a83d 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/src/MCParticleCreator.cpp +++ b/Reconstruction/PFA/Pandora/MatrixPandora/src/MCParticleCreator.cpp @@ -30,7 +30,7 @@ MCParticleCreator::MCParticleCreator(const Settings &settings, const pandora::Pa m_pPandora(pPandora), m_bField(settings.m_bField) { -m_id_pMC_map = new std::map<unsigned int, const edm4hep::MCParticle*>; +m_id_pMC_map = new std::map<unsigned int, edm4hep::ConstMCParticle*>; } //------------------------------------------------------------------------------------------------------------------------------------------ @@ -49,20 +49,20 @@ pandora::StatusCode MCParticleCreator::CreateMCParticles(const CollectionMaps& c if(collectionMaps.collectionMap_MC.find(*iter) == collectionMaps.collectionMap_MC.end()) continue; try { - const std::vector<edm4hep::MCParticle>& pMCParticleCollection = (collectionMaps.collectionMap_MC.find(*iter))->second; + auto pMCParticleCollection = (collectionMaps.collectionMap_MC.find(*iter))->second; std::cout<<"Do CreateMCParticles, collection:"<<(*iter)<<", size="<<pMCParticleCollection.size()<<std::endl; for (int im = 0; im < pMCParticleCollection.size(); im++) { try { - const edm4hep::MCParticle& pMcParticle = pMCParticleCollection.at(im); + auto pMcParticle = pMCParticleCollection.at(im); PandoraApi::MCParticle::Parameters mcParticleParameters; mcParticleParameters.m_energy = sqrt(pMcParticle.getMomentum()[0] * pMcParticle.getMomentum()[0] + pMcParticle.getMomentum()[1] * pMcParticle.getMomentum()[1] + pMcParticle.getMomentum()[2] * pMcParticle.getMomentum()[2] + pMcParticle.getMass() * pMcParticle.getMass()); mcParticleParameters.m_particleId = pMcParticle.getPDG(); mcParticleParameters.m_mcParticleType = pandora::MC_3D; mcParticleParameters.m_pParentAddress = &pMcParticle; unsigned int p_id = pMcParticle.id(); - const edm4hep::MCParticle* p_mc = &pMcParticle; + auto p_mc = &pMcParticle; (*m_id_pMC_map) [p_id] = p_mc; mcParticleParameters.m_momentum = pandora::CartesianVector(pMcParticle.getMomentum()[0], pMcParticle.getMomentum()[1], pMcParticle.getMomentum()[2]); @@ -74,7 +74,7 @@ pandora::StatusCode MCParticleCreator::CreateMCParticles(const CollectionMaps& c PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::MCParticle::Create(*m_pPandora, mcParticleParameters)); // Create parent-daughter relationships - for(std::vector<edm4hep::ConstMCParticle>::const_iterator itDaughter = pMcParticle.daughters_begin(), + for(auto itDaughter = pMcParticle.daughters_begin(), itDaughterEnd = pMcParticle.daughters_end(); itDaughter != itDaughterEnd; ++itDaughter) { for (int ida = 0; ida < pMCParticleCollection.size(); ida++) @@ -82,7 +82,7 @@ pandora::StatusCode MCParticleCreator::CreateMCParticles(const CollectionMaps& c if(pMCParticleCollection.at(ida).id()==(*itDaughter).id()) { - const edm4hep::MCParticle& dMcParticle = pMCParticleCollection.at(ida); + auto dMcParticle = pMCParticleCollection.at(ida); if(&pMcParticle == &dMcParticle){std::cout<< "error, mother and daughter are the same mc particle, don't save SetMCParentDaughterRelationship"<<std::endl;} else PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::SetMCParentDaughterRelationship(*m_pPandora, &pMcParticle, &dMcParticle)); break; @@ -249,7 +249,7 @@ pandora::StatusCode MCParticleCreator::CreateCaloHitToMCParticleRelationships(co pandora::StatusCode MCParticleCreator::CreateCaloHitToMCParticleRelationships(const CollectionMaps& collectionMaps, const CalorimeterHitVector &calorimeterHitVector) const { std::cout<<"Do CreateCaloHitToMCParticleRelationships"<<std::endl; - typedef std::map<const edm4hep::MCParticle *, float> MCParticleToEnergyWeightMap; + typedef std::map<edm4hep::ConstMCParticle *, float> MCParticleToEnergyWeightMap; MCParticleToEnergyWeightMap mcParticleToEnergyWeightMap; for (StringVector::const_iterator iter = m_settings.m_CaloHitRelationCollections.begin(), iterEnd = m_settings.m_CaloHitRelationCollections.end(); @@ -258,7 +258,7 @@ pandora::StatusCode MCParticleCreator::CreateCaloHitToMCParticleRelationships(co if(collectionMaps.collectionMap_CaloRel.find(*iter) == collectionMaps.collectionMap_CaloRel.end()) continue; try { - const std::vector<edm4hep::MCRecoCaloAssociation>& pMCRecoCaloAssociationCollection = (collectionMaps.collectionMap_CaloRel.find(*iter))->second; + auto pMCRecoCaloAssociationCollection = (collectionMaps.collectionMap_CaloRel.find(*iter))->second; for (unsigned i_calo=0; i_calo < calorimeterHitVector.size(); i_calo++) { @@ -269,14 +269,14 @@ pandora::StatusCode MCParticleCreator::CreateCaloHitToMCParticleRelationships(co { if( pMCRecoCaloAssociationCollection.at(ic).getRec().id() != (*(calorimeterHitVector.at(i_calo))).id() ) continue; - const edm4hep::ConstSimCalorimeterHit pSimHit = pMCRecoCaloAssociationCollection.at(ic).getSim(); + auto pSimHit = pMCRecoCaloAssociationCollection.at(ic).getSim(); for (int iCont = 0, iEnd = pSimHit.contributions_size(); iCont < iEnd; ++iCont) { edm4hep::ConstCaloHitContribution conb = pSimHit.getContributions(iCont); - const edm4hep::ConstMCParticle ipa = conb.getParticle(); + auto ipa = conb.getParticle(); float ien = conb.getEnergy(); if( m_id_pMC_map->find(ipa.id()) == m_id_pMC_map->end() ) continue; - const edm4hep::MCParticle * p_tmp = (*m_id_pMC_map)[ipa.id()]; + auto p_tmp = (*m_id_pMC_map)[ipa.id()]; mcParticleToEnergyWeightMap[p_tmp] += ien; } @@ -315,32 +315,32 @@ pandora::StatusCode MCParticleCreator::CreateTrackToMCParticleRelationships(cons std::cout<<"Do CreateTrackToMCParticleRelationships"<<std::endl; for (unsigned ik = 0; ik < trackVector.size(); ik++) { - const edm4hep::Track *pTrack = trackVector.at(ik); + auto pTrack = trackVector.at(ik); // Get reconstructed momentum at dca const pandora::Helix helixFit(pTrack->getTrackStates(0).phi, pTrack->getTrackStates(0).D0, pTrack->getTrackStates(0).Z0, pTrack->getTrackStates(0).omega, pTrack->getTrackStates(0).tanLambda, m_bField); const float recoMomentum(helixFit.GetMomentum().GetMagnitude()); // Use momentum magnitude to identify best mc particle - edm4hep::MCParticle *pBestMCParticle = NULL; + edm4hep::ConstMCParticle *pBestMCParticle = NULL; float bestDeltaMomentum(std::numeric_limits<float>::max()); try { for (StringVector::const_iterator iter = m_settings.m_TrackRelationCollections.begin(), iterEnd = m_settings.m_TrackRelationCollections.end(); iter != iterEnd; ++iter) { if(collectionMaps.collectionMap_TrkRel.find(*iter) == collectionMaps.collectionMap_TrkRel.end()) continue; - const std::vector<edm4hep::MCRecoTrackerAssociation>& pMCRecoTrackerAssociationCollection = (collectionMaps.collectionMap_TrkRel.find(*iter))->second; + auto pMCRecoTrackerAssociationCollection = (collectionMaps.collectionMap_TrkRel.find(*iter))->second; for(unsigned ith=0 ; ith<pTrack->trackerHits_size(); ith++) { for(unsigned ic=0; ic < pMCRecoTrackerAssociationCollection.size(); ic++) { if( pMCRecoTrackerAssociationCollection.at(ic).getRec().id() != pTrack->getTrackerHits(ith).id() ) continue; - const edm4hep::ConstSimTrackerHit pSimHit = pMCRecoTrackerAssociationCollection.at(ic).getSim(); - const edm4hep::ConstMCParticle ipa = pSimHit.getMCParticle(); + auto pSimHit = pMCRecoTrackerAssociationCollection.at(ic).getSim(); + auto ipa = pSimHit.getMCParticle(); if( m_id_pMC_map->find(ipa.id()) == m_id_pMC_map->end() ) continue; const float trueMomentum(pandora::CartesianVector(ipa.getMomentum()[0], ipa.getMomentum()[1], ipa.getMomentum()[2]).GetMagnitude()); const float deltaMomentum(std::fabs(recoMomentum - trueMomentum)); if (deltaMomentum < bestDeltaMomentum) { - pBestMCParticle =const_cast<edm4hep::MCParticle*>((*m_id_pMC_map)[ipa.id()]); + pBestMCParticle = ((*m_id_pMC_map)[ipa.id()]); bestDeltaMomentum = deltaMomentum; } } diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/src/PandoraMatrixAlg.cpp b/Reconstruction/PFA/Pandora/MatrixPandora/src/PandoraMatrixAlg.cpp index d59c1a063d9ae4734ef1944d42db35930e594edf..9ea004bb085efe009aa3a25fa59082f5ef0740c0 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/src/PandoraMatrixAlg.cpp +++ b/Reconstruction/PFA/Pandora/MatrixPandora/src/PandoraMatrixAlg.cpp @@ -474,8 +474,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::MCParticleCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::MCParticle> v_mc; - m_CollectionMaps->collectionMap_MC [v.first] = v_mc; + // std::vector<edm4hep::MCParticle> v_mc; + // m_CollectionMaps->collectionMap_MC [v.first] = v_mc; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_MC [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -487,8 +487,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::CalorimeterHitCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::CalorimeterHit> v_cal; - m_CollectionMaps->collectionMap_CaloHit[v.first] = v_cal ; + // std::vector<edm4hep::CalorimeterHit> v_cal; + // m_CollectionMaps->collectionMap_CaloHit[v.first] = v_cal ; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_CaloHit [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -500,8 +500,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::TrackCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::Track> v_cal; - m_CollectionMaps->collectionMap_Track[v.first] = v_cal ; + // std::vector<edm4hep::Track> v_cal; + // m_CollectionMaps->collectionMap_Track[v.first] = v_cal ; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_Track [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -513,8 +513,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::VertexCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::Vertex> v_cal; - m_CollectionMaps->collectionMap_Vertex[v.first] = v_cal ; + // std::vector<edm4hep::Vertex> v_cal; + // m_CollectionMaps->collectionMap_Vertex[v.first] = v_cal ; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_Vertex [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -526,8 +526,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::MCRecoCaloAssociationCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::MCRecoCaloAssociation> v_cal; - m_CollectionMaps->collectionMap_CaloRel[v.first] = v_cal ; + // std::vector<edm4hep::MCRecoCaloAssociation> v_cal; + // m_CollectionMaps->collectionMap_CaloRel[v.first] = v_cal ; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_CaloRel [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -539,8 +539,8 @@ StatusCode PandoraMatrixAlg::updateMap() auto handle = dynamic_cast<DataHandle<edm4hep::MCRecoTrackerAssociationCollection>*> (v.second); auto po = handle->get(); if(po != NULL){ - std::vector<edm4hep::MCRecoTrackerAssociation> v_cal; - m_CollectionMaps->collectionMap_TrkRel[v.first] = v_cal ; + // std::vector<edm4hep::MCRecoTrackerAssociation> v_cal; + // m_CollectionMaps->collectionMap_TrkRel[v.first] = v_cal ; for(unsigned int i=0 ; i< po->size(); i++) m_CollectionMaps->collectionMap_TrkRel [v.first].push_back(po->at(i)); std::cout<<"saved col name="<<v.first<<std::endl; } @@ -570,7 +570,7 @@ StatusCode PandoraMatrixAlg::Ana() for(int i=0; i<reco_col->size();i++) { std::cout<<"reco="<<i<<std::endl; - const edm4hep::ReconstructedParticle pReco = reco_col->at(i); + auto pReco = reco_col->at(i); const float px = pReco.getMomentum()[0]; const float py = pReco.getMomentum()[1]; const float pz = pReco.getMomentum()[2]; @@ -642,19 +642,19 @@ StatusCode PandoraMatrixAlg::CreateMCRecoParticleAssociation() std::map<int, edm4hep::ConstMCParticle> mc_map; std::map<int, float > id_edep_map; float tot_en = 0 ; - const edm4hep::ReconstructedParticle pReco = reco_col->at(i); + auto pReco = reco_col->at(i); for(int j=0; j < pReco.clusters_size(); j++) { edm4hep::ConstCluster cluster = pReco.getClusters(j); for(int k=0; k < cluster.hits_size(); k++) { edm4hep::ConstCalorimeterHit hit = cluster.getHits(k); - for(std::map<std::string, std::vector<edm4hep::MCRecoCaloAssociation> >::iterator iter = m_CollectionMaps->collectionMap_CaloRel.begin(); iter != m_CollectionMaps->collectionMap_CaloRel.end(); iter++) + for(auto iter = m_CollectionMaps->collectionMap_CaloRel.begin(); iter != m_CollectionMaps->collectionMap_CaloRel.end(); iter++) { - for(std::vector<edm4hep::MCRecoCaloAssociation>::iterator it = iter->second.begin(); it != iter->second.end(); it ++) + for(auto it = iter->second.begin(); it != iter->second.end(); it ++) { if(it->getRec().id() != hit.id()) continue; - for(std::vector<edm4hep::ConstCaloHitContribution>::const_iterator itc = it->getSim().contributions_begin(); itc != it->getSim().contributions_end(); itc++) + for(auto itc = it->getSim().contributions_begin(); itc != it->getSim().contributions_end(); itc++) { if(mc_map.find(itc->getParticle().id()) == mc_map.end()) mc_map[itc->getParticle().id()] = itc->getParticle() ; if(id_edep_map.find(itc->getParticle().id()) != id_edep_map.end()) id_edep_map[itc->getParticle().id()] = id_edep_map[itc->getParticle().id()] + itc->getEnergy() ; @@ -665,7 +665,7 @@ StatusCode PandoraMatrixAlg::CreateMCRecoParticleAssociation() } } } - for(std::map<int, edm4hep::ConstMCParticle>::iterator it = mc_map.begin(); it != mc_map.end(); it ++) + for(auto it = mc_map.begin(); it != mc_map.end(); it ++) { edm4hep::MCRecoParticleAssociation association = pMCRecoParticleAssociationCollection->create(); association.setRec(pReco); diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/src/TrackCreator.cpp b/Reconstruction/PFA/Pandora/MatrixPandora/src/TrackCreator.cpp index 2a5c8f0084f15dcb3f22a22e97a67081db215844..945c49f93bf3855f31669a3beabb7cd16ddb27a3 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/src/TrackCreator.cpp +++ b/Reconstruction/PFA/Pandora/MatrixPandora/src/TrackCreator.cpp @@ -157,18 +157,18 @@ pandora::StatusCode TrackCreator::ExtractKinks(const CollectionMaps& collectionM if(collectionMaps.collectionMap_Vertex.find(*iter) == collectionMaps.collectionMap_Vertex.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::Vertex>& pKinkCollection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; + auto pKinkCollection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; for (int i = 0, iMax = pKinkCollection.size(); i < iMax; ++i) { try { - const edm4hep::Vertex pVertex0 = pKinkCollection.at(i); - const edm4hep::Vertex* pVertex = &(pVertex0); + auto pVertex0 = pKinkCollection.at(i); + auto pVertex = &(pVertex0); if (NULL == pVertex) throw ("Collection type mismatch"); - const edm4hep::ConstReconstructedParticle pReconstructedParticle = pVertex->getAssociatedParticle(); + auto pReconstructedParticle = pVertex->getAssociatedParticle(); if (this->IsConflictingRelationship(pReconstructedParticle))continue; const int vertexPdgCode(pReconstructedParticle.getType()); @@ -176,7 +176,7 @@ pandora::StatusCode TrackCreator::ExtractKinks(const CollectionMaps& collectionM // Extract the kink vertex information for (unsigned int iTrack = 0, nTracks = pReconstructedParticle.tracks_size(); iTrack < nTracks; ++iTrack) { - edm4hep::ConstTrack pTrack = pReconstructedParticle.getTracks(iTrack); + auto pTrack = pReconstructedParticle.getTracks(iTrack); (0 == iTrack) ? m_parentTrackList.insert(pTrack.id()) : m_daughterTrackList.insert(pTrack.id()); int trackPdgCode = pandora::UNKNOWN_PARTICLE_TYPE; @@ -259,24 +259,24 @@ pandora::StatusCode TrackCreator::ExtractProngsAndSplits(const CollectionMaps& c if(collectionMaps.collectionMap_Vertex.find(*iter) == collectionMaps.collectionMap_Vertex.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::Vertex>& pProngOrSplitCollection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; + auto pProngOrSplitCollection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; for (int i = 0, iMax = pProngOrSplitCollection.size(); i < iMax; ++i) { try { - const edm4hep::Vertex pVertex0 = pProngOrSplitCollection.at(i); - const edm4hep::Vertex* pVertex = &(pVertex0); + auto pVertex0 = pProngOrSplitCollection.at(i); + auto pVertex = &(pVertex0); if (NULL == pVertex) throw ("Collection type mismatch"); - const edm4hep::ConstReconstructedParticle pReconstructedParticle = pVertex->getAssociatedParticle(); + auto pReconstructedParticle = pVertex->getAssociatedParticle(); if (this->IsConflictingRelationship(pReconstructedParticle))continue; // Extract the prong/split vertex information for (unsigned int iTrack = 0, nTracks = pReconstructedParticle.tracks_size(); iTrack < nTracks; ++iTrack) { - edm4hep::ConstTrack pTrack = pReconstructedParticle.getTracks(iTrack); + auto pTrack = pReconstructedParticle.getTracks(iTrack); (0 == iTrack) ? m_parentTrackList.insert(pTrack.id()) : m_daughterTrackList.insert(pTrack.id()); if (0 == m_settings.m_shouldFormTrackRelationships) continue; @@ -325,18 +325,18 @@ pandora::StatusCode TrackCreator::ExtractV0s(const CollectionMaps& collectionMap if(collectionMaps.collectionMap_Vertex.find(*iter) == collectionMaps.collectionMap_Vertex.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::Vertex>& pV0Collection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; + auto pV0Collection = (collectionMaps.collectionMap_Vertex.find(*iter))->second; for (int i = 0, iMax = pV0Collection.size(); i < iMax; ++i) { try { - const edm4hep::Vertex pVertex0 = pV0Collection.at(i); - const edm4hep::Vertex* pVertex = &(pVertex0); + auto pVertex0 = pV0Collection.at(i); + auto pVertex = &(pVertex0); if (NULL == pVertex) throw ("Collection type mismatch"); - const edm4hep::ConstReconstructedParticle pReconstructedParticle = pVertex->getAssociatedParticle(); + auto pReconstructedParticle = pVertex->getAssociatedParticle(); if (this->IsConflictingRelationship(pReconstructedParticle))continue; @@ -345,7 +345,7 @@ pandora::StatusCode TrackCreator::ExtractV0s(const CollectionMaps& collectionMap for (unsigned int iTrack = 0, nTracks = pReconstructedParticle.tracks_size(); iTrack < nTracks; ++iTrack) { - edm4hep::ConstTrack pTrack = pReconstructedParticle.getTracks(iTrack); + auto pTrack = pReconstructedParticle.getTracks(iTrack); m_v0TrackList.insert(pTrack.id()); int trackPdgCode = pandora::UNKNOWN_PARTICLE_TYPE; @@ -410,16 +410,16 @@ bool TrackCreator::IsConflictingRelationship(const edm4hep::ConstReconstructedPa return false; } -const edm4hep::Track* TrackCreator::GetTrackAddress(const CollectionMaps& collectionMaps, const edm4hep::ConstTrack& pTrack ) +edm4hep::ConstTrack* TrackCreator::GetTrackAddress(const CollectionMaps& collectionMaps, const edm4hep::ConstTrack& pTrack ) { for (StringVector::const_iterator iter = m_settings.m_trackCollections.begin(), iterEnd = m_settings.m_trackCollections.end(); iter != iterEnd; ++iter) { if(collectionMaps.collectionMap_Track.find(*iter) == collectionMaps.collectionMap_Track.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} - const std::vector<edm4hep::Track>& pTrackCollection = (collectionMaps.collectionMap_Track.find(*iter))->second; + auto pTrackCollection = (collectionMaps.collectionMap_Track.find(*iter))->second; for (int i = 0, iMax = pTrackCollection.size(); i < iMax; ++i) { - const edm4hep::Track& pTrack0 = pTrackCollection.at(i); - if (pTrack.id() == pTrack0.id()) return (const edm4hep::Track*) (&pTrack0); + auto pTrack0 = pTrackCollection.at(i); + if (pTrack.id() == pTrack0.id()) return (&pTrack0); } } return NULL; @@ -435,15 +435,15 @@ pandora::StatusCode TrackCreator::CreateTracks(const CollectionMaps& collectionM if(collectionMaps.collectionMap_Track.find(*iter) == collectionMaps.collectionMap_Track.end()) { std::cout<<"not find "<<(*iter)<<std::endl; continue;} try { - const std::vector<edm4hep::Track>& pTrackCollection = (collectionMaps.collectionMap_Track.find(*iter))->second; + auto pTrackCollection = (collectionMaps.collectionMap_Track.find(*iter))->second; std::cout<<(*iter)<<" size="<<pTrackCollection.size()<<std::endl; for (int i = 0, iMax = pTrackCollection.size(); i < iMax; ++i) { try { - const edm4hep::Track& pTrack0 = pTrackCollection.at(i); - const edm4hep::Track* pTrack = (const edm4hep::Track*)(&pTrack0); + auto pTrack0 = pTrackCollection.at(i); + auto pTrack = (&pTrack0); if (NULL == pTrack) throw ("Collection type mismatch"); @@ -521,7 +521,7 @@ pandora::StatusCode TrackCreator::CreateTracks(const CollectionMaps& collectionM //------------------------------------------------------------------------------------------------------------------------------------------ -void TrackCreator::GetTrackStates(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const +void TrackCreator::GetTrackStates(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const { edm4hep::TrackState pTrackState = pTrack->getTrackStates(1); // ref /cvmfs/cepcsw.ihep.ac.cn/prototype/LCIO/include/EVENT/TrackState.h @@ -551,7 +551,7 @@ void TrackCreator::GetTrackStates(const edm4hep::Track *const pTrack, PandoraApi //------------------------------------------------------------------------------------------------------------------------------------------ -float TrackCreator::CalculateTrackTimeAtCalorimeter(const edm4hep::Track *const pTrack) const +float TrackCreator::CalculateTrackTimeAtCalorimeter(edm4hep::ConstTrack *const pTrack) const { const pandora::Helix helix(pTrack->getTrackStates(0).phi, pTrack->getTrackStates(0).D0, pTrack->getTrackStates(0).Z0, pTrack->getTrackStates(0).omega, pTrack->getTrackStates(0).tanLambda, m_bField); const pandora::CartesianVector &referencePoint(helix.GetReferencePoint()); @@ -624,7 +624,7 @@ void TrackCreator::CopyTrackState(const edm4hep::TrackState & pTrackState, pando //------------------------------------------------------------------------------------------------------------------------------------------ -void TrackCreator::TrackReachesECAL(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const +void TrackCreator::TrackReachesECAL(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const { // Calculate hit position information @@ -707,7 +707,7 @@ void TrackCreator::TrackReachesECAL(const edm4hep::Track *const pTrack, PandoraA //------------------------------------------------------------------------------------------------------------------------------------------ -void TrackCreator::DefineTrackPfoUsage(const edm4hep::Track *const pTrack, PandoraApi::Track::Parameters &trackParameters) const +void TrackCreator::DefineTrackPfoUsage(edm4hep::ConstTrack *const pTrack, PandoraApi::Track::Parameters &trackParameters) const { bool canFormPfo(false); bool canFormClusterlessPfo(false); @@ -718,7 +718,7 @@ void TrackCreator::DefineTrackPfoUsage(const edm4hep::Track *const pTrack, Pando float rInner(std::numeric_limits<float>::max()), zMin(std::numeric_limits<float>::max()); - for (std::vector<edm4hep::ConstTrackerHit>::const_iterator iter = pTrack->trackerHits_begin(), iterEnd = pTrack->trackerHits_end(); iter != iterEnd; ++iter) + for (auto iter = pTrack->trackerHits_begin(), iterEnd = pTrack->trackerHits_end(); iter != iterEnd; ++iter) { const edm4hep::Vector3d pPosition = (*iter).getPosition(); const float x(pPosition[0]), y(pPosition[1]), absoluteZ(std::fabs(pPosition[2])); @@ -791,7 +791,7 @@ void TrackCreator::DefineTrackPfoUsage(const edm4hep::Track *const pTrack, Pando //------------------------------------------------------------------------------------------------------------------------------------------ -bool TrackCreator::PassesQualityCuts(const edm4hep::Track *const pTrack, const PandoraApi::Track::Parameters &trackParameters) const +bool TrackCreator::PassesQualityCuts(edm4hep::ConstTrack *const pTrack, const PandoraApi::Track::Parameters &trackParameters) const { // First simple sanity checks if (trackParameters.m_trackStateAtCalorimeter.Get().GetPosition().GetMagnitude() < m_settings.m_minTrackECalDistanceFromIp) @@ -868,14 +868,14 @@ bool TrackCreator::PassesQualityCuts(const edm4hep::Track *const pTrack, const P //------------------------------------------------------------------------------------------------------------------------------------------ -int TrackCreator::GetNTpcHits(const edm4hep::Track *const pTrack) const +int TrackCreator::GetNTpcHits(edm4hep::ConstTrack *const pTrack) const { return pTrack->getSubDetectorHitNumbers(2 * lcio::ILDDetID::TPC - 1);// still use LCIO code now } //------------------------------------------------------------------------------------------------------------------------------------------ -int TrackCreator::GetNFtdHits(const edm4hep::Track *const pTrack) const +int TrackCreator::GetNFtdHits(edm4hep::ConstTrack *const pTrack) const { return pTrack->getSubDetectorHitNumbers( 2 * lcio::ILDDetID::FTD - 1 ); }