Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes
G4MCTSimParticle Class Reference

#include <G4MCTSimParticle.hh>

Public Member Functions

 G4MCTSimParticle ()
 
 G4MCTSimParticle (std::string aname, int apcode, int atid, int ptid, const G4LorentzVector &p)
 
 G4MCTSimParticle (std::string aname, int apcode, int atid, int ptid, const G4LorentzVector &p, const G4MCTSimVertex *v)
 
virtual ~G4MCTSimParticle ()
 
 G4MCTSimParticle (const G4MCTSimParticle &right)
 
const G4MCTSimParticleoperator= (const G4MCTSimParticle &right)
 
void SetParentParticle (const G4MCTSimParticle *p)
 
G4MCTSimParticleGetParentParticle () const
 
void SetParticleName (std::string aname)
 
const std::string & GetParticleName () const
 
void SetPdgID (int id)
 
int GetPdgID () const
 
void SetTrackID (int id)
 
int GetTrackID () const
 
void SetParentTrackID (int id)
 
int GetParentTrackID () const
 
void SetPrimaryFlag (G4bool q)
 
G4bool GetPrimaryFlag () const
 
void SetMomentumAtVertex (const G4LorentzVector &p)
 
const G4LorentzVectorGetMomentumAtVertex () const
 
void SetVertex (const G4MCTSimVertex *v)
 
G4MCTSimVertexGetVertex () const
 
void SetStoreFlag (G4bool q)
 
G4bool GetStoreFlag () const
 
int AssociateParticle (G4MCTSimParticle *p)
 
int GetNofAssociatedParticles () const
 
G4MCTSimParticleGetAssociatedParticle (int i) const
 
int GetTreeLevel () const
 
void SetStoreFlagToParentTree (G4bool q=true)
 
void Print (std::ostream &ostr=std::cout, G4bool qrevorder=false) const
 
void PrintSingle (std::ostream &ostr=std::cout) const
 

Protected Attributes

G4MCTSimParticleparentParticle
 
std::vector< G4MCTSimParticle * > associatedParticleList
 
std::string name
 
int pdgID
 
int trackID
 
int parentTrackID
 
G4bool primaryFlag
 
G4LorentzVector momentumAtVertex
 
G4MCTSimVertexvertex
 
G4bool storeFlag
 

Detailed Description

Definition at line 48 of file G4MCTSimParticle.hh.

Constructor & Destructor Documentation

G4MCTSimParticle::G4MCTSimParticle ( )

Definition at line 47 of file G4MCTSimParticle.cc.

48  : parentParticle(0), pdgID(0),
49  trackID(0), parentTrackID(0),
50  primaryFlag(false),
51  vertex(0), storeFlag(false)
52 /////////////////////////////////
53 {
54 }
G4MCTSimParticle * parentParticle
G4MCTSimVertex * vertex
G4MCTSimParticle::G4MCTSimParticle ( std::string  aname,
int  apcode,
int  atid,
int  ptid,
const G4LorentzVector p 
)

Definition at line 57 of file G4MCTSimParticle.cc.

60  : parentParticle(0),
61  name(aname), pdgID(apcode),
62  trackID(atid), parentTrackID(ptid),
63  primaryFlag(false),momentumAtVertex(p),
64  vertex(0), storeFlag(false)
65 ///////////////////////////////////////////////////////////////
66 {
67 }
G4MCTSimParticle * parentParticle
G4LorentzVector momentumAtVertex
G4MCTSimVertex * vertex
G4MCTSimParticle::G4MCTSimParticle ( std::string  aname,
int  apcode,
int  atid,
int  ptid,
const G4LorentzVector p,
const G4MCTSimVertex v 
)

Definition at line 70 of file G4MCTSimParticle.cc.

74  : parentParticle(0),
75  name(aname), pdgID(apcode),
76  trackID(atid), parentTrackID(ptid),
77  primaryFlag(false),momentumAtVertex(p),
78  vertex(const_cast<G4MCTSimVertex*>(v)), storeFlag(false)
79 ///////////////////////////////////////////////////////////////
80 {
81 }
G4MCTSimParticle * parentParticle
G4LorentzVector momentumAtVertex
G4MCTSimVertex * vertex
G4MCTSimParticle::~G4MCTSimParticle ( )
virtual

Definition at line 84 of file G4MCTSimParticle.cc.

