PYTHIA  8.303
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BrancherEmitRF Class Reference

#include <VinciaFSR.h>

Inheritance diagram for BrancherEmitRF:
Brancher BrancherSplitRF

Public Member Functions

 BrancherEmitRF ()=default
 Constructor.
 
 BrancherEmitRF (int iSysIn, Event &event, vector< int > allIn, unsigned int posResIn, unsigned int posFIn, double Q2cut)
 Constructor.
 
 ~BrancherEmitRF ()
 Destructor.
 
void resetResBrancher (int iSysIn, Event &event, vector< int > allIn, unsigned int posResIn, unsigned int posFIn, double Q2cut)
 Reset the brancher.
 
void init ()
 Overloaded version of init, does nothing.
 
virtual void init (Event &event, vector< int > allIn, unsigned int posResIn, unsigned int posFIn, double Q2cut)
 Method to initialise data members specific to BrancherEmitRF. More...
 
virtual vector< double > setmPostVec ()
 Setter methods. More...
 
virtual void setidPost ()
 Set post-branching IDs and masses. Base class is for gluon emission. More...
 
virtual void setStatPost ()
 
virtual int iNew ()
 Return index of new particle (slightly arbitrary choice for splittings).
 
virtual void setMaps (int sizeOld)
 
virtual bool getNewParticles (Event &event, vector< Vec4 > momIn, vector< int > hIn, vector< Particle > &pNew, Rndm *rndmPtr, Colour *)
 Generic method, assumes setter methods called earlier. More...
 
int posR ()
 Return position of resonance.
 
int posF ()
 Function returns position of colour-connected daughter to resonance.
 
double getQ2Max (int evType)
 Return maximum Q2.
 
virtual double genQ2 (int evTypeIn, double Q2MaxNow, Rndm *rndmPtr, const EvolutionWindow *evWindowPtrIn, double colFac, vector< double > headroomIn, vector< double > enhanceFacIn, int verboseIn)
 Generate a new Q2 scale. More...
 
virtual bool genInvariants (vector< double > &invariants, Rndm *rndmPtr, int verboseIn)
 
virtual double pAccept (const double, int)
 Compute antPhys/antTrial, given antPhys. More...
 
- Public Member Functions inherited from Brancher
 Brancher ()
 Default constructor.
 
 Brancher (int iSysIn, Event &event, vector< int > iIn)
 Create branch elemental for antenna(e) with arbitrary parents in iIn.
 
 Brancher (int iSysIn, Event &event, int i0In, int i1In, int i2In=0)
 Wrapper for simple 2- (or 3-) parton antennae.
 
virtual ~Brancher ()
 Destructor.
 
virtual void reset (int iSysIn, Event &event, vector< int > iIn)
 Reset (common functionality implemented in base class). More...
 
void reset (int iSysIn, Event &event, int i0In, int i1In, int i2In=0)
 Wrapper for simple 2- (or 3-) parton antennae.
 
int i0 () const
 Methods to get (explicit for up to 3 parents, otherwise just use iVec).
 
int i1 () const
 
int i2 () const
 
int iVec (unsigned int i) const
 
vector< int > iVec ()
 
int id0 () const
 
int id1 () const
 
int id2 () const
 
vector< int > idVec () const
 
int colType0 () const
 
int colType1 () const
 
int colType2 () const
 
vector< int > colTypeVec () const
 
int col0 () const
 
int col1 () const
 
int col2 () const
 
vector< int > colVec () const
 
int acol0 () const
 
int acol1 () const
 
int acol2 () const
 
vector< int > acolVec () const
 
int h0 () const
 
int h1 () const
 
int h2 () const
 
vector< int > hVec () const
 
double m0 () const
 
double m1 () const
 
double m2 () const
 
vector< double > mVec () const
 
vector< double > getmPostVec ()
 
int colTag ()
 
int system () const
 Methods to return saved/derived quantities.
 
double mAnt () const
 
double m2Ant () const
 
double sAnt () const
 
double kallenFac () const
 
double enhanceFac () const
 
double q2Trial () const
 
int iAntPhys () const
 
virtual double getpTscale ()
 Compute pT scale of trial branching.
 
