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:
20 
22 
26 
27  PFBlockElement* clone() const override { return new PFBlockElementGsfTrack(*this); }
28 
29  void Dump(std::ostream& out = std::cout,
30  const char* tab = " " ) const override;
31 
33  bool trackType(TrackType trType) const override {
34  return (trackType_>>trType) & 1;
35  }
36 
38  void setTrackType(TrackType trType, bool value) override {
39  if(value) trackType_ = trackType_ | (1<<trType);
40  else trackType_ = trackType_ ^ (1<<trType);
41  }
42 
43  bool isSecondary() const override {
44  return trackType(T_FROM_GAMMACONV);
45  }
46 
49  return GsftrackRefPF_;
50  }
51 
53  const reco::GsfTrackRef& GsftrackRef() const {
54  return GsftrackRef_;
55  }
56 
57 
58 
59 
63  }
64 
65 
66 
67  const GsfPFRecTrack & GsftrackPF() const { return *GsftrackRefPF_;}
68 
69  const math::XYZTLorentzVector& Pin() const { return Pin_; }
70  const math::XYZTLorentzVector& Pout() const { return Pout_; }
71  private:
72 
73 
74 
77 
80 
81 
85  unsigned int trackType_;
86 
87 
90 
91 
92 
93  };
94 }
95 
96 #endif
97 
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)