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
0015
0016
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
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
0041 const math::XYZPointF& positionAtECALEntrance() const { return positionAtECALEntrance_; }
0042
0043 private:
0044
0045 GsfPFRecTrackRef GsftrackRefPF_;
0046
0047
0048 reco::GsfTrackRef GsftrackRef_;
0049
0050 double deltaP_;
0051 double sigmadeltaP_;
0052 unsigned int indPoint_;
0053 math::XYZPointF positionAtECALEntrance_;
0054 };
0055 }
0056
0057 #endif