#include <RecoParticleFlow/PFClusterTools/interface/ParticleDeposit.h>
Public Member Functions | |
virtual void | addRecDeposition (Deposition rec) |
virtual void | addTruthDeposition (Deposition truth) |
virtual double | getEnergyResolution () const |
double | getEta () const |
virtual unsigned | getId () const |
virtual double | getPhi () const |
virtual const std::vector < Deposition > & | getRecDepositions () const |
virtual double | getRecEnergy () const |
virtual double | getRecEnergy (const DetectorElementPtr de) const |
double | getTargetFunctionContrib () const |
virtual std::vector< Deposition > | getTruthDepositions () const |
virtual double | getTruthEnergy (const DetectorElementPtr de) const |
virtual double | getTruthEnergy () const |
ParticleDeposit (double truthEnergy=-1.0, double eta=0, double phi=0) | |
void | setEta (const double eta) |
void | setPhi (const double phi) |
virtual void | setRecEnergy (const DetectorElementPtr de, double energy) |
void | setTruthEnergy (const double truth) |
virtual | ~ParticleDeposit () |
Private Attributes | |
double | myEta |
unsigned | myId |
double | myPhi |
std::vector< Deposition > | myRecDepositions |
std::vector< Deposition > | myTruthDepositions |
double | myTruthEnergy |
std::vector< ParticleDeposit * > | pdps_ |
Static Private Attributes | |
static unsigned | count = 0 |
Friends | |
std::ostream & | operator<< (std::ostream &s, const ParticleDeposit &p) |
Definition at line 21 of file ParticleDeposit.h.
ParticleDeposit::ParticleDeposit | ( | double | truthEnergy = -1.0 , |
|
double | eta = 0 , |
|||
double | phi = 0 | |||
) |
ParticleDeposit::~ParticleDeposit | ( | ) | [virtual] |
void ParticleDeposit::addRecDeposition | ( | Deposition | rec | ) | [virtual] |
Definition at line 18 of file ParticleDeposit.cc.
References myRecDepositions.
00018 { 00019 myRecDepositions.push_back(rec); 00020 }
void ParticleDeposit::addTruthDeposition | ( | Deposition | truth | ) | [virtual] |
Definition at line 22 of file ParticleDeposit.cc.
References myTruthDepositions.
00022 { 00023 myTruthDepositions.push_back(truth); 00024 }
double ParticleDeposit::getEnergyResolution | ( | ) | const [virtual] |
Definition at line 91 of file ParticleDeposit.cc.
References getRecEnergy(), myTruthEnergy, and funct::sqrt().
Referenced by pftools::operator<<().
00091 { 00092 //assert(!(getRecEnergy() / myTruthEnergy < 0.0)); 00093 return fabs((getRecEnergy() - myTruthEnergy) / sqrt(myTruthEnergy)); 00094 }
double pftools::ParticleDeposit::getEta | ( | ) | const [inline] |
Definition at line 60 of file ParticleDeposit.h.
References myEta.
Referenced by pftools::operator<<().
00060 { 00061 return myEta; 00062 }
virtual unsigned pftools::ParticleDeposit::getId | ( | ) | const [inline, virtual] |
Definition at line 56 of file ParticleDeposit.h.
References myId.
Referenced by pftools::operator<<().
00056 { 00057 return myId; 00058 }
virtual double pftools::ParticleDeposit::getPhi | ( | ) | const [inline, virtual] |
Definition at line 64 of file ParticleDeposit.h.
References myPhi.
Referenced by pftools::operator<<().
00064 { 00065 return myPhi; 00066 }
const std::vector< Deposition > & ParticleDeposit::getRecDepositions | ( | ) | const [virtual] |
Definition at line 30 of file ParticleDeposit.cc.
References myRecDepositions.
Referenced by pftools::operator<<().
00030 { 00031 return myRecDepositions; 00032 }
double ParticleDeposit::getRecEnergy | ( | ) | const [virtual] |
Definition at line 74 of file ParticleDeposit.cc.
References d, relval_parameters_module::energy, pftools::Deposition::getDetectorElement(), pftools::Deposition::getEnergy(), pftools::Deposition::getEta(), pftools::Deposition::getPhi(), and myRecDepositions.
Referenced by getEnergyResolution(), and getTargetFunctionContrib().
00074 { 00075 double energy(0); 00076 for (std::vector<Deposition>::const_iterator cit = myRecDepositions.begin(); cit 00077 != myRecDepositions.end(); ++cit) { 00078 Deposition d = *cit; 00079 // if (d.getDetectorElement()->getType() == OFFSET && d.getDetectorElement()->getCalib() == 1.0) { 00080 // //don't add a tiny amount! 00081 // } else { 00082 energy += d.getDetectorElement()->getCalib(d.getEta(), d.getPhi()) * d.getEnergy(); 00083 // } 00084 } 00085 00086 //assert(!(energy < 0)); 00087 return energy; 00088 00089 }
double ParticleDeposit::getRecEnergy | ( | const DetectorElementPtr | de | ) | const [virtual] |
Definition at line 34 of file ParticleDeposit.cc.
References d, relval_parameters_module::energy, pftools::Deposition::getDetectorElement(), pftools::Deposition::getEnergy(), pftools::Deposition::getEta(), pftools::Deposition::getPhi(), and myRecDepositions.
Referenced by pftools::operator<<().
00034 { 00035 double energy(0); 00036 for (std::vector<Deposition>::const_iterator cit = myRecDepositions.begin(); cit 00037 != myRecDepositions.end(); ++cit) { 00038 Deposition d = *cit; 00039 00040 if (d.getDetectorElement()->getType() == de->getType()) { 00041 energy += de->getCalib(d.getEta(), d.getPhi()) * d.getEnergy(); 00042 } 00043 00044 } 00045 return energy; 00046 }
double ParticleDeposit::getTargetFunctionContrib | ( | ) | const |
Definition at line 96 of file ParticleDeposit.cc.
References getRecEnergy(), myTruthEnergy, and funct::pow().
00096 { 00097 //assert(!(getRecEnergy() / myTruthEnergy < 0.0)); 00098 return pow((getRecEnergy() - myTruthEnergy), 2); 00099 }
std::vector< Deposition > ParticleDeposit::getTruthDepositions | ( | ) | const [virtual] |
Definition at line 26 of file ParticleDeposit.cc.
References myTruthDepositions.
00026 { 00027 return myTruthDepositions; 00028 }
double ParticleDeposit::getTruthEnergy | ( | const DetectorElementPtr | de | ) | const [virtual] |
Definition at line 60 of file ParticleDeposit.cc.
References d, relval_parameters_module::energy, pftools::Deposition::getDetectorElement(), pftools::Deposition::getEnergy(), and myTruthDepositions.
00060 { 00061 double energy(0); 00062 for (std::vector<Deposition>::const_iterator 00063 cit = myTruthDepositions.begin(); cit!= myTruthDepositions.end(); ++cit) { 00064 Deposition d = *cit; 00065 if (d.getDetectorElement() == de) { 00066 energy += d.getEnergy(); 00067 } 00068 } 00069 assert(!(energy > 0)); 00070 return energy; 00071 00072 }
virtual double pftools::ParticleDeposit::getTruthEnergy | ( | ) | const [inline, virtual] |
Definition at line 36 of file ParticleDeposit.h.
References myTruthEnergy.
Referenced by pftools::operator<<().
00036 { 00037 return myTruthEnergy; 00038 }
void pftools::ParticleDeposit::setEta | ( | const double | eta | ) | [inline] |
void pftools::ParticleDeposit::setPhi | ( | const double | phi | ) | [inline] |
void ParticleDeposit::setRecEnergy | ( | const DetectorElementPtr | de, | |
double | energy | |||
) | [virtual] |
Definition at line 48 of file ParticleDeposit.cc.
References d, pftools::Deposition::getDetectorElement(), myRecDepositions, and pftools::Deposition::setEnergy().
00048 { 00049 for (std::vector<Deposition>::const_iterator cit = myRecDepositions.begin(); cit 00050 != myRecDepositions.end(); ++cit) { 00051 Deposition d = *cit; 00052 00053 if (d.getDetectorElement()->getType() == de->getType()) { 00054 d.setEnergy(energy); 00055 } 00056 00057 } 00058 }
void pftools::ParticleDeposit::setTruthEnergy | ( | const double | truth | ) | [inline] |
Definition at line 68 of file ParticleDeposit.h.
References myTruthEnergy.
00068 { 00069 myTruthEnergy = truth; 00070 }
std::ostream& operator<< | ( | std::ostream & | s, | |
const ParticleDeposit & | p | |||
) | [friend] |
Definition at line 101 of file ParticleDeposit.cc.
00101 { 00102 s << "Particle id:\t" << p.getId() << ", \t trueEnergy: " << p.getTruthEnergy() << "\n"; 00103 s.width(3); 00104 s << "\tEta:\t" << p.getEta() << ",\tphi:\t" << p.getPhi() << "\n"; 00105 for (std::vector<Deposition>::const_iterator cit = p.getRecDepositions().begin(); cit 00106 != p.getRecDepositions().end(); ++cit) { 00107 Deposition d = *cit; 00108 DetectorElementPtr de(d.getDetectorElement()); 00109 s << "\t" << *de << ": \t=> E_contrib = "; 00110 s << de->getCalib(d.getEta(), d.getPhi()) * d.getEnergy() << "\n"; 00111 } 00112 s << "\tTotalRecEnergy: " << p.getRecEnergy() << ",\t res: " << p.getEnergyResolution() * 100 << "%\n"; 00113 return s; 00114 }
unsigned ParticleDeposit::count = 0 [static, private] |
double pftools::ParticleDeposit::myEta [private] |
unsigned pftools::ParticleDeposit::myId [private] |
double pftools::ParticleDeposit::myPhi [private] |
std::vector<Deposition> pftools::ParticleDeposit::myRecDepositions [private] |
Definition at line 87 of file ParticleDeposit.h.
Referenced by addRecDeposition(), getRecDepositions(), getRecEnergy(), and setRecEnergy().
std::vector<Deposition> pftools::ParticleDeposit::myTruthDepositions [private] |
Definition at line 88 of file ParticleDeposit.h.
Referenced by addTruthDeposition(), getTruthDepositions(), and getTruthEnergy().
double pftools::ParticleDeposit::myTruthEnergy [private] |
Definition at line 91 of file ParticleDeposit.h.
Referenced by getEnergyResolution(), getTargetFunctionContrib(), getTruthEnergy(), and setTruthEnergy().
std::vector<ParticleDeposit*> pftools::ParticleDeposit::pdps_ [private] |
Definition at line 98 of file ParticleDeposit.h.