CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/DataFormats/ParticleFlowReco/interface/PFSimParticle.h

Go to the documentation of this file.
00001 #ifndef DataFormats_ParticleFlowReco_PFSimParticle_h
00002 #define DataFormats_ParticleFlowReco_PFSimParticle_h
00003 
00004 #include "DataFormats/ParticleFlowReco/interface/PFTrack.h"
00005 
00006 #include <iostream>
00007 
00008 namespace reco {
00009 
00019   class PFSimParticle : public PFTrack {
00020 
00021   public:
00022 
00023     PFSimParticle();
00024   
00025     PFSimParticle(double charge, int pdgCode, 
00026                   unsigned id, int motherId,
00027                   const std::vector<int>& daughterIds,
00028                   unsigned rectrackId,
00029                   std::vector<unsigned> recHitContrib,
00030                   std::vector<double>   recHitContribFrac );
00031 
00032     PFSimParticle(const PFSimParticle& other);
00033 
00035     int      pdgCode() const {return pdgCode_; }
00036 
00038     unsigned id() const { return id_; }
00039 
00041     int motherId() const { return motherId_; }
00042 
00044     const std::vector<int>& daughterIds() const {return daughterIds_;}
00045 
00046    //accessing MCTruth Matching Info
00047     unsigned rectrackId() 
00048       const {return rectrackId_;} 
00049     std::vector<unsigned> recHitContrib() 
00050       const {return recHitContrib_;} 
00051     std::vector<double> recHitContribFrac() 
00052       const {return recHitContribFrac_;} 
00053 
00054     friend  std::ostream& operator<<(std::ostream& out, 
00055                                      const PFSimParticle& track);
00056 
00057   private:
00058     
00060     int       pdgCode_;
00061 
00063     unsigned  id_;
00064 
00066     int  motherId_;
00067 
00069     std::vector<int> daughterIds_;
00070 
00071     unsigned rectrackId_; 
00072     std::vector<unsigned> recHitContrib_; 
00073     std::vector<double>   recHitContribFrac_;
00074 
00075   };
00076 
00077 }
00078 
00079 #endif