CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ShiftedParticleProducer.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_PatUtils_ShiftedParticleProducer_h
2 #define PhysicsTools_PatUtils_ShiftedParticleProducer_h
3 
22 
26 
27 #include <string>
28 #include <vector>
29 
30 #include <TF2.h>
31 
33 {
35 
36  public:
37 
40 
41  private:
42 
43  void produce(edm::Event& evt, const edm::EventSetup& es);
44 
45  double getUncShift(const CandidateView::const_iterator& originalParticle);
46 
47 
49 
51 
53  {
54  binningEntryType(std::string uncertainty, std::string moduleLabel)
56  binUncertainty_(uncertainty),
58  {
59  binUncFormula_ = std::unique_ptr<TF2>(new TF2(std::string(moduleLabel).append("_uncFormula").c_str(), binUncertainty_.c_str() ) );
60  }
62  : binSelection_(new StringCutObjectSelector<reco::Candidate>(cfg.getParameter<std::string>("binSelection"))),
63  binUncertainty_(cfg.getParameter<std::string>("binUncertainty")),
65  {
66  binUncFormula_ = std::unique_ptr<TF2>(new TF2(std::string(moduleLabel).append("_uncFormula").c_str(), binUncertainty_.c_str() ) );
67  if(cfg.exists("energyDependency") ) {energyDep_=cfg.getParameter<bool>("energyDependency");
68  }
69  }
71  {
72  }
73  std::unique_ptr<StringCutObjectSelector<reco::Candidate> > binSelection_;
74  //double binUncertainty_;
76  std::unique_ptr<TF2> binUncFormula_;
77  bool energyDep_;
78  };
79  std::vector<binningEntryType*> binning_;
80 
81  double shiftBy_; // set to +1.0/-1.0 for up/down variation of energy scale
82 };
83 
84 #endif
T getParameter(std::string const &) const
edm::View< reco::Candidate > CandidateView
tuple cfg
Definition: looper.py:293
void produce(edm::Event &evt, const edm::EventSetup &es)
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
edm::EDGetTokenT< CandidateView > srcToken_
bool exists(std::string const &parameterName) const
checks if a parameter exists
binningEntryType(std::string uncertainty, std::string moduleLabel)
#define nullptr
ShiftedParticleProducer(const edm::ParameterSet &cfg)
binningEntryType(const edm::ParameterSet &cfg, std::string moduleLabel)
std::unique_ptr< StringCutObjectSelector< reco::Candidate > > binSelection_
double getUncShift(const CandidateView::const_iterator &originalParticle)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
volatile std::atomic< bool > shutdown_flag false
std::vector< binningEntryType * > binning_