8 #ifndef Geometry_VeryForwardGeometryBuilder_TotemRPGeometry
9 #define Geometry_VeryForwardGeometryBuilder_TotemRPGeometry
12 #include "CLHEP/Vector/ThreeVector.h"
13 #include "CLHEP/Vector/Rotation.h"
54 typedef std::map<unsigned int, DetGeomDesc* >
mapType;
56 typedef std::map<unsigned int, std::set<unsigned int> >
mapSetType;
121 std::set < unsigned int >
RPsInStation(
unsigned int)
const;
129 std::set<unsigned int>
DetsInRP(
unsigned int)
const;
137 CLHEP::Hep3Vector
LocalToGlobal(
unsigned int id,
const CLHEP::Hep3Vector
r)
const;
138 CLHEP::Hep3Vector
GlobalToLocal(
unsigned int id,
const CLHEP::Hep3Vector
r)
const;
TotemRPGeometry(const DetGeomDesc *gd)
build up from DetGeomDesc
CLHEP::Hep3Vector GetDetEdgePosition(unsigned int id) const
returns the position of the edge of a detector
CLHEP::Hep3Vector GetRPGlobalTranslation(int copy_no) const
position of a RP package (translation z corresponds to the first plane - TODO check it) ...
double GetStationCentreZPosition(unsigned int) const
CLHEP::Hep3Vector GetRPThinFoilPosition(int copy_no) const
returns the (outer) position of the thin foil of a RP box
char Build(const DetGeomDesc *)
build up from DetGeomDesc structure, return 0 = success
unsigned int NumberOfDetsIncluded() const
RPDeviceMapType::const_iterator endRP() const
end iterator over RPs
void BuildSets()
builds maps element ID –> set of subelements (re)builds stationsInArm, rpsInStation, detsInRP out of theMap
DetGeomDesc * GetDetector(unsigned int) const
returns geometry of a detector performs necessary checks, returns NULL if fails input is raw ID ...
std::map< int, DetGeomDesc * > RPDeviceMapType
void GetReadoutDirection(unsigned int id, double &dx, double &dy) const
std::map< unsigned int, std::set< unsigned int > > mapSetType
std::set< unsigned int > RPsInStation(unsigned int) const
after checks returns set of RP corresponding to the given station ID
mapType::const_iterator endDet() const
end iterator over (silicon) detectors
std::set< unsigned int > DetsInRP(unsigned int) const
CLHEP::Hep3Vector GlobalToLocalDirection(unsigned int id, const CLHEP::Hep3Vector dir) const
RPDeviceMapType::const_iterator beginRP() const
begin iterator over RPs
CLHEP::Hep3Vector GetDetTranslation(unsigned int id) const
mapSetType stationsInArm
map: parent ID -> set of subelements E.g. stationsInArm is map of arm ID -> set of stations (in that ...
Geometrical description of a detector.
mapType theMap
map: detectorID –> DetGeomDesc
CLHEP::Hep3Vector GetDetEdgeNormalVector(unsigned int id) const
returns a normal vector for the edge of a detector
CLHEP::Hep3Vector GlobalToLocal(DetGeomDesc *gd, const CLHEP::Hep3Vector r) const
CLHEP::Hep3Vector LocalToGlobalDirection(unsigned int id, const CLHEP::Hep3Vector dir) const
DetGeomDesc * GetRPDevice(int copy_no) const
returns geometry of a RP box
char AddRPDevice(int copy_no, const DetGeomDesc *&det_geom_desc)
adds a RP package (primary vacuum) to a map copy_no means RPId (i.e. 3 digit decimal number) ...
CLHEP::HepRotation GetRPGlobalRotation(int copy_no) const
returns number of detectors in the geometry (size of theMap)
DetGeomDesc * GetDetector(const TotemRPDetId &id) const
DetGeomDesc * operator[](unsigned int id) const
same as GetDetector
char AddDetector(const DetId &id, const DetGeomDesc *&gd)
The manager class for TOTEM RP geometry.
CLHEP::Hep3Vector LocalToGlobal(DetGeomDesc *gd, const CLHEP::Hep3Vector r) const
std::set< unsigned int > StationsInArm(unsigned int) const
after checks returns set of stations corresponding to the given arm ID
std::map< unsigned int, DetGeomDesc * > mapType
mapType::const_iterator beginDet() const
begin iterator over (silicon) detectors
RPDeviceMapType theRomanPotMap
map: RPID –> DetGeomDesc
char AddDetector(unsigned int, const DetGeomDesc *&)
adds an item to the map (detector ID –> DetGeomDesc) performs necessary checks, returns 0 if succesfu...
std::set< unsigned int > DetsInRP(const DetId &id) const
CLHEP::Hep3Vector GetRPThinFoilNormalVector(int copy_no) const
returns a normal vector for the thin foil of a RP box