CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
FWRecoGeometryESProducer Class Reference

#include <FWRecoGeometryESProducer.h>

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

Public Member Functions

 FWRecoGeometryESProducer (const edm::ParameterSet &)
 
std::shared_ptr< FWRecoGeometryproduce (const FWRecoGeometryRecord &)
 
 ~FWRecoGeometryESProducer (void) override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ~ESProducer ()(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval) override
 overrides DataProxyProvider method More...
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- 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)
 

Private Member Functions

void ADD_PIXEL_TOPOLOGY (unsigned int rawid, const GeomDet *detUnit)
 
void addCaloGeometry (void)
 
void addCSCGeometry (void)
 
void addDTGeometry (void)
 
void addFTLGeometry (void)
 
void addGEMGeometry (void)
 
void addME0Geometry (void)
 
void addPixelBarrelGeometry (void)
 
void addPixelForwardGeometry (void)
 
void addRPCGeometry (void)
 
void addTECGeometry (void)
 
void addTIBGeometry (void)
 
void addTIDGeometry (void)
 
void addTOBGeometry (void)
 
void fillPoints (unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
 
void fillShapeAndPlacement (unsigned int id, const GeomDet *det)
 
 FWRecoGeometryESProducer (const FWRecoGeometryESProducer &)=delete
 
unsigned int insert_id (unsigned int id)
 
const FWRecoGeometryESProduceroperator= (const FWRecoGeometryESProducer &)=delete
 
void writeTrackerParametersXML ()
 

Private Attributes

bool m_calo
 
const CaloGeometrym_caloGeom
 
unsigned int m_current
 
edm::ESHandle< FastTimeGeometrym_ftlBarrelGeom
 
edm::ESHandle< FastTimeGeometrym_ftlEndcapGeom
 
std::shared_ptr< FWRecoGeometrym_fwGeometry
 
edm::ESHandle< GlobalTrackingGeometrym_geomRecord
 
std::vector< edm::ESHandle< HGCalGeometry > > m_hgcalGeoms
 
bool m_muon
 
bool m_timing
 
bool m_tracker
 
const TrackerGeometrym_trackerGeom
 

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
 ESProducer (const ESProducer &)=delete
 
ESProducer const & operator= (const ESProducer &)=delete
 
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())
 
void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList) override
 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

Definition at line 24 of file FWRecoGeometryESProducer.h.

Constructor & Destructor Documentation

FWRecoGeometryESProducer::FWRecoGeometryESProducer ( const edm::ParameterSet pset)

Definition at line 91 of file FWRecoGeometryESProducer.cc.

References funct::false, edm::ParameterSet::getUntrackedParameter(), m_calo, m_muon, m_timing, m_tracker, edm::ESProducer::setWhatProduced(), and funct::true.

92  : m_current( -1 )
93 {
94  m_tracker = pset.getUntrackedParameter<bool>( "Tracker", true );
95  m_muon = pset.getUntrackedParameter<bool>( "Muon", true );
96  m_calo = pset.getUntrackedParameter<bool>( "Calo", true );
97  m_timing = pset.getUntrackedParameter<bool>( "Timing", false );
98  setWhatProduced( this );
99 }
T getUntrackedParameter(std::string const &, T const &) const
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
FWRecoGeometryESProducer::~FWRecoGeometryESProducer ( void  )
override

Definition at line 101 of file FWRecoGeometryESProducer.cc.

102 {}
FWRecoGeometryESProducer::FWRecoGeometryESProducer ( const FWRecoGeometryESProducer )
privatedelete

Member Function Documentation

void FWRecoGeometryESProducer::ADD_PIXEL_TOPOLOGY ( unsigned int  rawid,
const GeomDet detUnit 
)
private

Definition at line 39 of file FWRecoGeometryESProducer.cc.

References f, PixelTopology::isItBigPixelInX(), PixelTopology::localX(), PixelTopology::localY(), m_fwGeometry, PixelTopology::pitch(), and PixelGeomDetUnit::specificTopology().

Referenced by addPixelBarrelGeometry(), and addPixelForwardGeometry().

39  {
40  const PixelGeomDetUnit* det = dynamic_cast<const PixelGeomDetUnit*>( detUnit );
41  if( det )
42  {
43  const PixelTopology* topo = &det->specificTopology();
44 
45  std::pair<float,float> pitch = topo->pitch();
46  m_fwGeometry->idToName[rawid].topology[0] = pitch.first;
47  m_fwGeometry->idToName[rawid].topology[1] = pitch.second;
48 
49  m_fwGeometry->idToName[rawid].topology[2] = topo->localX(0.f); // offsetX
50  m_fwGeometry->idToName[rawid].topology[3] = topo->localY(0.f); // offsetY
51 
52  // big pixels layout
53  m_fwGeometry->idToName[rawid].topology[4] = topo->isItBigPixelInX(80) ? 0 : 1;
54  }
55 }
std::shared_ptr< FWRecoGeometry > m_fwGeometry
virtual std::pair< float, float > pitch() const =0
virtual bool isItBigPixelInX(int ixbin) const =0
virtual float localX(float mpX) const =0
double f[11][100]
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
virtual float localY(float mpY) const =0
void FWRecoGeometryESProducer::addCaloGeometry ( void  )
private

