CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
CTPPSGeometryESModule Class Reference

Builds ideal, real and misaligned geometries. More...

Inheritance diagram for CTPPSGeometryESModule:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Classes

struct  GDTokens
 

Public Member Functions

 CTPPSGeometryESModule (const edm::ParameterSet &)
 
 ~CTPPSGeometryESModule () override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ESProducer (const ESProducer &)=delete
 
ESProxyIndex const * getTokenIndices (unsigned int iIndex) const
 
ESProducer const & operator= (const ESProducer &)=delete
 
template<typename Record >
void updateFromMayConsumes (unsigned int iIndex, const Record &iRecord)
 
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

template<typename REC >
std::unique_ptr< DetGeomDescproduceGD (IdealGeometryRecord const &, const std::optional< REC > &, GDTokens< REC > const &, const char *name)
 
std::unique_ptr< DetGeomDescproduceIdealGD (const IdealGeometryRecord &)
 
std::unique_ptr< DetGeomDescproduceMisalignedGD (const VeryForwardMisalignedGeometryRecord &)
 
std::unique_ptr< CTPPSGeometryproduceMisalignedTG (const VeryForwardMisalignedGeometryRecord &)
 
std::unique_ptr< DetGeomDescproduceRealGD (const VeryForwardRealGeometryRecord &)
 
std::unique_ptr< CTPPSGeometryproduceRealTG (const VeryForwardRealGeometryRecord &)
 

Static Private Member Functions

static void applyAlignments (const DetGeomDesc &, const CTPPSRPAlignmentCorrectionsData *, DetGeomDesc *&)
 
static void buildDetGeomDesc (DDFilteredView *fv, DetGeomDesc *gd)
 

Private Attributes

const edm::ESGetToken< DDCompactView, IdealGeometryRecordcompactViewToken_
 
const edm::ESGetToken< DetGeomDesc, VeryForwardMisalignedGeometryRecorddgdMisToken_
 
const edm::ESGetToken< DetGeomDesc, VeryForwardRealGeometryRecorddgdRealToken_
 
const GDTokens< RPMisalignedAlignmentRecordgdMisTokens_
 
const GDTokens< RPRealAlignmentRecordgdRealTokens_
 
const unsigned int verbosity_
 

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 char *iLabel)
 
template<typename T >
auto setWhatProduced (T *iThis, const es::Label &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 >
ESConsumesCollectorT< TRecord > setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
- 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

Builds ideal, real and misaligned geometries.

First, it creates a tree of DetGeomDesc from DDCompView. For real and misaligned geometries, it applies alignment corrections (RPAlignmentCorrections) found in corresponding ...GeometryRecord.

Second, it creates CTPPSGeometry from DetGeoDesc tree.

Definition at line 51 of file CTPPSGeometryESModule.cc.

Constructor & Destructor Documentation

◆ CTPPSGeometryESModule()

CTPPSGeometryESModule::CTPPSGeometryESModule ( const edm::ParameterSet iConfig)

◆ ~CTPPSGeometryESModule()

CTPPSGeometryESModule::~CTPPSGeometryESModule ( )
inlineoverride

Definition at line 59 of file CTPPSGeometryESModule.cc.

59 :
60  std::unique_ptr<DetGeomDesc> produceIdealGD(const IdealGeometryRecord&);

Member Function Documentation

◆ applyAlignments()

void CTPPSGeometryESModule::applyAlignments ( const DetGeomDesc idealGD,
const CTPPSRPAlignmentCorrectionsData alignments,
DetGeomDesc *&  newGD 
)
staticprivate

Definition at line 120 of file CTPPSGeometryESModule.cc.

123  {
124  newGD = new DetGeomDesc(idealGD);
125  std::deque<const DetGeomDesc*> buffer;
126  std::deque<DetGeomDesc*> bufferNew;
127  buffer.emplace_back(&idealGD);
128  bufferNew.emplace_back(newGD);
129 
130  while (!buffer.empty()) {
131  const DetGeomDesc* sD = buffer.front();
132  DetGeomDesc* pD = bufferNew.front();
133  buffer.pop_front();
134  bufferNew.pop_front();
135 
136  const std::string name = pD->name();
137 
138  // Is it sensor? If yes, apply full sensor alignments
141  std::regex_match(name, std::regex(DDD_TOTEM_TIMING_SENSOR_TMPL))) {
142  unsigned int plId = pD->geographicalID();
143 
144  if (alignments) {
145  const auto& ac = alignments->getFullSensorCorrection(plId);
146  pD->applyAlignment(ac);
147  }
148  }
149 
150  // Is it RP box? If yes, apply RP alignments
153  unsigned int rpId = pD->geographicalID();
154 
155  if (alignments) {
156  const auto& ac = alignments->getRPCorrection(rpId);
157  pD->applyAlignment(ac);
158  }
159  }
160 
161  // create and add children
162  for (unsigned int i = 0; i < sD->components().size(); i++) {
163  const DetGeomDesc* sDC = sD->components()[i];
164  buffer.emplace_back(sDC);
165 
166  // create new node with the same information as in sDC and add it as a child of pD
167  DetGeomDesc* cD = new DetGeomDesc(*sDC);
168  pD->addComponent(cD);
169 
170  bufferNew.emplace_back(cD);
171  }
172  }

