CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 &)
 
boost::shared_ptr< FWRecoGeometryproduce (const FWRecoGeometryRecord &)
 
virtual ~FWRecoGeometryESProducer (void)
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- 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 ()
 

Private Member Functions

void addCaloGeometry (void)
 
void addCSCGeometry (void)
 
void addDTGeometry (void)
 
void addGEMGeometry (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 &)
 
unsigned int insert_id (unsigned int id)
 
const FWRecoGeometryESProduceroperator= (const FWRecoGeometryESProducer &)
 

Private Attributes

edm::ESHandle< CaloGeometrym_caloGeom
 
unsigned int m_current
 
boost::shared_ptr< FWRecoGeometrym_fwGeometry
 
edm::ESHandle
< GlobalTrackingGeometry
m_geomRecord
 
const TrackerGeometrym_trackerGeom
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey, boost::shared_ptr
< DataProxy > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- 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::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_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

Definition at line 22 of file FWRecoGeometryESProducer.h.

Constructor & Destructor Documentation

FWRecoGeometryESProducer::FWRecoGeometryESProducer ( const edm::ParameterSet )

Definition at line 65 of file FWRecoGeometryESProducer.cc.

References edm::ESProducer::setWhatProduced().

66  : m_current( -1 )
67 {
68  setWhatProduced( this );
69 }
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
FWRecoGeometryESProducer::~FWRecoGeometryESProducer ( void  )
virtual

Definition at line 71 of file FWRecoGeometryESProducer.cc.

72 {}
FWRecoGeometryESProducer::FWRecoGeometryESProducer ( const FWRecoGeometryESProducer )
private

Member Function Documentation

void FWRecoGeometryESProducer::addCaloGeometry ( void  )
private

Definition at line 391 of file FWRecoGeometryESProducer.cc.

References end, fillPoints(), insert_id(), and m_caloGeom.

Referenced by produce().

