9 #ifndef ThePEG_BasicStep_H 10 #define ThePEG_BasicStep_H 13 #include "ThePEG/EventRecord/Particle.h" 14 #include "ThePEG/EventRecord/StandardSelectors.h" 84 template <
typename OutputIterator>
92 template <
typename OutputIterator>
112 template <
typename PIterator>
113 static vector<tPVector>
getSinglets(PIterator first, PIterator last) {
216 template <
typename CIterator>
218 CIterator firstChild, CIterator lastChild,
219 bool fixColour =
true) {
220 for ( ; firstChild != lastChild; ++firstChild )
251 template <
typename CIterator>
253 CIterator firstChild, CIterator lastChild) {
255 for ( ; firstChild != lastChild; ++firstChild )
270 template <
typename Iterator>
272 bool checkfinal =
true);
282 template <
typename PIterator,
typename CIterator>
284 CIterator firstChild, CIterator lastChild);
320 template <
typename Iterator>
339 template <
typename Iterator>
391 template <
typename Cont>
402 template <
typename Iterator>
453 template <
typename Inserter,
typename PPo
inter>
531 #include "Collision.h" 537 #ifndef ThePEG_TEMPLATES_IN_CC_FILE static void Init()
Standard Init function.
tPPtr antiColourNeighbour(tcPPtr particle) const
Return the anti-colour neighbour of the given particle if one exists in the final state of this Step...
PersistentIStream is used to read persistent objects from a stream where they were previously written...
bool setCopy(tcPPtr pold, tPPtr pnew)
Make particles copies of eachother.
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
StepPtr clone() const
Return a clone of this step.
void select(OutputIterator r, const SelectorBase &s) const
Extract particles from this Step which satisfies the requirements given by an object of the SelectorB...
void removeEntry(tPPtr p)
Remove a particle entry from the step.
tPPtr colourNeighbour(tcPPtr particle, bool anti=false) const
Return the (anti-)colour neighbour of the given particle if one exists in the final state of this Ste...
Define the base class from which all (polymorphic) classes in ThePEG are derived. ...
static ClassDescription< Step > initStep
Describe concrete class with persistent data.
The Event class contains all Particles produced in the generation of an event.
Classes derived from the SelectorBase class are used to extract particles from an Event with Event::s...
static vector< tPVector > getSinglets(PIterator first, PIterator last)
Return a vector of particle vectors with colour-connected partons, where each particle vector is in a...
set< tPPtr, less< tPPtr > > tParticleSet
A set of transient pointers to Particle.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void insertIntermediate(tPPtr p, tPPtr parent, tPPtr child)
Add an intermediate particle.
bool member(const Container &c, const Key &k)
Check if a given object is a part of a container.
void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
tcEventBasePtr handler() const
Return a pointer to the step handler which performed the generation of this step. ...
bool removeDecayProduct(tcPPtr parent, tPPtr child)
Remove the child form the given parent.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
void removeParticle(tPPtr p)
Remove (recursively) the given Particle from the Step.
Ptr< EventRecordBase >::transient_const_pointer tcEventBasePtr
Alias for a transient pointer to const EventRecordBase.
ParticleSet theIntermediates
The set of all intermediate particle in this step.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
tCollPtr theCollision
Pointer to the collision to which this step belongs.
void addParticle(tPPtr p)
Add a particle to this step.
Rebinder is a class associating pairs of pointers to objects.
tPPtr insertCopy(tcPPtr p)
Insert a copy.
This is the main namespace within which all identifiers in ThePEG are declared.
const ParticleSet & intermediates() const
A reference to the set of intermediate particles in this step.
ostream & left(ostream &os)
Stream manipulator setting an ostream to left-adjust its ouput.
tParticleSet getCurrent(const Cont &c) const
Get final state particles.
ParticleSet theParticles
The set of all outgoing particle in this step.
virtual void debugme() const
Print out debugging information for this object on std::cerr.
tPPtr find(tcPPtr p) const
Get mutable particle.
tCollPtr collision() const
Return a pointer to the Collision to which this step belongs.
bool nullStep() const
Return true if no new particles were introduced in this step.
void collision(tCollPtr c)
Setup pointer to the Collision.
ParticleSet allParticles
The set of all particles available in this step.
void handler(tcEventBasePtr sh)
Setup pointer to the step handler.
void addParticles(Iterator first, Iterator last)
Add a range of particles to this Step.
SubProcessVector theSubProcesses
The vector of all sub-processes introduced in this step.
Step(tCollPtr newCollision=tCollPtr(), tcEventBasePtr newHandler=tcEventBasePtr())
Standard constructor.
set< PPtr, less< PPtr > > ParticleSet
A set of pointers to Particle.
tcEventBasePtr theHandler
Pointer ot the step handler which performed this step.
void addDecayNoCheck(tPPtr parent, tPPtr child)
Add a particle to this Step.
void fixColourFlow()
Fix the colour flow of particles which have been added to this step and which have not already had th...
vector< SubProPtr > SubProcessVector
A vector of pointers to SubProcess.
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
T1 const_ptr_cast(const T2 &t2)
Replacement for the standard const_cast.
void addIfFinal(Inserter o, PPointer p)
Get final state particles.
RCPtr is a reference counted (smart) pointer.
ThePEG::Ptr< Particle >::transient_pointer tPPtr
Alias for a transient pointer to Particle .
bool addDecayProduct(tcPPtr parent, CIterator firstChild, CIterator lastChild, bool fixColour=true)
Add decay products.
const ParticleSet & particles() const
A reference to the set of outgoing particles in this step.
void removeSubProcess(tSubProPtr)
Remove a sub-process.
bool addDecayProduct(tcPPtr parent, tPPtr child, bool fixColour=true)
Add decay product.
ThePEG::Ptr< Collision >::transient_pointer tCollPtr
Alias for a transient pointer to Collision .
This is the decalaration of the Collision class.
void addIntermediates(Iterator first, Iterator last)
Add a range of intermediate particles in this step.
const ParticleSet & all() const
A reference to the set of all particles in this step.
Step & operator=(const Step &)
Assignement is not allowed.
tPPtr copyParticle(tcPPtr p)
Copy a particle.
const PPair & incoming() const
Returns the colliding particles in the collision to which this step belongs.
void addSubProcess(tSubProPtr)
Add a sub-process.
void addIntermediate(tPPtr p)
Add an intermediate particle in this Step.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
tPVector getFinalState() const
Extract all final state particles in this Step.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
void selectFinalState(OutputIterator r) const
Extract all final state particles in this Step.
bool removeDecayProduct(tcPPtr parent, CIterator firstChild, CIterator lastChild)
Remove children form the given parent.
void persistentInput(PersistentIStream &, int)
Standard function for reading from a persistent stream.
ParticleSelector< FinalStateSelector > SelectFinalState
Typedef to declare a selector used to extract all final state particles from an event.
const SubProcessVector & subProcesses() const
A reference to the vector of sub-processes introduced in this step.
The Step class contains information of all particles present after certain step in the event generati...