References DetGeomDesc::addComponent(), DetGeomDesc::applyAlignment(), edmScanValgrind::buffer, DetGeomDesc::components(), DDD_CTPPS_DIAMONDS_RP_NAME, DDD_CTPPS_DIAMONDS_SEGMENT_NAME, DDD_CTPPS_PIXELS_RP_NAME, DDD_CTPPS_PIXELS_SENSOR_NAME, DDD_CTPPS_UFSD_SEGMENT_NAME, DDD_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, DDD_TOTEM_TIMING_RP_NAME, DDD_TOTEM_TIMING_SENSOR_TMPL, DetGeomDesc::geographicalID(), CTPPSRPAlignmentCorrectionsData::getFullSensorCorrection(), CTPPSRPAlignmentCorrectionsData::getRPCorrection(), mps_fire::i, Skims_PA_cff::name, DetGeomDesc::name(), year_2016_postTS2_cff::rpId, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by produceGD().

◆ buildDetGeomDesc()

void CTPPSGeometryESModule::buildDetGeomDesc ( DDFilteredView fv,
DetGeomDesc gd 
)
staticprivate

Definition at line 176 of file CTPPSGeometryESModule.cc.

177  {
178  // try to dive into next level
179  if (!fv->firstChild())
180  return;
181 
182  // loop over siblings in the level
183  do {
184  // create new DetGeomDesc node and add it to the parent's (gd) list
185  DetGeomDesc* newGD = new DetGeomDesc(fv);
186 
187  const std::string name = fv->logicalPart().name().name();
188 
189  // strip sensors
191  const std::vector<int>& copy_num = fv->copyNumbers();
192  // check size of copy numubers array
193  if (copy_num.size() < 3)
194  throw cms::Exception("DDDTotemRPContruction")
195  << "size of copyNumbers for strip sensor is " << copy_num.size() << ". It must be >= 3.";
196 
197  // extract information
198  const unsigned int decRPId = copy_num[copy_num.size() - 3];
199  const unsigned int arm = decRPId / 100;
200  const unsigned int station = (decRPId % 100) / 10;
201  const unsigned int rp = decRPId % 10;
202  const unsigned int detector = copy_num[copy_num.size() - 1];
203  newGD->setGeographicalID(TotemRPDetId(arm, station, rp, detector));
204  }
205 
206  // strip and pixels RPs
208  unsigned int decRPId = fv->copyno();
209 
210  // check if it is a pixel RP
211  if (decRPId >= 10000) {
212  decRPId = decRPId % 10000;
213  const unsigned int armIdx = (decRPId / 100) % 10;
214  const unsigned int stIdx = (decRPId / 10) % 10;
215  const unsigned int rpIdx = decRPId % 10;
216  newGD->setGeographicalID(CTPPSPixelDetId(armIdx, stIdx, rpIdx));
217  } else {
218  const unsigned int armIdx = (decRPId / 100) % 10;
219  const unsigned int stIdx = (decRPId / 10) % 10;
220  const unsigned int rpIdx = decRPId % 10;
221  newGD->setGeographicalID(TotemRPDetId(armIdx, stIdx, rpIdx));
222  }
223  }
224 
225  else if (std::regex_match(name, std::regex(DDD_TOTEM_TIMING_SENSOR_TMPL))) {
226  const std::vector<int>& copy_num = fv->copyNumbers();
227  // check size of copy numbers array
228  if (copy_num.size() < 4)
229  throw cms::Exception("DDDTotemRPContruction")
230  << "size of copyNumbers for TOTEM timing sensor is " << copy_num.size() << ". It must be >= 4.";
231 
232  const unsigned int decRPId = copy_num[copy_num.size() - 4];
233  const unsigned int arm = decRPId / 100, station = (decRPId % 100) / 10, rp = decRPId % 10;
234  const unsigned int plane = copy_num[copy_num.size() - 2], channel = copy_num[copy_num.size() - 1];
235  newGD->setGeographicalID(TotemTimingDetId(arm, station, rp, plane, channel));
236  }
237 
238  else if (name == DDD_TOTEM_TIMING_RP_NAME) {
239  const unsigned int arm = fv->copyno() / 100, station = (fv->copyno() % 100) / 10, rp = fv->copyno() % 10;
240  newGD->setGeographicalID(TotemTimingDetId(arm, station, rp));
241  }
242 
243  // pixel sensors
244  else if (name == DDD_CTPPS_PIXELS_SENSOR_NAME) {
245  const std::vector<int>& copy_num = fv->copyNumbers();
246  // check size of copy numubers array
247  if (copy_num.size() < 4)
248  throw cms::Exception("DDDTotemRPContruction")
249  << "size of copyNumbers for pixel sensor is " << copy_num.size() << ". It must be >= 4.";
250 
251  // extract information
252  const unsigned int decRPId = copy_num[copy_num.size() - 4] % 10000;
253  const unsigned int arm = decRPId / 100;
254  const unsigned int station = (decRPId % 100) / 10;
255  const unsigned int rp = decRPId % 10;
256  const unsigned int detector = copy_num[copy_num.size() - 2] - 1;
258  }
259 
260  // diamond/UFSD sensors
262  const std::vector<int>& copy_num = fv->copyNumbers();
263 
264  const unsigned int id = copy_num[copy_num.size() - 1];
265  const unsigned int arm = copy_num[1] - 1;
266  const unsigned int station = 1;
267  const unsigned int rp = 6;
268  const unsigned int plane = (id / 100);
269  const unsigned int channel = id % 100;
270 
271  newGD->setGeographicalID(CTPPSDiamondDetId(arm, station, rp, plane, channel));
272  }
273 
274  // diamond/UFSD RPs
275  else if (name == DDD_CTPPS_DIAMONDS_RP_NAME) {
276  const std::vector<int>& copy_num = fv->copyNumbers();
277 
278  // check size of copy numubers array
279  if (copy_num.size() < 2)
280  throw cms::Exception("DDDTotemRPContruction")
281  << "size of copyNumbers for diamond RP is " << copy_num.size() << ". It must be >= 2.";
282 
283  const unsigned int arm = copy_num[1] - 1;
284  const unsigned int station = 1;
285  const unsigned int rp = 6;
286 
287  newGD->setGeographicalID(CTPPSDiamondDetId(arm, station, rp));
288  }
289 
290  // add component
291  gd->addComponent(newGD);
292 
293  // recursion
294  buildDetGeomDesc(fv, newGD);
295  } while (fv->nextSibling());
296 
297  // go a level up
298  fv->parent();

