CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DD4hep_ListIds Class Reference
Inheritance diagram for DD4hep_ListIds:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 DD4hep_ListIds (const edm::ParameterSet &)
 
 ~DD4hep_ListIds () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 

Private Attributes

edm::ESGetToken< cms::DDCompactView, IdealGeometryRecordcpvToken_
 
std::vector< std::string > materials_
 
bool printMaterial_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 18 of file DD4hep_ListIds.cc.

Constructor & Destructor Documentation

◆ DD4hep_ListIds()

DD4hep_ListIds::DD4hep_ListIds ( const edm::ParameterSet pset)

Definition at line 37 of file DD4hep_ListIds.cc.

38  : printMaterial_(pset.getUntrackedParameter<bool>("printMaterial")),
39  materials_(pset.getUntrackedParameter<std::vector<std::string> >("materials")),
40  cpvToken_(esConsumes(edm::ESInputTag("", "CMS"))) {}
edm::ESGetToken< cms::DDCompactView, IdealGeometryRecord > cpvToken_
std::vector< std::string > materials_

◆ ~DD4hep_ListIds()

DD4hep_ListIds::~DD4hep_ListIds ( )
override

Definition at line 42 of file DD4hep_ListIds.cc.

42 {}

Member Function Documentation

◆ analyze()

void DD4hep_ListIds::analyze ( const edm::Event evt,
const edm::EventSetup setup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 44 of file DD4hep_ListIds.cc.

References cpvToken_, ALCARECOTkAlBeamHalo_cff::filter, spr::find(), cms::DDFilteredView::firstChild(), mps_fire::i, materials_, dqmiodumpmetadata::n, cmsRun_displayProdMFGeom_cfg::nodes, singleTopDQM_cfi::setup, cms::DDFilteredView::specpars(), AlCaHLTBitMon_QueryRunRegistry::string, and submitPVValidationJobs::t.

44  {
45  auto cpv = setup.getTransientHandle(cpvToken_);
46 
47  std::string attribute = "TkDDDStructure";
48  cms::DDFilter filter(attribute, "");
49  cms::DDFilteredView fv(*cpv, filter);
50  fv.firstChild();
51  std::set<std::string_view> tkdss;
52 
53  for (const auto &t : fv.specpars()) {
54  tkdss.insert(t.second->strValue(attribute));
55  }
56 
57  for (const auto &i : tkdss) {
58  edm::LogVerbatim("ListIds") << "\nFiltering " << i;
59  cms::DDFilter filter1(attribute, {i.data(), i.size()});
60  cms::DDFilteredView fv1(*cpv, filter1);
61  fv1.firstChild();
62 
63  std::vector<const cms::Node *> nodes;
64  while (fv1.firstChild()) {
65  nodes = fv1.geoHistory();
66  if (std::find(materials_.begin(),
67  materials_.end(),
68  nodes[nodes.size() - 1]->GetVolume()->GetMaterial()->GetName()) != materials_.end()) {
69  for (const auto &n : nodes) {
70  edm::LogVerbatim("ListIds") << n->GetVolume()->GetName() << "[" << n->GetNumber() << "]/";
71  }
72  edm::LogVerbatim("ListIds") << "Material:|" << nodes[nodes.size() - 1]->GetVolume()->GetMaterial()->GetName()
73  << "|\n";
74  }
75  }
76  }
77 }
Log< level::Info, true > LogVerbatim
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::ESGetToken< cms::DDCompactView, IdealGeometryRecord > cpvToken_
std::vector< std::string > materials_

◆ beginJob()

void DD4hep_ListIds::beginJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 25 of file DD4hep_ListIds.cc.

25 {}

◆ endJob()

void DD4hep_ListIds::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 79 of file DD4hep_ListIds.cc.

79 {}

Member Data Documentation

◆ cpvToken_

edm::ESGetToken<cms::DDCompactView, IdealGeometryRecord> DD4hep_ListIds::cpvToken_
private

Definition at line 34 of file DD4hep_ListIds.cc.

Referenced by analyze().

◆ materials_

std::vector<std::string> DD4hep_ListIds::materials_
private

Definition at line 33 of file DD4hep_ListIds.cc.

Referenced by analyze().

◆ printMaterial_

bool DD4hep_ListIds::printMaterial_
private

Definition at line 32 of file DD4hep_ListIds.cc.