1 #ifndef SimG4CMS_DreamSD_h
2 #define SimG4CMS_DreamSD_h
12 #include "G4PhysicsFreeVector.hh"
14 #include <DD4hep/DD4hepUnits.h>
20 class G4LogicalVolume;
39 typedef std::pair<double, double>
Doubles;
44 double curve_LY(
const G4Step *,
int);
53 const G4Material *aMaterial,
54 const G4MaterialPropertyVector *rIndex);
const DDCompactView * cpvDDD_
static constexpr double k_ScaleFromDD4hepToG4
double getPhotonEnergyDeposit_(const G4ParticleMomentum &p, const G4ThreeVector &x, const G4Step *aStep)
Returns energy deposit for a given photon.
void fillMap(const std::string &, double, double)
uint32_t setDetUnitId(const G4Step *) override
bool setPbWO2MaterialProperties_(G4Material *aMaterial)
Sets material properties at run-time...
static constexpr double k_ScaleFromDDDToG4
Compact representation of the geometrical detector hierarchy.
double cherenkovDeposit_(const G4Step *aStep)
Returns the total energy due to Cherenkov radiation.
std::unique_ptr< G4PhysicsFreeVector > chAngleIntegrals_
Table of Cherenkov angle integrals vs photon momentum.
double getAverageNumberOfPhotons_(const double charge, const double beta, const G4Material *aMaterial, const G4MaterialPropertyVector *rIndex)
Returns average number of photons created by track.
double crystalWidth(G4LogicalVolume *) const
G4MaterialPropertiesTable * materialPropertiesTable_
std::pair< double, double > Doubles
std::map< G4LogicalVolume *, Doubles > DimensionMap
double curve_LY(const G4Step *, int)
DreamSD(const std::string &, const DDCompactView *, const cms::DDCompactView *, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
double crystalLength(G4LogicalVolume *) const
const cms::DDCompactView * cpvDD4hep_
double getEnergyDeposit(const G4Step *) override
void initMap(const std::string &)