References associatedParticleList.

86 {
87  associatedParticleList.clear();
88 }
std::vector< G4MCTSimParticle * > associatedParticleList
G4MCTSimParticle::G4MCTSimParticle ( const G4MCTSimParticle right)
inline

Definition at line 116 of file G4MCTSimParticle.hh.

References right.

117 {
118  *this= right;
119 }

Member Function Documentation

int G4MCTSimParticle::AssociateParticle ( G4MCTSimParticle p)

Definition at line 91 of file G4MCTSimParticle.cc.

References associatedParticleList, and SetParentParticle().

93 {
94  associatedParticleList.push_back(p);
95  p-> SetParentParticle(this);
96  return associatedParticleList.size();
97 }
void SetParentParticle(const G4MCTSimParticle *p)
std::vector< G4MCTSimParticle * > associatedParticleList
G4MCTSimParticle * G4MCTSimParticle::GetAssociatedParticle ( int  i) const

Definition at line 107 of file G4MCTSimParticle.cc.

109 {
110  int size= associatedParticleList.size();
111  if(i>=0 && i< size) return associatedParticleList[i];
112  else return 0;
113 }
std::vector< G4MCTSimParticle * > associatedParticleList
const G4LorentzVector & G4MCTSimParticle::GetMomentumAtVertex ( ) const
inline

Definition at line 171 of file G4MCTSimParticle.hh.

References momentumAtVertex.

172 { return momentumAtVertex; }
G4LorentzVector momentumAtVertex
int G4MCTSimParticle::GetNofAssociatedParticles ( ) const

Definition at line 100 of file G4MCTSimParticle.cc.

References associatedParticleList.

102 {
103  return associatedParticleList.size();
104 }
std::vector< G4MCTSimParticle * > associatedParticleList
G4MCTSimParticle * G4MCTSimParticle::GetParentParticle ( ) const
inline

Definition at line 141 of file G4MCTSimParticle.hh.

References parentParticle.

Referenced by GetTreeLevel().

142 { return parentParticle; }
G4MCTSimParticle * parentParticle
int G4MCTSimParticle::GetParentTrackID ( ) const
inline

Definition at line 165 of file G4MCTSimParticle.hh.

References parentTrackID.

166 { return parentTrackID; }
const std::string & G4MCTSimParticle::GetParticleName ( ) const
inline

Definition at line 147 of file G4MCTSimParticle.hh.

References name.

148 { return name; }
int G4MCTSimParticle::GetPdgID ( ) const
inline

Definition at line 152 of file G4MCTSimParticle.hh.

References pdgID.

152 { return pdgID; }
G4bool G4MCTSimParticle::GetPrimaryFlag ( ) const
inline

Definition at line 160 of file G4MCTSimParticle.hh.

References primaryFlag.

160 { return primaryFlag; }
G4bool G4MCTSimParticle::GetStoreFlag ( ) const
inline

Definition at line 182 of file G4MCTSimParticle.hh.

References storeFlag.

182 { return storeFlag; }
int G4MCTSimParticle::GetTrackID ( ) const
inline

Definition at line 156 of file G4MCTSimParticle.hh.

References trackID.

Referenced by G4MCTSimVertex::AddOutParticle().

156 { return trackID; }
int G4MCTSimParticle::GetTreeLevel ( ) const

Definition at line 116 of file G4MCTSimParticle.cc.

References GetParentParticle().

118 {
119  const G4MCTSimParticle* p= this;
120  int nlevel;
121  for(nlevel=1;;nlevel++) {
122  p= p-> GetParentParticle();
123  if(p==0) return nlevel;
124  }
125 }
const char * p
Definition: xmltok.h:285
G4MCTSimParticle * GetParentParticle() const
G4MCTSimVertex * G4MCTSimParticle::GetVertex ( ) const
inline

Definition at line 177 of file G4MCTSimParticle.hh.

References vertex.

178 { return vertex; }
G4MCTSimVertex * vertex
const G4MCTSimParticle & G4MCTSimParticle::operator= ( const G4MCTSimParticle right)
inline

Definition at line 122 of file G4MCTSimParticle.hh.

References associatedParticleList, momentumAtVertex, name, parentParticle, parentTrackID, pdgID, primaryFlag, trackID, and vertex.

