27 # define ADD_PIXEL_TOPOLOGY( rawid, detUnit ) \
28 const PixelGeomDetUnit* det = dynamic_cast<const PixelGeomDetUnit*>( detUnit ); \
31 const PixelTopology* topo = &det->specificTopology(); \
32 m_fwGeometry->idToName[rawid].topology[0] = topo->nrows(); \
33 m_fwGeometry->idToName[rawid].topology[1] = topo->ncolumns(); \
36 # define ADD_SISTRIP_TOPOLOGY( rawid, detUnit ) \
37 const StripGeomDetUnit* det = dynamic_cast<const StripGeomDetUnit*>( detUnit ); \
40 const StripTopology* topo = dynamic_cast<const StripTopology*>( &det->specificTopology() ); \
41 m_fwGeometry->idToName[rawid].topology[0] = 0; \
42 m_fwGeometry->idToName[rawid].topology[1] = topo->nstrips(); \
43 m_fwGeometry->idToName[rawid].topology[2] = topo->stripLength(); \
44 if( const RadialStripTopology* rtop = dynamic_cast<const RadialStripTopology*>( &(det->specificType().specificTopology()) ) ) \
46 m_fwGeometry->idToName[rawid].topology[0] = 1; \
47 m_fwGeometry->idToName[rawid].topology[3] = rtop->yAxisOrientation(); \
48 m_fwGeometry->idToName[rawid].topology[4] = rtop->originToIntersection(); \
49 m_fwGeometry->idToName[rawid].topology[5] = rtop->phiOfOneEdge(); \
50 m_fwGeometry->idToName[rawid].topology[6] = rtop->angularWidth(); \
52 else if( dynamic_cast<const RectangularStripTopology*>( &(det->specificType().specificTopology()) ) ) \
54 m_fwGeometry->idToName[rawid].topology[0] = 2; \
55 m_fwGeometry->idToName[rawid].topology[3] = topo->pitch(); \
57 else if( dynamic_cast<const TrapezoidalStripTopology*>( &(det->specificType().specificTopology()) ) ) \
59 m_fwGeometry->idToName[rawid].topology[0] = 3; \
60 m_fwGeometry->idToName[rawid].topology[3] = topo->pitch(); \
73 boost::shared_ptr<FWRecoGeometry>
110 for( std::vector<CSCChamber*>::const_iterator it = cscGeometry->
chambers().begin(),
124 for( std::vector< const CSCLayer* >::const_iterator lit = chamber->
layers().begin(),
125 lend = chamber->
layers().end();
133 unsigned int current =
insert_id( rawid );
162 for( std::vector<DTChamber *>::const_iterator it = dtGeometry->
chambers().begin(),
177 for( std::vector<DTLayer*>::const_iterator it = dtGeometry->
layers().begin(),
185 unsigned int rawid = layer->
id().
rawId();
215 for( std::vector<RPCRoll *>::const_iterator it = rpcGeom->
rolls().begin(),
246 unsigned int rawid = detid.
rawId();
267 unsigned int rawid = detid.
rawId();
288 unsigned int rawid = detid.
rawId();
309 unsigned int rawid = detid.
rawId();
330 unsigned int rawid = detid.
rawId();
351 unsigned int rawid = detid.
rawId();
363 std::vector<DetId> vid =
m_caloGeom->getValidDetIds();
364 for( std::vector<DetId>::const_iterator it = vid.begin(),
369 unsigned int id =
insert_id( it->rawId());
388 unsigned int index( 0 );
389 for( std::vector<GlobalPoint>::const_iterator
i = begin;
i !=
end; ++
i )
391 assert( index < 24 );
408 std::vector< float >
par = b2->parameters ();
421 m_fwGeometry->idToName[id].shape[1] = b2->width() * 0.5;
422 m_fwGeometry->idToName[id].shape[2] = b2->length() * 0.5;
423 m_fwGeometry->idToName[id].shape[3] = b2->thickness() * 0.5;
void swap(ora::Record &rh, ora::Record &lh)
const int lastChannel() const
Returns the wire number of the last wire.
const std::vector< const CSCLayer * > & layers() const
Return all layers.
void addPixelForwardGeometry(void)
const CSCWireTopology * wireTopology() const
virtual float length() const =0
void addTIBGeometry(void)
const int channels() const
Returns the number of wires in the layer.
void addTECGeometry(void)
virtual ~FWRecoGeometryESProducer(void)
FWRecoGeometryESProducer(const edm::ParameterSet &)
DTLayerId id() const
Return the DetId of this SL.
void addRPCGeometry(void)
float centreToIntersection() const
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const ChamberContainer & chambers() const
Return a vector of all chambers.
double wireSpacing() const
const int firstChannel() const
Returns the wire number of the first wire.
const StripTopology & specificTopology() const
const TrackerGeometry * m_trackerGeom
const std::vector< DTLayer * > & layers() const
Return a vector of all SuperLayer.
boost::shared_ptr< FWRecoGeometry > m_fwGeometry
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
uint32_t rawId() const
get the raw id
virtual float thickness() const =0
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const DepRecordT & getRecord() const
void addPixelBarrelGeometry(void)
const DTTopology & specificTopology() const
const float cellWidth() const
Returns the cell width.
virtual float stripLength() const =0
const DetContainer & detsTEC() const
void addCaloGeometry(void)
void addCSCGeometry(void)
const DetContainer & detsPXB() const
boost::shared_ptr< FWRecoGeometry > produce(const FWRecoGeometryRecord &)
DetId geographicalId() const
The label of this GeomDet.
#define ADD_PIXEL_TOPOLOGY(rawid, detUnit)
virtual const GeomDet * idToDet(DetId) const
unsigned int insert_id(unsigned int id)
const DetContainer & detsTIB() const
const std::vector< DTChamber * > & chambers() const
Return a vector of all Chamber.
void addTIDGeometry(void)
const Bounds & bounds() const
const CSCStripTopology * topology() const
float yCentreOfStripPlane() const
void fillPoints(unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
virtual float stripOffset(void) const
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
edm::ESHandle< CaloGeometry > m_caloGeom
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
int yAxisOrientation() const
virtual float pitch() const =0
const DetContainer & detsPXF() const
const DetContainer & detsTOB() const
const RotationType & rotation() const
float angularWidth() const
float phiOfOneEdge() const
virtual float width() const =0
const PositionType & position() const
const float cellLenght() const
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
const CSCLayerGeometry * geometry() const
const float cellHeight() const
Returns the cell height.
const std::vector< RPCRoll * > & rolls() const
Return a vector of all RPC rolls.
void addTOBGeometry(void)
const DetContainer & detsTID() const
const double par[8 *NPar][4]