ATLAS Offline Software
Loading...
Searching...
No Matches
ISF::KinematicSimSelector Class Referencefinal

Simplistic kinematic filter on energy and pseudorapidity. More...

#include <KinematicSimSelector.h>

Inheritance diagram for ISF::KinematicSimSelector:
Collaboration diagram for ISF::KinematicSimSelector:

Public Member Functions

 KinematicSimSelector (const std::string &t, const std::string &n, const IInterface *p)
 Constructor with parameters.
 ~KinematicSimSelector ()
 Destructor.
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual bool passSelectorCuts (const ISFParticle &particle) const override
 check whether given particle passes all cuts -> will be used for routing decision
virtual StatusCode sysInitialize () override
 Gaudi sysInitialize() method.
virtual ServiceHandle< ISimulationSvc > *simulator ATLAS_NOT_THREAD_SAFE () override
 return a handle on the simulator
virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE () override
 return the simulation service ID
virtual void beginEvent ATLAS_NOT_THREAD_SAFE () override
 called at the beginning of each athena event (can be used for eg.
virtual void endEvent ATLAS_NOT_THREAD_SAFE () override
 called at the end of each athena event (can be used for eg.
virtual void update ATLAS_NOT_THREAD_SAFE (const ISFParticle &) override
 update internal event representation
virtual bool isDynamic () override
 return if is this a static or dynamic SimulationSelector (is used by fully dynamic particle routers)
virtual ISF::SimulationFlavor simFlavor () const override
 return the simulation flavor
virtual void initializeSelector () override
 initialize Selector
virtual bool selfSelect (const ISFParticle &particle) const override
 make the routing decision
bool pass (const ISFParticle &particle) const
 check whether the given particle passes all cuts

Protected Attributes

float m_cut_minPosEta
 minimum pseudorapidity of particle position
float m_cut_maxPosEta
 maximum pseudorapidity of particle position
float m_cut_minMomEta
 minimum pseudorapidity of particle momentum
float m_cut_maxMomEta
 maximum pseudorapidity of particle momentum
double m_cut_minMom2
 minimum squarde particle momentum magnitude
double m_cut_maxMom2
 maximum squared particle momentum magnitude
double m_cut_maxEkin
 maximum particle kinetic energy
float m_cut_charge
 particle charge
int m_cut_pdg
 particle PDG code

Private Member Functions

void SimulationFlavorHandler (Gaudi::Details::PropertyBase &)

Private Attributes

ServiceHandle< IPartPropSvc > m_partPropSvc
ServiceHandle< ISimulationSvcm_simulator {this, "Simulator", "", "simulation service assigned to a single advisor"}
Gaudi::Property< bool > m_isDynamic {this, "IsDynamic", false, "this selector is either dynamic or static"}
Gaudi::Property< bool > m_invertCuts {this, "InvertCuts", false, "invert the result given by passesCuts(..) method"}
Gaudi::CheckedProperty< unsigned short > m_simFlavorProp {this, "SimulationFlavor", 0, "the simulation flavour that this selector will select"}
ISF::SimulationFlavor m_simflavor {ISF::UndefinedSim}
 simulation flavor

Detailed Description

Simplistic kinematic filter on energy and pseudorapidity.

Author
Elmar.Ritsch -at- cern.ch

Definition at line 28 of file KinematicSimSelector.h.

Constructor & Destructor Documentation

◆ KinematicSimSelector()

ISF::KinematicSimSelector::KinematicSimSelector ( const std::string & t,
const std::string & n,
const IInterface * p )

Constructor with parameters.

Constructor.

Definition at line 17 of file KinematicSimSelector.cxx.

20 , m_partPropSvc("PartPropSvc", name())
21{
22 declareProperty("MinPosEta", m_cut_minPosEta , "Minimum Position Pseudorapidity" );
23 declareProperty("MaxPosEta", m_cut_maxPosEta , "Maximum Position Pseudorapidity" );
24 declareProperty("MinMomEta", m_cut_minMomEta , "Minimum Momentum Pseudorapidity" );
25 declareProperty("MaxMomEta", m_cut_maxMomEta , "Maximum Momentum Pseudorapidity" );
26 declareProperty("MinMom", m_cut_minMom2 , "Minimum Particle Momentum" );
27 declareProperty("MaxMom", m_cut_maxMom2 , "Maximum Particle Momentum" );
28 declareProperty("MaxEkin", m_cut_maxEkin , "Maximum Particle Kinetic Energy" );
29 declareProperty("Charge", m_cut_charge , "Particle Charge" );
30 declareProperty("ParticlePDG", m_cut_pdg , "Particle PDG Code" );
31}
BaseSimulationSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
double m_cut_maxMom2
maximum squared particle momentum magnitude
double m_cut_maxEkin
maximum particle kinetic energy
float m_cut_maxMomEta
maximum pseudorapidity of particle momentum
float m_cut_maxPosEta
maximum pseudorapidity of particle position
KinematicParticleCuts()
Constructor.
float m_cut_minMomEta
minimum pseudorapidity of particle momentum
float m_cut_minPosEta
minimum pseudorapidity of particle position
double m_cut_minMom2
minimum squarde particle momentum magnitude
float m_cut_charge
particle charge
ServiceHandle< IPartPropSvc > m_partPropSvc

◆ ~KinematicSimSelector()

ISF::KinematicSimSelector::~KinematicSimSelector ( )

Destructor.

Definition at line 34 of file KinematicSimSelector.cxx.

35{
36}

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/5]

virtual ServiceHandle< ISimulationSvc > *simulator ISF::BaseSimulationSelector::ATLAS_NOT_THREAD_SAFE ( )
overridevirtualinherited

return a handle on the simulator

◆ ATLAS_NOT_THREAD_SAFE() [2/5]

virtual SimSvcID simSvcID ISF::BaseSimulationSelector::ATLAS_NOT_THREAD_SAFE ( )
overridevirtualinherited

return the simulation service ID

◆ ATLAS_NOT_THREAD_SAFE() [3/5]

virtual void beginEvent ISF::BaseSimulationSelector::ATLAS_NOT_THREAD_SAFE ( )
overridevirtualinherited

called at the beginning of each athena event (can be used for eg.

resetting dynamic selectors)

◆ ATLAS_NOT_THREAD_SAFE() [4/5]

virtual void endEvent ISF::BaseSimulationSelector::ATLAS_NOT_THREAD_SAFE ( )
overridevirtualinherited

called at the end of each athena event (can be used for eg.

resetting dynamic selectors)

◆ ATLAS_NOT_THREAD_SAFE() [5/5]

virtual void update ISF::BaseSimulationSelector::ATLAS_NOT_THREAD_SAFE ( const ISFParticle & )
overridevirtualinherited

update internal event representation

◆ finalize()

StatusCode ISF::KinematicSimSelector::finalize ( )
overridevirtual

Definition at line 70 of file KinematicSimSelector.cxx.

71{
72 ATH_MSG_VERBOSE("Finalizing ...");
73 return StatusCode::SUCCESS;
74}
#define ATH_MSG_VERBOSE(x)

◆ initialize()

StatusCode ISF::KinematicSimSelector::initialize ( )
overridevirtual

Definition at line 39 of file KinematicSimSelector.cxx.

40{
41 ATH_MSG_VERBOSE("Initializing ...");
42 ATH_CHECK(m_partPropSvc.retrieve());
43
44 HepPDT::ParticleDataTable* particleDataTable;
45 particleDataTable = (HepPDT::ParticleDataTable*) m_partPropSvc->PDT();
46
47 if(particleDataTable == 0)
48 {
49 ATH_MSG_ERROR("PDG table not found");
50 return StatusCode::FAILURE;
51 }
52
53 const HepPDT::ParticleData* data = particleDataTable->particle(HepPDT::ParticleID(abs(m_cut_pdg)));
54
55 double mass = 0;
56 if(data) mass = data->mass().value();
57
58
59 // compute and store the square of the momentum cuts (faster comparisons)
62
63 // if use kinetic energy
65
66 return StatusCode::SUCCESS;
67}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

◆ initializeSelector()

void ISF::BaseSimulationSelector::initializeSelector ( )
overridevirtualinherited

initialize Selector

Definition at line 84 of file BaseSimulationSelector.cxx.

84{ }

◆ isDynamic()

bool ISF::BaseSimulationSelector::isDynamic ( )
overridevirtualinherited

return if is this a static or dynamic SimulationSelector (is used by fully dynamic particle routers)

return if is this a static or dynamic SimulationSelector (is used by fully dynamic partilce routers)

Definition at line 69 of file BaseSimulationSelector.cxx.

69 {
70 return m_isDynamic;
71}
Gaudi::Property< bool > m_isDynamic

◆ pass()

bool ISF::KinematicParticleCuts::pass ( const ISFParticle & particle) const
inlineinherited

check whether the given particle passes all cuts

◆ passSelectorCuts()

bool ISF::KinematicSimSelector::passSelectorCuts ( const ISFParticle & particle) const
overridevirtual

check whether given particle passes all cuts -> will be used for routing decision

Definition at line 76 of file KinematicSimSelector.cxx.

77{
78 return ISF::KinematicParticleCuts::pass(particle);
79}
bool pass(const ISFParticle &particle) const
check whether the given particle passes all cuts

◆ selfSelect()

bool ISF::BaseSimulationSelector::selfSelect ( const ISFParticle & particle) const
overridevirtualinherited

make the routing decision

Definition at line 54 of file BaseSimulationSelector.cxx.

55{
56 bool pass = passSelectorCuts(particle);
57 pass = ( m_invertCuts ? (!pass) : pass );
58
59 return pass;
60}
Gaudi::Property< bool > m_invertCuts

◆ simFlavor()

ISF::SimulationFlavor ISF::BaseSimulationSelector::simFlavor ( ) const
overridevirtualinherited

return the simulation flavor

return the simulation service ID

Definition at line 79 of file BaseSimulationSelector.cxx.

79 {
80 return m_simflavor;
81}
ISF::SimulationFlavor m_simflavor
simulation flavor

◆ SimulationFlavorHandler()

void ISF::BaseSimulationSelector::SimulationFlavorHandler ( Gaudi::Details::PropertyBase & )
privateinherited

Definition at line 20 of file BaseSimulationSelector.cxx.

21{
22 // FIXME would probably be better to have this in SimulationFlavor.h
23 switch(m_simFlavorProp.value())
24 {
25 case 1: m_simflavor = ISF::ParticleKiller; break;
26 case 2: m_simflavor = ISF::Fatras; break;
27 case 3: m_simflavor = ISF::Geant4; break;
28 case 4: m_simflavor = ISF::FastCaloSim; break;
29 case 5: m_simflavor = ISF::FastCaloSimV2; break;
30 case 6: m_simflavor = ISF::Parametric; break;
31 case 7: m_simflavor = ISF::FatrasPileup; break;
32 case 8: m_simflavor = ISF::FastCaloSimPileup; break;
33 }
34}
Gaudi::CheckedProperty< unsigned short > m_simFlavorProp
@ FastCaloSimPileup
@ ParticleKiller
@ FastCaloSimV2

◆ sysInitialize()

StatusCode ISF::BaseSimulationSelector::sysInitialize ( )
overridevirtualinherited

Gaudi sysInitialize() method.

Definition at line 37 of file BaseSimulationSelector.cxx.

38{
40
41 if (!m_simulator.empty()) {
42 ATH_CHECK( m_simulator.retrieve() );
43 }
44
45 return StatusCode::SUCCESS;
46}
virtual StatusCode sysInitialize() override
ServiceHandle< ISimulationSvc > m_simulator

Member Data Documentation

◆ m_cut_charge

float ISF::KinematicParticleCuts::m_cut_charge
protectedinherited

particle charge

Definition at line 43 of file KinematicParticleCuts.h.

◆ m_cut_maxEkin

double ISF::KinematicParticleCuts::m_cut_maxEkin
protectedinherited

maximum particle kinetic energy

Definition at line 42 of file KinematicParticleCuts.h.

◆ m_cut_maxMom2

double ISF::KinematicParticleCuts::m_cut_maxMom2
protectedinherited

maximum squared particle momentum magnitude

Definition at line 41 of file KinematicParticleCuts.h.

◆ m_cut_maxMomEta

float ISF::KinematicParticleCuts::m_cut_maxMomEta
protectedinherited

maximum pseudorapidity of particle momentum

Definition at line 39 of file KinematicParticleCuts.h.

◆ m_cut_maxPosEta

float ISF::KinematicParticleCuts::m_cut_maxPosEta
protectedinherited

maximum pseudorapidity of particle position

Definition at line 37 of file KinematicParticleCuts.h.

◆ m_cut_minMom2

double ISF::KinematicParticleCuts::m_cut_minMom2
protectedinherited

minimum squarde particle momentum magnitude

Definition at line 40 of file KinematicParticleCuts.h.

◆ m_cut_minMomEta

float ISF::KinematicParticleCuts::m_cut_minMomEta
protectedinherited

minimum pseudorapidity of particle momentum

Definition at line 38 of file KinematicParticleCuts.h.

◆ m_cut_minPosEta

float ISF::KinematicParticleCuts::m_cut_minPosEta
protectedinherited

minimum pseudorapidity of particle position

Definition at line 36 of file KinematicParticleCuts.h.

◆ m_cut_pdg

int ISF::KinematicParticleCuts::m_cut_pdg
protectedinherited

particle PDG code

Definition at line 44 of file KinematicParticleCuts.h.

◆ m_invertCuts

Gaudi::Property<bool> ISF::BaseSimulationSelector::m_invertCuts {this, "InvertCuts", false, "invert the result given by passesCuts(..) method"}
privateinherited

Definition at line 75 of file BaseSimulationSelector.h.

75{this, "InvertCuts", false, "invert the result given by passesCuts(..) method"};

◆ m_isDynamic

Gaudi::Property<bool> ISF::BaseSimulationSelector::m_isDynamic {this, "IsDynamic", false, "this selector is either dynamic or static"}
privateinherited

Definition at line 74 of file BaseSimulationSelector.h.

74{this, "IsDynamic", false, "this selector is either dynamic or static"};

◆ m_partPropSvc

ServiceHandle<IPartPropSvc> ISF::KinematicSimSelector::m_partPropSvc
private

Definition at line 31 of file KinematicSimSelector.h.

◆ m_simflavor

ISF::SimulationFlavor ISF::BaseSimulationSelector::m_simflavor {ISF::UndefinedSim}
privateinherited

simulation flavor

Definition at line 78 of file BaseSimulationSelector.h.

◆ m_simFlavorProp

Gaudi::CheckedProperty<unsigned short> ISF::BaseSimulationSelector::m_simFlavorProp {this, "SimulationFlavor", 0, "the simulation flavour that this selector will select"}
privateinherited

Definition at line 76 of file BaseSimulationSelector.h.

76{this, "SimulationFlavor", 0, "the simulation flavour that this selector will select"};

◆ m_simulator

ServiceHandle<ISimulationSvc> ISF::BaseSimulationSelector::m_simulator {this, "Simulator", "", "simulation service assigned to a single advisor"}
privateinherited

Definition at line 73 of file BaseSimulationSelector.h.

73{this, "Simulator", "", "simulation service assigned to a single advisor"};

The documentation for this class was generated from the following files: