thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ReweightBase.h
1// -*- C++ -*-
2//
3// ReweightBase.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_ReweightBase_H
10#define ThePEG_ReweightBase_H
11// This is the declaration of the ReweightBase class.
12
13#include "ThePEG/Handlers/HandlerBase.h"
14#include "ThePEG/EventRecord/SubProcess.h"
15#include "ThePEG/Handlers/LastXCombInfo.h"
16#include "ThePEG/Handlers/StandardXComb.fh"
17
18namespace ThePEG {
19
39class ReweightBase: public HandlerBase, public LastXCombInfo<> {
40
41public:
42
45
49 virtual ~ReweightBase();
51
52public:
53
58 virtual double weight() const = 0;
59
65
66public:
67
75
81 void persistentInput(PersistentIStream & is, int version);
83
87 static void Init();
88
89private:
90
95
99 ReweightBase & operator=(const ReweightBase &) = delete;
100
101};
102
103}
104
105
106namespace ThePEG {
107
114template <>
115struct BaseClassTrait<ReweightBase,1>: public ClassTraitsType {
117 typedef HandlerBase NthBase;
118};
119
124template <>
125struct ClassTraits<ReweightBase>: public ClassTraitsBase<ReweightBase> {
127 static string className() { return "ThePEG::ReweightBase"; }
128};
129
132}
133
134#endif /* ThePEG_ReweightBase_H */
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data.
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
Definition: HandlerBase.h:151
LastXCombInfo is a templated class giving easy access to the information in an XComb object.
Definition: LastXCombInfo.h:32
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
The ReweightBase class is the base class of all objects representing external biases to matrix elemen...
Definition: ReweightBase.h:39
virtual double weight() const =0
Return the wieght for the kinematical configuation provided by the assigned XComb object (in the Last...
virtual ~ReweightBase()
Destructor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ReweightBase & operator=(const ReweightBase &)=delete
Private and non-existent assignment operator.
void setXComb(tXCombPtr xc)
Assigne an XComb object with information about the sub-process to be used in the reweighting.
static AbstractClassDescription< ReweightBase > initReweightBase
Describe an abstract base class with persistent data.
Definition: ReweightBase.h:94
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
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66