Definition at line 534 of file FWRecoGeometryESProducer.cc.

References EZArrayFL< T >::begin(), end, EZArrayFL< T >::end(), fillPoints(), DetId::Forward, ForwardEmpty, relativeConstraints::geom, HGCalGeometry::get8Corners(), CaloGeometry::getGeometry(), CaloGeometry::getSubdetectorGeometry(), CaloGeometry::getValidDetIds(), DetId::HGCalEE, DetId::HGCalHSc, DetId::HGCalHSi, insert_id(), and m_caloGeom.

Referenced by produce().

535 {
536  std::vector<DetId> vid = m_caloGeom->getValidDetIds(); // Calo
537  for( std::vector<DetId>::const_iterator it = vid.begin(),
538  end = vid.end();
539  it != end; ++it ) {
540  unsigned int id = insert_id( it->rawId());
541  if( !((DetId::Forward == it->det()) || (DetId::HGCalEE == it->det()) ||
542  (DetId::HGCalHSi == it->det()) || (DetId::HGCalHSc == it->det())) ) {
543  const CaloCellGeometry::CornersVec& cor = m_caloGeom->getGeometry( *it )->getCorners();
544  fillPoints( id, cor.begin(), cor.end());
545  } else {
546  DetId::Detector det = it->det();
547  int subdet = (((DetId::HGCalEE == det) ||
548  (DetId::HGCalHSi == det) ||
549  (DetId::HGCalHSc == det)) ? ForwardEmpty :
550  it->subdetId());
551  const HGCalGeometry* geom = dynamic_cast<const HGCalGeometry*>(m_caloGeom->getSubdetectorGeometry(det,subdet));
552  const auto cor = geom->get8Corners( *it );
553  fillPoints( id, cor.begin(), cor.end() );
554  }
555  }
556 }
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:49
const_iterator begin() const
Definition: EZArrayFL.h:63
#define end
Definition: vmac.h:39
CornersVec get8Corners(const DetId &id) const
unsigned int insert_id(unsigned int id)
void fillPoints(unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
Detector
Definition: DetId.h:26
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
const_iterator end() const
Definition: EZArrayFL.h:64
std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id.
Definition: CaloGeometry.cc:85
void FWRecoGeometryESProducer::addCSCGeometry ( void  )
private

Definition at line 157 of file FWRecoGeometryESProducer.cc.

References CSCRadialStripTopology::angularWidth(), CSCRadialStripTopology::centreToIntersection(), relativeConstraints::chamber, CSCGeometry::chambers(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), CSCLayer::geometry(), insert_id(), CSCChamber::layers(), m_fwGeometry, m_geomRecord, DetId::Muon, CSCRadialStripTopology::phiOfOneEdge(), GlobalTrackingGeometry::slaveGeometry(), OffsetRadialStripTopology::stripOffset(), CSCLayerGeometry::topology(), CSCWireTopology::wireAngle(), CSCWireTopology::wireSpacing(), CSCLayerGeometry::wireTopology(), CSCRadialStripTopology::yAxisOrientation(), and CSCRadialStripTopology::yCentreOfStripPlane().

Referenced by produce().

158 {
159  DetId detId( DetId::Muon, 2 );
160  const CSCGeometry* cscGeometry = (const CSCGeometry*) m_geomRecord->slaveGeometry( detId );
161  for( auto it = cscGeometry->chambers().begin(),
162  end = cscGeometry->chambers().end();
163  it != end; ++it )
164  {
165  const CSCChamber *chamber = *it;
166 
167  if( chamber )
168  {
169  unsigned int rawid = chamber->geographicalId();
170  unsigned int current = insert_id( rawid );
171  fillShapeAndPlacement( current, chamber );
172  //
173  // CSC layers geometry
174  //
175  for( std::vector< const CSCLayer* >::const_iterator lit = chamber->layers().begin(),
176  lend = chamber->layers().end();
177  lit != lend; ++lit )
178  {
179  const CSCLayer* layer = *lit;
180 
181  if( layer )
182  {
183  unsigned int rawid = layer->geographicalId();
184  unsigned int current = insert_id( rawid );
185  fillShapeAndPlacement( current, layer );
186 
187  const CSCStripTopology* stripTopology = layer->geometry()->topology();
188  m_fwGeometry->idToName[current].topology[0] = stripTopology->yAxisOrientation();
189  m_fwGeometry->idToName[current].topology[1] = stripTopology->centreToIntersection();
190  m_fwGeometry->idToName[current].topology[2] = stripTopology->yCentreOfStripPlane();
191  m_fwGeometry->idToName[current].topology[3] = stripTopology->phiOfOneEdge();
192  m_fwGeometry->idToName[current].topology[4] = stripTopology->stripOffset();
193  m_fwGeometry->idToName[current].topology[5] = stripTopology->angularWidth();
194 
195  const CSCWireTopology* wireTopology = layer->geometry()->wireTopology();
196  m_fwGeometry->idToName[current].topology[6] = wireTopology->wireSpacing();
197  m_fwGeometry->idToName[current].topology[7] = wireTopology->wireAngle();
198  }
199  }
200  }
201  }
202 }
const std::vector< const CSCLayer * > & layers() const
Return all layers.
Definition: CSCChamber.h:57
const CSCWireTopology * wireTopology() const
std::shared_ptr< FWRecoGeometry > m_fwGeometry
float centreToIntersection() const override
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const ChamberContainer & chambers() const
Return a vector of all chambers.
Definition: CSCGeometry.cc:121
double wireSpacing() const
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
float yCentreOfStripPlane() const override
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
float phiOfOneEdge() const override
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
const CSCStripTopology * topology() const
virtual float stripOffset(void) const
float yAxisOrientation() const override
float angularWidth() const override
float wireAngle() const override
const CSCLayerGeometry * geometry() const
Definition: CSCLayer.h:47
void FWRecoGeometryESProducer::addDTGeometry ( void  )
private

Definition at line 205 of file FWRecoGeometryESProducer.cc.

References DTTopology::cellHeight(), DTTopology::cellLenght(), DTTopology::cellWidth(), relativeConstraints::chamber, DTGeometry::chambers(), DTTopology::channels(), end, fillShapeAndPlacement(), DTTopology::firstChannel(), GeomDet::geographicalId(), DTLayer::id(), insert_id(), DTTopology::lastChannel(), DTGeometry::layers(), m_fwGeometry, m_geomRecord, DetId::Muon, DetId::rawId(), GlobalTrackingGeometry::slaveGeometry(), DTLayer::specificTopology(), and GeomDet::surface().

Referenced by produce().

206 {
207  DetId detId( DetId::Muon, 1 );
208  const DTGeometry* dtGeometry = (const DTGeometry*) m_geomRecord->slaveGeometry( detId );
209 
210  //
211  // DT chambers geometry
212  //
213  for( auto it = dtGeometry->chambers().begin(),
214  end = dtGeometry->chambers().end();
215  it != end; ++it )
216  {
217  const DTChamber *chamber = *it;
218 
219  if( chamber )
220  {
221  unsigned int rawid = chamber->geographicalId().rawId();
222  unsigned int current = insert_id( rawid );
223  fillShapeAndPlacement( current, chamber );
224  }
225  }
226 
227  // Fill in DT layer parameters
228  for( auto it = dtGeometry->layers().begin(),
229  end = dtGeometry->layers().end();
230  it != end; ++it )
231  {
232  const DTLayer* layer = *it;
233 
234  if( layer )
235  {
236  unsigned int rawid = layer->id().rawId();
237  unsigned int current = insert_id( rawid );
238  fillShapeAndPlacement( current, layer );
239 
240  const DTTopology& topo = layer->specificTopology();
241  const BoundPlane& surf = layer->surface();
242  // Topology W/H/L:
243  m_fwGeometry->idToName[current].topology[0] = topo.cellWidth();
244  m_fwGeometry->idToName[current].topology[1] = topo.cellHeight();
245  m_fwGeometry->idToName[current].topology[2] = topo.cellLenght();
246  m_fwGeometry->idToName[current].topology[3] = topo.firstChannel();
247  m_fwGeometry->idToName[current].topology[4] = topo.lastChannel();
248  m_fwGeometry->idToName[current].topology[5] = topo.channels();
249 
250  // Bounds W/H/L:
251  m_fwGeometry->idToName[current].topology[6] = surf.bounds().width();
252  m_fwGeometry->idToName[current].topology[7] = surf.bounds().thickness();
253  m_fwGeometry->idToName[current].topology[8] = surf.bounds().length();
254  }
255  }
256 }
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:102
std::shared_ptr< FWRecoGeometry > m_fwGeometry
DTLayerId id() const
Return the DetId of this SL.
Definition: DTLayer.cc:46
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
float cellWidth() const
Returns the cell width.
Definition: DTTopology.h:68
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
int firstChannel() const
Returns the wire number of the first wire.
Definition: DTTopology.h:78
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
int lastChannel() const
Returns the wire number of the last wire.
Definition: DTTopology.h:80
const DTTopology & specificTopology() const
Definition: DTLayer.cc:42
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
float cellHeight() const
Returns the cell height.
Definition: DTTopology.h:70
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
int channels() const
Returns the number of wires in the layer.
Definition: DTTopology.h:75
const std::vector< const DTLayer * > & layers() const
Return a vector of all SuperLayer.
Definition: DTGeometry.cc:112
float cellLenght() const
Definition: DTTopology.h:73
void FWRecoGeometryESProducer::addFTLGeometry ( void  )
private

Definition at line 559 of file FWRecoGeometryESProducer.cc.

References end, fillPoints(), FastTimeGeometry::getCorners(), FastTimeGeometry::getValidDetIds(), insert_id(), m_ftlBarrelGeom, m_ftlEndcapGeom, and eostools::move().

Referenced by produce().

560 {
561  // do the barrel
562  std::vector<DetId> vid = std::move(m_ftlBarrelGeom->getValidDetIds());
563  for( std::vector<DetId>::const_iterator it = vid.begin(),
564  end = vid.end();
565  it != end; ++it ) {
566  unsigned int id = insert_id( it->rawId());
567  const auto& cor = m_ftlBarrelGeom->getCorners( *it );
568  fillPoints( id, cor.begin(), cor.end());
569  }
570  // do the endcap
572  for( std::vector<DetId>::const_iterator it = vid.begin(),
573  end = vid.end();
574  it != end; ++it ) {
575  unsigned int id = insert_id( it->rawId());
576  const auto& cor = m_ftlEndcapGeom->getCorners( *it );
577  fillPoints( id, cor.begin(), cor.end());
578  }
579 }
edm::ESHandle< FastTimeGeometry > m_ftlBarrelGeom
const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const override
Get a list of valid detector ids (for the given subdetector)
edm::ESHandle< FastTimeGeometry > m_ftlEndcapGeom
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
void fillPoints(unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
def move(src, dest)
Definition: eostools.py:511
CornersVec getCorners(const DetId &id) const
Returns the corner points of this cell&#39;s volume.
void FWRecoGeometryESProducer::addGEMGeometry ( void  )
private

Definition at line 296 of file FWRecoGeometryESProducer.cc.

References MessageLogger_cfi::cerr, GEMGeometry::chambers(), MillePedeFileConverter_cfg::e, GEMGeometry::etaPartitions(), cppFunctionSkipper::exception, fillShapeAndPlacement(), triggerObjects_cff::id, insert_id(), m_fwGeometry, m_geomRecord, DetId::Muon, StripTopology::nstrips(), StripTopology::pitch(), SimDataFormats::CaloAnalysis::sc, GlobalTrackingGeometry::slaveGeometry(), StripTopology::stripLength(), GEMGeometry::superChambers(), and cms::Exception::what().

Referenced by produce().

297 {
298  //
299  // GEM geometry
300  //
301  DetId detId( DetId::Muon, 4 );
302 
303  try
304  {
305  const GEMGeometry* gemGeom = (const GEMGeometry*) m_geomRecord->slaveGeometry( detId );
306 
307  // add in superChambers - gem Segments are based on superChambers
308  for(auto sc : gemGeom->superChambers())
309  {
310  if( sc )
311  {
312  unsigned int rawid = sc->geographicalId().rawId();
313  unsigned int current = insert_id( rawid );
314  fillShapeAndPlacement( current, sc );
315  }
316  }
317  // add in chambers
318  for(auto ch : gemGeom->chambers())
319  {
320  if( ch )
321  {
322  unsigned int rawid = ch->geographicalId().rawId();
323  unsigned int current = insert_id( rawid );
324  fillShapeAndPlacement( current, ch );
325  }
326  }
327  // add in etaPartitions - gem rechits are based on etaPartitions
328  for(auto roll : gemGeom->etaPartitions())
329  {
330  if( roll )
331  {
332  unsigned int rawid = roll->geographicalId().rawId();
333  unsigned int current = insert_id( rawid );
334  fillShapeAndPlacement( current, roll );
335 
336  const StripTopology& topo = roll->specificTopology();
337  m_fwGeometry->idToName[current].topology[0] = topo.nstrips();
338  m_fwGeometry->idToName[current].topology[1] = topo.stripLength();
339  m_fwGeometry->idToName[current].topology[2] = topo.pitch();
340 
341  float height = topo.stripLength()/2;
342  LocalPoint lTop( 0., height, 0.);
343  LocalPoint lBottom( 0., -height, 0.);
344  m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop);
345  m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom);
346  m_fwGeometry->idToName[current].topology[5] = roll->npads();
347  }
348  }
349 
350  m_fwGeometry->extraDet.Add(new TNamed("GEM", "GEM muon detector"));
351  try {
352  GEMDetId id(1, 1, 2, 1, 1, 1 );
353  m_geomRecord->slaveGeometry( detId );
354  m_fwGeometry->extraDet.Add(new TNamed("GE2", "GEM endcap station 2"));
355  }
356  catch (std::runtime_error &e) {
357  std::cerr << e.what() << std::endl;
358  }
359 
360  }
361  catch( cms::Exception &exception )
362  {
363  edm::LogError("FWRecoGeometry") << " GEM geometry not found " << exception.what() << std::endl;
364  }
365 }
virtual float stripLength() const =0
std::shared_ptr< FWRecoGeometry > m_fwGeometry
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
char const * what() const override
Definition: Exception.cc:141
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const std::vector< const GEMEtaPartition * > & etaPartitions() const
Return a vector of all GEM eta partitions.
Definition: GEMGeometry.cc:63
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
unsigned int insert_id(unsigned int id)
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
Definition: GEMGeometry.cc:55
Definition: DetId.h:18
virtual int nstrips() const =0
const std::vector< const GEMChamber * > & chambers() const
Return a vector of all GEM chambers.
Definition: GEMGeometry.cc:59
virtual float pitch() const =0
void FWRecoGeometryESProducer::addME0Geometry ( void  )
private

Definition at line 368 of file FWRecoGeometryESProducer.cc.

References ME0Geometry::etaPartitions(), cppFunctionSkipper::exception, fillShapeAndPlacement(), insert_id(), m_fwGeometry, m_geomRecord, DetId::Muon, StripTopology::nstrips(), StripTopology::pitch(), GlobalTrackingGeometry::slaveGeometry(), StripTopology::stripLength(), and cms::Exception::what().

Referenced by produce().

369 {
370  //
371  // ME0 geometry
372  //
373 
374  DetId detId( DetId::Muon, 5 );
375  try
376  {
377  const ME0Geometry* me0Geom = (const ME0Geometry*) m_geomRecord->slaveGeometry( detId );
378  for(auto roll : me0Geom->etaPartitions())
379  {
380  if( roll )
381  {
382  unsigned int rawid = roll->geographicalId().rawId();
383  unsigned int current = insert_id( rawid );
384  fillShapeAndPlacement( current, roll );
385 
386  const StripTopology& topo = roll->specificTopology();
387  m_fwGeometry->idToName[current].topology[0] = topo.nstrips();
388  m_fwGeometry->idToName[current].topology[1] = topo.stripLength();
389  m_fwGeometry->idToName[current].topology[2] = topo.pitch();
390 
391  float height = topo.stripLength()/2;
392  LocalPoint lTop( 0., height, 0.);
393  LocalPoint lBottom( 0., -height, 0.);
394  m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop);
395  m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom);
396  m_fwGeometry->idToName[current].topology[5] = roll->npads();
397  }
398  }
399  m_fwGeometry->extraDet.Add(new TNamed("ME0", "ME0 muon detector"));
400  }
401  catch( cms::Exception &exception )
402  {
403  edm::LogError("FWRecoGeometry") << " ME0 geometry not found " << exception.what() << std::endl;
404  }
405 }
virtual float stripLength() const =0
std::shared_ptr< FWRecoGeometry > m_fwGeometry
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
char const * what() const override
Definition: Exception.cc:141
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
unsigned int insert_id(unsigned int id)
const std::vector< ME0EtaPartition const * > & etaPartitions() const
Return a vector of all ME0 eta partitions.
Definition: ME0Geometry.cc:59
Definition: DetId.h:18
virtual int nstrips() const =0
virtual float pitch() const =0
void FWRecoGeometryESProducer::addPixelBarrelGeometry ( void  )
private

