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<double>("binUncertainty")),
64  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("energyDep") ) energyDep_=cfg.getParameter<bool>("energyDependency");
68  }
70  {
71  }
72  std::unique_ptr<StringCutObjectSelector<reco::Candidate> > binSelection_;
73  //double binUncertainty_;
75  std::unique_ptr<TF2> binUncFormula_;
76  bool energyDep_;
77  };
78  std::vector<binningEntryType*> binning_;
79 
80  double shiftBy_; // set to +1.0/-1.0 for up/down variation of energy scale
81 };
82 
83 #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_