Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:51

0001 #ifndef __PFBlockElementBrem__
0002 #define __PFBlockElementBrem__
0003 
0004 #include <iostream>
0005 
0006 #include "DataFormats/ParticleFlowReco/interface/PFBlockElementTrack.h"
0007 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrackFwd.h"
0008 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h"
0009 #include "DataFormats/ParticleFlowReco/interface/PFBrem.h"
0010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0011 
0012 namespace reco {
0013 
0014   /// \brief Track Element.
0015   ///
0016   /// this class contains a reference to a PFRecTrack
0017   class PFBlockElementBrem final : public PFBlockElement {
0018   public:
0019     PFBlockElementBrem() {}
0020 
0021     PFBlockElementBrem(const GsfPFRecTrackRef& gsfref,
0022                        const double DeltaP,
0023                        const double SigmaDeltaP,
0024                        const unsigned int indTrajPoint);
0025 
0026     PFBlockElement* clone() const override { return new PFBlockElementBrem(*this); }
0027     void Dump(std::ostream& out = std::cout, const char* tab = " ") const override;
0028 
0029     const GsfPFRecTrackRef& GsftrackRefPF() const { return GsftrackRefPF_; }
0030 
0031     /// \return reference to the corresponding Track
0032     const reco::GsfTrackRef& GsftrackRef() const { return GsftrackRef_; }
0033 
0034     const PFRecTrack& trackPF() const { return ((*GsftrackRefPF()).PFRecBrem()[(indPoint_ - 2)]); }
0035 
0036     double DeltaP() const { return deltaP_; }
0037     double SigmaDeltaP() const { return sigmadeltaP_; }
0038     unsigned int indTrajPoint() const { return indPoint_; }
0039 
0040     /// \return position at ECAL entrance
0041     const math::XYZPointF& positionAtECALEntrance() const { return positionAtECALEntrance_; }
0042 
0043   private:
0044     /// reference to the corresponding track (transient)
0045     GsfPFRecTrackRef GsftrackRefPF_;
0046 
0047     /// reference to the corresponding track
0048     reco::GsfTrackRef GsftrackRef_;
0049 
0050     double deltaP_;
0051     double sigmadeltaP_;
0052     unsigned int indPoint_;
0053     math::XYZPointF positionAtECALEntrance_;
0054   };
0055 }  // namespace reco
0056 
0057 #endif