BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
McParticle.cxx
Go to the documentation of this file.
1#include "McTruth/McParticle.h"
2#include <iostream>
3
4namespace Event {
5
6 /// Retrieve particle property
7 McParticle::StdHepId McParticle::particleProperty() const { return m_particleID; }
8
9 /// Retrieve whether this is a primary particle
10 bool McParticle::primaryParticle() const { return ( m_statusFlags & PRIMARY ) == PRIMARY; }
11
12 /// Retrieve whether this is a leave particle
13 bool McParticle::leafParticle() const { return ( m_statusFlags & LEAF ) == LEAF; }
14
15 /// Retrieve whether decayed from generator
17 return ( m_statusFlags & DECAYED ) == DECAYED;
18 }
19
20 /// Retrieve wheter decayed in flight
21 bool McParticle::decayInFlight() const { return ( m_statusFlags & DECAYFLT ) == DECAYFLT; }
22
23 void McParticle::init( McParticle* mother, StdHepId id, unsigned int flags,
24 const HepLorentzVector& initialMomentum,
25 const HepLorentzVector& finalMomentum,
26 const HepLorentzVector& initialPosition,
27 const HepLorentzVector& finalPosition, const std::string process ) {
28 initialize( mother, id, flags, initialMomentum, initialPosition, process );
29 // finalize(finalMomentum, finalPosition);
31 }
32
33 void McParticle::initialize( StdHepId id, unsigned int flags,
34 const HepLorentzVector& initialMomentum,
35 const HepLorentzVector& initialPosition,
36 const std::string process ) {
37 m_particleID = id;
38 m_statusFlags = flags;
39 m_initialFourMomentum = initialMomentum;
40 m_initialPosition = initialPosition;
41 m_process = process;
42 }
43
44 void McParticle::initialize( McParticle* mother, StdHepId id, unsigned int flags,
45 const HepLorentzVector& initialMomentum,
46 const HepLorentzVector& initialPosition,
47 const std::string process ) {
48 m_mother = mother;
49 m_particleID = id;
50 m_statusFlags = flags;
51 m_initialFourMomentum = initialMomentum;
52 m_initialPosition = initialPosition;
53 m_process = process;
54 if ( mother != this ) mother->m_daughters.push_back( this );
55 }
56
57 /*void McParticle::finalize(const HepLorentzVector& finalMomentum,
58 const HepLorentzVector& finalPosition)
59 {
60 m_finalFourMomentum = finalMomentum;
61 m_finalPosition = finalPosition;
62 }*/
63
64 void McParticle::finalize( const HepLorentzVector& finalPosition ) {
65 m_finalPosition = finalPosition;
66 }
67
68 void McParticle::setMother( const SmartRef<McParticle> m ) { m_mother = m; }
69
70 const HepLorentzVector& McParticle::initialPosition() const { return m_initialPosition; }
71 const HepLorentzVector& McParticle::finalPosition() const { return m_finalPosition; }
72 const HepLorentzVector& McParticle::initialFourMomentum() const {
73 return m_initialFourMomentum;
74 }
75 /*const HepLorentzVector& McParticle::finalFourMomentum()const
76 {
77 return m_finalFourMomentum;
78 }*/
79
80 unsigned int McParticle::statusFlags() const { return m_statusFlags; }
81
82 /// access to the mother particle
83 const McParticle& McParticle::mother() const { return *m_mother; }
84
85 /// Remove daughters when in prune mode
86 void McParticle::removeDaughter( const SmartRef<McParticle> mcPart ) {
87 SmartRefVector<Event::McParticle>::iterator daughtIter;
88 for ( daughtIter = m_daughters.begin(); daughtIter != m_daughters.end(); daughtIter++ )
89 {
90 if ( mcPart == *daughtIter )
91 {
92 m_daughters.erase( daughtIter );
93 break;
94 }
95 }
96 return;
97 }
98
99} // namespace Event
void removeDaughter(const SmartRef< McParticle > mcPart)
Used for pruning.
bool primaryParticle() const
Retrieve whether this is a primary particle.
const HepLorentzVector & initialPosition() const
Retrieve pointer to the start, end vertex positions.
void setMother(const SmartRef< McParticle > m)
set the mother particle
const HepLorentzVector & initialFourMomentum() const
const McParticle & mother() const
access to the mother particle
unsigned int statusFlags() const
retrieve all of status flags for const object
void initialize(StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &initialPosition, const std::string process="")
Set the initial attributes of the McParticle.
bool decayFromGenerator() const
Decayed from generator.
bool leafParticle() const
Retrieve whether this is a leaf particle.
void finalize(const HepLorentzVector &finalPosition)
Set the final attributes of the McParticle.
bool decayInFlight() const
Decayed in flight.
void init(McParticle *mother, StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &finalMomentum, const HepLorentzVector &initialPosition, const HepLorentzVector &finalPosition, const std::string process="")
const HepLorentzVector & finalPosition() const
StdHepId particleProperty() const
Retrieve particle property.
Definition McParticle.cxx:7