CMS 3D CMS Logo

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

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

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

Public Member Functions

 CTPPSGeometryESModule (const edm::ParameterSet &)
 
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 &)
 
 ~CTPPSGeometryESModule () override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()(false)
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer () noexcept(false)
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 

Static Protected Member Functions

static void applyAlignments (const edm::ESHandle< DetGeomDesc > &, const edm::ESHandle< RPAlignmentCorrectionsData > &, DetGeomDesc *&)
 
static void buildDetGeomDesc (DDFilteredView *fv, DetGeomDesc *gd)
 

Protected Attributes

std::string compactViewTag_
 
unsigned int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- 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 eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 

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 47 of file CTPPSGeometryESModule.cc.

Constructor & Destructor Documentation

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

Definition at line 73 of file CTPPSGeometryESModule.cc.

References produceIdealGD(), produceMisalignedGD(), produceMisalignedTG(), produceRealGD(), produceRealTG(), and edm::ESProducer::setWhatProduced().

73  :
74  verbosity_( iConfig.getUntrackedParameter<unsigned int>( "verbosity", 1 ) ),
75  compactViewTag_( iConfig.getParameter<std::string>( "compactViewTag" ) )
76 {
78 
81 
84 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::unique_ptr< CTPPSGeometry > produceRealTG(const VeryForwardRealGeometryRecord &)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
std::unique_ptr< CTPPSGeometry > produceMisalignedTG(const VeryForwardMisalignedGeometryRecord &)
std::unique_ptr< DetGeomDesc > produceRealGD(const VeryForwardRealGeometryRecord &)
std::unique_ptr< DetGeomDesc > produceMisalignedGD(const VeryForwardMisalignedGeometryRecord &)
std::unique_ptr< DetGeomDesc > produceIdealGD(const IdealGeometryRecord &)
CTPPSGeometryESModule::~CTPPSGeometryESModule ( )
inlineoverride

Member Function Documentation

void CTPPSGeometryESModule::applyAlignments ( const edm::ESHandle< DetGeomDesc > &  idealGD,
const edm::ESHandle< RPAlignmentCorrectionsData > &  alignments,
DetGeomDesc *&  newGD 
)
staticprotected

Definition at line 89 of file CTPPSGeometryESModule.cc.

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_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, DetGeomDesc::geographicalID(), RPAlignmentCorrectionsData::getFullSensorCorrection(), RPAlignmentCorrectionsData::getRPCorrection(), mps_fire::i, edm::ESHandleBase::isValid(), DDName::name(), dataset::name, DetGeomDesc::name(), edm::ESHandle< T >::product(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by produceMisalignedGD(), produceRealGD(), and ~CTPPSGeometryESModule().

92 {
93  newGD = new DetGeomDesc( *(idealGD.product()) );
94  std::deque<const DetGeomDesc*> buffer;
95  std::deque<DetGeomDesc*> bufferNew;
96  buffer.emplace_back( idealGD.product() );
97  bufferNew.emplace_back( newGD );
98 
99  while ( !buffer.empty() ) {
100  const DetGeomDesc* sD = buffer.front();
101  DetGeomDesc* pD = bufferNew.front();
102  buffer.pop_front();
103  bufferNew.pop_front();
104 
105  const std::string name = pD->name().name();
106 
107  // Is it sensor? If yes, apply full sensor alignments
108  if ( name == DDD_TOTEM_RP_SENSOR_NAME
110  || name == DDD_CTPPS_PIXELS_SENSOR_NAME ) {
111  unsigned int plId = pD->geographicalID();
112 
113  if ( alignments.isValid() ) {
114  const RPAlignmentCorrectionData& ac = alignments->getFullSensorCorrection( plId );
115  pD->ApplyAlignment( ac );
116  }
117  }
118 
119  // Is it RP box? If yes, apply RP alignments
120  if ( name == DDD_TOTEM_RP_RP_NAME
121  || name == DDD_CTPPS_PIXELS_RP_NAME
122  || name == DDD_CTPPS_DIAMONDS_RP_NAME ) {
123  unsigned int rpId = pD->geographicalID();
124 
125  if ( alignments.isValid() ) {
126  const RPAlignmentCorrectionData& ac = alignments->getRPCorrection( rpId );
127  pD->ApplyAlignment( ac );
128  }
129  }
130 
131  // create and add children
132  for ( unsigned int i = 0; i < sD->components().size(); i++ ) {
133  const DetGeomDesc* sDC = sD->components()[i];
134  buffer.emplace_back( sDC );
135 
136  // create new node with the same information as in sDC and add it as a child of pD
137  DetGeomDesc* cD = new DetGeomDesc( *sDC );
138  pD->addComponent( cD );
139 
140  bufferNew.emplace_back( cD );
141  }
142  }
143 }
const std::string DDD_CTPPS_PIXELS_RP_NAME
Definition: CTPPSDDDNames.h:22
const std::string DDD_CTPPS_DIAMONDS_SEGMENT_NAME
Definition: CTPPSDDDNames.h:17
RPAlignmentCorrectionData & getRPCorrection(unsigned int id)
returns the correction value from the RP map
void ApplyAlignment(const RPAlignmentCorrectionData &)
alignment
Definition: DetGeomDesc.cc:185
virtual ConstContainer components() const
access to the tree structure
Definition: DetGeomDesc.cc:123
RPAlignmentCorrectionData getFullSensorCorrection(unsigned int id, bool useRPErrors=false) const
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
Alignment correction or result of alignment procedure for a single RP sensor. Within the geometry des...
DDName name() const
Definition: DetGeomDesc.h:87
const std::string DDD_TOTEM_RP_RP_NAME
DDD names of RP volumes.
Definition: CTPPSDDDNames.h:21
virtual DetId geographicalID() const
Definition: DetGeomDesc.h:61
const std::string DDD_CTPPS_DIAMONDS_RP_NAME
Definition: CTPPSDDDNames.h:23
const std::string DDD_TOTEM_RP_SENSOR_NAME
DDD names of sensors.
Definition: CTPPSDDDNames.h:14
bool isValid() const
Definition: ESHandle.h:47
const std::string DDD_CTPPS_PIXELS_SENSOR_NAME
Definition: CTPPSDDDNames.h:15
T const * product() const
Definition: ESHandle.h:86
void addComponent(DetGeomDesc *)
Definition: DetGeomDesc.cc:160
const std::string & name() const
Returns the name.
Definition: DDName.cc:90
void CTPPSGeometryESModule::buildDetGeomDesc ( DDFilteredView fv,
DetGeomDesc gd 
)
staticprotected

Definition at line 148 of file CTPPSGeometryESModule.cc.

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_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, gamEcalExtractorBlocks_cff::detector, DDFilteredView::firstChild(), DDFilteredView::logicalPart(), DDName::name(), dataset::name, DDBase< N, C >::name(), DDFilteredView::nextSibling(), DDFilteredView::parent(), DetGeomDesc::setGeographicalID(), relativeConstraints::station, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by produceIdealGD(), and ~CTPPSGeometryESModule().

149 {
150  // try to dive into next level
151  if ( !fv->firstChild() ) return;
152 
153  // loop over siblings in the level
154  do {
155  // create new DetGeomDesc node and add it to the parent's (gd) list
156  DetGeomDesc* newGD = new DetGeomDesc( fv );
157 
158  const std::string name = fv->logicalPart().name().name();
159 
160  // strip sensors
161  if ( name == DDD_TOTEM_RP_SENSOR_NAME ) {
162  const std::vector<int>& copy_num = fv->copyNumbers();
163  // check size of copy numubers array
164  if ( copy_num.size() < 3 )
165  throw cms::Exception("DDDTotemRPContruction") << "size of copyNumbers for strip sensor is "
166  << copy_num.size() << ". It must be >= 3.";
167 
168  // extract information
169  const unsigned int decRPId = copy_num[copy_num.size() - 3];
170  const unsigned int arm = decRPId / 100;
171  const unsigned int station = ( decRPId % 100 ) / 10;
172  const unsigned int rp = decRPId % 10;
173  const unsigned int detector = copy_num[copy_num.size() - 1];
174  newGD->setGeographicalID( TotemRPDetId( arm, station, rp, detector ) );
175  }
176 
177  // strip RPs
178  else if ( name == DDD_TOTEM_RP_RP_NAME ) {
179  const unsigned int decRPId = fv->copyno();
180 
181  // check it is a strip RP
182  if ( decRPId < 10000 ) {
183  const unsigned int armIdx = ( decRPId / 100 ) % 10;
184  const unsigned int stIdx = ( decRPId / 10 ) % 10;
185  const unsigned int rpIdx = decRPId % 10;
186  newGD->setGeographicalID( TotemRPDetId( armIdx, stIdx, rpIdx ) );
187  }
188  }
189 
190  // pixel sensors
191  else if ( name == DDD_CTPPS_PIXELS_SENSOR_NAME ) {
192  const std::vector<int>& copy_num = fv->copyNumbers();
193  // check size of copy numubers array
194  if ( copy_num.size() < 4 )
195  throw cms::Exception("DDDTotemRPContruction") << "size of copyNumbers for pixel sensor is "
196  << copy_num.size() << ". It must be >= 4.";
197 
198  // extract information
199  const unsigned int decRPId = copy_num[copy_num.size() - 4] % 10000;
200  const unsigned int arm = decRPId / 100;
201  const unsigned int station = ( decRPId % 100 ) / 10;
202  const unsigned int rp = decRPId % 10;
203  const unsigned int detector = copy_num[copy_num.size() - 2] - 1;
204  newGD->setGeographicalID( CTPPSPixelDetId( arm, station, rp, detector ) );
205  }
206 
207  // pixel RPs
208  else if ( name == DDD_CTPPS_PIXELS_RP_NAME ) {
209  uint32_t decRPId = fv->copyno();
210 
211  // check it is a pixel RP
212  if ( decRPId >= 10000 ) {
213  decRPId = decRPId % 10000;
214  const uint32_t armIdx = ( decRPId / 100 ) % 10;
215  const uint32_t stIdx = ( decRPId / 10 ) % 10;
216  const uint32_t rpIdx = decRPId % 10;
217  newGD->setGeographicalID( CTPPSPixelDetId( armIdx, stIdx, rpIdx ) );
218  }
219  }
220 
221  // diamond sensors
222  else if ( name == DDD_CTPPS_DIAMONDS_SEGMENT_NAME ) {
223  const std::vector<int>& copy_num = fv->copyNumbers();
224 
225  const unsigned int id = copy_num[copy_num.size()-1];
226  const unsigned int arm = copy_num[1]-1;
227  const unsigned int station = 1;
228  const unsigned int rp = 6;
229  const unsigned int plane = ( id / 100 );
230  const unsigned int channel = id % 100;
231  newGD->setGeographicalID( CTPPSDiamondDetId( arm, station, rp, plane, channel ) );
232  }
233 
234  // diamond RPs
235  else if ( name == DDD_CTPPS_DIAMONDS_RP_NAME ) {
236  const std::vector<int>& copy_num = fv->copyNumbers();
237 
238  // check size of copy numubers array
239  if ( copy_num.size() < 2 )
240  throw cms::Exception("DDDTotemRPContruction") << "size of copyNumbers for diamond RP is "
241  << copy_num.size() << ". It must be >= 2.";
242 
243  const unsigned int arm = copy_num[1] - 1;
244  const unsigned int station = 1;
245  const unsigned int rp = 6;
246 
247  newGD->setGeographicalID( CTPPSDiamondDetId( arm, station, rp ) );
248  }
249 
250  // add component
251  gd->addComponent( newGD );
252 
253  // recursion
254  buildDetGeomDesc( fv, newGD );
255  } while ( fv->nextSibling() );
256 
257  // go a level up
258  fv->parent();
259 }
Detector ID class for TOTEM Si strip detectors.
Definition: TotemRPDetId.h:30
bool parent()
set the current node to the parent node ...
const std::string DDD_CTPPS_PIXELS_RP_NAME
Definition: CTPPSDDDNames.h:22
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
const N & name() const
Definition: DDBase.h:78
nav_type copyNumbers() const
return the stack of copy numbers
bool nextSibling()
set the current node to the next sibling ...
const std::string DDD_CTPPS_DIAMONDS_SEGMENT_NAME
Definition: CTPPSDDDNames.h:17
int copyno() const
Copy number associated with the current node.
void setGeographicalID(DetId id)
ID stuff.
Definition: DetGeomDesc.h:60
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
const std::string DDD_TOTEM_RP_RP_NAME
DDD names of RP volumes.
Definition: CTPPSDDDNames.h:21
const std::string DDD_CTPPS_DIAMONDS_RP_NAME
Definition: CTPPSDDDNames.h:23
static void buildDetGeomDesc(DDFilteredView *fv, DetGeomDesc *gd)
bool firstChild()
set the current node to the first child ...
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
const std::string DDD_TOTEM_RP_SENSOR_NAME
DDD names of sensors.
Definition: CTPPSDDDNames.h:14
const std::string DDD_CTPPS_PIXELS_SENSOR_NAME
Definition: CTPPSDDDNames.h:15
void addComponent(DetGeomDesc *)
Definition: DetGeomDesc.cc:160
const std::string & name() const
Returns the name.
Definition: DDName.cc:90
std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceIdealGD ( const IdealGeometryRecord iRecord)

Definition at line 264 of file CTPPSGeometryESModule.cc.

References buildDetGeomDesc(), compactViewTag_, ALCARECOTkAlBeamHalo_cff::filter, edm::eventsetup::EventSetupRecord::get(), edm::ESHandle< T >::product(), and pyrootRender::root.

Referenced by CTPPSGeometryESModule(), and ~CTPPSGeometryESModule().

265 {
266  // get the DDCompactView from EventSetup
268  iRecord.get( compactViewTag_, cpv );
269 
270  // create DDFilteredView and apply the filter
272  DDFilteredView fv( *( cpv.product() ), filter );
273 
274  // conversion to DetGeomDesc structure
275  DetGeomDesc* root = new DetGeomDesc( &fv );
276  buildDetGeomDesc( &fv, root );
277 
278  // construct the tree of DetGeomDesc
279  return std::unique_ptr<DetGeomDesc>( const_cast<DetGeomDesc*>( root ) );
280 }
void get(HolderT &iHolder) const
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
A DDFilter that always returns true.
Definition: DDFilter.h:27
static void buildDetGeomDesc(DDFilteredView *fv, DetGeomDesc *gd)
T const * product() const
Definition: ESHandle.h:86
std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceMisalignedGD ( const VeryForwardMisalignedGeometryRecord iRecord)

Definition at line 317 of file CTPPSGeometryESModule.cc.

References applyAlignments(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), RPAlignmentCorrectionsData::getRPMap(), RPAlignmentCorrectionsData::getSensorMap(), edm::ESHandleBase::isValid(), and verbosity_.

Referenced by CTPPSGeometryESModule(), and ~CTPPSGeometryESModule().

318 {
319  // get the input GeometricalDet
321  iRecord.getRecord<IdealGeometryRecord>().get( idealGD );
322 
323  // load alignments
325  try { iRecord.getRecord<RPMisalignedAlignmentRecord>().get( alignments ); }
326  catch ( cms::Exception& ) {}
327 
328  if ( alignments.isValid() ) {
329  if ( verbosity_ )
330  edm::LogVerbatim("CTPPSGeometryESModule::produceMisalignedGD")
331  << ">> CTPPSGeometryESModule::produceMisalignedGD > Misaligned geometry: "
332  << alignments->getRPMap().size() << " RP and "
333  << alignments->getSensorMap().size() << " sensor alignments applied.";
334  } else {
335  if ( verbosity_ )
336  edm::LogVerbatim("CTPPSGeometryESModule::produceMisalignedGD")
337  << ">> CTPPSGeometryESModule::produceMisalignedGD > Misaligned geometry: No alignments applied.";
338  }
339 
340  DetGeomDesc* newGD = nullptr;
341  applyAlignments( idealGD, alignments, newGD );
342  return std::unique_ptr<DetGeomDesc>( newGD );
343 }
static void applyAlignments(const edm::ESHandle< DetGeomDesc > &, const edm::ESHandle< RPAlignmentCorrectionsData > &, DetGeomDesc *&)
const mapType & getRPMap() const
returns the map of RP alignment corrections
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
const mapType & getSensorMap() const
returns the map of sensor alignment corrections
bool isValid() const
Definition: ESHandle.h:47
std::unique_ptr< CTPPSGeometry > CTPPSGeometryESModule::produceMisalignedTG ( const VeryForwardMisalignedGeometryRecord iRecord)

Definition at line 359 of file CTPPSGeometryESModule.cc.

References DEFINE_FWK_EVENTSETUP_MODULE, edm::eventsetup::EventSetupRecord::get(), and edm::ESHandle< T >::product().

Referenced by CTPPSGeometryESModule(), and ~CTPPSGeometryESModule().

360 {
362  iRecord.get( gD );
363 
364  return std::make_unique<CTPPSGeometry>( gD.product() );
365 }
void get(HolderT &iHolder) const
T const * product() const
Definition: ESHandle.h:86
std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceRealGD ( const VeryForwardRealGeometryRecord iRecord)

Definition at line 285 of file CTPPSGeometryESModule.cc.

References applyAlignments(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), RPAlignmentCorrectionsData::getRPMap(), RPAlignmentCorrectionsData::getSensorMap(), edm::ESHandleBase::isValid(), and verbosity_.

Referenced by CTPPSGeometryESModule(), and ~CTPPSGeometryESModule().

286 {
287  // get the input GeometricalDet
289  iRecord.getRecord<IdealGeometryRecord>().get( idealGD );
290 
291  // load alignments
293  try { iRecord.getRecord<RPRealAlignmentRecord>().get( alignments ); }
294  catch ( cms::Exception& ) {}
295 
296  if ( alignments.isValid() ) {
297  if ( verbosity_ )
298  edm::LogVerbatim("CTPPSGeometryESModule::produceRealGD")
299  << ">> CTPPSGeometryESModule::produceRealGD > Real geometry: "
300  << alignments->getRPMap().size() << " RP and "
301  << alignments->getSensorMap().size() << " sensor alignments applied.";
302  }
303  else {
304  if ( verbosity_ )
305  edm::LogVerbatim("CTPPSGeometryESModule::produceRealGD")
306  << ">> CTPPSGeometryESModule::produceRealGD > Real geometry: No alignments applied.";
307  }
308 
309  DetGeomDesc* newGD = nullptr;
310  applyAlignments( idealGD, alignments, newGD );
311  return std::unique_ptr<DetGeomDesc>( newGD );
312 }
static void applyAlignments(const edm::ESHandle< DetGeomDesc > &, const edm::ESHandle< RPAlignmentCorrectionsData > &, DetGeomDesc *&)
const mapType & getRPMap() const
returns the map of RP alignment corrections
Geometrical description of a sensor.
Definition: DetGeomDesc.h:37
const mapType & getSensorMap() const
returns the map of sensor alignment corrections
bool isValid() const
Definition: ESHandle.h:47
std::unique_ptr< CTPPSGeometry > CTPPSGeometryESModule::produceRealTG ( const VeryForwardRealGeometryRecord iRecord)

Definition at line 348 of file CTPPSGeometryESModule.cc.

References edm::eventsetup::EventSetupRecord::get(), and edm::ESHandle< T >::product().

Referenced by CTPPSGeometryESModule(), and ~CTPPSGeometryESModule().

349 {
351  iRecord.get( gD );
352 
353  return std::make_unique<CTPPSGeometry>( gD.product() );
354 }
void get(HolderT &iHolder) const
T const * product() const
Definition: ESHandle.h:86

Member Data Documentation

std::string CTPPSGeometryESModule::compactViewTag_
protected

Definition at line 66 of file CTPPSGeometryESModule.cc.

Referenced by produceIdealGD().

unsigned int CTPPSGeometryESModule::verbosity_
protected

Definition at line 65 of file CTPPSGeometryESModule.cc.

Referenced by produceMisalignedGD(), and produceRealGD().