123 {
125  associatedParticleList= right.associatedParticleList; // shallow copy
126 
127  name= right.name;
128  pdgID= right.pdgID;
129  trackID= right.trackID;
131  primaryFlag= right.primaryFlag;
133  vertex= right.vertex;
134 
135  return *this;
136 }
const XML_Char * name
G4MCTSimParticle * parentParticle
G4LorentzVector momentumAtVertex
G4MCTSimVertex * vertex
std::vector< G4MCTSimParticle * > associatedParticleList
void G4MCTSimParticle::Print ( std::ostream &  ostr = std::cout,
G4bool  qrevorder = false 
) const

Definition at line 194 of file G4MCTSimParticle.cc.

References pyG4Element::Print().

196 {
197  PrintSingle(ostr);
198 
199  // recursively print associated particles
200  if (!qrevorder) { // parent -> child
201  SimParticleList::const_iterator itr;
202  for(itr= associatedParticleList.begin();
203  itr!= associatedParticleList.end(); ++itr) {
204  (*itr)-> Print(ostr);
205  }
206  } else { // child -> parent
207  if(parentParticle) parentParticle-> Print(ostr, true);
208  }
209 }
void PrintSingle(std::ostream &ostr=std::cout) const
void Print(std::ostream &ostr=std::cout, G4bool qrevorder=false) const
G4MCTSimParticle * parentParticle
std::vector< G4MCTSimParticle * > associatedParticleList
void G4MCTSimParticle::PrintSingle ( std::ostream &  ostr = std::cout) const

Definition at line 139 of file G4MCTSimParticle.cc.

References G4endl, python.hepunit::GeV, python.hepunit::mm, ns, and right.

141 {
142  std::ostringstream os;
143  char cqp=' ';
144  if(storeFlag) cqp='+';
145  os << cqp << trackID << '\0';
146  std::string stid(os.str());
147  ostr << std::setw(6) << stid;
148  //ostr << std::setw(4) << trackID;
149 
150  if(primaryFlag) ostr << "*";
151  else ostr << " ";
152  ostr << "<" << std::setw(5) << parentTrackID;
153  ostr.setf(std::ios::fixed);
154  ostr << ": P("
155  << std::setw(7) << std::setprecision(3) << momentumAtVertex.x()/GeV
156  << "," << std::setw(7) << std::setprecision(3)
157  << momentumAtVertex.y()/GeV
158  << "," << std::setw(7) << std::setprecision(3)
159  << momentumAtVertex.z()/GeV
160  << "," << std::setw(7) << std::setprecision(3)
161  << momentumAtVertex.e()/GeV << ") @";
162  ostr << name << "(" << pdgID << ")";
163 
164  if(vertex) {
165  ostr << " %" << vertex-> GetCreatorProcessName() << G4endl;
166 
167  std::ostringstream osv;
168  char cqv=' ';
169  if(vertex->GetStoreFlag()) cqv='+';
170  osv << cqv << vertex-> GetID() << '\0';
171  std::string svid(osv.str());
172  ostr << " " << std::setw(6) << svid;
173  //ostr << " " << std::setw(4) << vertex-> GetID();
174  ostr.unsetf(std::ios::fixed);
175  ostr.setf(std::ios::scientific|std::ios::right|std::ios::showpoint);
176  ostr << "- X(" << std::setw(9) << std::setprecision(2)
177  << vertex-> GetPosition().x()/mm
178  << "," << std::setw(9) << std::setprecision(2)
179  << vertex-> GetPosition().y()/mm
180  << "," << std::setw(9) << std::setprecision(2)
181  << vertex-> GetPosition().z()/mm
182  << "," << std::setw(9) << std::setprecision(2)
183  << vertex-> GetTime()/ns << ")";
184  ostr.unsetf(std::ios::scientific);
185 
186  ostr << " @" << vertex-> GetVolumeName()
187  << "-" << vertex-> GetVolumeNumber();
188  }
189  ostr << G4endl;
190 
191 }
G4bool GetStoreFlag() const
const XML_Char * name
G4LorentzVector momentumAtVertex
G4MCTSimVertex * vertex
#define G4endl
Definition: G4ios.hh:61
#define ns
Definition: xmlparse.cc:597
void G4MCTSimParticle::SetMomentumAtVertex ( const G4LorentzVector p)
inline

