00001 #include "FastShowerUtils/ParticleParameters.h"
00002 #include <float.h>
00003 #include <iostream>
00004
00005 namespace FastShower{
00006
00008 ParticleParameters::ParticleParameters():
00009 m_phi(0.),
00010 m_eta(0.),
00011 m_delPhi(0.),
00012 m_delEta(0.),
00013 m_energy(0.),
00014 m_region(barrel),
00015 m_eLimiter(new EnergyLimiter(DBL_EPSILON, DBL_MAX)),
00016 m_particleType(ParticleType()),
00017 m_traceBack(new TraceBack()){
00018 }
00020 ParticleParameters::ParticleParameters(double phi,
00021 double eta,
00022 double delPhi,
00023 double delEta,
00024 double energy,
00025 Region reg,
00026 int pdgId):
00027 m_phi(phi), m_eta(eta), m_delPhi(delPhi), m_delEta(delEta),
00028 m_energy(energy), m_region(reg), m_quadrant(0),
00029 m_eLimiter(new EnergyLimiter(DBL_EPSILON, DBL_MAX)),
00030 m_particleType(ParticleType(pdgId)), m_traceBack(new TraceBack()){
00031
00032 this->calcQuadrant();
00033
00034 }
00036 void ParticleParameters::calcQuadrant(){
00037 if(m_delPhi>=0. && m_delEta>=0. ) m_quadrant=0;
00038 if(m_delPhi>=0. && m_delEta< 0. ) m_quadrant=1;
00039 if(m_delPhi< 0. && m_delEta< 0. ) m_quadrant=2;
00040 if(m_delPhi< 0. && m_delEta>=0. ) m_quadrant=3;
00041 }
00043 void ParticleParameters::fromIDebug(const IDebug* d) const{
00044 m_traceBack->add( d->name()+" "+d->text() );
00045
00046 }
00048 void ParticleParameters::dumpTrace() const{
00049 cout<<this;
00050
00051 }
00053 std::ostream& operator<<(std::ostream& ostr, const ParticleParameters& pp){
00054 ostr<<"ParticleParameters:"
00055 <<" eta: "<<pp.eta()
00056 <<" phi: "<<pp.phi()
00057 <<" delEta: "<<pp.delEta()
00058 <<" delPhi: "<<pp.delPhi()
00059 <<" energy: "<<pp.energy()
00060 <<" region: "<<pp.region()
00061 <<" quadrant: "<<pp.quadrant();
00062 if( pp.isElectron() ) {ostr<<" electron ";}
00063 if( pp.isPhoton() ) {ostr<<" photon ";}
00064 if( pp.isHadron() ) {ostr<<" hadron ";}
00065 ostr<<endl;
00066 return ostr;
00067 }
00069 std::ostream& operator<<(std::ostream& ostr, const ParticleParameters* pp){
00070 ostr<<*pp;
00071 return ostr;
00072 }
00073 }
00074
00075
00076