CMS 3D CMS Logo

pftools::ParticleDeposit Class Reference

#include <RecoParticleFlow/PFClusterTools/interface/ParticleDeposit.h>

List of all members.

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< DepositiongetTruthDepositions () 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< DepositionmyRecDepositions
std::vector< DepositionmyTruthDepositions
double myTruthEnergy
std::vector< ParticleDeposit * > pdps_

Static Private Attributes

static unsigned count = 0

Friends

std::ostream & operator<< (std::ostream &s, const ParticleDeposit &p)


Detailed Description

Definition at line 21 of file ParticleDeposit.h.


Constructor & Destructor Documentation

ParticleDeposit::ParticleDeposit ( double  truthEnergy = -1.0,
double  eta = 0,
double  phi = 0 
)

Definition at line 10 of file ParticleDeposit.cc.

References count.

00010                                                                            :
00011         myId(count), myTruthEnergy(truthEnergy), myEta(eta), myPhi(phi) {
00012         ++count;
00013 }

ParticleDeposit::~ParticleDeposit (  )  [virtual]

Definition at line 15 of file ParticleDeposit.cc.

00015                                   {
00016 }


Member Function Documentation

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]

Definition at line 76 of file ParticleDeposit.h.

References myEta.

00076                                       {
00077                 myEta = eta;
00078         }

void pftools::ParticleDeposit::setPhi ( const double  phi  )  [inline]

Definition at line 72 of file ParticleDeposit.h.

References myPhi.

00072                                       {
00073                 myPhi = phi;
00074         }

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         }


Friends And Related Function Documentation

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 }


Member Data Documentation

unsigned ParticleDeposit::count = 0 [static, private]

Definition at line 85 of file ParticleDeposit.h.

Referenced by ParticleDeposit().

double pftools::ParticleDeposit::myEta [private]

Definition at line 92 of file ParticleDeposit.h.

Referenced by getEta(), and setEta().

unsigned pftools::ParticleDeposit::myId [private]

Definition at line 89 of file ParticleDeposit.h.

Referenced by getId().

double pftools::ParticleDeposit::myPhi [private]

Definition at line 93 of file ParticleDeposit.h.

Referenced by getPhi(), and setPhi().

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.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:50:07 2009 for CMSSW by  doxygen 1.5.4