|
ATLAS Offline Software
|
#include <FastCaloSimV2Tool.h>
|
ServiceHandle< IFastCaloSimParamSvc > | m_paramSvc {this, "ParamSvc", "ISF_FastCaloSimV2ParamSvc"} |
|
bool | m_doPunchThrough {true} |
|
ToolHandle< IPunchThroughTool > | m_punchThroughTool {this, "PunchThroughTool", ""} |
|
PublicToolHandleArray< ICaloCellMakerTool > | m_caloCellMakerToolsSetup {this, "CaloCellMakerTools_setup", {}, ""} |
|
PublicToolHandleArray< ICaloCellMakerTool > | m_caloCellMakerToolsRelease {this, "CaloCellMakerTools_release", {}, ""} |
|
PublicToolHandle< IFastCaloSimCaloExtrapolation > | m_FastCaloSimCaloExtrapolation {this, "FastCaloSimCaloExtrapolation", "", ""} |
|
std::unique_ptr< CaloCellContainer > | m_theContainer {} |
|
CaloCellContainer * | m_theContainerPtr {} |
|
SG::WriteHandleKey< CaloCellContainer > | m_caloCellKey { this, "CaloCells", "DefaultCaloCellContainer", "The name of the output CaloCellContainer" } |
|
ServiceHandle< IAthRNGSvc > | m_rndmGenSvc {this, "RandomSvc", "AthRNGSvc", ""} |
|
Gaudi::Property< std::string > | m_randomEngineName {this, "RandomStream", ""} |
|
Gaudi::Property< std::string > | m_caloCellsOutputName {this, "CaloCellsOutputName", "AllCalo"} |
|
ServiceHandle< ISF::ITruthSvc > | m_truthRecordSvc {this,"ParticleTruthSvc", "ISF_TruthRecordSvc", "ISF Particle Truth Svc"} |
|
- Author
- Elmar.Ritsch -at- cern.ch, Geraldine.Conti -at- cern.ch, Flavia.Dias -at- cern.ch
Definition at line 42 of file FastCaloSimV2Tool.h.
◆ FastCaloSimV2Tool()
ISF::FastCaloSimV2Tool::FastCaloSimV2Tool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~FastCaloSimV2Tool()
virtual ISF::FastCaloSimV2Tool::~FastCaloSimV2Tool |
( |
| ) |
|
|
virtualdefault |
◆ chronoStart()
const ChronoEntity* ISF::BaseSimulatorTool::chronoStart |
( |
const IChronoSvc::ChronoTag & |
tag | ) |
|
|
inlineinherited |
◆ chronoStop()
const ChronoEntity* ISF::BaseSimulatorTool::chronoStop |
( |
const IChronoSvc::ChronoTag & |
tag | ) |
|
|
inlineinherited |
◆ commonSetup()
StatusCode ISF::FastCaloSimV2Tool::commonSetup |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 101 of file FastCaloSimV2Tool.cxx.
110 std::string chronoName=this->
name()+
"_"+
tool.name();
121 return StatusCode::FAILURE;
125 return StatusCode::SUCCESS;
◆ initialize()
StatusCode ISF::FastCaloSimV2Tool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ releaseEvent()
StatusCode ISF::FastCaloSimV2Tool::releaseEvent |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
◆ releaseEventST()
StatusCode ISF::FastCaloSimV2Tool::releaseEventST |
( |
| ) |
|
|
finaloverridevirtual |
◆ setupEvent()
StatusCode ISF::FastCaloSimV2Tool::setupEvent |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
◆ setupEventST()
StatusCode ISF::FastCaloSimV2Tool::setupEventST |
( |
| ) |
|
|
finaloverridevirtual |
◆ simFlavor()
|
inlinefinaloverridevirtual |
◆ simulate()
Simulation Call.
for anti protons and anti neutrons the kinetic energy should be calculated as Ekin = E() + M() instead of E() - M() this is achieved by setting an Ekin offset of 2*M() to the truth state
Reimplemented from ISF::BaseSimulatorTool.
Definition at line 162 of file FastCaloSimV2Tool.cxx.
165 ATH_MSG_VERBOSE(
"NEW PARTICLE! FastCaloSimV2Tool called with ISFParticle: " << isfp);
173 if(isfp.
ekin() < 10) {
174 ATH_MSG_VERBOSE(
"Skipping particle with Ekin: " << isfp.
ekin() <<
" MeV. Below the 10 MeV threshold.");
175 return StatusCode::SUCCESS;
179 truth.SetPtEtaPhiM(particle_direction.perp(), particle_direction.eta(), particle_direction.phi(), isfp.
mass());
188 ATH_MSG_VERBOSE(
"Found anti-proton/neutron, setting Ekin offset in TFCSTruthState.");
194 ATH_MSG_DEBUG(
" particle: " << isfp.
pdgCode() <<
" Ekin: " << isfp.
ekin() <<
" position eta: " << particle_position.eta() <<
" direction eta: " << particle_direction.eta() <<
" position phi: " << particle_position.phi() <<
" direction phi: " << particle_direction.phi());
197 if(
extrapol.IDCaloBoundary_eta() != -999){
198 CLHEP::HepRandomEngine *rndmEngine = rngWrapper->
getEngine(ctx);
209 for(
const auto& iter : simulstate.cells()) {
220 if (someSecondaries && !someSecondaries->empty()) {
231 truth.updateChildParticleProperties();
233 for (
auto *secondary : *someSecondaries) {
234 if (secondary->getTruthBinding()) {
235 secondaries.push_back(secondary);
238 ATH_MSG_WARNING(
"Secondary particle created by PunchThroughTool not written out to truth.\n Parent (" << isfp <<
")\n Secondary (" << *secondary <<
")");
242 delete someSecondaries;
245 simulstate.DoAuxInfoCleanup();
247 else ATH_MSG_DEBUG(
"Skipping simulation as extrapolation to ID-Calo boundary failed.");
250 return StatusCode::SUCCESS;
◆ simulateVector()
|
inlineoverridevirtualinherited |
◆ sysInitialize()
virtual StatusCode ISF::BaseSimulatorTool::sysInitialize |
( |
| ) |
|
|
inlineoverridevirtualinherited |
◆ m_caloCellKey
◆ m_caloCellMakerToolsRelease
PublicToolHandleArray<ICaloCellMakerTool> ISF::FastCaloSimV2Tool::m_caloCellMakerToolsRelease {this, "CaloCellMakerTools_release", {}, ""} |
|
private |
◆ m_caloCellMakerToolsSetup
PublicToolHandleArray<ICaloCellMakerTool> ISF::FastCaloSimV2Tool::m_caloCellMakerToolsSetup {this, "CaloCellMakerTools_setup", {}, ""} |
|
private |
◆ m_caloCellsOutputName
Gaudi::Property<std::string> ISF::FastCaloSimV2Tool::m_caloCellsOutputName {this, "CaloCellsOutputName", "AllCalo"} |
|
private |
◆ m_chrono
ServiceHandle<IChronoStatSvc> ISF::BaseSimulatorTool::m_chrono {this, "ChronoStatService", "ChronoStatSvc"} |
|
protectedinherited |
◆ m_doPunchThrough
bool ISF::FastCaloSimV2Tool::m_doPunchThrough {true} |
|
private |
◆ m_FastCaloSimCaloExtrapolation
PublicToolHandle<IFastCaloSimCaloExtrapolation> ISF::FastCaloSimV2Tool::m_FastCaloSimCaloExtrapolation {this, "FastCaloSimCaloExtrapolation", "", ""} |
|
private |
◆ m_paramSvc
◆ m_punchThroughTool
ToolHandle< IPunchThroughTool > ISF::FastCaloSimV2Tool::m_punchThroughTool {this, "PunchThroughTool", ""} |
|
private |
◆ m_randomEngineName
Gaudi::Property<std::string> ISF::FastCaloSimV2Tool::m_randomEngineName {this, "RandomStream", ""} |
|
private |
◆ m_rndmGenSvc
◆ m_theContainer
◆ m_theContainerPtr
◆ m_truthRecordSvc
ServiceHandle<ISF::ITruthSvc> ISF::FastCaloSimV2Tool::m_truthRecordSvc {this,"ParticleTruthSvc", "ISF_TruthRecordSvc", "ISF Particle Truth Svc"} |
|
private |
The documentation for this class was generated from the following files:
double ekin() const
Kinetic energy.
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
void set_Ekin_off(double val)
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
int pdgCode() const
PDG value.
#define ATH_MSG_VERBOSE(x)
const Amg::Vector3D & position() const
The current position of the ISFParticle.
AtlasDetDescr::AtlasRegion nextGeoID() const
next geoID the particle will be simulated in
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const CaloCell * findCell(const IdentifierHash theHash) const
fast find method given identifier hash.
A wrapper class for event-slot-local random engines.
const Amg::Vector3D & momentum() const
The current momentum vector of the ISFParticle.
virtual StatusCode sysInitialize() override
Perform system initialization for an algorithm.
Eigen::Matrix< double, 3, 1 > Vector3D
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Data object for each calorimeter readout cell.
#define ATH_MSG_WARNING(x)
void set_vertex(const TLorentzVector &val)
virtual void addEnergy(float energy)
add energy
double mass() const
mass of the particle