CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TrackerTopologyEP Class Reference
Inheritance diagram for TrackerTopologyEP:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Types

using ReturnType = std::unique_ptr< TrackerTopology >
 

Public Member Functions

ReturnType produce (const TrackerTopologyRcd &)
 
 TrackerTopologyEP (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ESProducer (const ESProducer &)=delete
 
ESProxyIndex const * getTokenIndices (unsigned int iIndex) const
 
ESRecordIndex const * getTokenRecordIndices (unsigned int iIndex) const
 
bool hasMayConsumes () const noexcept
 
size_t numberOfTokenIndices (unsigned int iIndex) const
 
ESProducer const & operator= (const ESProducer &)=delete
 
SerialTaskQueueChainqueue ()
 
template<typename Record >
std::optional< std::vector< ESProxyIndex > > updateFromMayConsumes (unsigned int iIndex, const Record &iRecord) const
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &) final
 
 ~ESProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
 ESProxyFactoryProducer (const ESProxyFactoryProducer &)=delete
 
const ESProxyFactoryProduceroperator= (const ESProxyFactoryProducer &)=delete
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
void createKeyedProxies (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
 DataProxyProvider ()
 
 DataProxyProvider (const DataProxyProvider &)=delete
 
const ComponentDescriptiondescription () const
 
void fillRecordsNotAllowingConcurrentIOVs (std::set< EventSetupRecordKey > &recordsNotAllowingConcurrentIOVs) const
 
virtual void initConcurrentIOVs (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
bool isUsingRecord (const EventSetupRecordKey &key) const
 
KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey, unsigned int iovIndex=0)
 
const DataProxyProvideroperator= (const DataProxyProvider &)=delete
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 

Private Member Functions

void fillParameters (const PTrackerParameters &, TrackerTopology::PixelBarrelValues &pxbVals, TrackerTopology::PixelEndcapValues &pxfVals, TrackerTopology::TECValues &tecVals, TrackerTopology::TIBValues &tibVals, TrackerTopology::TIDValues &tidVals, TrackerTopology::TOBValues &tobVals)
 

Private Attributes

const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcdtoken_
 

Additional Inherited Members

- Protected Types inherited from edm::ESProxyFactoryProducer
using EventSetupRecordKey = eventsetup::EventSetupRecordKey
 
- Protected Types inherited from edm::eventsetup::DataProxyProvider
using KeyedProxiesVector = std::vector< std::pair< DataKey, std::shared_ptr< DataProxy > >>
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
auto setWhatProduced (T *iThis, const es::Label &iLabel={})
 
template<typename T >
auto setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
auto setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
auto setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord >
auto setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
auto setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
template<typename TFunc >
auto setWhatProduced (TFunc &&func, const es::Label &iLabel={})
 
template<typename TReturn , typename TRecord , typename TFunc , typename TDecorator >
ESConsumesCollectorT< TRecord > setWhatProduced (TFunc &&func, TDecorator &&iDec, const es::Label &iLabel={})
 
void usesResources (std::vector< std::string > const &)
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
KeyedProxiesVector registerProxies (const EventSetupRecordKey &, unsigned int iovIndex) override
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &key)
 

Detailed Description

Definition at line 18 of file TrackerTopologyEP.cc.

Member Typedef Documentation

◆ ReturnType

Definition at line 22 of file TrackerTopologyEP.cc.

Constructor & Destructor Documentation

◆ TrackerTopologyEP()

TrackerTopologyEP::TrackerTopologyEP ( const edm::ParameterSet conf)

Definition at line 40 of file TrackerTopologyEP.cc.

41  : token_(setWhatProduced(this).consumesFrom<PTrackerParameters, PTrackerParametersRcd>(edm::ESInputTag())) {
42  edm::LogInfo("TRACKER") << "TrackerTopologyEP::TrackerTopologyEP";
43 }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > token_
Log< level::Info, false > LogInfo

Member Function Documentation

◆ fillDescriptions()

void TrackerTopologyEP::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 45 of file TrackerTopologyEP.cc.

References edm::ConfigurationDescriptions::add().

