CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h

Go to the documentation of this file.
00001 #ifndef DataFormats_ParticleFlowReco_GsfPFRecTrack_h
00002 #define DataFormats_ParticleFlowReco_GsfPFRecTrack_h
00003 
00004 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00005 #include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h"
00006 /* #include "DataFormats/Common/interface/RefToBase.h" */
00007 #include "DataFormats/GsfTrackReco/interface/GsfTrackFwd.h"
00008 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrackFwd.h"
00009 #include "DataFormats/ParticleFlowReco/interface/PFBrem.h"
00010 #include <iostream>
00011 
00012 namespace reco {
00013 
00024   class GsfPFRecTrack : public PFRecTrack
00025   {
00026 
00027   public:
00028     GsfPFRecTrack(){};
00029     GsfPFRecTrack(double charge,
00030                AlgoType_t algoType,
00031                int trackId,
00032                const reco::GsfTrackRef& gtrackref,
00033                const edm::Ref<std::vector<PFRecTrack> >& kfpfrectrackref);
00034 
00035   
00036 
00038     const reco::GsfTrackRef& 
00039       gsfTrackRef() const {return gsfTrackRef_;}
00040     
00042     const   edm::Ref<std::vector<PFRecTrack> >&
00043       kfPFRecTrackRef() const  {return kfPFRecTrackRef_;} 
00045     void addBrem( const reco::PFBrem& brem);
00046 
00048     void calculateBremPositionREP();
00049 
00051     const std::vector<reco::PFBrem>& PFRecBrem()const {return pfBremVec_;}
00052 
00054     int trackId() const {return trackId_;}
00055 
00056 
00058     void addConvBremPFRecTrackRef(const reco::PFRecTrackRef& pfrectracksref);
00059 
00061     const std::vector<reco::PFRecTrackRef>& convBremPFRecTrackRef() const {return assoPFRecTrack_;}
00062 
00064     void  addConvBremGsfPFRecTrackRef(const reco::GsfPFRecTrackRef& gsfpfrectracksref);
00065 
00067     const std::vector<reco::GsfPFRecTrackRef>& convBremGsfPFRecTrackRef() const {return assoGsfPFRecTrack_;}
00068 
00069   private:
00071     reco::GsfTrackRef     gsfTrackRef_;
00072 
00074     reco::PFRecTrackRef kfPFRecTrackRef_;
00075 
00077     std::vector<reco::PFBrem> pfBremVec_;
00078 
00080     std::vector<reco::PFRecTrackRef> assoPFRecTrack_;
00081     
00083     std::vector<reco::GsfPFRecTrackRef> assoGsfPFRecTrack_;
00084 
00086     int trackId_;
00087   };
00088 
00089 
00090 }
00091 
00092 #endif