Skip to content

Commit

Permalink
set Birk's constant
Browse files Browse the repository at this point in the history
  • Loading branch information
SanghyunKo committed Aug 5, 2021
1 parent e9c04f9 commit c75729e
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 0 deletions.
3 changes: 3 additions & 0 deletions DRsim/DRsimG4Full/include/SimG4DRcaloActionInitialization.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@ class SimG4DRcaloActionInitialization : public G4VUserActionInitialization {
virtual void Build() const final;

void setSegmentation(dd4hep::DDSegmentation::GridDRcalo* seg) { pSeg = seg; }
void setBirksConstant(const std::string scintName, const double birks);

private:
dd4hep::DDSegmentation::GridDRcalo* pSeg;
std::string m_scintName;
double m_birks;
};
}

Expand Down
1 change: 1 addition & 0 deletions DRsim/DRsimG4Full/src/components/SimG4DRcaloActions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ StatusCode SimG4DRcaloActions::finalize() { return AlgTool::finalize(); }
G4VUserActionInitialization* SimG4DRcaloActions::userActionInitialization() {
auto* actions = new drc::SimG4DRcaloActionInitialization();
actions->setSegmentation(pSeg);
actions->setBirksConstant(m_scintName,m_birks);

return actions;
}
2 changes: 2 additions & 0 deletions DRsim/DRsimG4Full/src/components/SimG4DRcaloActions.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ class SimG4DRcaloActions : public AlgTool, virtual public ISimG4ActionTool {
dd4hep::DDSegmentation::GridDRcalo* pSeg;

Gaudi::Property<std::string> m_readoutName{this, "readoutName", "DRcaloSiPMreadout", "readout name of DRcalo"};
Gaudi::Property<std::string> m_scintName{this, "scintName", "DR_Polystyrene", "Name of the scintillators"};
Gaudi::Property<double> m_birks{this, "birks", 0.126, "Birk's constant for the scintillators in mm/MeV"};
};

#endif
8 changes: 8 additions & 0 deletions DRsim/DRsimG4Full/src/lib/SimG4DRcaloActionInitialization.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
#include "SimG4DRcaloActionInitialization.h"
#include "SimG4DRcaloSteppingAction.h"
#include "SimG4DRcaloEventAction.h"
#include "CLHEP/Units/SystemOfUnits.h"

namespace drc {
SimG4DRcaloActionInitialization::SimG4DRcaloActionInitialization(): G4VUserActionInitialization() {}

SimG4DRcaloActionInitialization::~SimG4DRcaloActionInitialization() {}

void SimG4DRcaloActionInitialization::setBirksConstant(const std::string scintName, const double birks) {
m_scintName = scintName;
m_birks = birks;
}

void SimG4DRcaloActionInitialization::Build() const {
SimG4DRcaloSteppingAction* steppingAction = new SimG4DRcaloSteppingAction(); // deleted by G4
steppingAction->setSegmentation(pSeg);
Expand All @@ -15,5 +21,7 @@ void SimG4DRcaloActionInitialization::Build() const {
SimG4DRcaloEventAction* eventAction = new SimG4DRcaloEventAction(); // deleted by G4
eventAction->setSteppingAction(steppingAction);
SetUserAction(eventAction);

G4Material::GetMaterial(m_scintName)->GetIonisation()->SetBirksConstant(m_birks*CLHEP::millimeter/CLHEP::MeV); // makeshift for DD4hep
}
}

0 comments on commit c75729e

Please sign in to comment.