15 #include "G4Material.hh"
16 #include "CLHEP/Units/GlobalSystemOfUnits.h"
25 :
CaloSD(name, clg, p, manager), hcalBeamPar_(es) {
34 edm::LogVerbatim(
"HcalTBSim") <<
"HcalTB06BeamSD:: Use of Birks law is set to " << useBirk_
35 <<
" with three constants kB = " << birk1_ <<
", C1 = " << birk2_
43 double destep = aStep->GetTotalEnergyDeposit();
49 << aStep->GetPreStepPoint()->GetTouchable()->GetVolume()->GetName() <<
" weight "
52 return weight * destep;
56 const G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
57 const G4VTouchable* touch = preStepPoint->GetTouchable();
61 int lay = 0,
x = 0,
y = 0;
63 lay = (touch->GetReplicaNumber(0));
66 lay = (touch->GetReplicaNumber(1));
67 G4ThreeVector localPoint =
setToLocal(preStepPoint->GetPosition(), touch);
68 x = (int)(localPoint.x() / (0.2 * mm));
69 y = (int)(localPoint.y() / (0.2 * mm));
Log< level::Info, true > LogVerbatim
const HcalTB06BeamParameters * hcalBeamPar_
double getEnergyDeposit(const G4Step *) override
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
static uint32_t packIndex(int det, int lay, int x, int y)
bool isItWireChamber(const std::string &)
HcalTB06BeamSD(const std::string &, const HcalTB06BeamParameters *, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
uint32_t setDetUnitId(const G4Step *step) override
~HcalTB06BeamSD() override
G4ThreeVector setToLocal(const G4ThreeVector &, const G4VTouchable *) const
std::vector< std::string > wchambers_
T getParameter(std::string const &) const
double getAttenuation(const G4Step *aStep, double birk1, double birk2, double birk3) const