45  {
47  descriptions.add("trackerTopology", ttc);
48 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillParameters()

void TrackerTopologyEP::fillParameters ( const PTrackerParameters ptp,
TrackerTopology::PixelBarrelValues pxbVals,
TrackerTopology::PixelEndcapValues pxfVals,
TrackerTopology::TECValues tecVals,
TrackerTopology::TIBValues tibVals,
TrackerTopology::TIDValues tidVals,
TrackerTopology::TOBValues tobVals 
)
private

Definition at line 66 of file TrackerTopologyEP.cc.

References TrackerTopology::PixelEndcapValues::bladeMask_, TrackerTopology::PixelEndcapValues::bladeStartBit_, TrackerTopology::PixelEndcapValues::diskMask_, TrackerTopology::PixelEndcapValues::diskStartBit_, TrackerTopology::PixelBarrelValues::ladderMask_, TrackerTopology::PixelBarrelValues::ladderStartBit_, TrackerTopology::PixelBarrelValues::layerMask_, TrackerTopology::TIBValues::layerMask_, TrackerTopology::TOBValues::layerMask_, TrackerTopology::PixelBarrelValues::layerStartBit_, TrackerTopology::TIBValues::layerStartBit_, TrackerTopology::TOBValues::layerStartBit_, TrackerTopology::TIDValues::module_fw_bwMask_, TrackerTopology::TIDValues::module_fw_bwStartBit_, TrackerTopology::PixelBarrelValues::moduleMask_, TrackerTopology::PixelEndcapValues::moduleMask_, TrackerTopology::TECValues::moduleMask_, TrackerTopology::TIBValues::moduleMask_, TrackerTopology::TIDValues::moduleMask_, TrackerTopology::TOBValues::moduleMask_, TrackerTopology::PixelBarrelValues::moduleStartBit_, TrackerTopology::PixelEndcapValues::moduleStartBit_, TrackerTopology::TECValues::moduleStartBit_, TrackerTopology::TIBValues::moduleStartBit_, TrackerTopology::TIDValues::moduleStartBit_, TrackerTopology::TOBValues::moduleStartBit_, TrackerTopology::PixelEndcapValues::panelMask_, TrackerTopology::PixelEndcapValues::panelStartBit_, TrackerTopology::TECValues::petal_fw_bwMask_, TrackerTopology::TECValues::petal_fw_bwStartBit_, TrackerTopology::TECValues::petalMask_, TrackerTopology::TECValues::petalStartBit_, TrackerTopology::TECValues::ringMask_, TrackerTopology::TIDValues::ringMask_, TrackerTopology::TECValues::ringStartBit_, TrackerTopology::TIDValues::ringStartBit_, TrackerTopology::TOBValues::rod_fw_bwMask_, TrackerTopology::TOBValues::rod_fw_bwStartBit_, TrackerTopology::TOBValues::rodMask_, TrackerTopology::TOBValues::rodStartBit_, TrackerTopology::PixelEndcapValues::sideMask_, TrackerTopology::TECValues::sideMask_, TrackerTopology::TIDValues::sideMask_, TrackerTopology::PixelEndcapValues::sideStartBit_, TrackerTopology::TECValues::sideStartBit_, TrackerTopology::TIDValues::sideStartBit_, TrackerTopology::TECValues::sterMask_, TrackerTopology::TIBValues::sterMask_, TrackerTopology::TIDValues::sterMask_, TrackerTopology::TOBValues::sterMask_, TrackerTopology::TECValues::sterStartBit_, TrackerTopology::TIBValues::sterStartBit_, TrackerTopology::TIDValues::sterStartBit_, TrackerTopology::TOBValues::sterStartBit_, TrackerTopology::TIBValues::str_fw_bwMask_, TrackerTopology::TIBValues::str_fw_bwStartBit_, TrackerTopology::TIBValues::str_int_extMask_, TrackerTopology::TIBValues::str_int_extStartBit_, TrackerTopology::TIBValues::strMask_, TrackerTopology::TIBValues::strStartBit_, PTrackerParameters::vitems, TrackerTopology::TECValues::wheelMask_, TrackerTopology::TIDValues::wheelMask_, TrackerTopology::TECValues::wheelStartBit_, and TrackerTopology::TIDValues::wheelStartBit_.

Referenced by produce().

72  {
73  pxbVals.layerStartBit_ = ptp.vitems[0].vpars[0]; // 16
74  pxbVals.ladderStartBit_ = ptp.vitems[0].vpars[1]; // 8
75  pxbVals.moduleStartBit_ = ptp.vitems[0].vpars[2]; // 2
76  pxbVals.layerMask_ = ptp.vitems[0].vpars[3]; // 0xF
77  pxbVals.ladderMask_ = ptp.vitems[0].vpars[4]; // 0xFF
78  pxbVals.moduleMask_ = ptp.vitems[0].vpars[5]; // 0x3F
79 
80  if (ptp.vitems[1].vpars.size() >
81  11) { //Tracker with subdisk hierarchy level (additional hierarchy level wrt original)
82  pxfVals.sideStartBit_ = ptp.vitems[1].vpars[0];
83  pxfVals.diskStartBit_ = ptp.vitems[1].vpars[1];
84  pxfVals.bladeStartBit_ = ptp.vitems[1].vpars[3];
85  pxfVals.panelStartBit_ = ptp.vitems[1].vpars[4];
86  pxfVals.moduleStartBit_ = ptp.vitems[1].vpars[5];
87  pxfVals.sideMask_ = ptp.vitems[1].vpars[6];
88  pxfVals.diskMask_ = ptp.vitems[1].vpars[7];
89  pxfVals.bladeMask_ = ptp.vitems[1].vpars[9];
90  pxfVals.panelMask_ = ptp.vitems[1].vpars[10];
91  pxfVals.moduleMask_ = ptp.vitems[1].vpars[11];
92  } else { //Original tracker
93  pxfVals.sideStartBit_ = ptp.vitems[1].vpars[0];
94  pxfVals.diskStartBit_ = ptp.vitems[1].vpars[1];
95  pxfVals.bladeStartBit_ = ptp.vitems[1].vpars[2];
96  pxfVals.panelStartBit_ = ptp.vitems[1].vpars[3];
97  pxfVals.moduleStartBit_ = ptp.vitems[1].vpars[4];
98  pxfVals.sideMask_ = ptp.vitems[1].vpars[5];
99  pxfVals.diskMask_ = ptp.vitems[1].vpars[6];
100  pxfVals.bladeMask_ = ptp.vitems[1].vpars[7];
101  pxfVals.panelMask_ = ptp.vitems[1].vpars[8];
102  pxfVals.moduleMask_ = ptp.vitems[1].vpars[9];
103  }
104 
105  // TEC: 6
106  tecVals.sideStartBit_ = ptp.vitems[5].vpars[0];
107  tecVals.wheelStartBit_ = ptp.vitems[5].vpars[1];
108  tecVals.petal_fw_bwStartBit_ = ptp.vitems[5].vpars[2];
109  tecVals.petalStartBit_ = ptp.vitems[5].vpars[3];
110  tecVals.ringStartBit_ = ptp.vitems[5].vpars[4];
111  tecVals.moduleStartBit_ = ptp.vitems[5].vpars[5];
112  tecVals.sterStartBit_ = ptp.vitems[5].vpars[6];
113  tecVals.sideMask_ = ptp.vitems[5].vpars[7];
114  tecVals.wheelMask_ = ptp.vitems[5].vpars[8];
115  tecVals.petal_fw_bwMask_ = ptp.vitems[5].vpars[9];
116  tecVals.petalMask_ = ptp.vitems[5].vpars[10];
117  tecVals.ringMask_ = ptp.vitems[5].vpars[11];
118  tecVals.moduleMask_ = ptp.vitems[5].vpars[12];
119  tecVals.sterMask_ = ptp.vitems[5].vpars[13];
120 
121  // TIB: 3
122  tibVals.layerStartBit_ = ptp.vitems[2].vpars[0];
123  tibVals.str_fw_bwStartBit_ = ptp.vitems[2].vpars[1];
124  tibVals.str_int_extStartBit_ = ptp.vitems[2].vpars[2];
125  tibVals.strStartBit_ = ptp.vitems[2].vpars[3];
126  tibVals.moduleStartBit_ = ptp.vitems[2].vpars[4];
127  tibVals.sterStartBit_ = ptp.vitems[2].vpars[5];
128  tibVals.layerMask_ = ptp.vitems[2].vpars[6];
129  tibVals.str_fw_bwMask_ = ptp.vitems[2].vpars[7];
130  tibVals.str_int_extMask_ = ptp.vitems[2].vpars[8];
131  tibVals.strMask_ = ptp.vitems[2].vpars[9];
132  tibVals.moduleMask_ = ptp.vitems[2].vpars[10];
133  tibVals.sterMask_ = ptp.vitems[2].vpars[11];
134 
135  // TID: 4
136  tidVals.sideStartBit_ = ptp.vitems[3].vpars[0];
137  tidVals.wheelStartBit_ = ptp.vitems[3].vpars[1];
138  tidVals.ringStartBit_ = ptp.vitems[3].vpars[2];
139  tidVals.module_fw_bwStartBit_ = ptp.vitems[3].vpars[3];
140  tidVals.moduleStartBit_ = ptp.vitems[3].vpars[4];
141  tidVals.sterStartBit_ = ptp.vitems[3].vpars[5];
142  tidVals.sideMask_ = ptp.vitems[3].vpars[6];
143  tidVals.wheelMask_ = ptp.vitems[3].vpars[7];
144  tidVals.ringMask_ = ptp.vitems[3].vpars[8];
145  tidVals.module_fw_bwMask_ = ptp.vitems[3].vpars[9];
146  tidVals.moduleMask_ = ptp.vitems[3].vpars[10];
147  tidVals.sterMask_ = ptp.vitems[3].vpars[11];
148 
149  // TOB: 5
150  tobVals.layerStartBit_ = ptp.vitems[4].vpars[0];
151  tobVals.rod_fw_bwStartBit_ = ptp.vitems[4].vpars[1];
152  tobVals.rodStartBit_ = ptp.vitems[4].vpars[2];
153  tobVals.moduleStartBit_ = ptp.vitems[4].vpars[3];
154  tobVals.sterStartBit_ = ptp.vitems[4].vpars[4];
155  tobVals.layerMask_ = ptp.vitems[4].vpars[5];
156  tobVals.rod_fw_bwMask_ = ptp.vitems[4].vpars[6];
157  tobVals.rodMask_ = ptp.vitems[4].vpars[7];
158  tobVals.moduleMask_ = ptp.vitems[4].vpars[8];
159  tobVals.sterMask_ = ptp.vitems[4].vpars[9];
160 }
std::vector< Item > vitems
unsigned int module_fw_bwStartBit_

◆ produce()

TrackerTopologyEP::ReturnType TrackerTopologyEP::produce ( const TrackerTopologyRcd iRecord)

Definition at line 50 of file TrackerTopologyEP.cc.

References fillParameters(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), and token_.

50  {
51  edm::LogInfo("TrackerTopologyEP") << "TrackerTopologyEP::produce(const TrackerTopologyRcd& iRecord)";
52  auto ptp = iRecord.getRecord<PTrackerParametersRcd>().getTransientHandle(token_);
53 
60 
61  fillParameters(*ptp, pxbVals, pxfVals, tecVals, tibVals, tidVals, tobVals);
62 
63  return std::make_unique<TrackerTopology>(pxbVals, pxfVals, tecVals, tibVals, tidVals, tobVals);
64 }
void fillParameters(const PTrackerParameters &, TrackerTopology::PixelBarrelValues &pxbVals, TrackerTopology::PixelEndcapValues &pxfVals, TrackerTopology::TECValues &tecVals, TrackerTopology::TIBValues &tibVals, TrackerTopology::TIDValues &tidVals, TrackerTopology::TOBValues &tobVals)
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > token_
Log< level::Info, false > LogInfo

Member Data Documentation

◆ token_

const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> TrackerTopologyEP::token_
private

Definition at line 37 of file TrackerTopologyEP.cc.

Referenced by produce().