PYTHIA  8.316
Public Member Functions | List of all members
RivetHooks Class Reference

UserHook to run Rivet analyses. More...

#include <RivetHooks.h>

Inheritance diagram for RivetHooks:
UserHooks PhysicsBase

Public Member Functions

 RivetHooks ()
 Constructors and destructor.
 
 RivetHooks (Pythia *pythiaPtrIn, Settings *, Logger *)
 
void onEndEvent (Status) override
 Perform the Rivet analysis. More...
 
void onStat () override
 Write the Rivet analyses. More...
 
void onStat (vector< PhysicsBase * > hookPtrs, Pythia *) override
 Merge the Rivet analysis handlers. More...
 
- Public Member Functions inherited from UserHooks
virtual ~UserHooks ()
 Destructor.
 
virtual bool initAfterBeams ()
 Initialisation after beams have been set by Pythia::init().
 
virtual bool canModifySigma ()
 Possibility to modify cross section of process.
 
virtual double multiplySigmaBy (const SigmaProcess *sigmaProcessPtr, const PhaseSpace *phaseSpacePtr, bool inEvent)
 Multiplicative factor modifying the cross section of a hard process. More...
 
virtual bool canBiasSelection ()
 Possibility to bias selection of events, compensated by a weight.
 
virtual double biasSelectionBy (const SigmaProcess *sigmaProcessPtr, const PhaseSpace *phaseSpacePtr, bool inEvent)
 Multiplicative factor in the phase space selection of a hard process. More...
 
virtual double biasedSelectionWeight ()
 Event weight to compensate for selection weight above.
 
virtual bool canVetoProcessLevel ()
 Possibility to veto event after process-level selection.
 
virtual bool doVetoProcessLevel (Event &)
 
virtual bool canSetLowEnergySigma (int, int) const
 
virtual double doSetLowEnergySigma (int, int, double, double, double) const
 
virtual bool canVetoResonanceDecays ()
 Possibility to veto resonance decay chain.
 
virtual bool doVetoResonanceDecays (Event &)
 
virtual bool canVetoPT ()
 
virtual double scaleVetoPT ()
 Transverse-momentum scale for veto test.
 
virtual bool doVetoPT (int, const Event &)
 
virtual bool canVetoStep ()
 
virtual int numberVetoStep ()
 Up to how many ISR + FSR steps of hardest interaction should be checked.
 
virtual bool doVetoStep (int, int, int, const Event &)
 
virtual bool canVetoMPIStep ()
 
virtual int numberVetoMPIStep ()
 Up to how many MPI steps should be checked.
 
virtual bool doVetoMPIStep (int, const Event &)
 
virtual bool canVetoPartonLevelEarly ()
 
virtual bool doVetoPartonLevelEarly (const Event &)
 
virtual bool retryPartonLevel ()
 
virtual bool canVetoPartonLevel ()
 Possibility to veto event after parton-level selection.
 
virtual bool doVetoPartonLevel (const Event &)
 
virtual bool canSetResonanceScale ()
 Possibility to set initial scale in TimeShower for resonance decay.
 
virtual double scaleResonance (int, const Event &)
 
virtual bool canVetoISREmission ()
 Possibility to veto an emission in the ISR machinery.
 
virtual bool doVetoISREmission (int, const Event &, int)
 
virtual bool canVetoFSREmission ()
 Possibility to veto an emission in the FSR machinery.
 
virtual bool doVetoFSREmission (int, const Event &, int, bool=false)
 
virtual bool canVetoMPIEmission ()
 Possibility to veto an MPI.
 
virtual bool doVetoMPIEmission (int, const Event &)
 
virtual bool canReconnectResonanceSystems ()
 Possibility to reconnect colours from resonance decay systems.
 
virtual bool doReconnectResonanceSystems (int, Event &)
 
virtual bool canChangeFragPar ()
 Can change fragmentation parameters.
 
virtual void setStringEnds (const StringEnd *, const StringEnd *, vector< int >)
 
virtual bool doChangeFragPar (StringFlav *, StringZ *, StringPT *, int, double, vector< int >, const StringEnd *)
 
