ThePEG  1.8.0
Tau2HadronsDecayer.h
1 // -*- C++ -*-
2 //
3 // Tau2HadronsDecayer.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 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 
120 
121 };
122 
123 }
124 
125 
126 namespace ThePEG {
127 
132 template <>
135  typedef FlatDecayer NthBase;
136 };
137 
141 template <>
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 */
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...
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
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 fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Tau2HadronsDecayer & operator=(const Tau2HadronsDecayer &)
Private and non-existent assignment operator.
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
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