thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
Tau2HadronsDecayer.h
1 // -*- C++ -*-
2 //
3 // Tau2HadronsDecayer.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef THEPEG_Tau2HadronsDecayer_H
10 #define THEPEG_Tau2HadronsDecayer_H
11 // This is the declaration of the Tau2HadronsDecayer class.
12 
13 #include "ThePEG/PDT/FlatDecayer.h"
14 
15 namespace ThePEG {
16 
26 
27 public:
28 
34  virtual ~Tau2HadronsDecayer();
36 
37 public:
38 
48  virtual bool accept(const DecayMode & dm) const;
49 
61  virtual double reweight(const DecayMode & dm, const Particle & parent,
62  const ParticleVector & children) const;
64 
65 public:
66 
67 
74  void persistentOutput(PersistentOStream & os) const;
75 
81  void persistentInput(PersistentIStream & is, int version);
83 
87  static void Init();
88 
89 protected:
90 
91 
92 protected:
93 
100  virtual IBPtr clone() const;
101 
106  virtual IBPtr fullclone() const;
108 
109 private:
110 
115 
119  Tau2HadronsDecayer & operator=(const Tau2HadronsDecayer &) = delete;
120 
121 };
122 
123 }
124 
125 
126 namespace ThePEG {
127 
132 template <>
133 struct BaseClassTrait<Tau2HadronsDecayer,1>: public ClassTraitsType {
135  typedef FlatDecayer NthBase;
136 };
137 
141 template <>
142 struct ClassTraits<Tau2HadronsDecayer>
143  : public ClassTraitsBase<Tau2HadronsDecayer> {
145  static string className() { return "ThePEG::Tau2HadronsDecayer"; }
149  static string library() { return "Tau2HadronsDecayer.so"; }
150 };
151 
154 }
155 
156 #endif /* THEPEG_Tau2HadronsDecayer_H */
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
Standard Init function used to initialize the interfaces.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual ~Tau2HadronsDecayer()
Destructor.
static ClassDescription< Tau2HadronsDecayer > initTau2HadronsDecayer
Describe a concrete class with persistent data.
virtual IBPtr clone() const
Make a simple clone of this object.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
The Tau2HadronsDecayer class inherits FlatDecayer and can perform the decays of tau to neutrino + had...
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
Tau2HadronsDecayer & operator=(const Tau2HadronsDecayer &)=delete
Private and non-existent assignment operator.
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition: Containers.h:73
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition: FlatDecayer.h:33
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52