CMS 3D CMS Logo

PFBlockElementGsfTrack.h
Go to the documentation of this file.
1 #ifndef __PFBlockElementGsfTrack__
2 #define __PFBlockElementGsfTrack__
3 
4 #include <iostream>
12 
13 namespace reco {
14 
19  public:
21 
25 
26  PFBlockElement* clone() const override { return new PFBlockElementGsfTrack(*this); }
27 
28  void Dump(std::ostream& out = std::cout, const char* tab = " ") const override;
29 
31  bool trackType(TrackType trType) const override { return (trackType_ >> trType) & 1; }
32 
34  void setTrackType(TrackType trType, bool value) override {
35  if (value)
36  trackType_ = trackType_ | (1 << trType);
37  else
38  trackType_ = trackType_ ^ (1 << trType);
39  }
40 
41  bool isSecondary() const override { return trackType(T_FROM_GAMMACONV); }
42 
44  const GsfPFRecTrackRef& GsftrackRefPF() const { return GsftrackRefPF_; }
45 
47  const reco::GsfTrackRef& GsftrackRef() const { return GsftrackRef_; }
48 
51 
52  const GsfPFRecTrack& GsftrackPF() const { return *GsftrackRefPF_; }
53 
54  const math::XYZTLorentzVector& Pin() const { return Pin_; }
55  const math::XYZTLorentzVector& Pout() const { return Pout_; }
56 
57  private:
60 
63 
67  unsigned int trackType_;
68 
71  };
72 } // namespace reco
73 
74 #endif
const math::XYZTLorentzVector & Pout() const
Abstract base class for a PFBlock element (track, cluster...)
const reco::GsfTrackRef & GsftrackRef() const
void Dump(std::ostream &out=std::cout, const char *tab=" ") const override
print the object inside the element
const math::XYZPointF & positionAtECALEntrance() const
const GsfPFRecTrackRef & GsftrackRefPF() const
const math::XYZTLorentzVector & Pin() const
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
bool trackType(TrackType trType) const override
PFBlockElement * clone() const override
necessary to have the edm::OwnVector<PFBlockElement> working
const GsfPFRecTrack & GsftrackPF() const
Definition: value.py:1
math::XYZPointF positionAtECALEntrance_
position at ECAL entrance
reco::GsfTrackRef GsftrackRef_
reference to the corresponding GSF track
math::XYZTLorentzVector Pin_
The CorrespondingKFTrackRef is needeed.
void setTrackType(TrackType trType, bool value) override
the trackType
fixed size matrix
GsfPFRecTrackRef GsftrackRefPF_
reference to the corresponding GSF track (transient)