| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
Gaudi::ParticlePropertySvc Class Reference

This service provides access to particle properties. More...

`#include <src/ParticlePropertySvc.h>`

Inheritance diagram for Gaudi::ParticlePropertySvc:
[legend]
Collaboration diagram for Gaudi::ParticlePropertySvc:
[legend]

## Public Types
typedef ParticleProperty * | mapped_type
typedef std::map< int, mapped_type > | MapID
typedef std::map< std::string, mapped_type > | MapName
typedef std::map< int, mapped_type > | MapStdHepID
typedef std::map< int, mapped_type > | MapPythiaID
typedef std::vector< ParticleProperty * > | VectPP
typedef VectPP::const_iterator | const_iterator
typedef VectPP::iterator | iterator
Public Types inherited from extends< Service, IParticlePropertySvc >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...

## Public Member Functions
StatusCode | initialize () override
| Initialise the service. More...
StatusCode | finalize () override
| Finalise the service. More...
StatusCode | push_back (const std::string &particle, int geantId, int jetsetId, double charge, double mass, double tlife, const std::string &evtName, int pythiaId, double maxWidth) override
| Create a new particle property. More...
StatusCode | push_back (ParticleProperty *pp) override
| Add a new particle property. More...
const_iterator | begin () const override
| Get a const reference to the beginning of the container. More...
const_iterator | end () const override
| Get a const reference to the end of the container. More...
int | size () const override
| Get the container size. More...
ParticleProperty * | find (int geantId) override
| Retrieve a property by geant3 id. More...
ParticleProperty * | find (const std::string &name) override
| Retrieve a property by particle name. More...
ParticleProperty * | findByStdHepID (int stdHepId) override
| Retrieve a property by StdHep id. More...
ParticleProperty * | findByPythiaID (int pythiaID) override
| Retrieve a property by Pythia id. More...
StatusCode | erase (int geantId) override
| Erase a property by geant3 id. More...
StatusCode | erase (const std::string &name) override
| Erase a property by particle name. More...
StatusCode | eraseByStdHepID (int stdHepId) override
| Erase a property by StdHep id ??? More...
| ParticlePropertySvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor. More...
| ~ParticlePropertySvc () override=default
| Destructor. More...
Public Member Functions inherited from extends< Service, IParticlePropertySvc >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job. More...
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist. More...
template<class T >
StatusCode | declarePrivateTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Private tool. More...
template<class T >
StatusCode | declarePublicTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Public tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| PropertyHolder ()=default
| ~PropertyHolder () override=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") const
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| convert the property to the string More...
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override
| get all properties More...
bool | hasProperty (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
| Specializations for various GaudiHandles. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Protected Member Functions
const ParticleProperty * | anti (const ParticleProperty *pp) const
| helper (protected) function to find an antiparticle for the given particle ID (StdHepID) More...
StatusCode | setAntiParticles ()
| helper (protected) function to set the valid particle<–>antiparticle relations More...
StatusCode | rebuild ()
| rebuild "the linear container" from the map More...
StatusCode | erase (const ParticleProperty *pp)
| remove particle property from all maps More...
StatusCode | parse (const std::string &file)
| parse the file More...
StatusCode | parse ()
| Parses the file and fill all the maps. More...
StatusCode | addParticles ()
bool | diff (const ParticleProperty *o, const ParticleProperty *n, const MSG::Level l=MSG::DEBUG) const
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Private Attributes
Gaudi::Property< std::string > | m_filename
Gaudi::Property< std::vector< std::string > > | m_other {this, "OtherFiles", {}, "additional file names"}
Gaudi::Property< std::vector< std::string > > | m_particles
VectPP | m_vectpp
| Vector of all particle properties. More...
MapID | m_idmap
| Map for geant IDs. More...
MapName | m_namemap
| Map for particle names. More...
MapStdHepID | m_stdhepidmap
| Map for StdHep Ids. More...
MapPythiaID | m_pythiaidmap
| Map for Pythia Ids. More...
std::set< std::unique_ptr< ParticleProperty > > | m_owned
std::set< std::string > | m_replaced
SmartIF< IFileAccess > | m_fileAccess

## Additional Inherited Members
Protected Attributes inherited from Service
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, "[[deprecated]] unused"}
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. More...

## Detailed Description

This service provides access to particle properties.

The settable property of this service is the ParticlePropertiesFile, an ASCII file containing the list of properties for the particles. The default file is: "$PARAMFILESROOT/data/ParticleTable.txt" or if $PARAMFILESROOT is not defined "ParticleTable.txt"

Author
  Iain Last
  Gloria Corti 8/11/1999 change default file from $CDF/particle.cdf to $LHCBDBASE/cdf/particle.cdf on Unix and use environment variable also on WinNT Also introduce finding of particle by StdHepID
  Vanya BELYAEV

Date
  2006-09-22 1) Modified to add possibility to redefine properties of existing particles and to read additional files. New property "OtherFiles" (default is empty vector) is introduces. Service parsed additional files after the main one.

// read additional properties
ParticlePropertySvc.OtherFiles = {
"$SOMELOCATION1/file1.txt" ,
"$SOMELOCATION2/file2.txt"
} ;

2) Add possibility to modify only certain particles through the new property "Particles" (default is empty list), Each line is interpreted as a line in particle data table, e.g.

// redefine the properties of H_20 and H_30 particles:
ParticlePropertySvc.Particles = {
"H_20 88 35 0.0 120.0 9.4e-26 Higgs'0 35 0.0e+00" ,
"H_30 89 36 0.0 40.0 1.0e-12 A0 36 0.0e+00"
} ;

The replaces/modified particles are reported.

Definition at line 72 of file ParticlePropertySvc.h.

## Member Typedef Documentation

typedef VectPP::const_iterator IParticlePropertySvc::const_iterator

Definition at line 26 of file IParticlePropertySvc.h.

typedef VectPP::iterator IParticlePropertySvc::iterator

Definition at line 27 of file IParticlePropertySvc.h.

typedef std::map<int, mapped_type> Gaudi::ParticlePropertySvc::MapID

Definition at line 77 of file ParticlePropertySvc.h.

typedef std::map<std::string, mapped_type> Gaudi::ParticlePropertySvc::MapName

Definition at line 78 of file ParticlePropertySvc.h.

typedef ParticleProperty* Gaudi::ParticlePropertySvc::mapped_type

Definition at line 76 of file ParticlePropertySvc.h.

typedef std::map<int, mapped_type> Gaudi::ParticlePropertySvc::MapPythiaID

Definition at line 80 of file ParticlePropertySvc.h.

typedef std::map<int, mapped_type> Gaudi::ParticlePropertySvc::MapStdHepID

Definition at line 79 of file ParticlePropertySvc.h.

typedef std::vector<ParticleProperty*> IParticlePropertySvc::VectPP

Definition at line 25 of file IParticlePropertySvc.h.

## Constructor & Destructor Documentation

Gaudi::ParticlePropertySvc::ParticlePropertySvc | ( | const std::string & | name,
|  | ISvcLocator * | svc
| ) |  |

Standard Constructor.

Parameters

  name | String with service name
  svc | Pointer to service locator interface

Todo:
  : remove reference to LHCb-specific environment variable

Definition at line 54 of file ParticlePropertySvc.cpp.

56 : base_class( name, svc )
57 {
59 // Redefine the default name:
60 if( System::getEnv("PARAMFILESROOT", m_filename.value()) )
61 {
62 m_filename.value() += "/data/ParticleTable.txt";
63 }
64 }
System::getEnv
GAUDI_API std::string getEnv(const char *var)
get a particular environment variable (returning "UNKNOWN" if not set)
Definition: System.cpp:550
extends< Service, IParticlePropertySvc >::base_class
extends base_class
Typedef to this class.
Definition: extends.h:14
Gaudi::ParticlePropertySvc::m_filename
Gaudi::Property< std::string > m_filename
Definition: ParticlePropertySvc.h:164

Gaudi::ParticlePropertySvc::~ParticlePropertySvc | ( |  | ) |
| override default

Destructor.

## Member Function Documentation

StatusCode Gaudi::ParticlePropertySvc::addParticles | ( |  | ) |
| protected

Definition at line 418 of file ParticlePropertySvc.cpp.

419 {
420 // loop over all "explicit" particles
421 for ( const auto& item : m_particles )
422 {
423 std::istringstream input( item ) ;
424 // get the name
425 std::string p_name ;
426 int p_geant ;
427 int p_jetset ;
428 double p_charge ;
429 double p_mass ;
430 double p_ltime ;
431 std::string p_evtgen ;
432 int p_pythia ;
433 double p_maxwid ;
434 if ( input
435 >> p_name
436 >> p_geant
437 >> p_jetset
438 >> p_charge
439 >> p_mass
440 >> p_ltime
441 >> p_evtgen
442 >> p_pythia
443 >> p_maxwid )
444 {
445 always()
446 << " Add/Modify the particle: "
447 << " name='" << p_name << "'"
448 << " geant=" << p_geant
449 << " jetset=" << p_jetset
450 << " charge=" << p_charge
451 << " mass=" << p_mass
452 << " ltime=" << p_ltime
453 << " evtgen='" << p_evtgen << "'"
454 << " pythia=" << p_pythia
455 << " maxwid=" << p_maxwid << endmsg ;
456 //
457 StatusCode sc = push_back
458 ( p_name ,
459 p_geant ,
460 p_jetset ,
461 p_charge ,
462 p_mass * Gaudi::Units::GeV ,
463 p_ltime * Gaudi::Units::s ,
464 p_evtgen ,
465 p_pythia ,
466 p_maxwid * Gaudi::Units::GeV ) ;
467 if ( sc.isFailure() ) { return sc ; } // RETURN
468 }
469 else
470 {
471 error()
472 << " could not parse '" << item << "'" << endmsg ;
473 return StatusCode::FAILURE ; // RETURN
474 }
475 }
476 //
477 return StatusCode::SUCCESS ;
478 }
StatusCode::SUCCESS
Definition: StatusCode.h:30
Gaudi::Units::s
constexpr double s
Definition: SystemOfUnits.h:134
std::istringstream
STL class.
StatusCode::FAILURE
Definition: StatusCode.h:29
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
Gaudi::ParticlePropertySvc::push_back
StatusCode push_back(const std::string &particle, int geantId, int jetsetId, double charge, double mass, double tlife, const std::string &evtName, int pythiaId, double maxWidth) override
Create a new particle property.
Definition: ParticlePropertySvc.cpp:158
std::string
STL class.
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:117
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Gaudi::ParticlePropertySvc::m_particles
Gaudi::Property< std::vector< std::string > > m_particles
Definition: ParticlePropertySvc.h:167
Gaudi::Units::GeV
constexpr double GeV
Definition: SystemOfUnits.h:160
CommonMessagingBase::always
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
Definition: CommonMessaging.h:108
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

const ParticleProperty * Gaudi::ParticlePropertySvc::anti | ( | const ParticleProperty * | pp | ) | const
| protected

helper (protected) function to find an antiparticle for the given particle ID (StdHepID)

Helper (protected) function to find an antiparticle for the given particle ID (StdHepID)

Parameters

  pp | pointer to particle property

Returns
  pointer to antiparticle

Definition at line 358 of file ParticlePropertySvc.cpp.

359 {
360 if ( !pp ) { return nullptr ; }
361 const int ID = pp->pdgID() ;
362 const int antiID = -1 * ID ;
363 for ( const auto& ap : m_vectpp )
364 {
365 if ( ap && antiID == ap->pdgID() ) { return ap ; } // RETURN
366 };
367 //
368 return pp ; // RETURN
369 }
ParticleProperty::pdgID
int pdgID() const
Get the PDG (= JETSET) ID.
Definition: ParticleProperty.h:60
compareOutputFiles.pp
pp
Definition: compareOutputFiles.py:417
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170

const_iterator Gaudi::ParticlePropertySvc::begin | ( |  | ) | const
| inline override

Get a const reference to the beginning of the container.

Definition at line 111 of file ParticlePropertySvc.h.

111 { return m_vectpp.begin(); }
std::vector::begin
T begin(T...args)
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170

bool Gaudi::ParticlePropertySvc::diff | ( | const ParticleProperty * | o,
|  | const ParticleProperty * | n,
|  | const MSG::Level | l = `MSG::DEBUG`
| ) |  | const
| protected

Definition at line 487 of file ParticlePropertySvc.cpp.

490 {
491 //
492 if ( o == n ) { return false ; }
493 //
494 auto& log = msgStream();
495 log << l ;
496 if ( !o || !n )
497 {
498 log << MSG::WARNING << " ParticleProperty* point to NULL" << endmsg ;
499 return true ; // RETURN
500 }
501 //
502 bool result = false ;
503 if ( o -> particle () != n -> particle () )
504 {
505 result = true ;
506 log << " Name:'" << o -> particle () << "'/'" << n -> particle () << "'" ;
507 }
508 if ( o -> geantID () != n -> geantID () )
509 {
510 result = true ;
511 log << " G3ID:" << o -> geantID () << "/" << n -> geantID () << "'" ;
512 }
513 if ( o -> pdgID () != n -> pdgID () )
514 {
515 result = true ;
516 log << " PDGID:" << o -> pdgID () << "/" << n -> pdgID () << "'" ;
517 }
518 if ( o -> pythiaID () != n -> pythiaID () )
519 {
520 result = true ;
521 log << " PYID:" << o -> pythiaID () << "/" << n -> pythiaID () << "'" ;
522 }
523 if ( o -> charge () != n -> charge () )
524 {
525 result = true ;
526 log << " Q:" << o -> charge () << "/" << n -> charge () << "'" ;
527 }
528 if ( o -> mass () != n -> mass () )
529 {
530 result = true ;
531 log << " M:" << o -> mass () << "/" << n -> mass () << "'" ;
532 }
533 if ( o -> lifetime () != n -> lifetime () )
534 {
535 result = true ;
536 log << " T:" << o -> lifetime () << "/" << n -> lifetime () << "'" ;
537 }
538 if ( o -> evtGenName () != n -> evtGenName () )
539 {
540 result = true ;
541 log << " EvtGen:" << o -> evtGenName () << "/" << n -> evtGenName () << "'" ;
542 }
543 if ( o -> maxWidth () != n -> maxWidth () )
544 {
545 result = true ;
546 log << " WMAX:" << o -> maxWidth () << "/" << n -> maxWidth () << "'" ;
547 }
548 if ( result ) { log << endmsg ; }
549 //
550 return result ;
551 }
gaudirun.l
dictionary l
Definition: gaudirun.py:421
CommonMessagingBase::msgStream
MsgStream & msgStream() const
Return an uninitialized MsgStream.
Definition: CommonMessaging.h:88
MSG::WARNING
Definition: IMessageSvc.h:20
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
Gaudi.Configuration.log
log
Definition: Configuration.py:13

const_iterator Gaudi::ParticlePropertySvc::end | ( |  | ) | const
| inline override

Get a const reference to the end of the container.

Definition at line 113 of file ParticlePropertySvc.h.

113 { return m_vectpp.end(); }
std::vector::end
T end(T...args)
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170

StatusCode Gaudi::ParticlePropertySvc::erase | ( | int | geantId | ) |
| inline override

Erase a property by geant3 id.

Definition at line 125 of file ParticlePropertySvc.h.

125 { return erase( find( geantId ) ); }
Gaudi::ParticlePropertySvc::erase
StatusCode erase(int geantId) override
Erase a property by geant3 id.
Definition: ParticlePropertySvc.h:125
Gaudi::ParticlePropertySvc::find
ParticleProperty * find(int geantId) override
Retrieve a property by geant3 id.
Definition: ParticlePropertySvc.h:117

StatusCode Gaudi::ParticlePropertySvc::erase | ( | const std::string & | name | ) |
| inline override

Erase a property by particle name.

Definition at line 127 of file ParticlePropertySvc.h.

127 { return erase( find( name ) ); }
Gaudi::ParticlePropertySvc::erase
StatusCode erase(int geantId) override
Erase a property by geant3 id.
Definition: ParticlePropertySvc.h:125
Gaudi::ParticlePropertySvc::find
ParticleProperty * find(int geantId) override
Retrieve a property by geant3 id.
Definition: ParticlePropertySvc.h:117

StatusCode Gaudi::ParticlePropertySvc::erase | ( | const ParticleProperty * | pp | ) |
| protected

remove particle property from all maps

Definition at line 260 of file ParticlePropertySvc.cpp.

261 {
262 if ( !pp ) { return StatusCode::FAILURE ; }
263
264 _remove_ ( m_idmap , pp ) ;
265 _remove_ ( m_namemap , pp ) ;
266 _remove_ ( m_stdhepidmap , pp ) ;
267 _remove_ ( m_pythiaidmap , pp ) ;
268 //
269 return rebuild() ;
270 }
Gaudi::ParticlePropertySvc::rebuild
StatusCode rebuild()
rebuild "the linear container" from the map
Definition: ParticlePropertySvc.cpp:401
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172
Gaudi::ParticlePropertySvc::m_stdhepidmap
MapStdHepID m_stdhepidmap
Map for StdHep Ids.
Definition: ParticlePropertySvc.h:173
Gaudi::ParticlePropertySvc::m_idmap
MapID m_idmap
Map for geant IDs.
Definition: ParticlePropertySvc.h:171
Gaudi::ParticlePropertySvc::m_pythiaidmap
MapPythiaID m_pythiaidmap
Map for Pythia Ids.
Definition: ParticlePropertySvc.h:174

StatusCode Gaudi::ParticlePropertySvc::eraseByStdHepID | ( | int | stdHepId | ) |
| inline override

Erase a property by StdHep id ???

Definition at line 129 of file ParticlePropertySvc.h.

129 { return erase( findByStdHepID( stdHepId ) ); }
Gaudi::ParticlePropertySvc::erase
StatusCode erase(int geantId) override
Erase a property by geant3 id.
Definition: ParticlePropertySvc.h:125
Gaudi::ParticlePropertySvc::findByStdHepID
ParticleProperty * findByStdHepID(int stdHepId) override
Retrieve a property by StdHep id.
Definition: ParticlePropertySvc.h:121

StatusCode Gaudi::ParticlePropertySvc::finalize | ( |  | ) |
| override

Finalise the service.

finalize

finalize the base class

Definition at line 132 of file ParticlePropertySvc.cpp.

133 {
134 if ( !m_other.empty() )
135 {
136 info() << "Additional Properties have been read from files: "
137 << Gaudi::Utils::toString ( m_other )
138 << endmsg ;
139 }
140
141 if ( !m_replaced.empty() )
142 {
143 always() << "Properties have been redefined for "
144 << m_replaced.size() << " particles : "
145 << Gaudi::Utils::toString( m_replaced )
146 << endmsg ;
147 }
148
149 m_fileAccess.reset();
150
152 return Service::finalize () ;
153 }
std::set::empty
T empty(T...args)
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:174
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:123
Gaudi::Utils::toString
std::string toString(const TYPE &obj)
the generic implementation of the type conversion to the string
Definition: ToStream.h:367
Gaudi::ParticlePropertySvc::m_fileAccess
SmartIF< IFileAccess > m_fileAccess
Definition: ParticlePropertySvc.h:180
Gaudi::ParticlePropertySvc::m_replaced
std::set< std::string > m_replaced
Definition: ParticlePropertySvc.h:178
std::set::size
T size(T...args)
Gaudi::ParticlePropertySvc::m_other
Gaudi::Property< std::vector< std::string > > m_other
Definition: ParticlePropertySvc.h:166
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:88
CommonMessagingBase::always
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
Definition: CommonMessaging.h:108
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

ParticleProperty* Gaudi::ParticlePropertySvc::find | ( | int | geantId | ) |
| inline override

Retrieve a property by geant3 id.

Definition at line 117 of file ParticlePropertySvc.h.

117 { return m_idmap[geantId]; }
Gaudi::ParticlePropertySvc::m_idmap
MapID m_idmap
Map for geant IDs.
Definition: ParticlePropertySvc.h:171

ParticleProperty* Gaudi::ParticlePropertySvc::find | ( | const std::string & | name | ) |
| inline override

Retrieve a property by particle name.

Definition at line 119 of file ParticlePropertySvc.h.

119 { return m_namemap[name]; }
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:289
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172

ParticleProperty* Gaudi::ParticlePropertySvc::findByPythiaID | ( | int | pythiaID | ) |
| inline override

Retrieve a property by Pythia id.

Definition at line 123 of file ParticlePropertySvc.h.

123 { return m_pythiaidmap[pythiaID]; }
Gaudi::ParticlePropertySvc::m_pythiaidmap
MapPythiaID m_pythiaidmap
Map for Pythia Ids.
Definition: ParticlePropertySvc.h:174

ParticleProperty* Gaudi::ParticlePropertySvc::findByStdHepID | ( | int | stdHepId | ) |
| inline override

Retrieve a property by StdHep id.

Definition at line 121 of file ParticlePropertySvc.h.

121 { return m_stdhepidmap[stdHepId]; }
Gaudi::ParticlePropertySvc::m_stdhepidmap
MapStdHepID m_stdhepidmap
Map for StdHep Ids.
Definition: ParticlePropertySvc.h:173

StatusCode Gaudi::ParticlePropertySvc::initialize | ( |  | ) |
| override

Initialise the service.

initialize the service and setProperties

Definition at line 68 of file ParticlePropertySvc.cpp.

69 {
70 StatusCode sc = Service::initialize();
71 if ( sc.isFailure() ) { return sc ; }
72
73
74 sc = setProperties();
75 if ( sc.isFailure() )
76 {
77 error() << " Could not set the properties " << endmsg ;
78 return sc ;
79 }
80
81 m_fileAccess = service("VFSSvc");
82 if ( !m_fileAccess )
83 {
84 error() << " Cannot retrieve the VFS service " << endmsg ;
85 return StatusCode::FAILURE ;
86 }
87
88 sc = parse();
89 if ( sc.isFailure() )
90 {
91 error() << " Could not parse the file " << endmsg ;
92 return sc ;
93 }
94 if ( !m_particles.empty() )
95 {
96 sc = addParticles () ;
97 if ( sc.isFailure() )
98 {
99 error() << " Could not treat particles! " << endmsg ;
100 return sc ;
101 }
102 }
103 debug() << "ParticleProperties parsed successfully" << endmsg;
104
105 debug() << "Access properties" << endmsg;
106 // For debugging purposes print out the size of the internal maps
107 // particle name as key: all particles in database are present here
108 debug() << "NameMap size =" << m_namemap.size() << endmsg;
109 // Geant3 ID as key: all particles in database are present here
110 debug() << "GeantID Map size =" << m_idmap.size() << endmsg;
111 // StdHep ID as key: some particles have no valid StdHep ID
112 debug() << "StdHepID Map size =" << m_stdhepidmap.size()
113 << endmsg;
114 // Pythia ID as key: some particles are not defined in Pythia
115 debug() << "PythiaID Map size =" << m_pythiaidmap.size()
116 << endmsg;
117
118 if ( !m_replaced.empty() )
119 {
120 info()
121 << "Properties have been redefined for "
122 << m_replaced.size() << " particles : "
123 << Gaudi::Utils::toString( m_replaced )
124 << endmsg ;
125 }
126
127 return StatusCode::SUCCESS ;
128 }
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:64
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::set::empty
T empty(T...args)
StatusCode::FAILURE
Definition: StatusCode.h:29
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:123
Gaudi::Utils::toString
std::string toString(const TYPE &obj)
the generic implementation of the type conversion to the string
Definition: ToStream.h:367
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172
Gaudi::ParticlePropertySvc::parse
StatusCode parse()
Parses the file and fill all the maps.
Definition: ParticlePropertySvc.cpp:274
Gaudi::ParticlePropertySvc::m_fileAccess
SmartIF< IFileAccess > m_fileAccess
Definition: ParticlePropertySvc.h:180
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:117
Gaudi::ParticlePropertySvc::m_replaced
std::set< std::string > m_replaced
Definition: ParticlePropertySvc.h:178
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Service::setProperties
StatusCode setProperties()
Method for setting declared properties to the values specified for the job.
Definition: Service.cpp:295
Gaudi::ParticlePropertySvc::m_stdhepidmap
MapStdHepID m_stdhepidmap
Map for StdHep Ids.
Definition: ParticlePropertySvc.h:173
std::map::size
T size(T...args)
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:126
Gaudi::ParticlePropertySvc::addParticles
StatusCode addParticles()
Definition: ParticlePropertySvc.cpp:418
Gaudi::ParticlePropertySvc::m_idmap
MapID m_idmap
Map for geant IDs.
Definition: ParticlePropertySvc.h:171
Gaudi::ParticlePropertySvc::m_particles
Gaudi::Property< std::vector< std::string > > m_particles
Definition: ParticlePropertySvc.h:167
Service::service
StatusCode service(const std::string &name, const T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: Service.h:85
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
Gaudi::ParticlePropertySvc::m_pythiaidmap
MapPythiaID m_pythiaidmap
Map for Pythia Ids.
Definition: ParticlePropertySvc.h:174

StatusCode Gaudi::ParticlePropertySvc::parse | ( | const std::string & | file | ) |
| protected

parse the file

Definition at line 301 of file ParticlePropertySvc.cpp.

302 {
303 auto infile = ( m_fileAccess ? m_fileAccess->open(file) : nullptr );
304 if ( !infile )
305 {
306 error() << "Unable to open properties file : " << file
307 << endmsg;
308 return StatusCode::FAILURE ;
309 }
310
311 StatusCode sc = StatusCode::SUCCESS;
312 info() << "Opened particle properties file : " << file << endmsg;
313
314 std::vector<std::string> tokens; tokens.reserve(9);
315 std::string line;
316 while( std::getline( *infile, line ) )
317 {
318 // parse each line of the file (comment lines begin with # in the cdf
319 // file,
320 if ( line.front() == '#' ) continue;
321
322 tokens.clear();
323 ba::trim_left_if( line, ba::is_space() );
324 ba::split( tokens, line, ba::is_space() , boost::token_compress_on );
325 if (tokens.size()!=9) continue;
326
327 auto gid = std::stoi( tokens[1] );
328 auto jid = std::stoi( tokens[2] );
329 // Change the particles that do not correspond to a pdg number
330 if ( jid == 0 ) jid = 10000000*gid;
331
332 // add a particle property
333 sc = push_back( tokens[0], gid, jid,
334 std::stod( tokens[3] ),
335 std::stod( tokens[4] ) * Gaudi::Units::GeV,
336 std::stod( tokens[5] ) * Gaudi::Units::s,
337 tokens[6],
338 std::stoi( tokens[7] ),
339 std::stod( tokens[8] ) * Gaudi::Units::GeV ) ;
340
341 if ( sc.isFailure() )
342 {
343 error()
344 << "Error from ParticlePropertySvc::push_back for particle='"
345 << tokens[0] << "'" << endmsg ;
346 }
347 }
348 return StatusCode::SUCCESS ;
349 }
StatusCode::SUCCESS
Definition: StatusCode.h:30
Gaudi::Units::s
constexpr double s
Definition: SystemOfUnits.h:134
StatusCode::FAILURE
Definition: StatusCode.h:29
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:123
std::string::front
T front(T...args)
std::stod
T stod(T...args)
std::getline
T getline(T...args)
Gaudi::ParticlePropertySvc::m_fileAccess
SmartIF< IFileAccess > m_fileAccess
Definition: ParticlePropertySvc.h:180
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
Gaudi::ParticlePropertySvc::push_back
StatusCode push_back(const std::string &particle, int geantId, int jetsetId, double charge, double mass, double tlife, const std::string &evtName, int pythiaId, double maxWidth) override
Create a new particle property.
Definition: ParticlePropertySvc.cpp:158
std::string
STL class.
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:117
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
std::vector::clear
T clear(T...args)
std::vector::size
T size(T...args)
std::vector< std::string >
Gaudi::Units::GeV
constexpr double GeV
Definition: SystemOfUnits.h:160
std::stoi
T stoi(T...args)
IFileAccess::open
virtual std::unique_ptr< std::istream > open(const std::string &url)=0
Find the URL and returns a unique_ptr to an input stream interface of an object that can be used to r...
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
plotSpeedupsPyRoot.line
line
Definition: plotSpeedupsPyRoot.py:164
std::vector::reserve
T reserve(T...args)

StatusCode Gaudi::ParticlePropertySvc::parse | ( |  | ) |
| protected

Parses the file and fill all the maps.

Definition at line 274 of file ParticlePropertySvc.cpp.

275 {
276
277 // parse "the main" file
278 StatusCode sc = parse ( m_filename ) ;
279 if ( sc.isFailure() ) { return sc ; }
280
281 // parse "other" files
282 for ( auto& file : m_other )
283 {
284 sc = parse ( file ) ;
285 if ( sc.isFailure() ) { return sc ; }
286 }
287
288 // Now check that the file format was consistent with what parser
289 // expected
290 if ( m_namemap.empty() )
291 {
292 error()
293 << "Format of input file inconsistent with what expected"
294 << " - Check you are using ParticleData.txt" << endmsg;
295 return StatusCode::FAILURE;
296 }
297
298 return sc;
299 }
std::map::empty
T empty(T...args)
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172
Gaudi::ParticlePropertySvc::parse
StatusCode parse()
Parses the file and fill all the maps.
Definition: ParticlePropertySvc.cpp:274
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:117
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Gaudi::ParticlePropertySvc::m_other
Gaudi::Property< std::vector< std::string > > m_other
Definition: ParticlePropertySvc.h:166
Gaudi::ParticlePropertySvc::m_filename
Gaudi::Property< std::string > m_filename
Definition: ParticlePropertySvc.h:164
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

StatusCode Gaudi::ParticlePropertySvc::push_back | ( | const std::string & | particle,
|  | int | geantId,
|  | int | jetsetId,
|  | double | charge,
|  | double | mass,
|  | double | tlife,
|  | const std::string & | evtName,
|  | int | pythiaId,
|  | double | maxWidth
| ) |  |
| override

Create a new particle property.

Create a particle property and insert it in the maps.

Attention
  ParticlePropertySvc IS the owner if this property! String name of the particle.

Parameters

  geantId | Geant3 ID of the particle.
  jetsetId | Jetset ID of the particle.
  charge | Particle charge (/e).
  mass | Particle mass (GeV).
  tlife | Particle lifetime (s).
  evtName | String name of the particle in EvtGen.
  pythiaId | Pythia ID of the particle.

Returns
  StatusCode - SUCCESS if the particle property was added.

Definition at line 158 of file ParticlePropertySvc.cpp.

167 {
168 //
169 auto i = m_owned.insert(
170 make_unique_<ParticleProperty>( particle , geantId , jetsetId ,
171 charge , mass , tlife ,
172 evtName , pythiaId , maxWidth )
173 ) ;
174 //
175 return i.second ? push_back( i.first->get() ) : StatusCode::FAILURE;
176 }
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::ParticlePropertySvc::push_back
StatusCode push_back(const std::string &particle, int geantId, int jetsetId, double charge, double mass, double tlife, const std::string &evtName, int pythiaId, double maxWidth) override
Create a new particle property.
Definition: ParticlePropertySvc.cpp:158
std::set::insert
T insert(T...args)
Gaudi::ParticlePropertySvc::m_owned
std::set< std::unique_ptr< ParticleProperty > > m_owned
Definition: ParticlePropertySvc.h:177

StatusCode Gaudi::ParticlePropertySvc::push_back | ( | ParticleProperty * | pp | ) |
| override

Add a new particle property.

Add a particle property.

Attention
  ParticlePropertySvc is not the owner of this property!

Parameters

  pp,a | particle property class.

Returns
  StatusCode - SUCCESS if the particle property was added.

Definition at line 180 of file ParticlePropertySvc.cpp.

181 {
182 if ( !pp ) { return StatusCode::FAILURE ; }
183 //
184 { // try to add into Geant(3)ID map
185 const int ID = pp->geantID() ;
186 // is this already in the map?
187 auto ifind = m_idmap.find( ID ) ;
188 if ( m_idmap.end() != ifind && 0 != m_idmap[ ID ])
189 {
190 diff ( ifind->second , pp ) ;
191 m_replaced.insert( m_idmap[ ID ]->particle() ) ;
192 }
193 // put it into the map
194 m_idmap[ ID ] = pp ;
195 }
196 //
197 { // try to add into Name map
198 const std::string& particle = pp->particle() ;
199 // is this already in the map?
200 auto ifind = m_namemap.find( particle ) ;
201 if ( ifind != m_namemap.end() && ifind->second )
202 {
203 diff ( ifind->second , pp ) ;
204 m_replaced.insert( ifind->second->particle() ) ;
205 }
206 // put it into the map
207 m_namemap[ particle ] = pp ;
208 }
209 //
210 // add to StdHep map only if StdHep ID different from zero and if
211 // not Cerenkov (StdHep ID = gamma)
212 if ( 0 != pp->jetsetID() && "Tcherenkov" != pp->particle() )
213 { // try to add into StdHepID map
214 const int ID = pp->jetsetID() ;
215 // is this already in the map?
216 auto ifind = m_stdhepidmap.find( ID ) ;
217 if ( m_stdhepidmap.end() != ifind && ifind->second )
218 {
219 diff ( ifind->second , pp ) ;
220 m_replaced.insert( ifind->second->particle() ) ;
221 }
222 // put it into the map
223 m_stdhepidmap[ ID ] = pp ;
224 }
225 //
226 // add to Pythia map only if Pythia ID is different from
227 // zero ( StdHep id is always different from zero in this case )
228 if ( 0 != pp->pythiaID() &&
229 0 != pp->jetsetID() &&
230 "Tcherenkov" != pp->particle() )
231 { // try to add into PythiaID map
232 const int ID = pp->pythiaID() ;
233 // is this already in the map?
234 auto ifind = m_pythiaidmap.find( ID ) ;
235 if ( m_pythiaidmap.end() != ifind && ifind->second )
236 {
237 diff ( ifind->second , pp ) ;
238 m_replaced.insert( ifind->second ->particle() ) ;
239 }
240 // put it into the map
241 m_pythiaidmap[ ID ] = pp ;
242 }
243 //
244 return rebuild() ;
245 }
Gaudi::ParticlePropertySvc::rebuild
StatusCode rebuild()
rebuild "the linear container" from the map
Definition: ParticlePropertySvc.cpp:401
ParticleProperty::geantID
int geantID() const
Get the GEANT3 ID.
Definition: ParticleProperty.h:54
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172
std::map::end
T end(T...args)
std::string
STL class.
Gaudi::ParticlePropertySvc::m_replaced
std::set< std::string > m_replaced
Definition: ParticlePropertySvc.h:178
ParticleProperty::jetsetID
int jetsetID() const
Get the JETSET(StdHep) ID.
Definition: ParticleProperty.h:66
Gaudi::ParticlePropertySvc::m_stdhepidmap
MapStdHepID m_stdhepidmap
Map for StdHep Ids.
Definition: ParticlePropertySvc.h:173
std::set::insert
T insert(T...args)
std::map::find
T find(T...args)
Gaudi::ParticlePropertySvc::diff
bool diff(const ParticleProperty *o, const ParticleProperty *n, const MSG::Level l=MSG::DEBUG) const
Definition: ParticlePropertySvc.cpp:487
compareOutputFiles.pp
pp
Definition: compareOutputFiles.py:417
Gaudi::ParticlePropertySvc::m_idmap
MapID m_idmap
Map for geant IDs.
Definition: ParticlePropertySvc.h:171
ParticleProperty::particle
const std::string & particle() const
Get the particle name.
Definition: ParticleProperty.h:48
ParticleProperty::pythiaID
int pythiaID() const
Get the Pythia ID.
Definition: ParticleProperty.h:96
Gaudi::ParticlePropertySvc::m_pythiaidmap
MapPythiaID m_pythiaidmap
Map for Pythia Ids.
Definition: ParticlePropertySvc.h:174

StatusCode Gaudi::ParticlePropertySvc::rebuild | ( |  | ) |
| protected

rebuild "the linear container" from the map

Definition at line 401 of file ParticlePropertySvc.cpp.

402 {
403 std::set<mapped_type> local ;
404 m_vectpp.clear() ;
405 m_vectpp.reserve ( m_idmap.size() + 100 ) ;
406 // load information from maps into the set
407 _load_ ( m_idmap , local ) ;
408 _load_ ( m_namemap , local ) ;
409 _load_ ( m_stdhepidmap , local ) ;
410 _load_ ( m_pythiaidmap , local ) ;
411 // load information from set to the linear container vector
412 std::copy( std::begin(local), std::end(local), std::back_inserter(m_vectpp) );
413 return setAntiParticles() ;
414 }
std::copy
T copy(T...args)
Gaudi::ParticlePropertySvc::m_namemap
MapName m_namemap
Map for particle names.
Definition: ParticlePropertySvc.h:172
std::end
T end(T...args)
std::vector::clear
T clear(T...args)
Gaudi::ParticlePropertySvc::m_stdhepidmap
MapStdHepID m_stdhepidmap
Map for StdHep Ids.
Definition: ParticlePropertySvc.h:173
std::map::size
T size(T...args)
std::set
STL class.
std::begin
T begin(T...args)
std::back_inserter
T back_inserter(T...args)
Gaudi::ParticlePropertySvc::m_idmap
MapID m_idmap
Map for geant IDs.
Definition: ParticlePropertySvc.h:171
Gaudi::ParticlePropertySvc::setAntiParticles
StatusCode setAntiParticles()
helper (protected) function to set the valid particle<–>antiparticle relations
Definition: ParticlePropertySvc.cpp:376
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170
Gaudi::ParticlePropertySvc::m_pythiaidmap
MapPythiaID m_pythiaidmap
Map for Pythia Ids.
Definition: ParticlePropertySvc.h:174
std::vector::reserve
T reserve(T...args)

StatusCode Gaudi::ParticlePropertySvc::setAntiParticles | ( |  | ) |
| protected

helper (protected) function to set the valid particle<–>antiparticle relations

Returns
  status code

Definition at line 376 of file ParticlePropertySvc.cpp.

377 {
378 // initialize particle<-->antiParticle relations
379 for ( auto& pp : m_vectpp )
380 {
381 if ( !pp ) { continue ; } // CONTINUE
382 const ParticleProperty* ap = anti ( pp ) ;
383 if ( ap ) { pp->setAntiParticle( ap ) ; }
384 }
385 return StatusCode::SUCCESS ;
386 }
StatusCode::SUCCESS
Definition: StatusCode.h:30
ParticleProperty
A trivial class to hold information about a single particle properties.
Definition: ParticleProperty.h:18
Gaudi::ParticlePropertySvc::anti
const ParticleProperty * anti(const ParticleProperty *pp) const
helper (protected) function to find an antiparticle for the given particle ID (StdHepID) ...
Definition: ParticlePropertySvc.cpp:358
compareOutputFiles.pp
pp
Definition: compareOutputFiles.py:417
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170

int Gaudi::ParticlePropertySvc::size | ( |  | ) | const
| inline override

Get the container size.

Definition at line 115 of file ParticlePropertySvc.h.

115 { return m_vectpp.size(); };
std::vector::size
T size(T...args)
Gaudi::ParticlePropertySvc::m_vectpp
VectPP m_vectpp
Vector of all particle properties.
Definition: ParticlePropertySvc.h:170

## Member Data Documentation

SmartIF<IFileAccess> Gaudi::ParticlePropertySvc::m_fileAccess
| private

Definition at line 180 of file ParticlePropertySvc.h.

Gaudi::Property<std::string> Gaudi::ParticlePropertySvc::m_filename
| private

Initial value:
{this, "ParticlePropertiesFile", "ParticleTable.txt",
"Filename of the particle properties file"}

Definition at line 164 of file ParticlePropertySvc.h.

MapID Gaudi::ParticlePropertySvc::m_idmap
| private

Map for geant IDs.

Definition at line 171 of file ParticlePropertySvc.h.

MapName Gaudi::ParticlePropertySvc::m_namemap
| private

Map for particle names.

Definition at line 172 of file ParticlePropertySvc.h.

Gaudi::Property<std::vector<std::string> > Gaudi::ParticlePropertySvc::m_other {this, "OtherFiles", {}, "additional file names"}
| private

Definition at line 166 of file ParticlePropertySvc.h.

std::set<std::unique_ptr<ParticleProperty> > Gaudi::ParticlePropertySvc::m_owned
| private

Definition at line 177 of file ParticlePropertySvc.h.

Gaudi::Property<std::vector<std::string> > Gaudi::ParticlePropertySvc::m_particles
| private

Initial value:
{
this, "Particles", {}, "properties to be redefined explicitly"}

Definition at line 167 of file ParticlePropertySvc.h.

MapPythiaID Gaudi::ParticlePropertySvc::m_pythiaidmap
| private

Map for Pythia Ids.

Definition at line 174 of file ParticlePropertySvc.h.

std::set<std::string> Gaudi::ParticlePropertySvc::m_replaced
| private

Definition at line 178 of file ParticlePropertySvc.h.

MapStdHepID Gaudi::ParticlePropertySvc::m_stdhepidmap
| private

Map for StdHep Ids.

Definition at line 173 of file ParticlePropertySvc.h.

VectPP Gaudi::ParticlePropertySvc::m_vectpp
| private

Vector of all particle properties.

Definition at line 170 of file ParticlePropertySvc.h.

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

- GaudiPartProp/src/ParticlePropertySvc.h
- GaudiPartProp/src/ParticlePropertySvc.cpp