392 {
393  std::vector<DetId> vid = m_caloGeom->getValidDetIds(); // Calo
394  for( std::vector<DetId>::const_iterator it = vid.begin(),
395  end = vid.end();
396  it != end; ++it )
397  {
398  const CaloCellGeometry::CornersVec& cor( m_caloGeom->getGeometry( *it )->getCorners());
399  unsigned int id = insert_id( it->rawId());
400  fillPoints( id, cor.begin(), cor.end());
401  }
402 }
#define end
Definition: vmac.h:37
unsigned int insert_id(unsigned int id)
void fillPoints(unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
edm::ESHandle< CaloGeometry > m_caloGeom
void FWRecoGeometryESProducer::addCSCGeometry ( void  )
private

Definition at line 108 of file FWRecoGeometryESProducer.cc.

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

Referenced by produce().

109 {
110  DetId detId( DetId::Muon, 2 );
111  const CSCGeometry* cscGeometry = (const CSCGeometry*) m_geomRecord->slaveGeometry( detId );
112  for( std::vector<CSCChamber*>::const_iterator it = cscGeometry->chambers().begin(),
113  end = cscGeometry->chambers().end();
114  it != end; ++it )
115  {
116  const CSCChamber *chamber = *it;
117 
118  if( chamber )
119  {
120  unsigned int rawid = chamber->geographicalId();
121  unsigned int current = insert_id( rawid );
122  fillShapeAndPlacement( current, chamber );
123  //
124  // CSC layers geometry
125  //
126  for( std::vector< const CSCLayer* >::const_iterator lit = chamber->layers().begin(),
127  lend = chamber->layers().end();
128  lit != lend; ++lit )
129  {
130  const CSCLayer* layer = *lit;
131 
132  if( layer )
133  {
134  unsigned int rawid = layer->geographicalId();
135  unsigned int current = insert_id( rawid );
136  fillShapeAndPlacement( current, layer );
137 
138  const CSCStripTopology* stripTopology = layer->geometry()->topology();
139  m_fwGeometry->idToName[current].topology[0] = stripTopology->yAxisOrientation();
140  m_fwGeometry->idToName[current].topology[1] = stripTopology->centreToIntersection();
141  m_fwGeometry->idToName[current].topology[2] = stripTopology->yCentreOfStripPlane();
142  m_fwGeometry->idToName[current].topology[3] = stripTopology->phiOfOneEdge();
143  m_fwGeometry->idToName[current].topology[4] = stripTopology->stripOffset();
144  m_fwGeometry->idToName[current].topology[5] = stripTopology->angularWidth();
145 
146  const CSCWireTopology* wireTopology = layer->geometry()->wireTopology();
147  m_fwGeometry->idToName[current].topology[6] = wireTopology->wireSpacing();
148  m_fwGeometry->idToName[current].topology[7] = wireTopology->wireAngle();
149  }
150  }
151  }
152  }
153 }
const std::vector< const CSCLayer * > & layers() const
Return all layers.
Definition: CSCChamber.h:57
const CSCWireTopology * wireTopology() const
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const ChamberContainer & chambers() const
Return a vector of all chambers.
Definition: CSCGeometry.cc:106
double wireSpacing() const
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
float wireAngle() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
const CSCStripTopology * topology() const
virtual float stripOffset(void) const
const CSCLayerGeometry * geometry() const
Definition: CSCLayer.h:47
void FWRecoGeometryESProducer::addDTGeometry ( void  )
private

Definition at line 156 of file FWRecoGeometryESProducer.cc.

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

Referenced by produce().

157 {
158  DetId detId( DetId::Muon, 1 );
159  const DTGeometry* dtGeometry = (const DTGeometry*) m_geomRecord->slaveGeometry( detId );
160 
161  //
162  // DT chambers geometry
163  //
164  for( std::vector<DTChamber *>::const_iterator it = dtGeometry->chambers().begin(),
165  end = dtGeometry->chambers().end();
166  it != end; ++it )
167  {
168  const DTChamber *chamber = *it;
169 
170  if( chamber )
171  {
172  unsigned int rawid = chamber->geographicalId().rawId();
173  unsigned int current = insert_id( rawid );
174  fillShapeAndPlacement( current, chamber );
175  }
176  }
177 
178  // Fill in DT layer parameters
179  for( std::vector<DTLayer*>::const_iterator it = dtGeometry->layers().begin(),
180  end = dtGeometry->layers().end();
181  it != end; ++it )
182  {
183  const DTLayer* layer = *it;
184 
185  if( layer )
186  {
187  unsigned int rawid = layer->id().rawId();
188  unsigned int current = insert_id( rawid );
189  fillShapeAndPlacement( current, layer );
190 
191  const DTTopology& topo = layer->specificTopology();
192  const BoundPlane& surf = layer->surface();
193  // Topology W/H/L:
194  m_fwGeometry->idToName[current].topology[0] = topo.cellWidth();
195  m_fwGeometry->idToName[current].topology[1] = topo.cellHeight();
196  m_fwGeometry->idToName[current].topology[2] = topo.cellLenght();
197  m_fwGeometry->idToName[current].topology[3] = topo.firstChannel();
198  m_fwGeometry->idToName[current].topology[4] = topo.lastChannel();
199  m_fwGeometry->idToName[current].topology[5] = topo.channels();
200 
201  // Bounds W/H/L:
202  m_fwGeometry->idToName[current].topology[6] = surf.bounds().width();
203  m_fwGeometry->idToName[current].topology[7] = surf.bounds().thickness();
204  m_fwGeometry->idToName[current].topology[8] = surf.bounds().length();
205  }
206  }
207 }
DTLayerId id() const
Return the DetId of this SL.
Definition: DTLayer.cc:46
float cellWidth() const
Returns the cell width.
Definition: DTTopology.h:68
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const std::vector< DTLayer * > & layers() const
Return a vector of all SuperLayer.
Definition: DTGeometry.cc:95
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
int firstChannel() const
Returns the wire number of the first wire.
Definition: DTTopology.h:78
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
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
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
float cellHeight() const
Returns the cell height.
Definition: DTTopology.h:70
unsigned int insert_id(unsigned int id)
const std::vector< DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:85
Definition: DetId.h:18
int channels() const
Returns the number of wires in the layer.
Definition: DTTopology.h:75
float cellLenght() const
Definition: DTTopology.h:73
void FWRecoGeometryESProducer::addGEMGeometry ( void  )
private

Definition at line 237 of file FWRecoGeometryESProducer.cc.

References cond::rpcobimon::current, end, GEMGeometry::etaPartitions(), fillShapeAndPlacement(), GeomDet::geographicalId(), insert_id(), m_fwGeometry, m_geomRecord, DetId::Muon, StripTopology::nstrips(), StripTopology::pitch(), DetId::rawId(), GEMEtaPartition::specificTopology(), and StripTopology::stripLength().

Referenced by produce().

238 {
239  //
240  // GEM geometry
241  //
242  DetId detId( DetId::Muon, 4 );
243  const GEMGeometry* gemGeom = (const GEMGeometry*) m_geomRecord->slaveGeometry( detId );
244  for( std::vector<GEMEtaPartition *>::const_iterator it = gemGeom->etaPartitions().begin(),
245  end = gemGeom->etaPartitions().end();
246  it != end; ++it )
247  {
248  GEMEtaPartition* roll = (*it);
249  if( roll )
250  {
251  unsigned int rawid = (*it)->geographicalId().rawId();
252  unsigned int current = insert_id( rawid );
253  fillShapeAndPlacement( current, roll );
254 
255  const StripTopology& topo = roll->specificTopology();
256  m_fwGeometry->idToName[current].topology[0] = topo.nstrips();
257  m_fwGeometry->idToName[current].topology[1] = topo.stripLength();
258  m_fwGeometry->idToName[current].topology[2] = topo.pitch();
259  }
260  }
261 }
virtual int nstrips() const =0
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
virtual float stripLength() const =0
const StripTopology & specificTopology() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
virtual float pitch() const =0
const std::vector< GEMEtaPartition * > & etaPartitions() const
Return a vector of all GEM chambers.
Definition: GEMGeometry.cc:57
void FWRecoGeometryESProducer::addPixelBarrelGeometry ( void  )
private

Definition at line 265 of file FWRecoGeometryESProducer.cc.

References ADD_PIXEL_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsPXB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDetUnit(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

266 {
267  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsPXB().begin(),
268  end = m_trackerGeom->detsPXB().end();
269  it != end; ++it)
270  {
271  const GeomDet *det = *it;
272 
273  if( det )
274  {
275  DetId detid = det->geographicalId();
276  unsigned int rawid = detid.rawId();
277  unsigned int current = insert_id( rawid );
278  fillShapeAndPlacement( current, det );
279 
280  ADD_PIXEL_TOPOLOGY( current, m_trackerGeom->idToDetUnit( detid ));
281  }
282  }
283 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const DetContainer & detsPXB() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
#define ADD_PIXEL_TOPOLOGY(rawid, detUnit)
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
void FWRecoGeometryESProducer::addPixelForwardGeometry ( void  )
private

Definition at line 286 of file FWRecoGeometryESProducer.cc.

References ADD_PIXEL_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsPXF(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDetUnit(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

287 {
288  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsPXF().begin(),
289  end = m_trackerGeom->detsPXF().end();
290  it != end; ++it )
291  {
292  const GeomDet *det = *it;
293 
294  if( det )
295  {
296  DetId detid = det->geographicalId();
297  unsigned int rawid = detid.rawId();
298  unsigned int current = insert_id( rawid );
299  fillShapeAndPlacement( current, det );
300 
301  ADD_PIXEL_TOPOLOGY( current, m_trackerGeom->idToDetUnit( detid ));
302  }
303  }
304 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
#define ADD_PIXEL_TOPOLOGY(rawid, detUnit)
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
const DetContainer & detsPXF() const
void FWRecoGeometryESProducer::addRPCGeometry ( void  )
private

Definition at line 210 of file FWRecoGeometryESProducer.cc.

References cond::rpcobimon::current, end, fillShapeAndPlacement(), GeomDet::geographicalId(), insert_id(), m_fwGeometry, m_geomRecord, DetId::Muon, StripTopology::nstrips(), StripTopology::pitch(), DetId::rawId(), RPCGeometry::rolls(), RPCRoll::specificTopology(), and StripTopology::stripLength().

Referenced by produce().

211 {
212  //
213  // RPC rolls geometry
214  //
215  DetId detId( DetId::Muon, 3 );
216  const RPCGeometry* rpcGeom = (const RPCGeometry*) m_geomRecord->slaveGeometry( detId );
217  for( std::vector<RPCRoll *>::const_iterator it = rpcGeom->rolls().begin(),
218  end = rpcGeom->rolls().end();
219  it != end; ++it )
220  {
221  RPCRoll* roll = (*it);
222  if( roll )
223  {
224  unsigned int rawid = roll->geographicalId().rawId();
225  unsigned int current = insert_id( rawid );
226  fillShapeAndPlacement( current, roll );
227 
228  const StripTopology& topo = roll->specificTopology();
229  m_fwGeometry->idToName[current].topology[0] = topo.nstrips();
230  m_fwGeometry->idToName[current].topology[1] = topo.stripLength();
231  m_fwGeometry->idToName[current].topology[2] = topo.pitch();
232  }
233  }
234 }
virtual int nstrips() const =0
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const StripTopology & specificTopology() const
Definition: RPCRoll.cc:107
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
virtual float stripLength() const =0
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
virtual float pitch() const =0
const std::vector< RPCRoll * > & rolls() const
Return a vector of all RPC rolls.
Definition: RPCGeometry.cc:67
void FWRecoGeometryESProducer::addTECGeometry ( void  )
private

Definition at line 370 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsTEC(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

371 {
372  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTEC().begin(),
373  end = m_trackerGeom->detsTEC().end();
374  it != end; ++it )
375  {
376  const GeomDet *det = *it;
377 
378  if( det )
379  {
380  DetId detid = det->geographicalId();
381  unsigned int rawid = detid.rawId();
382  unsigned int current = insert_id( rawid );
383  fillShapeAndPlacement( current, det );
384 
385  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
386  }
387  }
388 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const DetContainer & detsTEC() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
virtual const GeomDet * idToDet(DetId) const
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
void FWRecoGeometryESProducer::addTIBGeometry ( void  )
private

Definition at line 307 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsTIB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

308 {
309  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTIB().begin(),
310  end = m_trackerGeom->detsTIB().end();
311  it != end; ++it )
312  {
313  const GeomDet *det = *it;
314 
315  if( det )
316  {
317  DetId detid = det->geographicalId();
318  unsigned int rawid = detid.rawId();
319  unsigned int current = insert_id( rawid );
320  fillShapeAndPlacement( current, det );
321 
322  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
323  }
324  }
325 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
virtual const GeomDet * idToDet(DetId) const
unsigned int insert_id(unsigned int id)
const DetContainer & detsTIB() const
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
void FWRecoGeometryESProducer::addTIDGeometry ( void  )
private

Definition at line 349 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsTID(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

350 {
351  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTID().begin(),
352  end = m_trackerGeom->detsTID().end();
353  it != end; ++it)
354  {
355  const GeomDet *det = *it;
356 
357  if( det )
358  {
359  DetId detid = det->geographicalId();
360  unsigned int rawid = detid.rawId();
361  unsigned int current = insert_id( rawid );
362  fillShapeAndPlacement( current, det );
363 
364  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
365  }
366  }
367 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
virtual const GeomDet * idToDet(DetId) const
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
const DetContainer & detsTID() const
void FWRecoGeometryESProducer::addTOBGeometry ( void  )
private

Definition at line 328 of file FWRecoGeometryESProducer.cc.

References ADD_SISTRIP_TOPOLOGY, cond::rpcobimon::current, cond::rpcobgas::detid, TrackerGeometry::detsTOB(), end, fillShapeAndPlacement(), GeomDet::geographicalId(), TrackerGeometry::idToDet(), insert_id(), m_trackerGeom, and DetId::rawId().

Referenced by produce().

329 {
330  for( TrackerGeometry::DetContainer::const_iterator it = m_trackerGeom->detsTOB().begin(),
331  end = m_trackerGeom->detsTOB().end();
332  it != end; ++it )
333  {
334  const GeomDet *det = *it;
335 
336  if( det )
337  {
338  DetId detid = det->geographicalId();
339  unsigned int rawid = detid.rawId();
340  unsigned int current = insert_id( rawid );
341  fillShapeAndPlacement( current, det );
342 
343  ADD_SISTRIP_TOPOLOGY( current, m_trackerGeom->idToDet( detid ));
344  }
345  }
346 }
const TrackerGeometry * m_trackerGeom
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
#define end
Definition: vmac.h:37
virtual const GeomDet * idToDet(DetId) const
unsigned int insert_id(unsigned int id)
Definition: DetId.h:18
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
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 415 of file FWRecoGeometryESProducer.cc.

References end, i, getHLTprescales::index, and m_fwGeometry.

Referenced by addCaloGeometry().

416 {
417  unsigned int index( 0 );
418  for( std::vector<GlobalPoint>::const_iterator i = begin; i != end; ++i )
419  {
420  assert( index < 23 );
421  m_fwGeometry->idToName[id].points[index] = i->x();
422  m_fwGeometry->idToName[id].points[++index] = i->y();
423  m_fwGeometry->idToName[id].points[++index] = i->z();
424  ++index;
425  }
426 }
int i
Definition: DBlmapReader.cc:9
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
#define end
Definition: vmac.h:37
#define begin
Definition: vmac.h:30
void FWRecoGeometryESProducer::fillShapeAndPlacement ( unsigned int  id,
const GeomDet det 
)
private

Shape of GeomDet

Definition at line 431 of file FWRecoGeometryESProducer.cc.

References b, 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(), addPixelBarrelGeometry(), addPixelForwardGeometry(), addRPCGeometry(), addTECGeometry(), addTIBGeometry(), addTIDGeometry(), and addTOBGeometry().

432 {
433  // Trapezoidal
434  const Bounds *b = &((det->surface ()).bounds ());
435  if( const TrapezoidalPlaneBounds *b2 = dynamic_cast<const TrapezoidalPlaneBounds *> (b))
436  {
437  std::array< const float, 4 > const & par = b2->parameters ();
438 
439  // These parameters are half-lengths, as in CMSIM/GEANT3
440  m_fwGeometry->idToName[id].shape[0] = 1;
441  m_fwGeometry->idToName[id].shape[1] = par [0]; // hBottomEdge
442  m_fwGeometry->idToName[id].shape[2] = par [1]; // hTopEdge
443  m_fwGeometry->idToName[id].shape[3] = par [2]; // thickness
444  m_fwGeometry->idToName[id].shape[4] = par [3]; // apothem
445  }
446  if( const RectangularPlaneBounds *b2 = dynamic_cast<const RectangularPlaneBounds *> (b))
447  {
448  // Rectangular
449  m_fwGeometry->idToName[id].shape[0] = 2;
450  m_fwGeometry->idToName[id].shape[1] = b2->width() * 0.5; // half width
451  m_fwGeometry->idToName[id].shape[2] = b2->length() * 0.5; // half length
452  m_fwGeometry->idToName[id].shape[3] = b2->thickness() * 0.5; // half thickness
453  }
454 
455  // Position of the DetUnit's center
456  GlobalPoint pos = det->surface().position();
457  m_fwGeometry->idToName[id].translation[0] = pos.x();
458  m_fwGeometry->idToName[id].translation[1] = pos.y();
459  m_fwGeometry->idToName[id].translation[2] = pos.z();
460 
461  // Add the coeff of the rotation matrix
462  // with a projection on the basis vectors
463  TkRotation<float> detRot = det->surface().rotation();
464  m_fwGeometry->idToName[id].matrix[0] = detRot.xx();
465  m_fwGeometry->idToName[id].matrix[1] = detRot.yx();
466  m_fwGeometry->idToName[id].matrix[2] = detRot.zx();
467  m_fwGeometry->idToName[id].matrix[3] = detRot.xy();
468  m_fwGeometry->idToName[id].matrix[4] = detRot.yy();
469  m_fwGeometry->idToName[id].matrix[5] = detRot.zy();
470  m_fwGeometry->idToName[id].matrix[6] = detRot.xz();
471  m_fwGeometry->idToName[id].matrix[7] = detRot.yz();
472  m_fwGeometry->idToName[id].matrix[8] = detRot.zz();
473 }
T xx() const
T y() const
Definition: PV3DBase.h:63
T yx() const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
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

Definition at line 405 of file FWRecoGeometryESProducer.cc.

References m_current, and m_fwGeometry.

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

406 {
407  ++m_current;
408  m_fwGeometry->idToName.push_back(FWRecoGeom::Info());
409  m_fwGeometry->idToName.back().id = rawid;
410 
411  return m_current;
412 }
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
const FWRecoGeometryESProducer& FWRecoGeometryESProducer::operator= ( const FWRecoGeometryESProducer )
private
boost::shared_ptr< FWRecoGeometry > FWRecoGeometryESProducer::produce ( const FWRecoGeometryRecord record)

Definition at line 75 of file FWRecoGeometryESProducer.cc.

References addCaloGeometry(), addCSCGeometry(), addDTGeometry(), addGEMGeometry(), addPixelBarrelGeometry(), addPixelForwardGeometry(), addRPCGeometry(), addTECGeometry(), addTIBGeometry(), addTIDGeometry(), addTOBGeometry(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), m_caloGeom, m_current, m_fwGeometry, m_geomRecord, m_trackerGeom, python.multivaluedict::sort(), swap(), and DetId::Tracker.

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

76 {
77  using namespace edm;
78 
79  m_fwGeometry = boost::shared_ptr<FWRecoGeometry>( new FWRecoGeometry );
80 
82 
83  DetId detId( DetId::Tracker, 0 );
84  m_trackerGeom = (const TrackerGeometry*) m_geomRecord->slaveGeometry( detId );
85 
86  record.getRecord<CaloGeometryRecord>().get( m_caloGeom );
87 
94  addDTGeometry();
99 
100  m_fwGeometry->idToName.resize( m_current + 1 );
101  std::vector<FWRecoGeom::Info>( m_fwGeometry->idToName ).swap( m_fwGeometry->idToName );
102  std::sort( m_fwGeometry->idToName.begin(), m_fwGeometry->idToName.end());
103 
104  return m_fwGeometry;
105 }
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const TrackerGeometry * m_trackerGeom
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
Definition: DetId.h:18
edm::ESHandle< CaloGeometry > m_caloGeom

Member Data Documentation

edm::ESHandle<CaloGeometry> FWRecoGeometryESProducer::m_caloGeom
private

Definition at line 51 of file FWRecoGeometryESProducer.h.

Referenced by addCaloGeometry(), and produce().

unsigned int FWRecoGeometryESProducer::m_current
private

Definition at line 55 of file FWRecoGeometryESProducer.h.

Referenced by insert_id(), and produce().

boost::shared_ptr<FWRecoGeometry> FWRecoGeometryESProducer::m_fwGeometry
private
edm::ESHandle<GlobalTrackingGeometry> FWRecoGeometryESProducer::m_geomRecord
private
const TrackerGeometry* FWRecoGeometryESProducer::m_trackerGeom
private