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;
335 static string className() {
return "ThePEG::SubProcess"; }
337 static TPtr create() {
return TPtr::Create(
SubProcess()); }
344 #ifndef ThePEG_TEMPLATES_IN_CC_FILE 345 #include "SubProcess.tcc" 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...
const ParticleVector & outgoing() const
A reference to the vector of outgoing particles.
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.
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
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...
virtual SubProPtr clone() const
Return a clone of this sub process.
tSubProPtr head() const
Return the head SubProcess, if this SubProcess object belongs to a SubProcessGroup.
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.
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.
virtual void debugme() const
Print out debugging information for this object on std::cerr.
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 ...
virtual void printMe(ostream &) const
Put to ostream.
A SubProcess object represents a hard sub-process in a collision.
void changeIncoming(tPPtr pnew, tPPtr pold)
Change the incoming parton.
void setOutgoing(InputIterator, InputIterator)
Set the vector of outgoing particles.
Energy2 shat() const
Return the value of the Mandelstam variable in this SubProcess.
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
Alias for a transient pointer to SubProcess .
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
virtual void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
void persistentInput(PersistentIStream &, int)
Standard function for reading from a persistent stream.
double groupWeight() const
If this SubProcess belongs to a SubProcessGroup, return its relative weight w.r.t.
RCPtr is a reference counted (smart) pointer.
const PPair & incoming() const
The pair of incoming partons.
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.
ParticleVector theIntermediates
The vector of intermediate particles,.
bool decayed() const
True if a perturbative cascade has been applied to this sub process.
static void Init()
Standard Init function.
The default concrete implementation of ClassTraitsBase.
Energy2 that() const
Return the value of the Mandelstam variable in this SubProcess.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
void head(tSubProPtr newHead)
Set the head SubProcess.
static ClassDescription< SubProcess > initSubProcess
Describe concrete class with persistent data.
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.
virtual ~SubProcess()
Destructor.
Energy2 uhat() const
Return the value of the Mandelstam variable in this SubProcess.
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
tCollPtr collision() const
A pointer to the collision to which this sub-process belongs.
SubProcess()
Default constructor.
BaseClassTraits describes the base classes of the templated class.
tcEventBasePtr handler() const
A pointer to the MEBase object which generated this SubProcess.
tcEventBasePtr theHandler
A pointer to the MEBase object which generated this sub-process.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
const ParticleVector & intermediates() const
A reference to the vector of intermediate partons.
The Step class contains information of all particles present after certain step in the event generati...