40 std::pair<float,float> pitch = topo->
pitch();
42 m_fwGeometry->idToName[rawid].topology[1] = pitch.second;
52 # define ADD_SISTRIP_TOPOLOGY( rawid, detUnit ) \ 53 const StripGeomDetUnit* det = dynamic_cast<const StripGeomDetUnit*>( detUnit ); \ 56 const StripTopology* topo = dynamic_cast<const StripTopology*>( &det->specificTopology() ); \ 57 m_fwGeometry->idToName[rawid].topology[0] = 0; \ 58 m_fwGeometry->idToName[rawid].topology[1] = topo->nstrips(); \ 59 m_fwGeometry->idToName[rawid].topology[2] = topo->stripLength(); \ 60 if( const RadialStripTopology* rtop = dynamic_cast<const RadialStripTopology*>( &(det->specificType().specificTopology()) ) ) \ 62 m_fwGeometry->idToName[rawid].topology[0] = 1; \ 63 m_fwGeometry->idToName[rawid].topology[3] = rtop->yAxisOrientation(); \ 64 m_fwGeometry->idToName[rawid].topology[4] = rtop->originToIntersection(); \ 65 m_fwGeometry->idToName[rawid].topology[5] = rtop->phiOfOneEdge(); \ 66 m_fwGeometry->idToName[rawid].topology[6] = rtop->angularWidth(); \ 68 else if( dynamic_cast<const RectangularStripTopology*>( &(det->specificType().specificTopology()) ) ) \ 70 m_fwGeometry->idToName[rawid].topology[0] = 2; \ 71 m_fwGeometry->idToName[rawid].topology[3] = topo->pitch(); \ 73 else if( dynamic_cast<const TrapezoidalStripTopology*>( &(det->specificType().specificTopology()) ) ) \ 75 m_fwGeometry->idToName[rawid].topology[0] = 3; \ 76 m_fwGeometry->idToName[rawid].topology[3] = topo->pitch(); \ 81 static const std::array<std::string,3> hgcal_geom_names = { {
"HGCalEESensitive",
82 "HGCalHESiliconSensitive",
83 "HGCalHEScintillatorSensitive" } };
99 std::shared_ptr<FWRecoGeometry>
153 for(
auto it = cscGeometry->
chambers().begin(),
162 unsigned int current =
insert_id( rawid );
167 for( std::vector< const CSCLayer* >::const_iterator lit = chamber->
layers().begin(),
168 lend = chamber->
layers().end();
176 unsigned int current =
insert_id( rawid );
205 for(
auto it = dtGeometry->
chambers().begin(),
214 unsigned int current =
insert_id( rawid );
220 for(
auto it = dtGeometry->
layers().begin(),
228 unsigned int rawid = layer->
id().
rawId();
229 unsigned int current =
insert_id( rawid );
243 m_fwGeometry->idToName[current].topology[6] = surf.bounds().width();
244 m_fwGeometry->idToName[current].topology[7] = surf.bounds().thickness();
245 m_fwGeometry->idToName[current].topology[8] = surf.bounds().length();
258 for(
auto it = rpcGeom->
rolls().begin(),
266 unsigned int current =
insert_id( rawid );
280 m_fwGeometry->extraDet.Add(
new TNamed(
"RE4",
"RPC endcap station 4"));
282 catch (std::runtime_error &
e) {
304 unsigned int rawid =
sc->geographicalId().rawId();
305 unsigned int current =
insert_id( rawid );
314 unsigned int rawid = ch->geographicalId().rawId();
315 unsigned int current =
insert_id( rawid );
324 unsigned int rawid = roll->geographicalId().rawId();
325 unsigned int current =
insert_id( rawid );
336 m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop);
337 m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom);
338 m_fwGeometry->idToName[current].topology[5] = roll->npads();
342 m_fwGeometry->extraDet.Add(
new TNamed(
"GEM",
"GEM muon detector"));
346 m_fwGeometry->extraDet.Add(
new TNamed(
"GE2",
"GEM endcap station 2"));
348 catch (std::runtime_error &
e) {
355 edm::LogError(
"FWRecoGeometry") <<
" GEM geometry not found " << exception.
what() << std::endl;
374 unsigned int rawid = roll->geographicalId().rawId();
375 unsigned int current =
insert_id( rawid );
386 m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop);
387 m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom);
388 m_fwGeometry->idToName[current].topology[5] = roll->npads();
391 m_fwGeometry->extraDet.Add(
new TNamed(
"ME0",
"ME0 muon detector"));
395 edm::LogError(
"FWRecoGeometry") <<
" ME0 geometry not found " << exception.
what() << std::endl;
411 unsigned int rawid = detid.
rawId();
412 unsigned int current =
insert_id( rawid );
432 unsigned int rawid = detid.
rawId();
433 unsigned int current =
insert_id( rawid );
453 unsigned int rawid = detid.
rawId();
454 unsigned int current =
insert_id( rawid );
474 unsigned int rawid = detid.
rawId();
475 unsigned int current =
insert_id( rawid );
495 unsigned int rawid = detid.
rawId();
496 unsigned int current =
insert_id( rawid );
516 unsigned int rawid = detid.
rawId();
517 unsigned int current =
insert_id( rawid );
529 for( std::vector<DetId>::const_iterator it = vid.begin(),
532 unsigned int id =
insert_id( it->rawId());
549 for( std::vector<DetId>::const_iterator it = vid.begin(),
552 unsigned int id =
insert_id( it->rawId());
558 for( std::vector<DetId>::const_iterator it = vid.begin(),
561 unsigned int id =
insert_id( it->rawId());
580 unsigned int index( 0 );
581 for( std::vector<GlobalPoint>::const_iterator
i = begin;
i !=
end; ++
i )
583 assert( index < 23 );
600 std::array< const float, 4 >
const & par = b2->parameters ();
virtual char const * what() const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
const TrackerGeomDet * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
T getUntrackedParameter(std::string const &, T const &) const
edm::ESHandle< FastTimeGeometry > m_ftlBarrelGeom
virtual float stripLength() const =0
const std::vector< const CSCLayer * > & layers() const
Return all layers.
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
void addPixelForwardGeometry(void)
const CSCWireTopology * wireTopology() const
void addTIBGeometry(void)
void addTECGeometry(void)
float yCentreOfStripPlane() const
virtual ~FWRecoGeometryESProducer(void)
std::shared_ptr< FWRecoGeometry > m_fwGeometry
FWRecoGeometryESProducer(const edm::ParameterSet &)
DTLayerId id() const
Return the DetId of this SL.
const std::vector< const RPCRoll * > & rolls() const
Return a vector of all RPC rolls.
void addRPCGeometry(void)
virtual std::pair< float, float > pitch() const =0
float cellWidth() const
Returns the cell width.
const_iterator begin() const
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
const ChamberContainer & chambers() const
Return a vector of all chambers.
double wireSpacing() const
virtual bool isItBigPixelInX(const int ixbin) const =0
const StripTopology & specificTopology() const
const TrackerGeometry * m_trackerGeom
const Plane & surface() const
The nominal surface of the GeomDet.
CornersVec getCorners(const DetId &id) const
Returns the corner points of this cell's volume.
void ADD_PIXEL_TOPOLOGY(unsigned int rawid, const GeomDet *detUnit)
void swap(Association< C > &lhs, Association< C > &rhs)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
int firstChannel() const
Returns the wire number of the first wire.
uint32_t rawId() const
get the raw id
void fillShapeAndPlacement(unsigned int id, const GeomDet *det)
const DepRecordT & getRecord() const
void addPixelBarrelGeometry(void)
int lastChannel() const
Returns the wire number of the last wire.
const DTTopology & specificTopology() const
virtual float localX(const float mpX) const =0
const DetContainer & detsTEC() const
void addCaloGeometry(void)
edm::ESHandle< FastTimeGeometry > m_ftlEndcapGeom
void addCSCGeometry(void)
float yAxisOrientation() const
void addFTLGeometry(void)
void get(HolderT &iHolder) const
const DetContainer & detsPXB() const
void addGEMGeometry(void)
const std::vector< const GEMEtaPartition * > & etaPartitions() const
Return a vector of all GEM eta partitions.
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.
float centreToIntersection() const
float phiOfOneEdge() const
float cellHeight() const
Returns the cell height.
float angularWidth() const
unsigned int insert_id(unsigned int id)
const DetContainer & detsTIB() const
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
void addTIDGeometry(void)
const std::vector< ME0EtaPartition const * > & etaPartitions() const
Return a vector of all ME0 eta partitions.
const CSCStripTopology * topology() const
void fillPoints(unsigned int id, std::vector< GlobalPoint >::const_iterator begin, std::vector< GlobalPoint >::const_iterator end)
virtual float stripOffset(void) const
int channels() const
Returns the number of wires in the layer.
const std::vector< const DTLayer * > & layers() const
Return a vector of all SuperLayer.
virtual int nstrips() const =0
void addME0Geometry(void)
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
#define ADD_SISTRIP_TOPOLOGY(rawid, detUnit)
std::shared_ptr< FWRecoGeometry > produce(const FWRecoGeometryRecord &)
const std::vector< const GEMChamber * > & chambers() const
Return a vector of all GEM chambers.
CornersVec const & getCorners() const
Returns the corner points of this cell's volume.
edm::ESHandle< CaloGeometry > m_caloGeom
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id.
const_iterator end() const
const DetContainer & detsPXF() const
const DetContainer & detsTOB() const
const RotationType & rotation() const
virtual float pitch() const =0
virtual 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)
virtual float localY(const float mpY) const =0
const PositionType & position() const
const CSCLayerGeometry * geometry() const
void addTOBGeometry(void)
const DetContainer & detsTID() const
const TrackerGeomDet * idToDet(DetId) const
CornersVec getCorners(const DetId &id) const
Returns the corner points of this cell's volume.