7#ifndef EVENTDISPLAY_DETECTORGEOMETRY_H
8#define EVENTDISPLAY_DETECTORGEOMETRY_H
19#include "DetDescr/EcalHexReadout.h"
22#include "Ecal/Event/EcalHit.h"
26namespace eventdisplay {
61 return DETECTOR_GEOMETRY;
113 double getRotAngle(
int layerID,
int moduleID)
const;
197 double recoilStereoStripLength_;
199 double recoilStereoXWidth_;
201 double recoilStereoYWidth_;
203 double recoilStereoSeparation_;
205 double recoilStereoAngle_;
207 double recoilMonoStripLength_;
209 double recoilMonoXWidth_;
211 double recoilMonoYWidth_;
213 double recoilMonoSeparation_;
215 double recoilSensorThickness_;
std::vector< std::pair< double, double > > BoundingBox
@type BoundingBox
Class that defines an ECal detector ID with a cell number.
Class that stores Stores reconstructed hit information from the HCAL.
Class that defines an HCal sensitive detector.
Class which encapsulates information from a hit in a simulated tracking detector.
Class to translated between detector location (section, layer, strip) and real space.
HexPrism getHexTower(int towerIndex) const
Get HexPrism for a tower.
std::map< ldmx::HcalID::HcalSection, int > hcalNLayers_
Number of layers in each section.
HexPrism getHexPrism(const ldmx::EcalID &id) const
Calculate bounding hexagonal prism for input EcalHit.
double getRotAngle(int layerID, int moduleID) const
Get Rotation Angle around z-axis for the input layerID and moduleID.
double ecalZeroLayer_
z-coordinate of plane for first ecal layer [mm]
double hcalThicknessScint_
Thickness of Scintillator Strip [mm].
DetectorGeometry()
Constructor This is where all the detector constants are set.
std::map< ldmx::HcalID::HcalSection, double > hcalLayerThickness_
Thickness of the layers in each seciton [mm].
std::map< ldmx::HcalID::HcalSection, double > hcalLengthScint_
Length of Scintillator Strip [mm].
std::map< int, std::vector< double > > recoilModulePos_
position of each module in recoil detector The key in this map is 10*layerID+moduleID
std::unique_ptr< ldmx::EcalHexReadout > ecalHexReader_
Helper class to calculate (x,y) coordinate from hexagons.
double ecalSiThickness_
Thickness of sensitive Si layers.
int hcalParityVertical_
an example layer number of a vertical layer
static const DetectorGeometry & getInstance()
Get the single instance of this class.
double hcalUncertaintyTimingPos_
Uncertainty in timing position along a bar/strip [mm].
double ecalDepth_
Total depth of ECAL (length in Z direction)
double hcalWidthScint_
Width of Scintillator Strip [mm].
BoundingBox getBoundingBox(const ldmx::HcalHit &hit) const
Calculate real space coordinates from detector location.
std::map< int, double > recoilModuleAngle_
angular tilt for each module in recoil detector The key in this map is 10*layerID+moduleID
std::map< ldmx::HcalID::HcalSection, int > hcalNStrips_
Number of strips per layer in each section.
std::map< ldmx::HcalID::HcalSection, double > hcalZeroLayer_
The plane of the zero'th layer of each section [mm].
std::map< ldmx::HcalID::HcalSection, double > hcalZeroStrip_
The plane of the zero'th strip of each section [mm].
Extension of DetectorID providing access to ECal layers and cell numbers in a hex grid.
Stores reconstructed hit information from the HCAL.
HcalSection
Encodes the section of the HCal based on the 'section' field value.
Represents a simulated tracker hit in the simulation.
Stores the necessary geometry details for a hexagonal prism.