/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
DataFormats/ParticleFlowReco/src/PFBlockElement.cc
92 строки
3 KB
Matti Kortelainen
Move stored types in io_v1 namespace, reset class versions to 3
22 май 2026, 18:18
22 май 2026, 18:18
909f324
Код
Авторство
О чём код?
#include "DataFormats/ParticleFlowReco/interface/PFBlockElement.h" #include "DataFormats/ParticleFlowReco/interface/PFBlockElementTrack.h" #include "DataFormats/ParticleFlowReco/interface/PFBlockElementGsfTrack.h" #include "DataFormats/ParticleFlowReco/interface/PFBlockElementBrem.h" #include "DataFormats/ParticleFlowReco/interface/PFBlockElementCluster.h" #include "DataFormats/ParticleFlowReco/interface/PFBlockElementSuperCluster.h" const reco::TrackRef reco::io_v1::PFBlockElement::nullTrack_ = reco::TrackRef(); const reco::PFRecTrackRef reco::io_v1::PFBlockElement::nullPFRecTrack_ = reco::PFRecTrackRef(); const reco::PFClusterRef reco::io_v1::PFBlockElement::nullPFCluster_ = reco::PFClusterRef(); const reco::PFDisplacedTrackerVertexRef reco::io_v1::PFBlockElement::nullPFDispVertex_ = reco::PFDisplacedTrackerVertexRef(); const reco::ConversionRefVector reco::io_v1::PFBlockElement::nullConv_ = reco::ConversionRefVector(); const reco::MuonRef reco::io_v1::PFBlockElement::nullMuon_ = reco::MuonRef(); const reco::VertexCompositeCandidateRef reco::io_v1::PFBlockElement::nullVertex_ = reco::VertexCompositeCandidateRef(); using namespace reco; using namespace reco::io_v1; // int PFBlockElement::instanceCounter_ = 0; // int PFBlockElement::instanceCounter() { // return instanceCounter_; // } void PFBlockElement::Dump(std::ostream& out, const char* pad) const { if (!out) return; out << pad << "base element"; } std::ostream& reco::io_v1::operator<<(std::ostream& out, const PFBlockElement& element) { if (!out) return out; out << "element " << element.index() << "- type " << element.type() << " "; try { switch (element.type()) { case PFBlockElement::TRACK: { const reco::PFBlockElementTrack& et = dynamic_cast<const reco::PFBlockElementTrack&>(element); et.Dump(out); if (et.trackType(PFBlockElement::T_FROM_DISP)) out << " from displaced;"; if (et.trackType(PFBlockElement::T_TO_DISP)) out << " to displaced;"; if (et.trackType(PFBlockElement::T_FROM_GAMMACONV)) out << " from gammaconv;"; if (et.trackType(PFBlockElement::T_FROM_V0)) out << " from v0 decay;"; break; } case PFBlockElement::ECAL: case PFBlockElement::HCAL: case PFBlockElement::HGCAL: case PFBlockElement::HO: case PFBlockElement::HFEM: case PFBlockElement::HFHAD: case PFBlockElement::PS1: case PFBlockElement::PS2: { const reco::PFBlockElementCluster& ec = dynamic_cast<const reco::PFBlockElementCluster&>(element); ec.Dump(out); break; } case PFBlockElement::GSF: { const reco::PFBlockElementGsfTrack& eg = dynamic_cast<const reco::PFBlockElementGsfTrack&>(element); eg.Dump(out); out << " from gsf;"; break; } case PFBlockElement::BREM: { const reco::PFBlockElementBrem& em = dynamic_cast<const reco::PFBlockElementBrem&>(element); em.Dump(out); out << " from brem;"; break; } case PFBlockElement::SC: { const reco::PFBlockElementSuperCluster& sc = dynamic_cast<const reco::PFBlockElementSuperCluster&>(element); sc.Dump(out); out << " from SuperCluster;"; break; } default: out << " unknown type" << std::endl; break; } } catch (std::exception& err) { out << err.what() << std::endl; } return out; }