virtual double getXj ()
 Return Xj.
 
virtual int idNew () const
 
virtual double mNew () const
 
virtual void list (string header="none") const
 Simple print utility, showing the contents of the Brancher. More...
 
int getBranchType ()
 Return branch type.
 
bool isSwapped ()
 Check if swapped.
 
vector< double > getInvariants ()
 Return the saved invariants.
 
void resetEnhanceFac (const double enhanceIn)
 This method allows to reset enhanceFac if we do an accept/reject.
 
bool hasTrial () const
 
void needsNewTrial ()
 Method to mark new trial needed without erasing current one.
 
void eraseTrial ()
 Method to mark new trial needed and erase current one.
 

Protected Member Functions

double KallenFunction (double x, double y, double z)
 Protected helper methods for internal class use.
 
virtual double zetaIntSingleLim (double zetaLim)
 
double zetaIntegral (double zLow, double zHigh)
 
double getsAK (double mA, double mK, double mAK)
 
double zetaMinCalc (double mA, double mK, double mAK, double Q2cut)
 
double zetaMaxCalc (double mA, double mK, double mAK)
 
virtual double getZetaNext (Rndm *rndmPtr)
 
virtual double calcQ2Max (double mA, double mAK, double mK)
 
bool vetoPhSpPoint (double saj, double sjk, double sak, int verboseIn)
 Veto point if outside available phase space. More...
 
double getEjMax (double cosTheta, double mA, double mAK, double mK)
 

Protected Attributes

unsigned int posRes {}
 
unsigned int posFinal {}
 
double mRes {}
 Mass of resonance.
 
double mFinal {}
 Mass of final state parton in antennae.
 
double mRecoilers {}
 
double sAK {}
 
double zetaMin {}
 Limits of zeta Integral.
 
double zetaMax {}
 
double Q2MaxSav {}
 Max Q2 for this brancher, still an overestimate.
 
double zetaIntSave {}
 Integral of zeta over whole phase space.
 
double colFacSav {}
 
bool colFlowRtoF {}
 
map< unsigned int, unsigned int > posNewtoOld {}
 
- Protected Attributes inherited from Brancher
int systemSav
 Data members for storing information about parent partons.
 
vector< int > iSav
 
vector< int > idSav
 
vector< int > colTypeSav
 
vector< int > hSav
 
vector< int > colSav
 
vector< int > acolSav
 
vector< int > idPostSav
 
vector< int > statPostSav
 
vector< double > mSav
 
vector< double > mPostSav
 
int colTagSav
 
int evTypeSav
 
const EvolutionWindowevWindowSav
 All alphaS information.
 
double mAntSav
 Saved antenna mass parameters.
 
double m2AntSav
 
double kallenFacSav
 
double sAntSav
 
bool hasTrialSav
 Data members for storing information about generated trial branching.
 
double headroomSav
 
double enhanceSav
 
double q2BegSav
 
double q2NewSav
 
vector< double > invariantsSav
 
int branchType
 
int iAntSav
 
bool swapped
 If true, flip identities of A and B.
 

Additional Inherited Members

- Public Attributes inherited from Brancher
map< int, pair< int, int > > mothers2daughters
 Publicly accessible members for storing mother/daughter connections.
 
map< int, pair< int, int > > daughters2mothers
 

Detailed Description

BrancherEmitRF class for storing information on antennae between a coloured resonance and final state parton, and generating a new emission.

Member Function Documentation

bool genInvariants ( vector< double > &  invariants,
Rndm rndmPtr,
int  verboseIn 
)
virtual

Generate complementary invariant(s) for saved trial scale. Return false if no physical kinematics possible.

Initialise and check we have a generated q2.

Calculate invariants from zeta, q2.

Save regardless.

Veto if the point is outside the available phase space.

Reimplemented from Brancher.

Reimplemented in BrancherSplitRF.

double genQ2 ( int  evTypeIn,
double  Q2MaxNow,
Rndm rndmPtr,
const EvolutionWindow evWindowPtrIn,
double  colFac,
vector< double >  headroomIn,
vector< double >  enhanceFacIn,
int  verboseIn 
)
virtual

Generate a new Q2 scale.

Save headroom and enhancement factors.

