ThePEG 2.3.0
|
LesHouchesReader is an abstract base class to be used for objects which reads event files or streams from matrix element generators. More...
#include <LesHouchesReader.h>
Public Member Functions | |
Standard constructors and destructors. | |
LesHouchesReader (bool active=false) | |
Default constructor. | |
LesHouchesReader (const LesHouchesReader &) | |
Copy-constructor. | |
virtual | ~LesHouchesReader () |
Destructor. | |
Other important function which may be overridden in | |
virtual void | initialize (LesHouchesEventHandler &eh) |
Initialize. | |
virtual double | getEvent () |
Calls readEvent() or uncacheEvent() to read information into the LesHouches common block variables. | |
virtual bool | readEvent () |
Calls doReadEvent() and performs pre-defined reweightings. | |
virtual void | skip (long n) |
Skip n events. | |
tXCombPtr | getXComb () |
Get an XComb object. | |
tSubProPtr | getSubProcess () |
Get a SubProcess object corresponding to the information in the Les Houches common block variables. | |
virtual long | scan () |
Scan the file or stream to obtain information about cross section weights and particles etc. | |
virtual void | initStat () |
Take the information corresponding to the HEPRUP common block and initialize the statistics for this reader. | |
double | reweight () |
Reweights the current event using the reweights and preweights vectors. | |
virtual void | fillEvent () |
Converts the information in the Les Houches common block variables into a Particle objects. | |
void | reset () |
Removes the particles created in the last generated event, preparing to produce a new one. | |
virtual void | setWeightScale (long neve) |
Possibility for subclasses to recover from non-conformant settings of XMAXUP when an event file has been scanned with neve events. | |
Other inlined access functions. | |
long | NEvents () const |
The number of events found in this reader. | |
long | currentPosition () const |
The number of events produced so far. | |
long | maxScan () const |
The maximum number of events to scan to collect information about processes and cross sections. | |
bool | active () const |
Return true if this reader is active. | |
bool | negativeWeights () const |
True if negative weights may be produced. | |
const XSecStat & | xSecStats () const |
The collected cross section statistics for this reader. | |
const StatMap & | processStats () const |
Collected statistics about the individual processes. | |
void | select (double weight) |
Select the current event. | |
void | accept () |
Accept the current event assuming it was previously selcted. | |
void | reject (double w) |
Reject the current event assuming it was previously accepted. | |
virtual void | increaseMaxXSec (CrossSection maxxsec) |
Increase the overestimated cross section for this reader. | |
tPExtrPtr | partonExtractor () const |
The PartonExtractor object used to construct remnants. | |
tCascHdlPtr | CKKWHandler () const |
Return a possibly null pointer to a CascadeHandler to be used for CKKW-reweighting. | |
const PartonPairVec & | partonBins () const |
The pairs of PartonBin objects describing the partons which can be extracted by the PartonExtractor object. | |
const XCombMap & | xCombs () const |
The map of XComb objects indexed by the corresponding PartonBin pair. | |
const Cuts & | cuts () const |
The Cuts object to be used for this reader. | |
Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom > | |
virtual | ~HandlerBaseT () |
Destructor. | |
double | rnd () const |
Return a simple flat random number in the range ]0,1[. | |
double | rnd (double xu) const |
Return a simple flat random number in the range ]0,xu[. | |
double | rnd (double xl, double xu) const |
Return a simple flat random number in the range ]xl,xu[. | |
bool | rndbool () const |
Return true with 50% probability. | |
bool | rndbool (double p) const |
Return a true with probability p. | |
bool | rndbool (double p1, double p2) const |
Return a true with probability p1/(p1+p2). | |
int | rndsign (double p1, double p2, double p3) const |
Return -1, 0, or 1 with relative probabilities p1, p2, p3. | |
int | rnd2 (double p0, double p1) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1). | |
int | rnd3 (double p0, double p1, double p2) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1+p2). | |
int | rnd4 (double p0, double p1, double p2, double p3) const |
Return an integer/ \(i\) with probability p \(i\)(p0+p1+p2+p3). | |
long | irnd (long xu=2) const |
Return a simple flat random integrer number in the range [0,xu[. | |
long | irnd (long xl, long xu) const |
Return a simple flat random integrer number in the range [xl,xu[. | |
const StandardModelBase & | SM () const |
Return a reference to the object containing the standard model parameters for this run. | |
tSMPtr | standardModel () const |
Return a pointer to the object containing the standard model parameters for this run. | |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual | ~Interfaced () |
Empty virtual destructor. | |
virtual bool | defaultInit () |
Functions which are to be used during the actual event generation, after the setup is complete. | |
PPtr | getParticle (PID) const |
Create a new Particle instance given a id number. | |
PDPtr | getParticleData (PID) const |
Return a pointer to the ParticleData object corresponding to the given id number. | |
bool | used () const |
Returns true if this object has actally been used. | |
void | useMe () const |
Should be called to indicate that this object has actually been used. | |
tEGPtr | generator () const |
Return a pointer to the EventGenerator controlling the run. | |
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. | |
Public Member Functions inherited from ThePEG::InterfacedBase | |
virtual | ~InterfacedBase () |
The virtual (empty) destructor;. | |
string | fullName () const |
Returns the full name of this object including its path, e.g. | |
string | name () const |
Returns the name of this object, without the path. | |
string | path () const |
Returns the path to this object including the trailing '/'. | |
string | comment () const |
Returns a comment assigned to this object. | |
void | setup (istream &is) |
Read setup info from a standard istream is. | |
void | update () |
Calls the doupdate() function with recursion prevention. | |
void | init () |
Calls the doinit() function with recursion prevention. | |
void | initrun () |
Calls the doinitrun() function with recursion prevention. | |
void | finish () |
Calls the dofinish() function with recursion prevention. | |
void | touch () |
This function should be called every time something in this object has changed in a way that a sanity check with update() is needed. | |
void | reset () |
Set the state of this object to uninitialized. | |
void | clear () |
Calls reset() and unTouch(). | |
InitState | state () const |
Return the state of initialization of this object. | |
bool | locked () const |
Return true if the BaseRepository is not allowed to change the state of this object. | |
bool | touched () const |
Return true if the state of this object has been changed since the last call to update(). | |
virtual IBPtr | fullclone () const |
Return a full clone of this object possibly doing things to the clone to make it sane. | |
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. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Base | |
virtual | ~Base () |
The virtual destructor. | |
void | debug () const |
Print out debugging information for this object on std::cerr. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Return the reference count. | |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Constructor with name. | |
Named (const Named &)=default | |
Explicit default copy-constructor (too avoid compiler warnings) | |
const string & | name () const |
Return name. | |
bool | operator== (const Named &other) const |
Test for equality. | |
bool | operator< (const Named &other) const |
Lexicographical comparison. | |
Public Member Functions inherited from ThePEG::LastXCombInfo< XC > | |
const XC & | lastXComb () const |
Return a reference to the last selected XComb. | |
tXCPtr | lastXCombPtr () const |
Return a pointer to the last selected XComb. | |
const XC & | lastHeadXComb () const |
If the last selected XComb object belongs to a group of XComb's return a reference to the head XComb object for this group. | |
tXCPtr | lastHeadXCombPtr () const |
If the last selected XComb object belongs to a group of XComb's return a pointer to the head XComb object for this group. | |
const EventHandler & | lastEventHandler () const |
Return a reference to the currently used EventHandler. | |
tPExtrPtr | lastExtractor () const |
A pointer to the currently used parton extractor. | |
template<typename PDFT > | |
PDFT | pdf (tcPPtr parton) const |
Return the parton density used to extract the given parton. | |
const Cuts & | lastCuts () const |
A reference to the currently used kinematical cuts. | |
tCutsPtr | lastCutsPtr () const |
A pointer to the currently used kinematical cuts. | |
const PPair & | lastParticles () const |
Return the pair of incoming parton instances. | |
Energy2 | lastS () const |
The last generated total energy squared of the incoming particles. | |
const PPair & | lastPartons () const |
Return the pair of incoming parton instances. | |
Energy2 | lastSHat () const |
The last used interval in total parton-parton energy squared. | |
double | lastTau () const |
Return lastSHat()/lastS(). | |
double | lastY () const |
The generated rapidity of the hard scattering sub-system. | |
double | lastP1 () const |
Log of one over the momentum fraction of the first incoming particle w.r.t. | |
double | lastP2 () const |
Log of one over the momentum fraction of the second incoming particle w.r.t. | |
double | lastL1 () const |
Log of one over the first incoming parton momentum fraction w.r.t. | |
double | lastL2 () const |
Log of one over the second incoming parton momentum fraction w.r.t. | |
double | lastX1 () const |
The first incoming parton momentum fraction w.r.t. | |
double | lastX2 () const |
The second incoming parton momentum fraction w.r.t. | |
double | lastE1 () const |
Return 1-lastX1() to highest possible precision for x \(\rightarrow\) 1. | |
double | lastE2 () const |
Return 1-lastX2() to highest possible precision for x \(\rightarrow\) 1. | |
double | lastFL1L2 () const |
The product of the parton density functions at the last generated phase-space point. | |
Energy2 | lastScale () const |
The chosen scale of the hard scattering. | |
double | lastAlphaS () const |
Get the \(\alpha_S\) used in the hard scattering. | |
double | lastAlphaEM () const |
Get the \(\alpha_{EM}\) used in the hard scattering. | |
const vector< Lorentz5Momentum > & | meMomenta () const |
Return the momenta of the incoming and outgoing partons to be used by the matrix element object, in the order specified by the TreeDiagram objects given by the matrix element. | |
double | lastME2 () const |
Return the matrix element squared as calculated for the last phase space point. | |
double | lastPreweight () const |
Return the last preweight factor. | |
double | jacobian () const |
Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR. | |
CrossSection | lastMECrossSection () const |
Return the partonic cross section as calculated for the last phase space point. | |
double | lastMEPDFWeight () const |
Return the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights. | |
double | lastMECouplings () const |
Return the coupling weight as calculated for the last phase space point. | |
tSubProPtr | subProcess () const |
Return the SubProcess object corresponding to the last generated sub-process. | |
const cPDVector & | mePartonData () const |
Return the incoming and outgoing parton types to be used by the matrix element object, in the order specified by the TreeDiagram objects given by the matrix element. | |
Protected Member Functions | |
Auxilliary virtual methods which may be verridden by sub-classes. | |
virtual bool | checkPartonBin () |
Check the existence of a pair of PartonBin objects corresponding to the current event. | |
virtual void | createParticles () |
Create instances of all particles in the event and store them in particleIndex. | |
virtual tcPBPair | createPartonBinInstances () |
Using the already created particles create a pair of PartonBinInstance objects corresponding to the incoming partons. | |
virtual void | createBeams () |
Create instances of the incoming beams in the event and store them in particleIndex. | |
virtual void | connectMothers () |
Go through the mother indices and connect up the Particles. | |
Set functions for some variables not in the Les Houches accord. | |
void | NEvents (long x) |
The number of events in this reader. | |
XCombMap & | xCombs () |
The map of XComb objects indexed by the corresponding PartonBin pair. | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
Register the given object in the Repository with the given name in a subdirectory with the same name as this object. | |
template<typename PtrT > | |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object. | |
Interfaced () | |
Protected default constructor. | |
Interfaced (const string &newName) | |
Protected constructor taking a name as argument. | |
Interfaced (const Interfaced &i) | |
Protected copy-constructor. | |
void | setGenerator (tEGPtr generator) |
Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models. | |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
virtual void | readSetup (istream &is) |
Read setup info from a standard istream is. | |
virtual void | doupdate () |
Check sanity of the object during the setup phase. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. | |
virtual void | rebind (const TranslationMap &) |
Rebind pointer to other Interfaced objects. | |
virtual IBPtr | clone () const =0 |
Return a simple clone of this object. | |
InterfacedBase () | |
Protected default constructor. | |
InterfacedBase (string newName) | |
Protected constructor with the name given as argument. | |
InterfacedBase (const InterfacedBase &i) | |
Protected copy-constructor. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted () | |
Default constructor. | |
ReferenceCounted (const ReferenceCounted &) | |
Copy-constructor. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
Assignment. | |
const string & | name (const string &newName) |
Set new name. | |
Private Types | |
typedef map< int, XSecStat > | StatMap |
Map for accumulating statistics of cross sections per process number. | |
typedef map< tcPBPair, XCombPtr > | XCombMap |
Map of XComb objects describing the incoming partons indexed by the corresponding PartonBin pair. | |
typedef vector< ReweightPtr > | ReweightVector |
A vector of pointers to ReweightBase objects. | |
Friends | |
class | LesHouchesEventHandler |
LesHouchesEventHandler should have access to our private parts. | |
Main virtual fuctions to be overridden in | |
sub-classes. They are named as if we are reading from event files, but could equally well implement the actual generation of events. | |
vector< string > | optionalWeightsNames |
vector with the optional weights names | |
virtual void | open ()=0 |
Open a file or stream with events and read in the run information into the heprup variable. | |
virtual bool | doReadEvent ()=0 |
Read the next event from the file or stream into the corresponding protected variables. | |
virtual void | close ()=0 |
Close the file or stream from which events have been read. | |
virtual vector< string > | optWeightsNamesFunc ()=0 |
return the weight names | |
Standard (and non-standard) Interfaced functions. | |
HEPRUP | heprup |
The HEPRUP common block. | |
HEPEUP | hepeup |
The HEPEUP common block. | |
tcPDPair | inData |
The ParticleData objects corresponding to the incoming particles. | |
pair< PDFPtr, PDFPtr > | inPDF |
The PDFBase objects which has been used for the beam particle when generating the events being read. | |
pair< cPDFPtr, cPDFPtr > | outPDF |
The PDFBase object to be used in the subsequent generation. | |
PExtrPtr | thePartonExtractor |
The PartonExtractor object used to construct remnants. | |
tCascHdlPtr | theCKKW |
A pointer to a CascadeHandler to be used for CKKW-reweighting. | |
PartonPairVec | thePartonBins |
The pairs of PartonBin objects describing the partons which can be extracted by the PartonExtractor object. | |
XCombMap | theXCombs |
The map of XComb objects indexed by the corresponding PartonBin pair. | |
CutsPtr | theCuts |
The Cuts object to be used for this reader. | |
long | theNEvents |
The number of events in this reader. | |
long | position |
The number of events produced by this reader so far. | |
int | reopened |
The number of times this reader has been reopened. | |
long | theMaxScan |
The maximum number of events to scan to collect information about processes and cross sections. | |
bool | scanning |
Flag to tell whether we are in the process of scanning. | |
bool | isActive |
True if this is an active reader. | |
string | theCacheFileName |
Name of file used to cache the events form the reader in a fast-readable form. | |
bool | doCutEarly |
Determines whether to apply cuts to events before converting them to ThePEG format. | |
XSecStat | stats |
Collect statistics for this reader. | |
StatMap | statmap |
Collect statistics for each individual process. | |
PBIPair | thePartonBinInstances |
The pair of PartonBinInstance objects describing the current incoming partons in the event. | |
ObjectIndexer< long, ColourLine > | colourIndex |
Association between ColourLines and colour indices in the current translation. | |
ObjectIndexer< long, Particle > | particleIndex |
Association between Particles and indices in the current translation. | |
PPair | theBeams |
The instances of the beam particles for the current event. | |
PPair | theIncoming |
The instances of the incoming particles to the sub process for the current event. | |
PVector | theOutgoing |
The instances of the outgoing particles from the sub process for the current event. | |
PVector | theIntermediates |
The instances of the intermediate particles in the sub process for the current event. | |
CFile | theCacheFile |
File stream for the cache. | |
ReweightVector | reweights |
The reweight objects modifying the weights of this reader. | |
ReweightVector | preweights |
The preweight objects modifying the weights of this reader. | |
double | preweight |
The factor with which this reader was last pre-weighted. | |
bool | reweightPDF |
Should the event be reweighted by PDFs used by the PartonExtractor? | |
bool | doInitPDFs |
Should PDFBase objects be constructed from the information in the event file in the initialization? | |
int | theMaxMultCKKW |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group. | |
int | theMinMultCKKW |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group. | |
double | lastweight |
The weight multiplying the last read event due to PDF reweighting, CKKW reweighting or assigned reweight and preweight objects. | |
map< string, double > | optionalWeights |
The optional weights associated to the last read events. | |
long | LHEeventnum |
The event number. | |
double | maxFactor |
If the maximum cross section of this reader has been increased with increaseMaxXSec(), this is the total factor with which it has been increased. | |
int | optionalnpLO |
npLO for LesHouches merging | |
int | optionalnpNLO |
npNLO for LesHouches merging | |
CrossSection | weightScale |
The (reweighted) XWGTUP value should be scaled with this cross section when compared to the overestimated cross section. | |
vector< double > | xSecWeights |
Individual scales for different sub-processes if reweighted. | |
map< int, double > | maxWeights |
Individual maximum weights for individual (possibly reweighted) processes. | |
bool | skipping |
Is set to true when getEvent() is called from skip(int). | |
unsigned int | theMomentumTreatment |
Option for the treatment of the momenta supplied. | |
bool | useWeightWarnings |
Set to true if warnings about possible weight incompatibilities should be issued. | |
bool | theReOpenAllowed |
Option to allow reopening of the file. | |
bool | theIncludeSpin |
Use the spin information. | |
static AbstractClassDescription< LesHouchesReader > | initLesHouchesReader |
Describe an abstract base class with persistent data. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
virtual void | dofinish () |
Finalize this object. | |
virtual bool | preInitialize () const |
Return true if this object needs to be initialized before all other objects because it needs to extract PDFs from the event file. | |
virtual void | initPDFs () |
Called from doinit() to extract PDFs from the event file and add the corresponding objects to the current EventGenerator. | |
void | setBeamA (long id) |
Access function for the interface. | |
long | getBeamA () const |
Access function for the interface. | |
void | setBeamB (long id) |
Access function for the interface. | |
long | getBeamB () const |
Access function for the interface. | |
void | setEBeamA (Energy e) |
Access function for the interface. | |
Energy | getEBeamA () const |
Access function for the interface. | |
void | setEBeamB (Energy e) |
Access function for the interface. | |
Energy | getEBeamB () const |
Access function for the interface. | |
void | setPDFA (PDFPtr) |
Access function for the interface. | |
PDFPtr | getPDFA () const |
Access function for the interface. | |
void | setPDFB (PDFPtr) |
Access function for the interface. | |
PDFPtr | getPDFB () const |
Access function for the interface. | |
LesHouchesReader & | operator= (const LesHouchesReader &)=delete |
Private and non-existent assignment operator. | |
Access information about the current event. | |
double | eventWeight () const |
The current event weight given by XWGTUP times possible reweighting. | |
const map< string, double > & | optionalEventWeights () const |
Return the optional named weights associated to the current event. | |
const long & | LHEEventNum () const |
Return the Les Houches event number associated with the current event. | |
const int & | optionalEventnpLO () const |
Return the optional npLO and npNLO. | |
const int & | optionalEventnpNLO () const |
const PBIPair & | partonBinInstances () const |
The pair of PartonBinInstance objects describing the current incoming partons in the event. | |
const PPair & | beams () const |
Return the instances of the beam particles for the current event. | |
const PPair & | incoming () const |
Return the instances of the incoming particles to the sub process for the current event. | |
const PVector & | outgoing () const |
Return the instances of the outgoing particles from the sub process for the current event. | |
const PVector & | intermediates () const |
Return the instances of the intermediate particles in the sub process for the current event. | |
int | maxMultCKKW () const |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group. | |
int | minMultCKKW () const |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group. | |
static size_t | eventSize (int N) |
Return the size of this event in bytes. | |
Functions used by the persistent I/O system. | |
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. | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
Functions for manipulating cache files. | |
string | cacheFileName () const |
Name of file used to cache the events form the reader in a fast-readable form. | |
bool | cutEarly () const |
Determines whether to apply cuts to events converting them to ThePEG format. | |
CFile | cacheFile () const |
File stream for the cache. | |
void | openReadCacheFile () |
Open the cache file for reading. | |
void | openWriteCacheFile () |
Open the cache file for writing. | |
void | closeCacheFile () |
Close the cache file;. | |
void | cacheEvent () const |
Write the current event to the cache file. | |
bool | uncacheEvent () |
Read an event from the cache file. | |
void | reopen () |
Reopen a reader. | |
template<typename T > | |
static char * | mwrite (char *pos, const T &t, size_t n=1) |
Helper function to write a variable to a memory location. | |
template<typename T > | |
static const char * | mread (const char *pos, T &t, size_t n=1) |
Helper function to read a variable from a memory location. | |
Additional Inherited Members | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState { initializing = -1 , uninitialized = 0 , initialized = 1 , runready = 2 } |
Enumeration reflecting the state of an InterfacedBase object. More... | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
The integer type used for counting. | |
Public Types inherited from ThePEG::LastXCombInfo< XC > | |
typedef ThePEG::Ptr< XC >::pointer | XCPtr |
Alias for a reference counted pointer to XC . | |
typedef ThePEG::Ptr< XC >::const_pointer | cXCPtr |
Alias for a reference counted pointer to a const XC . | |
typedef ThePEG::Ptr< XC >::transient_pointer | tXCPtr |
Alias for a transient pointer to XC . | |
typedef ThePEG::Ptr< XC >::transient_const_pointer | tcXCPtr |
Alias for a transient pointer to a const XC . | |
Static Public Member Functions inherited from ThePEG::HandlerBase | |
static void | Init () |
Standard Init function used to initialize the interface. | |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
The unique ID. | |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
Register an Interfaced object with the Repository. | |
static void | registerRepository (IBPtr, string newName) |
Register an Interfaced object with the Repository, giving it a name. | |
Protected Attributes inherited from ThePEG::LastXCombInfo< XC > | |
XCPtr | theLastXComb |
The pointer to the last selected XComb. | |
LesHouchesReader is an abstract base class to be used for objects which reads event files or streams from matrix element generators.
Derived classes must at least implement the open() and doReadEvent() methods to read in information about the whole run into the HEPRUP variable and next event into the HEPEUP variable respectively. Also the close() function to close the file or stream read must be implemented. Although these functions are named as if we are reading from event files, they could just as well implement the actual generation of events.
After filling the HEPRUP and HEPEUP variables, which are protected and easily accesible from the sub-class, this base class will then be responsible for transforming this data to the ThePEG Event record in the getEvent() method. LesHouchesReader
s can only be used inside LesHouchesEventHandler objects.
In the initialization the virtual open() and scan() functions are called. Here the derived class must provide the information about the processes in the variables corresponding to the HEPRUP common block. Note that the IDWTUP is required to be +/- 1, and sub classes are required to change the information accordingly to ensure the correct corss section sampling. Note also that the controlling LesHouchesEventHandler may choose to generate weighted events even if IDWTUP is 1.
Note that the information given per process in e.g. the XSECUP and XMAXUP vectors is not used by the LesHouchesEventHandler and by default the LesHouchesReader is not assumed to be able to actively choose between the sub-processes. Instead, the LesHouchesEventHandler can handle several LesHouchesReader objects and choose between them. However, a sub-class of LesHouchesReader may set the flag isActive, in which case it is assumed to be able to select between its sub-processes itself.
The LesHouchesReader may be assigned a number ReweightBase objects which either completely reweights the events produced (in the reweights vector), or only biases the selection without influencing the cross section (in the preweights vector). Note that it is the responsibility of a sub-class to call the reweight() function and multiply the weight according to its return value (typically done in the readEvent() function).
Definition at line 77 of file LesHouchesReader.h.
|
private |
A vector of pointers to ReweightBase objects.
Definition at line 99 of file LesHouchesReader.h.
|
private |
Map for accumulating statistics of cross sections per process number.
Definition at line 88 of file LesHouchesReader.h.
|
private |
Map of XComb objects describing the incoming partons indexed by the corresponding PartonBin pair.
Definition at line 94 of file LesHouchesReader.h.
ThePEG::LesHouchesReader::LesHouchesReader | ( | bool | active = false | ) |
Default constructor.
If the optional argument is true, the reader is assumed to be able to produce events on demand for a given process.
|
inline |
Accept the current event assuming it was previously selcted.
Definition at line 392 of file LesHouchesReader.h.
References ThePEG::XSecStat::accept(), hepeup, ThePEG::HEPEUP::IDPRUP, statmap, and stats.
|
inline |
Return true if this reader is active.
Definition at line 363 of file LesHouchesReader.h.
References isActive.
|
inline |
Return the instances of the beam particles for the current event.
Definition at line 308 of file LesHouchesReader.h.
References theBeams.
|
inlineprotected |
File stream for the cache.
Definition at line 460 of file LesHouchesReader.h.
References theCacheFile.
|
inlineprotected |
Name of file used to cache the events form the reader in a fast-readable form.
If empty, no cache file will be generated.
Definition at line 449 of file LesHouchesReader.h.
References theCacheFileName.
|
protectedvirtual |
|
inline |
Return a possibly null pointer to a CascadeHandler to be used for CKKW-reweighting.
Definition at line 419 of file LesHouchesReader.h.
References theCKKW.
|
pure virtual |
Close the file or stream from which events have been read.
Implemented in ThePEG::LesHouchesFileReader.
Referenced by dofinish().
|
protectedvirtual |
Create instances of the incoming beams in the event and store them in particleIndex.
If no beam particles are included in the event they are created from the run info.
|
protectedvirtual |
Using the already created particles create a pair of PartonBinInstance objects corresponding to the incoming partons.
Return the corresponding PartonBin objects.
|
inline |
The number of events produced so far.
Is reset to zero if an event file is reopened.
Definition at line 351 of file LesHouchesReader.h.
References position.
|
inlineprotected |
Determines whether to apply cuts to events converting them to ThePEG format.
Definition at line 455 of file LesHouchesReader.h.
References doCutEarly.
|
inline |
The Cuts object to be used for this reader.
Definition at line 436 of file LesHouchesReader.h.
References theCuts.
|
inlineprotectedvirtual |
Finalize this object.
Called in the run phase just after a run has ended. Used eg. to write out statistics.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in ThePEG::MadGraphReader.
Definition at line 609 of file LesHouchesReader.h.
References close(), and ThePEG::InterfacedBase::dofinish().
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in ThePEG::LesHouchesFileReader, and ThePEG::MadGraphReader.
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from ThePEG::InterfacedBase.
|
pure virtual |
Read the next event from the file or stream into the corresponding protected variables.
Return false if there is no more events.
Implemented in ThePEG::LesHouchesFileReader, and ThePEG::MadGraphReader.
|
inlinestatic |
Return the size of this event in bytes.
To be used for the cache file. npart is the number of particles. If npart is 0, the number is taken from NUP.
Definition at line 266 of file LesHouchesReader.h.
|
inline |
The current event weight given by XWGTUP times possible reweighting.
Note that this is not necessarily the same as what is returned by getEvent(), which is scaled with the maximum weight.
Definition at line 282 of file LesHouchesReader.h.
References hepeup, lastweight, and ThePEG::HEPEUP::XWGTUP.
|
virtual |
Calls readEvent() or uncacheEvent() to read information into the LesHouches common block variables.
This function is called by the LesHouchesEventHandler if this reader has been selectod to produce an event.
tXCombPtr ThePEG::LesHouchesReader::getXComb | ( | ) |
Get an XComb object.
Converts the information in the Les Houches common block variables to an XComb object describing the sub process. This is the way information is conveyed from the reader to the controlling LesHouchesEventHandler.
|
inline |
Return the instances of the incoming particles to the sub process for the current event.
Definition at line 313 of file LesHouchesReader.h.
References theIncoming.
|
virtual |
Initialize.
This function is called by the LesHouchesEventHandler to which this object is assigned.
Reimplemented in ThePEG::LesHouchesFileReader.
|
protectedvirtual |
Called from doinit() to extract PDFs from the event file and add the corresponding objects to the current EventGenerator.
Reimplemented in ThePEG::MadGraphReader.
|
inline |
Return the instances of the intermediate particles in the sub process for the current event.
Definition at line 323 of file LesHouchesReader.h.
References theIntermediates.
|
inline |
Return the Les Houches event number associated with the current event.
Definition at line 292 of file LesHouchesReader.h.
References LHEeventnum.
|
inline |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.
Definition at line 330 of file LesHouchesReader.h.
References theMaxMultCKKW.
|
inline |
The maximum number of events to scan to collect information about processes and cross sections.
If less than 0, all events will be scanned.
Definition at line 358 of file LesHouchesReader.h.
References theMaxScan.
|
inline |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.
Definition at line 337 of file LesHouchesReader.h.
References theMinMultCKKW.
|
inlinestaticprotected |
Helper function to read a variable from a memory location.
Definition at line 507 of file LesHouchesReader.h.
|
inlinestaticprotected |
Helper function to write a variable to a memory location.
Definition at line 498 of file LesHouchesReader.h.
|
inline |
True if negative weights may be produced.
Definition at line 368 of file LesHouchesReader.h.
References heprup, and ThePEG::HEPRUP::IDWTUP.
|
inline |
The number of events found in this reader.
If less than zero the number of events are unlimited.
Definition at line 345 of file LesHouchesReader.h.
References theNEvents.
|
inlineprotected |
The number of events in this reader.
If less than zero the number of events is unlimited.
Definition at line 581 of file LesHouchesReader.h.
References theNEvents.
|
pure virtual |
Open a file or stream with events and read in the run information into the heprup variable.
Implemented in ThePEG::LesHouchesFileReader, and ThePEG::MadGraphReader.
|
inline |
Return the optional npLO and npNLO.
Definition at line 297 of file LesHouchesReader.h.
References optionalnpLO.
|
inline |
Definition at line 298 of file LesHouchesReader.h.
|
inline |
Return the optional named weights associated to the current event.
Definition at line 287 of file LesHouchesReader.h.
References optionalWeights.
|
pure virtual |
return the weight names
Implemented in ThePEG::LesHouchesFileReader.
|
inline |
Return the instances of the outgoing particles from the sub process for the current event.
Definition at line 318 of file LesHouchesReader.h.
References theOutgoing.
|
inline |
The pair of PartonBinInstance objects describing the current incoming partons in the event.
Definition at line 304 of file LesHouchesReader.h.
References thePartonBinInstances.
|
inline |
The pairs of PartonBin objects describing the partons which can be extracted by the PartonExtractor object.
Definition at line 425 of file LesHouchesReader.h.
References thePartonBins.
|
inline |
The PartonExtractor object used to construct remnants.
Definition at line 413 of file LesHouchesReader.h.
References thePartonExtractor.
void ThePEG::LesHouchesReader::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void ThePEG::LesHouchesReader::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
protectedvirtual |
Return true if this object needs to be initialized before all other objects because it needs to extract PDFs from the event file.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in ThePEG::LesHouchesFileReader, and ThePEG::MadGraphReader.
|
inline |
Collected statistics about the individual processes.
Definition at line 378 of file LesHouchesReader.h.
References statmap.
|
virtual |
Calls doReadEvent() and performs pre-defined reweightings.
A sub-class overrides this function it must make sure that the corresponding reweightings are done.
|
inline |
Reject the current event assuming it was previously accepted.
Definition at line 400 of file LesHouchesReader.h.
References hepeup, ThePEG::HEPEUP::IDPRUP, ThePEG::XSecStat::reject(), statmap, and stats.
|
protected |
Reopen a reader.
If we have reached the end of an event file, reopen it and issue a warning if we have used up a large fraction of it.
double ThePEG::LesHouchesReader::reweight | ( | ) |
Reweights the current event using the reweights and preweights vectors.
It is the responsibility of the sub-class to call this function after the HEPEUP information has been retrieved.
|
virtual |
Scan the file or stream to obtain information about cross section weights and particles etc.
This function should fill the variables corresponding to the /HEPRUP/ common block. The function returns the number of events scanned.
Reimplemented in ThePEG::MadGraphReader.
|
inline |
Select the current event.
It will later be rejected with a probability given by weight.
Definition at line 384 of file LesHouchesReader.h.
References hepeup, ThePEG::HEPEUP::IDPRUP, ThePEG::XSecStat::select(), statmap, and stats.
|
virtual |
Possibility for subclasses to recover from non-conformant settings of XMAXUP when an event file has been scanned with neve events.
Should set weightScale so that the average XMAXUP times weightScale gives the cross section for a process. (This is needed for MadEvent).
|
virtual |
Skip n events.
Used by LesHouchesEventHandler to make sure that a file is scanned an even number of times in case the events are not ramdomly distributed in the file.
|
protected |
Read an event from the cache file.
Return false if something went wrong.
|
inlineprotected |
The map of XComb objects indexed by the corresponding PartonBin pair.
Definition at line 587 of file LesHouchesReader.h.
References theXCombs.
|
inline |
The map of XComb objects indexed by the corresponding PartonBin pair.
Definition at line 431 of file LesHouchesReader.h.
References theXCombs.
|
inline |
The collected cross section statistics for this reader.
Definition at line 373 of file LesHouchesReader.h.
References stats.
|
friend |
LesHouchesEventHandler should have access to our private parts.
Definition at line 82 of file LesHouchesReader.h.
|
protected |
Association between ColourLines and colour indices in the current translation.
Definition at line 749 of file LesHouchesReader.h.
|
protected |
Determines whether to apply cuts to events before converting them to ThePEG format.
Definition at line 727 of file LesHouchesReader.h.
Referenced by cutEarly().
|
protected |
Should PDFBase objects be constructed from the information in the event file in the initialization?
Definition at line 809 of file LesHouchesReader.h.
|
protected |
The HEPEUP common block.
Definition at line 637 of file LesHouchesReader.h.
Referenced by accept(), eventWeight(), reject(), and select().
|
protected |
The HEPRUP common block.
Definition at line 632 of file LesHouchesReader.h.
Referenced by negativeWeights().
|
protected |
The ParticleData objects corresponding to the incoming particles.
Definition at line 642 of file LesHouchesReader.h.
|
staticprivate |
Describe an abstract base class with persistent data.
Definition at line 937 of file LesHouchesReader.h.
The PDFBase objects which has been used for the beam particle when generating the events being read.
Specified in the interface or derived from PDFGUP and PDFSUP.
Definition at line 649 of file LesHouchesReader.h.
|
protected |
True if this is an active reader.
Definition at line 715 of file LesHouchesReader.h.
Referenced by active().
|
protected |
The weight multiplying the last read event due to PDF reweighting, CKKW reweighting or assigned reweight and preweight objects.
Definition at line 832 of file LesHouchesReader.h.
Referenced by eventWeight().
|
protected |
|
protected |
If the maximum cross section of this reader has been increased with increaseMaxXSec(), this is the total factor with which it has been increased.
Definition at line 850 of file LesHouchesReader.h.
|
protected |
Individual maximum weights for individual (possibly reweighted) processes.
Definition at line 877 of file LesHouchesReader.h.
|
protected |
npLO for LesHouches merging
Definition at line 855 of file LesHouchesReader.h.
Referenced by optionalEventnpLO().
|
protected |
npNLO for LesHouches merging
Definition at line 860 of file LesHouchesReader.h.
|
protected |
The optional weights associated to the last read events.
Definition at line 837 of file LesHouchesReader.h.
Referenced by optionalEventWeights().
vector<string> ThePEG::LesHouchesReader::optionalWeightsNames |
vector with the optional weights names
Definition at line 157 of file LesHouchesReader.h.
The PDFBase object to be used in the subsequent generation.
Definition at line 654 of file LesHouchesReader.h.
|
protected |
Association between Particles and indices in the current translation.
Definition at line 755 of file LesHouchesReader.h.
|
protected |
The number of events produced by this reader so far.
Is reset every time an event file is reopened.
Definition at line 693 of file LesHouchesReader.h.
Referenced by currentPosition().
|
protected |
The factor with which this reader was last pre-weighted.
Definition at line 798 of file LesHouchesReader.h.
|
protected |
The preweight objects modifying the weights of this reader.
Definition at line 793 of file LesHouchesReader.h.
|
protected |
The number of times this reader has been reopened.
Definition at line 698 of file LesHouchesReader.h.
|
protected |
Should the event be reweighted by PDFs used by the PartonExtractor?
Definition at line 803 of file LesHouchesReader.h.
|
protected |
The reweight objects modifying the weights of this reader.
Definition at line 788 of file LesHouchesReader.h.
|
protected |
Flag to tell whether we are in the process of scanning.
Definition at line 710 of file LesHouchesReader.h.
|
protected |
Is set to true when getEvent() is called from skip(int).
Definition at line 882 of file LesHouchesReader.h.
|
protected |
Collect statistics for each individual process.
Definition at line 737 of file LesHouchesReader.h.
Referenced by accept(), processStats(), reject(), and select().
|
protected |
Collect statistics for this reader.
Definition at line 732 of file LesHouchesReader.h.
Referenced by accept(), ThePEG::MadGraphReader::dofinish(), reject(), select(), and xSecStats().
|
protected |
The instances of the beam particles for the current event.
Definition at line 760 of file LesHouchesReader.h.
Referenced by beams().
|
protected |
File stream for the cache.
Definition at line 783 of file LesHouchesReader.h.
Referenced by cacheFile().
|
protected |
Name of file used to cache the events form the reader in a fast-readable form.
If empty, no cache file will be generated.
Definition at line 721 of file LesHouchesReader.h.
Referenced by cacheFileName().
|
protected |
A pointer to a CascadeHandler to be used for CKKW-reweighting.
Definition at line 664 of file LesHouchesReader.h.
Referenced by CKKWHandler().
|
protected |
The Cuts object to be used for this reader.
Definition at line 681 of file LesHouchesReader.h.
Referenced by cuts().
|
protected |
Use the spin information.
Definition at line 903 of file LesHouchesReader.h.
|
protected |
The instances of the incoming particles to the sub process for the current event.
Definition at line 766 of file LesHouchesReader.h.
Referenced by incoming().
|
protected |
The instances of the intermediate particles in the sub process for the current event.
Definition at line 778 of file LesHouchesReader.h.
Referenced by intermediates().
|
protected |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.
Definition at line 817 of file LesHouchesReader.h.
Referenced by maxMultCKKW().
|
protected |
The maximum number of events to scan to collect information about processes and cross sections.
If less than 0, all events will be scanned.
Definition at line 705 of file LesHouchesReader.h.
Referenced by maxScan().
|
protected |
If this reader is to be used (possibly together with others) for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.
Definition at line 825 of file LesHouchesReader.h.
Referenced by minMultCKKW().
|
protected |
Option for the treatment of the momenta supplied.
Definition at line 887 of file LesHouchesReader.h.
|
protected |
The number of events in this reader.
If less than zero the number of events is unlimited.
Definition at line 687 of file LesHouchesReader.h.
Referenced by NEvents().
|
protected |
The instances of the outgoing particles from the sub process for the current event.
Definition at line 772 of file LesHouchesReader.h.
Referenced by outgoing().
|
protected |
The pair of PartonBinInstance objects describing the current incoming partons in the event.
Definition at line 743 of file LesHouchesReader.h.
Referenced by partonBinInstances().
|
protected |
The pairs of PartonBin objects describing the partons which can be extracted by the PartonExtractor object.
Definition at line 670 of file LesHouchesReader.h.
Referenced by partonBins().
|
protected |
The PartonExtractor object used to construct remnants.
Definition at line 659 of file LesHouchesReader.h.
Referenced by partonExtractor().
|
protected |
Option to allow reopening of the file.
Definition at line 898 of file LesHouchesReader.h.
|
protected |
The map of XComb objects indexed by the corresponding PartonBin pair.
Definition at line 676 of file LesHouchesReader.h.
Referenced by xCombs().
|
protected |
Set to true if warnings about possible weight incompatibilities should be issued.
Definition at line 893 of file LesHouchesReader.h.
|
protected |
The (reweighted) XWGTUP value should be scaled with this cross section when compared to the overestimated cross section.
Definition at line 866 of file LesHouchesReader.h.
|
protected |
Individual scales for different sub-processes if reweighted.
Definition at line 871 of file LesHouchesReader.h.