10 #ifndef ThePEG_SubProcess_H
11 #define ThePEG_SubProcess_H
16 #include "ThePEG/EventRecord/Particle.h"
20 class SubProcessGroup;
56 double newGroupWeight = 1.0);
91 template <
class InputIterator>
109 template <
class InputIterator>
289 virtual void printMe(ostream&)
const;
333 struct ClassTraits<SubProcess>:
public ClassTraitsBase<SubProcess> {
335 static string className() {
return "ThePEG::SubProcess"; }
344 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
345 #include "SubProcess.tcc"
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
tSubProPtr theHead
The head SubProcess, if this SubProcess object belongs to a SubProcessGroup.
Define the base class from which all (polymorphic) classes in ThePEG are derived. ...
ClassTraitsType is an empty, non-polymorphic, base class.
tCollPtr theCollision
A pointer to the collision to which this sub-process belongs.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
virtual void debugme() const
Print out debugging information for this object on std::cerr.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
void addOutgoing(tPPtr p, bool fixrelations=true)
Add a particle to the list of outgoing ones.
const ParticleVector & intermediates() const
A reference to the vector of intermediate partons.
Ptr< EventRecordBase >::transient_const_pointer tcEventBasePtr
Alias for a transient pointer to const EventRecordBase.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Rebinder is a class associating pairs of pointers to objects.
bool isDecayed
True if a perturbative cascade has been applied to this sub process.
double theGroupWeight
If this SubProcess belongs to a SubProcessGroup, this gives its relative weight w.r.t.
Energy2 uhat() const
Return the value of the Mandelstam variable in this SubProcess.
virtual void transform(const LorentzRotation &)
Perform a LorentzTransformation of all particles in the sub process.
This is the main namespace within which all identifiers in ThePEG are declared.
SubProcess & operator=(const SubProcess &)
Assignment is forbidden.
void setIntermediates(InputIterator, InputIterator)
Set the vector of intermediate particles.
A SubProcessGroup object represents a group of SubProcess objects in dependence of a head SubProcess ...
A SubProcess object represents a hard sub-process in a collision.
tSubProPtr head() const
Return the head SubProcess, if this SubProcess object belongs to a SubProcessGroup.
tcEventBasePtr handler() const
A pointer to the MEBase object which generated this SubProcess.
virtual SubProPtr clone() const
Return a clone of this sub process.
void changeIncoming(tPPtr pnew, tPPtr pold)
Change the incoming parton.
void setOutgoing(InputIterator, InputIterator)
Set the vector of outgoing particles.
tCollPtr collision() const
A pointer to the collision to which this sub-process belongs.
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
Alias for a transient pointer to SubProcess .
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
const PPair & incoming() const
The pair of incoming partons.
virtual void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
void persistentInput(PersistentIStream &, int)
Standard function for reading from a persistent stream.
RCPtr is a reference counted (smart) pointer.
PPair theIncoming
The pair of incoming particles.
void addIntermediate(tPPtr p, bool fixrelations=true)
Add a particle to the list of intermediate ones.
void decayed(bool x)
Set to true if a perturbative cascade has been applied to this sub process.
ThePEG::Ptr< Collision >::transient_pointer tCollPtr
Alias for a transient pointer to Collision .
This is the decalaration of the Collision class.
ParticleVector theOutgoing
The vector of outgoing particles.
bool decayed() const
True if a perturbative cascade has been applied to this sub process.
ParticleVector theIntermediates
The vector of intermediate particles,.
virtual void printMe(ostream &) const
Put to ostream.
static void Init()
Standard Init function.
Energy2 that() const
Return the value of the Mandelstam variable in this SubProcess.
static TPtr create()
Create a T object and return a smart pointer to it.
The default concrete implementation of ClassTraitsBase.
const ParticleVector & outgoing() const
A reference to the vector of outgoing particles.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
static string className()
Return the name of class T.
Energy2 shat() const
Return the value of the Mandelstam variable in this SubProcess.
void head(tSubProPtr newHead)
Set the head SubProcess.
static ClassDescription< SubProcess > initSubProcess
Describe concrete class with persistent data.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
void removeEntry(tPPtr p)
Remove a particle entry from this sub-process.
void groupWeight(double w)
If this SubProcess belongs to a SubProcessGroup, set its relative weight w.r.t.
double groupWeight() const
If this SubProcess belongs to a SubProcessGroup, return its relative weight w.r.t.
virtual ~SubProcess()
Destructor.
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
SubProcess()
Default constructor.
ThePEG::Ptr< T >::pointer TPtr
Alias for a reference counted pointer to T .
BaseClassTraits describes the base classes of the templated class.
tcEventBasePtr theHandler
A pointer to the MEBase object which generated this sub-process.
static RCPtr Create()
Allocate and construct an object of class T and return a RCPtr to it.
The Step class contains information of all particles present after certain step in the event generati...