pT evolution.

Get multiplicative factors.

Save info for later (to be used in pAccept).

Fixed alphaS.

Use max possible value for alphaS.

Inverse of Q2 integral for fixed alphaS.

Running alphaS.

Set flag that this call produces a saved trial.

Implements Brancher.

Reimplemented in BrancherSplitRF.

double getEjMax ( double  cosTheta,
double  mA,
double  mAK,
double  mK 
)
protected

Calculate maximum gluon energy in the centre of mass frame of res given cos theta.

bool getNewParticles ( Event event,
vector< Vec4 momIn,
vector< int >  hIn,
vector< Particle > &  pNew,
Rndm rndmPtr,
Colour  
)
virtual

Generic method, assumes setter methods called earlier.

Initialize.

Check everything set.

Generate new colour tag.

New tag can't be same colour as neighbour.

Now populate particle vector.

Set mass and colours (we have repurposed mPost for antenna function mass scales). This is new emission.

Skip the resonance.

Set other pre-determined particle properties.

Implements Brancher.

Reimplemented in BrancherSplitRF.

double getZetaNext ( Rndm rndmPtr)
protectedvirtual

Returns the solution for zeta to R = I(zeta,zetamin)/I(zetamax,zetamin).

I(zetamax,zetamin).

exp(I(zeta)).

Now invert to get zeta.

Reimplemented in BrancherSplitRF.

void init ( Event event,
vector< int >  allIn,
unsigned int  posResIn,
unsigned int  posFIn,
double  Q2cut 
)
virtual

Method to initialise data members specific to BrancherEmitRF.

BrancherEmitRF class for storing information on antennae between a coloured resonance and final state parton, and generating a new emission.

Get Pythia indices of res and final.

Extract the momenta of the rest.

This is not necesssarily p(res). In the case where one particle always recieves the recoil e.g. W in t->bWX it is p_t -p_X.

Calculate the masses.

Calculate common prefactor to trial integral.

Calculate zeta limits.

Phase space is closed.

Calculate zeta integral (full phase space).

Calculate Q2max.

TODO: swapped should be redundant since save posRes, posFinal. R = Q.

F = Q.

F = g.

Some other final state - don't know what to do with this yet!

Some other resonance. Don't know what to do with this yet!

Reimplemented in BrancherSplitRF.

double pAccept ( const double  antPhys,
int  verboseIn 
)
virtual

Compute antPhys/antTrial, given antPhys.

Compute antPhys/antTrial, given antPhys. Note, antPhys should be normalised to include charge and coupling factors.

Check q2.

Reduced trial antenna.

Multiply by headroom factor.

Multiply by col factor.

Multiply by alphaS, default is fixed alphaS.

Reimplemented from Brancher.

Reimplemented in BrancherSplitRF.

void setidPost ( )
virtual

Set post-branching IDs and masses. Base class is for gluon emission.

Insert gluon in second position.

Reimplemented from Brancher.

Reimplemented in BrancherSplitRF.

void setMaps ( int  sizeOld)
virtual

For updating the children of existing parents. Save children of F (treat like 1->2 splitting).

Save recoilers and insert the new emission at position 1.

Reimplemented from Brancher.

vector< double > setmPostVec ( )
virtual

Setter methods.

ma

mj

mk

mAK

Reimplemented from Brancher.

Reimplemented in BrancherSplitRF.

bool vetoPhSpPoint ( double  saj,
double  sjk,
double  sak,
int  verboseIn 
)
protected

Veto point if outside available phase space.

Make copies of masses (just for compactness of notation).

Common sense: saj, sjk > 0. Not an error for splitters - mass effects can make negative and push outside generated phase space.

On-shell X condition.

On-shell j,k conditions.

When |cosTheta| < 1.

This condition may be sufficient to remove above conditions.

Member Data Documentation

bool colFlowRtoF {}
protected

Store whether the colour flow is from R to F (e.g. t -> bW+) or F to R (e.g. tbar -> bbarW-).

double mRecoilers {}
protected

Collective mass of rest of downstream decay products of resonance these will just take recoil.

unsigned int posRes {}
protected

Save reference to position in vectors of resonance and colour connected parton.


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