Juggler
Juggling algorithms and event processing using gaudi framework
IParticleSvc.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: LGPL-3.0-or-later
2 // Copyright (C) 2022 Whitney Armstrong
3 
4 #ifndef IParticleSvc_H
5 #define IParticleSvc_H
6 
7 #include <GaudiKernel/IService.h>
8 #include <unordered_map>
9 
10 namespace Jug::Base {
11 
12  /** Simple particle data.
13  *
14  */
15  struct ParticleData {
16  int pdgCode;
17  int charge;
18  double mass; //std::string name;
19  };
20 } // namespace Jug::Base
21 
22 /** Particle interface.
23  *
24  * \ingroup base
25  */
26 class GAUDI_API IParticleSvc : virtual public IService {
27 public:
29  using ParticleMap = std::map<int, Particle>;
30 
31 public:
32  /// InterfaceID
34  virtual ~IParticleSvc() {}
35 
36  virtual ParticleMap particleMap() const = 0;
37  virtual Particle particle(int pdg) const = 0;
38 };
39 
40 #endif // IParticleSvc_H
Jug::Base::ParticleData::mass
double mass
Definition: IParticleSvc.h:18
Jug::Base::ParticleData
Definition: IParticleSvc.h:15
IParticleSvc::~IParticleSvc
virtual ~IParticleSvc()
Definition: IParticleSvc.h:34
IParticleSvc::ParticleMap
std::map< int, Particle > ParticleMap
Definition: IParticleSvc.h:29
IParticleSvc::particle
virtual Particle particle(int pdg) const =0
Jug::Base::ParticleData::pdgCode
int pdgCode
Definition: IParticleSvc.h:16
IParticleSvc
Definition: IParticleSvc.h:26
Jug::Base
Definition: IParticleSvc.h:10
Jug::Base::ParticleData::charge
int charge
Definition: IParticleSvc.h:17
IParticleSvc::DeclareInterfaceID
DeclareInterfaceID(IParticleSvc, 1, 0)
InterfaceID.
IParticleSvc::particleMap
virtual ParticleMap particleMap() const =0