Definition at line 408 of file FWRecoGeometryESProducer.cc.

References ADD_PIXEL_TOPOLOGY(), TrackerGeometry::detsPXB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDetUnit(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

409 {
410  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsPXB().begin(),
411  end = m_trackerGeom->detsPXB().end();
412  it != end; ++it)
413  {
414  const GeomDet *det = *it;
415 
416  if( det )
417  {
418  DetId detid = det->geographicalId();
419  unsigned int rawid = detid.rawId();
420  unsigned int current = insert_id( rawid );
421  fillShapeAndPlacement( current, det );
422 
423  ADD_PIXEL_TOPOLOGY( current, m_trackerGeom->idToDetUnit( detid ));
424  }
425  }
426 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void ADD_PIXEL_TOPOLOGY(unsigned int rawid, const GeomDet *detUnit)
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
const DetContainer & detsPXB() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
void FWRecoGeometryESProducer::addPixelForwardGeometry ( void  )
private

Definition at line 429 of file FWRecoGeometryESProducer.cc.

References ADD_PIXEL_TOPOLOGY(), TrackerGeometry::detsPXF(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDetUnit(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

430 {
431  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsPXF().begin(),
432  end = m_trackerGeom->detsPXF().end();
433  it != end; ++it )
434  {
435  const GeomDet *det = *it;
436 
437  if( det )
438  {
439  DetId detid = det->geographicalId();
440  unsigned int rawid = detid.rawId();
441  unsigned int current = insert_id( rawid );
442  fillShapeAndPlacement( current, det );
443 
444  ADD_PIXEL_TOPOLOGY( current, m_trackerGeom->idToDetUnit( detid ));
445  }
446  }
447 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void ADD_PIXEL_TOPOLOGY(unsigned int rawid, const GeomDet *detUnit)
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
const DetContainer & detsPXF() const
void FWRecoGeometryESProducer::addRPCGeometry ( void  )
private

Definition at line 259 of file FWRecoGeometryESProducer.cc.

References MessageLogger_cfi::cerr, MillePedeFileConverter_cfg::e, end, fillShapeAndPlacement(), GeomDet::geographicalId(), triggerObjects_cff::id, insert_id(), m_fwGeometry, m_geomRecord, DetId::Muon, StripTopology::nstrips(), StripTopology::pitch(), DetId::rawId(), RPCGeometry::rolls(), GlobalTrackingGeometry::slaveGeometry(), RPCRoll::specificTopology(), and StripTopology::stripLength().

Referenced by produce().

260 {
261  //
262  // RPC rolls geometry
263  //
264  DetId detId( DetId::Muon, 3 );
265  const RPCGeometry* rpcGeom = (const RPCGeometry*) m_geomRecord->slaveGeometry( detId );
266  for( auto it = rpcGeom->rolls().begin(),
267  end = rpcGeom->rolls().end();
268  it != end; ++it )
269  {
270  const RPCRoll* roll = (*it);
271  if( roll )
272  {
273  unsigned int rawid = roll->geographicalId().rawId();
274  unsigned int current = insert_id( rawid );
275  fillShapeAndPlacement( current, roll );
276 
277  const StripTopology& topo = roll->specificTopology();
278  m_fwGeometry->idToName[current].topology[0] = topo.nstrips();
279  m_fwGeometry->idToName[current].topology[1] = topo.stripLength();
280  m_fwGeometry->idToName[current].topology[2] = topo.pitch();
281  }
282  }
283 
284 
285  try {
286  RPCDetId id(1, 1, 4, 1, 1, 1, 1 );
287  m_geomRecord->slaveGeometry( detId );
288  m_fwGeometry->extraDet.Add(new TNamed("RE4", "RPC endcap station 4"));
289  }
290  catch (std::runtime_error &e) {
291  std::cerr << e.what() << std::endl;
292  }
293 }
virtual float stripLength() const =0
std::shared_ptr< FWRecoGeometry > m_fwGeometry
const std::vector< const RPCRoll * > & rolls() const
Return a vector of all RPC rolls.
Definition: RPCGeometry.cc:67
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const StripTopology & specificTopology() const
Definition: RPCRoll.cc:107
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
virtual int nstrips() const =0
virtual float pitch() const =0
void FWRecoGeometryESProducer::addTECGeometry ( void  )
private

Definition at line 513 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, TrackerGeometry::detsTEC(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

514 {
515  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTEC().begin(),
516  end = m_trackerGeom->detsTEC().end();
517  it != end; ++it )
518  {
519  const GeomDet *det = *it;
520 
521  if( det )
522  {
523  DetId detid = det->geographicalId();
524  unsigned int rawid = detid.rawId();
525  unsigned int current = insert_id( rawid );
526  fillShapeAndPlacement( current, det );
527 
528  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
529  }
530  }
531 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const DetContainer & detsTEC() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
const TrackerGeomDet * idToDet(DetId) const override
void FWRecoGeometryESProducer::addTIBGeometry ( void  )
private

Definition at line 450 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, TrackerGeometry::detsTIB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

451 {
452  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTIB().begin(),
453  end = m_trackerGeom->detsTIB().end();
454  it != end; ++it )
455  {
456  const GeomDet *det = *it;
457 
458  if( det )
459  {
460  DetId detid = det->geographicalId();
461  unsigned int rawid = detid.rawId();
462  unsigned int current = insert_id( rawid );
463  fillShapeAndPlacement( current, det );
464 
465  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
466  }
467  }
468 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
const DetContainer & detsTIB() const
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
const TrackerGeomDet * idToDet(DetId) const override
void FWRecoGeometryESProducer::addTIDGeometry ( void  )
private

Definition at line 492 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, TrackerGeometry::detsTID(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

493 {
494  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTID().begin(),
495  end = m_trackerGeom->detsTID().end();
496  it != end; ++it)
497  {
498  const GeomDet *det = *it;
499 
500  if( det )
501  {
502  DetId detid = det->geographicalId();
503  unsigned int rawid = detid.rawId();
504  unsigned int current = insert_id( rawid );
505  fillShapeAndPlacement( current, det );
506 
507  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
508  }
509  }
510 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
const TrackerGeomDet * idToDet(DetId) const override
const DetContainer & detsTID() const
void FWRecoGeometryESProducer::addTOBGeometry ( void  )
private

Definition at line 471 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, TrackerGeometry::detsTOB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

472 {
473  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTOB().begin(),
474  end = m_trackerGeom->detsTOB().end();
475  it != end; ++it )
476  {
477  const GeomDet *det = *it;
478 
479  if( det )
480  {
481  DetId detid = det->geographicalId();
482  unsigned int rawid = detid.rawId();
483  unsigned int current = insert_id( rawid );
484  fillShapeAndPlacement( current, det );
485 
486  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
487  }
488  }
489 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const TrackerGeometry * m_trackerGeom
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
#define end
Definition: vmac.h:39
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
const TrackerGeomDet * idToDet(DetId) const override
const DetContainer & detsTOB() const
void FWRecoGeometryESProducer::fillPoints ( unsigned int  id,
std::vector< GlobalPoint >::const_iterator  begin,
std::vector< GlobalPoint >::const_iterator  end 
)
private

Definition at line 592 of file FWRecoGeometryESProducer.cc.

References end, mps_fire::i, triggerObjects_cff::id, m_fwGeometry, and FWTGeoRecoGeometry::maxPoints_.

Referenced by addCaloGeometry(), and addFTLGeometry().

593 {
594  unsigned int index( 0 );
595  for( std::vector<GlobalPoint>::const_iterator i = begin; i != end; ++i )
596  {
598  m_fwGeometry->idToName[id].points[index] = i->x();
599  m_fwGeometry->idToName[id].points[++index] = i->y();
600  m_fwGeometry->idToName[id].points[++index] = i->z();
601  ++index;
602  }
603 }
std::shared_ptr< FWRecoGeometry > m_fwGeometry
static const int maxPoints_
#define end
Definition: vmac.h:39
#define begin
Definition: vmac.h:32
void FWRecoGeometryESProducer::fillShapeAndPlacement ( unsigned int  id,
const GeomDet det 
)
private

Shape of GeomDet

Definition at line 608 of file FWRecoGeometryESProducer.cc.

References b, triggerObjects_cff::id, m_fwGeometry, GloballyPositioned< T >::position(), GloballyPositioned< T >::rotation(), GeomDet::surface(), PV3DBase< T, PVType, FrameType >::x(), TkRotation< T >::xx(), TkRotation< T >::xy(), TkRotation< T >::xz(), PV3DBase< T, PVType, FrameType >::y(), TkRotation< T >::yx(), TkRotation< T >::yy(), TkRotation< T >::yz(), PV3DBase< T, PVType, FrameType >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().

Referenced by addCSCGeometry(), addDTGeometry(), addGEMGeometry(), addME0Geometry(), addPixelBarrelGeometry(), addPixelForwardGeometry(), addRPCGeometry(), addTECGeometry(), addTIBGeometry(), addTIDGeometry(), and addTOBGeometry().

609 {
610  // Trapezoidal
611  const Bounds *b = &((det->surface ()).bounds ());
612  if( const TrapezoidalPlaneBounds *b2 = dynamic_cast<const TrapezoidalPlaneBounds *> (b))
613  {
614  std::array< const float, 4 > const & par = b2->parameters ();
615 
616  // These parameters are half-lengths, as in CMSIM/GEANT3
617  m_fwGeometry->idToName[id].shape[0] = 1;
618  m_fwGeometry->idToName[id].shape[1] = par [0]; // hBottomEdge
619  m_fwGeometry->idToName[id].shape[2] = par [1]; // hTopEdge
620  m_fwGeometry->idToName[id].shape[3] = par [2]; // thickness
621  m_fwGeometry->idToName[id].shape[4] = par [3]; // apothem
622  }
623  if( const RectangularPlaneBounds *b2 = dynamic_cast<const RectangularPlaneBounds *> (b))
624  {
625  // Rectangular
626  m_fwGeometry->idToName[id].shape[0] = 2;
627  m_fwGeometry->idToName[id].shape[1] = b2->width() * 0.5; // half width
628  m_fwGeometry->idToName[id].shape[2] = b2->length() * 0.5; // half length
629  m_fwGeometry->idToName[id].shape[3] = b2->thickness() * 0.5; // half thickness
630  }
631 
632  // Position of the DetUnit's center
633  GlobalPoint pos = det->surface().position();
634  m_fwGeometry->idToName[id].translation[0] = pos.x();
635  m_fwGeometry->idToName[id].translation[1] = pos.y();
636  m_fwGeometry->idToName[id].translation[2] = pos.z();
637 
638  // Add the coeff of the rotation matrix
639  // with a projection on the basis vectors
640  TkRotation<float> detRot = det->surface().rotation();
641  m_fwGeometry->idToName[id].matrix[0] = detRot.xx();
642  m_fwGeometry->idToName[id].matrix[1] = detRot.yx();
643  m_fwGeometry->idToName[id].matrix[2] = detRot.zx();
644  m_fwGeometry->idToName[id].matrix[3] = detRot.xy();
645  m_fwGeometry->idToName[id].matrix[4] = detRot.yy();
646  m_fwGeometry->idToName[id].matrix[5] = detRot.zy();
647  m_fwGeometry->idToName[id].matrix[6] = detRot.xz();
648  m_fwGeometry->idToName[id].matrix[7] = detRot.yz();
649  m_fwGeometry->idToName[id].matrix[8] = detRot.zz();
650 }
T xx() const
std::shared_ptr< FWRecoGeometry > m_fwGeometry
T y() const
Definition: PV3DBase.h:63
T yx() const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
T zx() const
T xy() const
T zz() const
T z() const
Definition: PV3DBase.h:64
T zy() const
T yy() const
double b
Definition: hdecay.h:120
T xz() const
const RotationType & rotation() const
Definition: Bounds.h:22
T x() const
Definition: PV3DBase.h:62
const PositionType & position() const
T yz() const
unsigned int FWRecoGeometryESProducer::insert_id ( unsigned int  id)
private
const FWRecoGeometryESProducer& FWRecoGeometryESProducer::operator= ( const FWRecoGeometryESProducer )
privatedelete
std::shared_ptr< FWRecoGeometry > FWRecoGeometryESProducer::produce ( const FWRecoGeometryRecord record)

Definition at line 105 of file FWRecoGeometryESProducer.cc.

References addCaloGeometry(), addCSCGeometry(), addDTGeometry(), addFTLGeometry(), addGEMGeometry(), addME0Geometry(), addPixelBarrelGeometry(), addPixelForwardGeometry(), addRPCGeometry(), addTECGeometry(), addTIBGeometry(), addTIDGeometry(), addTOBGeometry(), edm::eventsetup::EventSetupRecord::get(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), m_calo, m_caloGeom, m_current, m_ftlBarrelGeom, m_ftlEndcapGeom, m_fwGeometry, m_geomRecord, m_muon, m_timing, m_tracker, m_trackerGeom, edm::ESHandle< T >::product(), GlobalTrackingGeometry::slaveGeometry(), edm::swap(), DetId::Tracker, and writeTrackerParametersXML().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

106 {
107  using namespace edm;
108 
109  m_fwGeometry = std::make_shared<FWRecoGeometry>();
110 
111  if( m_tracker || m_muon ) {
113  DetId detId( DetId::Tracker, 0 );
115  }
116 
117  if( m_tracker )
118  {
121  addTIBGeometry();
122  addTIDGeometry();
123  addTOBGeometry();
124  addTECGeometry();
126  }
127  if( m_muon )
128  {
129  addDTGeometry();
130  addCSCGeometry();
131  addRPCGeometry();
132  addGEMGeometry();
133  addME0Geometry();
134  }
135  if( m_calo )
136  {
137  edm::ESHandle<CaloGeometry> caloGeomH;
138  record.getRecord<CaloGeometryRecord>().get(caloGeomH);
139  m_caloGeom = caloGeomH.product();
140  addCaloGeometry();
141  }
142 
143  if( m_timing ) {
144  record.getRecord<CaloGeometryRecord>().getRecord<IdealGeometryRecord>().get( "FastTimeBarrel", m_ftlBarrelGeom );
145  record.getRecord<CaloGeometryRecord>().getRecord<IdealGeometryRecord>().get( "SFBX", m_ftlEndcapGeom );
146  addFTLGeometry();
147  }
148 
149  m_fwGeometry->idToName.resize( m_current + 1 );
150  std::vector<FWRecoGeom::Info>( m_fwGeometry->idToName ).swap( m_fwGeometry->idToName );
151  std::sort( m_fwGeometry->idToName.begin(), m_fwGeometry->idToName.end());
152 
153  return m_fwGeometry;
154 }
edm::ESHandle< FastTimeGeometry > m_ftlBarrelGeom
std::shared_ptr< FWRecoGeometry > m_fwGeometry
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const TrackerGeometry * m_trackerGeom
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:116
edm::ESHandle< FastTimeGeometry > m_ftlEndcapGeom
void get(HolderT &iHolder) const
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
Definition: DetId.h:18
HLT enums.
T const * product() const
Definition: ESHandle.h:86
void FWRecoGeometryESProducer::writeTrackerParametersXML ( )
private

Definition at line 652 of file FWRecoGeometryESProducer.cc.

References edmScanValgrind::buffer, edm::FileInPath::fullPath(), TrackerGeometry::isThere(), m_fwGeometry, m_trackerGeom, GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, GeomDetEnumerators::P2OTB, GeomDetEnumerators::P2OTEC, GeomDetEnumerators::P2PXB, GeomDetEnumerators::P2PXEC, callgraph::path, AlCaHLTBitMon_QueryRunRegistry::string, and lumiQTWidget::t.

Referenced by produce().

653 {
654  std::string path = "Geometry/TrackerCommonData/data/";
657  path += "PhaseI/";
662  path += "PhaseII/";
663  }
664  path += "trackerParameters.xml";
665  std::string fullPath = edm::FileInPath(path).fullPath();
666  std::ifstream t(fullPath);
667  std::stringstream buffer;
668  buffer << t.rdbuf();
669  m_fwGeometry->trackerTopologyXML = buffer.str();
670 }
std::shared_ptr< FWRecoGeometry > m_fwGeometry
const TrackerGeometry * m_trackerGeom
bool isThere(GeomDetEnumerators::SubDetector subdet) const
std::string fullPath() const
Definition: FileInPath.cc:197

Member Data Documentation

bool FWRecoGeometryESProducer::m_calo
private

Definition at line 71 of file FWRecoGeometryESProducer.h.

Referenced by FWRecoGeometryESProducer(), and produce().

const CaloGeometry* FWRecoGeometryESProducer::m_caloGeom
private

Definition at line 62 of file FWRecoGeometryESProducer.h.

Referenced by addCaloGeometry(), and produce().

unsigned int FWRecoGeometryESProducer::m_current
private

Definition at line 68 of file FWRecoGeometryESProducer.h.

Referenced by insert_id(), and produce().

edm::ESHandle<FastTimeGeometry> FWRecoGeometryESProducer::m_ftlBarrelGeom
private

Definition at line 63 of file FWRecoGeometryESProducer.h.

Referenced by addFTLGeometry(), and produce().

edm::ESHandle<FastTimeGeometry> FWRecoGeometryESProducer::m_ftlEndcapGeom
private

Definition at line 63 of file FWRecoGeometryESProducer.h.

Referenced by addFTLGeometry(), and produce().

std::shared_ptr<FWRecoGeometry> FWRecoGeometryESProducer::m_fwGeometry
private
edm::ESHandle<GlobalTrackingGeometry> FWRecoGeometryESProducer::m_geomRecord
private
std::vector<edm::ESHandle<HGCalGeometry> > FWRecoGeometryESProducer::m_hgcalGeoms
private

Definition at line 64 of file FWRecoGeometryESProducer.h.

bool FWRecoGeometryESProducer::m_muon
private

Definition at line 70 of file FWRecoGeometryESProducer.h.

Referenced by FWRecoGeometryESProducer(), and produce().

bool FWRecoGeometryESProducer::m_timing
private

Definition at line 72 of file FWRecoGeometryESProducer.h.

Referenced by FWRecoGeometryESProducer(), and produce().

bool FWRecoGeometryESProducer::m_tracker
private

Definition at line 69 of file FWRecoGeometryESProducer.h.

Referenced by FWRecoGeometryESProducer(), and produce().

const TrackerGeometry* FWRecoGeometryESProducer::m_trackerGeom
private