Definition at line 168 of file G4MCTSimParticle.hh.

References momentumAtVertex.

169 { momentumAtVertex= p; }
const char * p
Definition: xmltok.h:285
G4LorentzVector momentumAtVertex
void G4MCTSimParticle::SetParentParticle ( const G4MCTSimParticle p)
inline

Definition at line 138 of file G4MCTSimParticle.hh.

References parentParticle.

Referenced by AssociateParticle().

139 { parentParticle= const_cast<G4MCTSimParticle*>(p); }
const char * p
Definition: xmltok.h:285
G4MCTSimParticle * parentParticle
void G4MCTSimParticle::SetParentTrackID ( int  id)
inline

Definition at line 162 of file G4MCTSimParticle.hh.

References parentTrackID.

163 { parentTrackID= id; }
void G4MCTSimParticle::SetParticleName ( std::string  aname)
inline

Definition at line 144 of file G4MCTSimParticle.hh.

145 { name= aname; }
const XML_Char * name
void G4MCTSimParticle::SetPdgID ( int  id)
inline

Definition at line 150 of file G4MCTSimParticle.hh.

References pdgID.

150 { pdgID= id; }
void G4MCTSimParticle::SetPrimaryFlag ( G4bool  q)
inline

Definition at line 158 of file G4MCTSimParticle.hh.

References primaryFlag.

158 { primaryFlag= q; }
void G4MCTSimParticle::SetStoreFlag ( G4bool  q)
inline

Definition at line 180 of file G4MCTSimParticle.hh.

References storeFlag.

Referenced by SetStoreFlagToParentTree().

180 { storeFlag= q; }
void G4MCTSimParticle::SetStoreFlagToParentTree ( G4bool  q = true)

Definition at line 128 of file G4MCTSimParticle.cc.

References parentParticle, primaryFlag, SetStoreFlag(), storeFlag, and vertex.

130 {
131  storeFlag=q;
132  if(vertex) vertex-> SetStoreFlag(q);
133  if(primaryFlag) return;
135 }
void SetStoreFlag(G4bool q)
void SetStoreFlagToParentTree(G4bool q=true)
G4MCTSimParticle * parentParticle
G4MCTSimVertex * vertex
void G4MCTSimParticle::SetTrackID ( int  id)
inline

Definition at line 154 of file G4MCTSimParticle.hh.

References trackID.

154 { trackID= id; }
void G4MCTSimParticle::SetVertex ( const G4MCTSimVertex v)
inline

Definition at line 174 of file G4MCTSimParticle.hh.

References test::v, and vertex.

175 { vertex= const_cast<G4MCTSimVertex*>(v); }
G4MCTSimVertex * vertex

Field Documentation

std::vector<G4MCTSimParticle*> G4MCTSimParticle::associatedParticleList
protected
G4LorentzVector G4MCTSimParticle::momentumAtVertex
protected

Definition at line 58 of file G4MCTSimParticle.hh.

Referenced by GetMomentumAtVertex(), operator=(), and SetMomentumAtVertex().

std::string G4MCTSimParticle::name
protected

Definition at line 53 of file G4MCTSimParticle.hh.

Referenced by GetParticleName(), and operator=().

G4MCTSimParticle* G4MCTSimParticle::parentParticle
protected
int G4MCTSimParticle::parentTrackID
protected

Definition at line 56 of file G4MCTSimParticle.hh.

Referenced by GetParentTrackID(), operator=(), and SetParentTrackID().

int G4MCTSimParticle::pdgID
protected

Definition at line 54 of file G4MCTSimParticle.hh.

Referenced by GetPdgID(), operator=(), and SetPdgID().

G4bool G4MCTSimParticle::primaryFlag
protected
G4bool G4MCTSimParticle::storeFlag
protected

Definition at line 60 of file G4MCTSimParticle.hh.

Referenced by GetStoreFlag(), SetStoreFlag(), and SetStoreFlagToParentTree().

int G4MCTSimParticle::trackID
protected

Definition at line 55 of file G4MCTSimParticle.hh.

Referenced by GetTrackID(), operator=(), and SetTrackID().

G4MCTSimVertex* G4MCTSimParticle::vertex
protected

Definition at line 59 of file G4MCTSimParticle.hh.

Referenced by GetVertex(), operator=(), SetStoreFlagToParentTree(), and SetVertex().


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