virtual bool canVetoFragmentation ()
 Can veto hadrons in the fragmentation.
 
virtual bool doVetoFragmentation (Particle, const StringEnd *)
 
virtual bool doVetoFragmentation (Particle, Particle, const StringEnd *, const StringEnd *)
 
virtual bool doVetoFinalTwo (Particle, Particle, const StringEnd *, const StringEnd *)
 
virtual bool canVetoAfterHadronization ()
 
virtual bool doVetoAfterHadronization (const Event &)
 Do the actual veto after hadronization.
 
virtual bool canSetImpactParameter () const
 Can set the overall impact parameter for the MPI treatment.
 
virtual double doSetImpactParameter ()
 Set the overall impact parameter for the MPI treatment.
 
virtual bool onEndHadronLevel (HadronLevel &, Event &)
 Custom processing at the end of HadronLevel::next.
 
- Public Member Functions inherited from PhysicsBase
void initInfoPtr (Info &infoPtrIn)
 This function is called from above for physics objects used in a run. More...
 
virtual ~PhysicsBase ()
 Empty virtual destructor.
 
bool flag (string key) const
 Shorthand to read settings values.
 
int mode (string key) const
 
double parm (string key) const
 
string word (string key) const
 
vector< bool > fvec (string key) const
 
vector< int > mvec (string key) const
 
vector< double > pvec (string key) const
 
vector< string > wvec (string key) const
 

Additional Inherited Members

- Public Types inherited from PhysicsBase
enum  Status {
  INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED,
  LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO,
  MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED,
  CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED, HADRONLEVEL_USERVETO
}
 Enumerate the different status codes the event generation can have.
 
- Protected Member Functions inherited from UserHooks
 UserHooks ()
 Constructor.
 
virtual void onInitInfoPtr () override
 After initInfoPtr, initialize workEvent. More...
 
void omitResonanceDecays (const Event &process, bool finalOnly=false)
 omitResonanceDecays omits resonance decay chains from process record. More...
 
void subEvent (const Event &event, bool isHardest=true)
 subEvent extracts currently resolved partons in the hard process. More...
 
- Protected Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onBeginEvent ()
 This function is called in the very beginning of each Pythia::next call.
 
void registerSubObject (PhysicsBase &pb)
 Register a sub object that should have its information in sync with this.
 
- Protected Attributes inherited from UserHooks
Event workEvent = {}
 Have one event object around as work area.
 
double selBias = 1.
 User-imposed selection bias.
 
double enhancedEventWeight = {}
 Bookkept quantities for boosted event weights.
 
double pTEnhanced = {}
 
double wtEnhanced = {}
 
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 
mutex * mutexPtr
 Mutex that should be locked for thread-unsafe code.
 

Detailed Description

UserHook to run Rivet analyses.

Member Function Documentation

void onEndEvent ( Status  )
inlineoverridevirtual

Perform the Rivet analysis.

Optionally skip zero-weight events.

Convert the event to HepMC.

Create the Rivet analysis handler if it does not exist. The analysis handler constructor is not thread safe, so the global mutex must be locked.

Create the handler.

Set whether beams should be checked.

Set file dumping if requested.

Preload requested data.

Set the analyses.

Initialize Rivet and unlock the global mutex.

Run the analysis.

Reimplemented from PhysicsBase.

void onStat ( )
inlineoverridevirtual

Write the Rivet analyses.

Create the directory structure if needed.

Write the Rivet output.

Reimplemented from PhysicsBase.

void onStat ( vector< PhysicsBase * >  hookPtrs,
Pythia  
)
inlineoverridevirtual

Merge the Rivet analysis handlers.

Get the main Rivet hook.

Get the Rivet pointer for each thread.

Get the current anaysis handler.

Merge the analysis handler with the main anaysis handler. This should be done with AnalysisHandler::serializeContent and AnalysisHandler::deserializeContent. However, with the most recent Rivet versions, this appears to cause issues in a threaded environment, and so for now we use use AnalysisHandler::merge.

Write the data with the main Rivet hook.

Reimplemented from PhysicsBase.


The documentation for this class was generated from the following file: