source: DMM/src/Particle.cxx @ 403

Last change on this file since 403 was 373, checked in by campagne, 17 years ago

Data Model for MEMPHYS

File size: 2.5 KB
Line 
1#include "DMM/Particle.h"
2
3
4MEMPHYS::DMM::Particle::Particle(MEMPHYS::DMM::IDataServices& aService)   
5  :MEMPHYS::DMM::BaseData(aService)
6  ,m_PDGId(0)
7  ,m_momentum()
8  ,m_prodPoint()
9  ,m_endPoint()
10{
11  std::cout << "Create Particle("<<this<<")"<<std::endl;
12}//Ctor
13//----------------------------------------------------------
14MEMPHYS::DMM::Particle::Particle(const MEMPHYS::DMM::Particle& aParticle)
15  :MEMPHYS::DMM::BaseData(aParticle)
16  ,m_PDGId(aParticle.m_PDGId)
17  ,m_momentum(aParticle.m_momentum)
18  ,m_prodPoint(aParticle.m_prodPoint)
19  ,m_endPoint(aParticle.m_endPoint)
20{
21  std::cout << "Copy Create Particle("<<this<<") from ("<< &aParticle <<")" <<std::endl;
22}//CCtor
23//----------------------------------------------------------
24MEMPHYS::DMM::Particle& MEMPHYS::DMM::Particle::operator=(const MEMPHYS::DMM::Particle& aParticle) {
25  std::cout << "Assign ("<<&aParticle<<") to (" << this << ")" <<std::endl;
26  if (&aParticle != this) {
27    m_PDGId = aParticle.m_PDGId;
28    m_momentum = aParticle.m_momentum;
29    m_prodPoint = aParticle.m_prodPoint;
30    m_endPoint = aParticle.m_endPoint;
31  }
32  return *this;
33}//op=
34//----------------------------------------------------------
35void* MEMPHYS::DMM::Particle::cast(const std::string& aClass) const {
36  if(aClass=="Slash::Store::IStorable") {
37    return (void*)static_cast<const Slash::Store::IStorable*>(this);
38  } else if(aClass=="MEMPHYS::DMM::Particle") {
39    return (void*)static_cast<const MEMPHYS::DMM::Particle*>(this);
40  } else if(aClass=="MEMPHYS:DMM::BaseData") {
41    return (void*)static_cast<const MEMPHYS::DMM::BaseData*>(this);
42  } else {
43    return 0;
44  } 
45}//cast
46//----------------------------------------------------------
47bool  MEMPHYS::DMM::Particle::visit(Slash::Store::IConstVisitor&) const {
48  return true;
49}//visit
50//----------------------------------------------------------
51bool MEMPHYS::DMM::Particle::read(Slash::Store::IVisitor&) {
52  return true;
53}//read
54//----------------------------------------------------------
55void MEMPHYS::DMM::Particle::dump(std::ostream& f,
56                               const std::string& option) {
57  MEMPHYS::DMM::BaseData::dump(f,option);
58  f << " PDG code " << m_PDGId
59    << " mass " << m_momentum[4] << ", "
60    << " Etot " << m_momentum[3] << "\n "
61    << "(px,py,pz) " 
62    << m_momentum[0] << ", "
63    << m_momentum[1] << ", "
64    << m_momentum[2] << ", "
65    << std::endl;
66  f << " Production Point: ";
67  m_prodPoint->dump(f,option);
68  if (!m_endPoint) {
69    f << " End/Decay Point: ";
70    m_endPoint->dump(f,option);
71  }
72}//dump
73
74
Note: See TracBrowser for help on using the repository browser.