CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ShiftedPFCandidateProducerByMatchedObject.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_PatUtils_ShiftedPFCandidateProducerByMatchedObject_h
2 #define PhysicsTools_PatUtils_ShiftedPFCandidateProducerByMatchedObject_h
3 
18 
20 
23 
27 
28 #include <string>
29 #include <vector>
30 
32 {
33  public:
34 
37 
38  private:
39 
40  void produce(edm::Event&, const edm::EventSetup&);
41 
43 
47 
52 
54  {
56  const reco::Candidate::LorentzVector& unshiftedObjectP4, double dRmatch)
57  : shiftedObjectP4_(shiftedObjectP4),
58  unshiftedObjectP4_(unshiftedObjectP4),
59  dRmatch_(dRmatch),
61  {
62  if ( unshiftedObjectP4.energy() > 0. ) {
63  shift_ = (shiftedObjectP4.energy()/unshiftedObjectP4.energy()) - 1.;
64  isValidMatch_ = true;
65  }
66  }
70  double dRmatch_;
71  double shift_;
73  };
74 
75  std::vector<objectEntryType> objects_;
76 };
77 
78 #endif
79 
80 
81 
82 
objectEntryType(const reco::Candidate::LorentzVector &shiftedObjectP4, const reco::Candidate::LorentzVector &unshiftedObjectP4, double dRmatch)
edm::EDGetTokenT< edm::View< reco::Candidate > > srcShiftedObjects_
edm::EDGetTokenT< edm::Handle< reco::PFCandidateCollection > > srcPFCandidates_
edm::EDGetTokenT< edm::View< reco::Candidate > > srcUnshiftedObjects_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:41
volatile std::atomic< bool > shutdown_flag false