ThePEG  1.8.0
XSecCheck.h
1 // -*- C++ -*-
2 #ifndef THEPEG_XSecCheck_H
3 #define THEPEG_XSecCheck_H
4 //
5 // This is the declaration of the XSecCheck class.
6 //
7 
8 #include "ThePEG/Handlers/AnalysisHandler.h"
9 
10 namespace ThePEG {
11 
21 class XSecCheck: public AnalysisHandler {
22 
23 public:
24 
30  XSecCheck() : target(ZERO), tol(0.01), sumw(0.0) {}
31 
35  virtual ~XSecCheck();
37 
38 public:
39 
43  struct UnexpectedXSec: public Exception {};
44 
45 public:
46 
66  virtual void analyze(tEventPtr event, long ieve, int loop, int state);
68 
69 public:
70 
77  void persistentOutput(PersistentOStream & os) const;
78 
84  void persistentInput(PersistentIStream & is, int version);
86 
93  static void Init();
94 
95 protected:
96 
103  virtual IBPtr clone() const;
104 
109  virtual IBPtr fullclone() const;
111 
112 
113 
114 protected:
115 
122  virtual void doinitrun() {
124  sumw = 0.0;
125  }
126 
131  virtual void dofinish();
133 
134 private:
135 
140 
145  double tol;
146 
150  double sumw;
151 
152 private:
153 
159 
164  XSecCheck & operator=(const XSecCheck &);
165 
166 };
167 
168 }
169 
170 #include "ThePEG/Utilities/ClassTraits.h"
171 
172 namespace ThePEG {
173 
178 template <>
179 struct BaseClassTrait<XSecCheck,1> {
181  typedef AnalysisHandler NthBase;
182 };
183 
186 template <>
187 struct ClassTraits<XSecCheck>
188  : public ClassTraitsBase<XSecCheck> {
190  static string className() { return "ThePEG::XSecCheck"; }
198  static string library() { return "XSecCheck.so"; }
199 };
200 
203 }
204 
205 #endif /* THEPEG_XSecCheck_H */
double sumw
The sum of the weights of the events analyzed.
Definition: XSecCheck.h:150
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void doinitrun()
Initialize this object.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:509
XSecCheck()
The default constructor.
Definition: XSecCheck.h:30
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
The AnalysisHandler is the base class of all analysis objects which may be handled by the FullEventGe...
XSecCheck & operator=(const XSecCheck &)
The assignment operator is private and must never be called.
static ClassDescription< XSecCheck > initXSecCheck
The static object used to initialize the description of this class.
Definition: XSecCheck.h:158
virtual ~XSecCheck()
The destructor.
virtual void doinitrun()
Initialize this object.
Definition: XSecCheck.h:122
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85
double tol
The relative tolerance accepted when comparing the total cross section with the target.
Definition: XSecCheck.h:145
CrossSection target
The expected total cross section.
Definition: XSecCheck.h:139
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
const ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:33
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
Exception is the base class for all exceptions to be used in ThePEG.
Definition: Exception.h:44
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
InitState state() const
Return the state of initialization of this object.
virtual void dofinish()
Finalize this object.
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
This template class allows the compiler to check calculations with physical quantities for dimensiona...
Definition: PhysicalQty.h:81
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
The XSecCheck class is a simple analysis class used for testing purposes.
Definition: XSecCheck.h:21
static void Init()
The standard Init function used to initialize the interfaces.
The exception class used if the target cross section was not met.
Definition: XSecCheck.h:43