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 const std::vector<unsigned>& recHitContrib, 00030 const 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