References DetGeomDesc::addComponent(), DDFilteredView::copyno(), DDFilteredView::copyNumbers(), DDD_CTPPS_DIAMONDS_RP_NAME, DDD_CTPPS_DIAMONDS_SEGMENT_NAME, DDD_CTPPS_PIXELS_RP_NAME, DDD_CTPPS_PIXELS_SENSOR_NAME, DDD_CTPPS_UFSD_SEGMENT_NAME, DDD_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, DDD_TOTEM_TIMING_RP_NAME, DDD_TOTEM_TIMING_SENSOR_TMPL, hgcalTestNeighbor_cfi::detector, DDFilteredView::firstChild(), DDFilteredView::logicalPart(), Skims_PA_cff::name, DDName::name(), DDBase< N, C >::name(), DDFilteredView::nextSibling(), DDFilteredView::parent(), DetGeomDesc::setGeographicalID(), relativeConstraints::station, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by produceIdealGD().

◆ fillDescriptions()

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

Definition at line 111 of file CTPPSGeometryESModule.cc.

112  {
114  desc.addUntracked<unsigned int>("verbosity", 1);
115  desc.add<std::string>("compactViewTag", std::string());
116  descriptions.add("DoodadESSource", desc);

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produceGD()

template<typename REC >
std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceGD ( IdealGeometryRecord const &  iIdealRec,
const std::optional< REC > &  iAlignRec,
GDTokens< REC > const &  iTokens,
const char *  name 
)
private

Definition at line 321 of file CTPPSGeometryESModule.cc.

325  {
326  // get the input GeometricalDet
327  auto const& idealGD = iIdealRec.get(iTokens.idealGDToken_);
328 
329  // load alignments
331  if (iAlignRec) {
332  alignments = iAlignRec->getHandle(iTokens.alignmentToken_);
333  }
334 
335  if (alignments.isValid()) {
336  if (verbosity_)
337  edm::LogVerbatim(name) << ">> " << name << " > Real geometry: " << alignments->getRPMap().size() << " RP and "
338  << alignments->getSensorMap().size() << " sensor alignments applied.";
339  } else {
340  if (verbosity_)
341  edm::LogVerbatim(name) << ">> " << name << " > Real geometry: No alignments applied.";
342  }
343 
344  DetGeomDesc* newGD = nullptr;
345  applyAlignments(idealGD, alignments.product(), newGD);
346  return std::unique_ptr<DetGeomDesc>(newGD);

References CTPPSGeometryESModule::GDTokens< ALIGNMENT_REC >::alignmentToken_, applyAlignments(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::get(), CTPPSRPAlignmentCorrectionsData::getRPMap(), CTPPSRPAlignmentCorrectionsData::getSensorMap(), CTPPSGeometryESModule::GDTokens< ALIGNMENT_REC >::idealGDToken_, edm::ESHandleBase::isValid(), Skims_PA_cff::name, edm::ESHandle< T >::product(), and verbosity_.

Referenced by produceMisalignedGD(), and produceRealGD().

◆ produceIdealGD()

std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceIdealGD ( const IdealGeometryRecord iRecord)
private

Definition at line 302 of file CTPPSGeometryESModule.cc.

303  {
304  // get the DDCompactView from EventSetup
305  auto const& cpv = iRecord.get(compactViewToken_);
306 
307  // create DDFilteredView and apply the filter
309  DDFilteredView fv(cpv, filter);
310 
311  // conversion to DetGeomDesc structure
312  auto root = std::make_unique<DetGeomDesc>(&fv);
313  buildDetGeomDesc(&fv, root.get());
314 
315  // construct the tree of DetGeomDesc
316  return root;

References buildDetGeomDesc(), compactViewToken_, ALCARECOTkAlBeamHalo_cff::filter, and edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::get().

Referenced by CTPPSGeometryESModule().

◆ produceMisalignedGD()

std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceMisalignedGD ( const VeryForwardMisalignedGeometryRecord iRecord)
private

◆ produceMisalignedTG()

std::unique_ptr< CTPPSGeometry > CTPPSGeometryESModule::produceMisalignedTG ( const VeryForwardMisalignedGeometryRecord iRecord)
private

Definition at line 375 of file CTPPSGeometryESModule.cc.

377  {
378  auto const& gD = iRecord.get(dgdMisToken_);
379 
380  return std::make_unique<CTPPSGeometry>(&gD);

References dgdMisToken_, and edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::get().

◆ produceRealGD()

std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceRealGD ( const VeryForwardRealGeometryRecord iRecord)
private

◆ produceRealTG()

std::unique_ptr< CTPPSGeometry > CTPPSGeometryESModule::produceRealTG ( const VeryForwardRealGeometryRecord iRecord)
private

Definition at line 367 of file CTPPSGeometryESModule.cc.

368  {
369  auto const& gD = iRecord.get(dgdRealToken_);
370 
371  return std::make_unique<CTPPSGeometry>(&gD);

References dgdRealToken_, and edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::get().

Member Data Documentation

◆ compactViewToken_

const edm::ESGetToken<DDCompactView, IdealGeometryRecord> CTPPSGeometryESModule::compactViewToken_
private

Definition at line 91 of file CTPPSGeometryESModule.cc.

Referenced by produceIdealGD().

◆ dgdMisToken_

const edm::ESGetToken<DetGeomDesc, VeryForwardMisalignedGeometryRecord> CTPPSGeometryESModule::dgdMisToken_
private

Definition at line 97 of file CTPPSGeometryESModule.cc.

Referenced by produceMisalignedTG().

◆ dgdRealToken_

const edm::ESGetToken<DetGeomDesc, VeryForwardRealGeometryRecord> CTPPSGeometryESModule::dgdRealToken_
private

Definition at line 96 of file CTPPSGeometryESModule.cc.

Referenced by produceRealTG().

◆ gdMisTokens_

const GDTokens<RPMisalignedAlignmentRecord> CTPPSGeometryESModule::gdMisTokens_
private

Definition at line 94 of file CTPPSGeometryESModule.cc.

Referenced by produceMisalignedGD().

◆ gdRealTokens_

const GDTokens<RPRealAlignmentRecord> CTPPSGeometryESModule::gdRealTokens_
private

Definition at line 93 of file CTPPSGeometryESModule.cc.

Referenced by produceRealGD().

◆ verbosity_

const unsigned int CTPPSGeometryESModule::verbosity_
private

Definition at line 90 of file CTPPSGeometryESModule.cc.

Referenced by produceGD().

edm::eventsetup::DependentRecordImplementation::getRecord
const DepRecordT getRecord() const
Definition: DependentRecordImplementation.h:51
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
DetGeomDesc::applyAlignment
void applyAlignment(const CTPPSRPAlignmentCorrectionData &)
alignment
Definition: DetGeomDesc.cc:84
CTPPSGeometryESModule::applyAlignments
static void applyAlignments(const DetGeomDesc &, const CTPPSRPAlignmentCorrectionsData *, DetGeomDesc *&)
Definition: CTPPSGeometryESModule.cc:120
mps_fire.i
i
Definition: mps_fire.py:355
DDD_CTPPS_UFSD_SEGMENT_NAME
const std::string DDD_CTPPS_UFSD_SEGMENT_NAME
Definition: CTPPSDDDNames.h:17
edm::ESInputTag
Definition: ESInputTag.h:87
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
DDD_CTPPS_PIXELS_SENSOR_NAME
const std::string DDD_CTPPS_PIXELS_SENSOR_NAME
Definition: CTPPSDDDNames.h:14
CTPPSRPAlignmentCorrectionsData::getRPMap
const mapType & getRPMap() const
returns the map of RP alignment corrections
Definition: CTPPSRPAlignmentCorrectionsData.h:46
DetGeomDesc::addComponent
void addComponent(DetGeomDesc *)
components (children) management
Definition: DetGeomDesc.cc:66
DetGeomDesc::components
Container components() const
access to the tree structure
Definition: DetGeomDesc.cc:62
CTPPSRPAlignmentCorrectionsData::getSensorMap
const mapType & getSensorMap() const
returns the map of sensor alignment corrections
Definition: CTPPSRPAlignmentCorrectionsData.h:49
relativeConstraints.station
station
Definition: relativeConstraints.py:67
DDFilteredView::logicalPart
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
Definition: DDFilteredView.cc:16
DDFilteredView::copyNumbers
nav_type copyNumbers() const
return the stack of copy numbers
Definition: DDFilteredView.cc:193
edm::ESProducer::setWhatProduced
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:138
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
DDD_CTPPS_PIXELS_RP_NAME
const std::string DDD_CTPPS_PIXELS_RP_NAME
Definition: CTPPSDDDNames.h:22
CTPPSGeometryESModule::produceGD
std::unique_ptr< DetGeomDesc > produceGD(IdealGeometryRecord const &, const std::optional< REC > &, GDTokens< REC > const &, const char *name)
Definition: CTPPSGeometryESModule.cc:321
DDD_TOTEM_TIMING_RP_NAME
const std::string DDD_TOTEM_TIMING_RP_NAME
Definition: CTPPSDDDNames.h:25
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
CTPPSGeometryESModule::gdMisTokens_
const GDTokens< RPMisalignedAlignmentRecord > gdMisTokens_
Definition: CTPPSGeometryESModule.cc:94
DDFilteredView::parent
bool parent()
set the current node to the parent node ...
Definition: DDFilteredView.cc:161
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
RPMisalignedAlignmentRecord
Definition: RPMisalignedAlignmentRecord.h:6
CTPPSGeometryESModule::produceRealGD
std::unique_ptr< DetGeomDesc > produceRealGD(const VeryForwardRealGeometryRecord &)
Definition: CTPPSGeometryESModule.cc:348
DDD_CTPPS_DIAMONDS_SEGMENT_NAME
const std::string DDD_CTPPS_DIAMONDS_SEGMENT_NAME
Definition: CTPPSDDDNames.h:16
DetGeomDesc::setGeographicalID
void setGeographicalID(DetId id)
ID stuff.
Definition: DetGeomDesc.h:51
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
CTPPSRPAlignmentCorrectionsData::getRPCorrection
CTPPSRPAlignmentCorrectionData & getRPCorrection(unsigned int id)
returns the correction value from the RP map
Definition: CTPPSRPAlignmentCorrectionsData.cc:17
RPRealAlignmentRecord
Definition: RPRealAlignmentRecord.h:6
DDFilteredView::firstChild
bool firstChild()
set the current node to the first child ...
Definition: DDFilteredView.cc:86
DetGeomDesc::geographicalID
DetId geographicalID() const
Definition: DetGeomDesc.h:52
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
CTPPSGeometryESModule::dgdMisToken_
const edm::ESGetToken< DetGeomDesc, VeryForwardMisalignedGeometryRecord > dgdMisToken_
Definition: CTPPSGeometryESModule.cc:97
DDCompactView
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
CTPPSGeometryESModule::produceRealTG
std::unique_ptr< CTPPSGeometry > produceRealTG(const VeryForwardRealGeometryRecord &)
Definition: CTPPSGeometryESModule.cc:367
DDBase::name
const N & name() const
Definition: DDBase.h:59
edm::ESHandle
Definition: DTSurvey.h:22
DDFilteredView::nextSibling
bool nextSibling()
set the current node to the next sibling ...
Definition: DDFilteredView.cc:124
edm::eventsetup::DependentRecordImplementation::get
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
Definition: DependentRecordImplementation.h:112
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
CTPPSGeometryESModule::gdRealTokens_
const GDTokens< RPRealAlignmentRecord > gdRealTokens_
Definition: CTPPSGeometryESModule.cc:93
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSGeometryESModule::produceIdealGD
std::unique_ptr< DetGeomDesc > produceIdealGD(const IdealGeometryRecord &)
Definition: CTPPSGeometryESModule.cc:302
TotemTimingDetId
Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits ...
Definition: TotemTimingDetId.h:26
CTPPSGeometryESModule::verbosity_
const unsigned int verbosity_
Definition: CTPPSGeometryESModule.cc:90
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
CTPPSDiamondDetId
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
Definition: CTPPSDiamondDetId.h:24
DDD_CTPPS_DIAMONDS_RP_NAME
const std::string DDD_CTPPS_DIAMONDS_RP_NAME
Definition: CTPPSDDDNames.h:24
DetGeomDesc::name
const std::string & name() const
Definition: DetGeomDesc.h:65
CTPPSGeometryESModule::produceMisalignedGD
std::unique_ptr< DetGeomDesc > produceMisalignedGD(const VeryForwardMisalignedGeometryRecord &)
Definition: CTPPSGeometryESModule.cc:357
DDD_TOTEM_TIMING_SENSOR_TMPL
const std::string DDD_TOTEM_TIMING_SENSOR_TMPL
Definition: CTPPSDDDNames.h:18
CTPPSGeometryESModule::compactViewToken_
const edm::ESGetToken< DDCompactView, IdealGeometryRecord > compactViewToken_
Definition: CTPPSGeometryESModule.cc:91
DetGeomDesc
Geometrical description of a sensor.
Definition: DetGeomDesc.h:34
DDName::name
const std::string & name() const
Returns the name.
Definition: DDName.cc:40
DDD_TOTEM_RP_RP_NAME
const std::string DDD_TOTEM_RP_RP_NAME
DDD names of RP volumes.
Definition: CTPPSDDDNames.h:21
root
Definition: RooFitFunction.h:10
edm::LogVerbatim
Definition: MessageLogger.h:297
CTPPSPixelDetId
Definition: CTPPSPixelDetId.h:16
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
DDPassAllFilter
A DDFilter that always returns true.
Definition: DDFilter.h:26
edm::eventsetup::DependentRecordImplementation::tryToGetRecord
std::optional< DepRecordT > tryToGetRecord() const
Definition: DependentRecordImplementation.h:71
CTPPSGeometryESModule::dgdRealToken_
const edm::ESGetToken< DetGeomDesc, VeryForwardRealGeometryRecord > dgdRealToken_
Definition: CTPPSGeometryESModule.cc:96
DDD_TOTEM_RP_SENSOR_NAME
const std::string DDD_TOTEM_RP_SENSOR_NAME
DDD names of sensors.
Definition: CTPPSDDDNames.h:13
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
DDFilteredView
Definition: DDFilteredView.h:20
CTPPSRPAlignmentCorrectionsData::getFullSensorCorrection
CTPPSRPAlignmentCorrectionData getFullSensorCorrection(unsigned int id, bool useRPErrors=false) const
Definition: CTPPSRPAlignmentCorrectionsData.cc:47
cms::Exception
Definition: Exception.h:70
TotemRPDetId
Detector ID class for TOTEM Si strip detectors.
Definition: TotemRPDetId.h:29
IdealGeometryRecord
Definition: IdealGeometryRecord.h:27
DDFilteredView::copyno
int copyno() const
Copy number associated with the current node.
Definition: DDFilteredView.cc:48
CTPPSGeometryESModule::buildDetGeomDesc
static void buildDetGeomDesc(DDFilteredView *fv, DetGeomDesc *gd)
Definition: CTPPSGeometryESModule.cc:176
CTPPSGeometryESModule::produceMisalignedTG
std::unique_ptr< CTPPSGeometry > produceMisalignedTG(const VeryForwardMisalignedGeometryRecord &)
Definition: CTPPSGeometryESModule.cc:375