CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ParametersDefinerForTP.h
Go to the documentation of this file.
1 #ifndef TrackAssociation_ParametersDefinerForTP_h
2 #define TrackAssociation_ParametersDefinerForTP_h
3 
10 #include <memory>
11 
21 
23 public:
25  virtual ~ParametersDefinerForTP();
26 
27  typedef int Charge;
30 
32  const edm::EventSetup &iSetup,
33  const Charge ch,
34  const Point &vtx,
35  const LorentzVector &lv) const;
36 
38  const edm::EventSetup &iSetup,
39  const TrackingParticleRef &tpr) const {
40  return momentum(iEvent, iSetup, tpr->charge(), tpr->vertex(), tpr->p4());
41  }
42 
44  const edm::EventSetup &iSetup,
45  const reco::Candidate &tp) const {
46  return momentum(iEvent, iSetup, tp.charge(), tp.vertex(), tp.p4());
47  }
48 
50  const edm::EventSetup &iSetup,
51  const Charge ch,
52  const Point &vtx,
53  const LorentzVector &lv) const;
54 
56  const edm::EventSetup &iSetup,
57  const TrackingParticleRef &tpr) const {
58  return vertex(iEvent, iSetup, tpr->charge(), tpr->vertex(), tpr->p4());
59  }
60 
62  const edm::EventSetup &iSetup,
63  const reco::Candidate &tp) const {
64  return vertex(iEvent, iSetup, tp.charge(), tp.vertex(), tp.p4());
65  }
66 
67  virtual std::tuple<TrackingParticle::Vector, TrackingParticle::Point> momentumAndVertex(
68  const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackingParticleRef &tpr) const {
69  return momentumAndVertex(iEvent, iSetup, tpr->charge(), tpr->vertex(), tpr->p4());
70  }
71 
72  std::tuple<TrackingParticle::Vector, TrackingParticle::Point> momentumAndVertex(const edm::Event &iEvent,
73  const edm::EventSetup &iSetup,
74  const Charge ch,
75  const Point &vtx,
76  const LorentzVector &lv) const;
77 
79 
80  virtual std::unique_ptr<ParametersDefinerForTP> clone() const {
81  return std::make_unique<ParametersDefinerForTP>(*this);
82  }
83 
84 protected:
87 };
88 
89 #endif
virtual ~ParametersDefinerForTP()
math::XYZTLorentzVectorD LorentzVector
Lorentz vector.
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
ParametersDefinerForTP(const edm::InputTag &beamspot, edm::ConsumesCollector iC)
math::XYZPointD Point
point in the space
int iEvent
Definition: GenABIO.cc:224
virtual std::tuple< TrackingParticle::Vector, TrackingParticle::Point > momentumAndVertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackingParticleRef &tpr) const
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
math::XYZPointD Point
point in the space
math::XYZTLorentzVector LorentzVector
virtual void initEvent(edm::Handle< SimHitTPAssociationProducer::SimHitTPAssociationList > simHitsTPAssocToSet)
virtual const Point & vertex() const =0
vertex position
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Candidate &tp) const
virtual int charge() const =0
electric charge
virtual std::unique_ptr< ParametersDefinerForTP > clone() const
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackingParticleRef &tpr) const
int Charge
electric charge type
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double > > XYZPointD
point in space with cartesian internal representation
Definition: Point3D.h:8
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackingParticleRef &tpr) const
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Candidate &tp) const
math::XYZVectorD Vector
point in the space
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector