CMS 3D CMS Logo

FFTJetInterface.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: FFTJetProducers
4 // Class: FFTJetInterface
5 //
11 //
12 // Original Author: Igor Volobouev
13 // Created: June 29 2010
14 //
15 //
16 
17 #ifndef RecoJets_FFTJetProducers_FFTJetInterface_h
18 #define RecoJets_FFTJetProducers_FFTJetInterface_h
19 
20 #include <memory>
21 #include <vector>
22 #include <cassert>
23 
24 // FFTJet headers
25 #include "fftjet/Grid2d.hh"
26 
27 // framework include files
32 
34 
36 
40 
43 
44 // local FFTJet-related definitions
47 
48 //
49 // class declaration
50 //
51 namespace fftjetcms {
53  public:
54  ~FFTJetInterface() override {}
55 
56  protected:
57  explicit FFTJetInterface(const edm::ParameterSet&);
58 
59  template <class Ptr>
60  void checkConfig(const Ptr& ptr, const char* message) {
61  if (ptr.get() == nullptr)
62  throw cms::Exception("FFTJetBadConfig") << message << std::endl;
63  }
64 
65  void loadInputCollection(const edm::Event&);
66  void discretizeEnergyFlow();
67  double getEventScale() const;
68  bool storeInSinglePrecision() const;
69 
70  const reco::Particle::Point& vertexUsed() const { return vertex_; }
71 
72  // Label for the input collection
74 
75  // Label for the output objects
77 
78  // Jet type to produce
80 
81  // Vertex correction-related stuff
82  const bool doPVCorrection;
83 
84  // Label for the vertices
86 
87  // Try to equalize magnitudes in the energy flow grid?
88  const std::vector<double> etaDependentMagnutideFactors;
89 
90  // Functor for finding anomalous towers
92 
93  // Event data 4-vectors
94  std::vector<fftjetcms::VectorLike> eventData;
95 
96  // Candidate number which corresponds to the item in the "eventData"
97  std::vector<unsigned> candidateIndex;
98 
99  // The energy discretization grid
100  std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> > energyFlow;
101 
102  // The input handle for the collection of candidates
104 
105  private:
106  // Explicitly disable other ways to construct this object
107  FFTJetInterface() = delete;
108  FFTJetInterface(const FFTJetInterface&) = delete;
109  FFTJetInterface& operator=(const FFTJetInterface&) = delete;
110 
112  const double completeEventScale;
114 
117  };
118 } // namespace fftjetcms
119 
120 #endif // RecoJets_FFTJetProducers_FFTJetInterface_h
Handle.h
fftjetcms::FFTJetInterface::FFTJetInterface
FFTJetInterface()=delete
fftjetcms
Definition: AbsPileupCalculator.h:15
fftjetcms::FFTJetInterface::checkConfig
void checkConfig(const Ptr &ptr, const char *message)
Definition: FFTJetInterface.h:60
EDProducer.h
fftjetcms::FFTJetInterface::loadInputCollection
void loadInputCollection(const edm::Event &)
Definition: FFTJetInterface.cc:40
fftjetcms::FFTJetInterface::outputLabel
const std::string outputLabel
Definition: FFTJetInterface.h:76
AnomalousTower
Definition: AnomalousTower.h:7
edm::EDGetTokenT
Definition: EDGetToken.h:33
fftjetcms::FFTJetInterface::inputCollection
edm::Handle< reco::CandidateView > inputCollection
Definition: FFTJetInterface.h:103
fftjetTypedefs.h
fftjetcms::FFTJetInterface::getEventScale
double getEventScale() const
Definition: FFTJetInterface.cc:38
fftjetcms::FFTJetInterface::inputLabel
const edm::InputTag inputLabel
Definition: FFTJetInterface.h:73
fftjetcms::FFTJetInterface::operator=
FFTJetInterface & operator=(const FFTJetInterface &)=delete
JetType.h
edm::Handle
Definition: AssociativeIterator.h:50
fftjetcms::FFTJetInterface::completeEventScale
const double completeEventScale
Definition: FFTJetInterface.h:112
fftjetcms::FFTJetInterface::vertexUsed
const reco::Particle::Point & vertexUsed() const
Definition: FFTJetInterface.h:70
fftjetcms::FFTJetInterface::srcPVsToken
edm::EDGetTokenT< reco::VertexCollection > srcPVsToken
Definition: FFTJetInterface.h:116
fftjetcms::FFTJetInterface::jetType
const JetType jetType
Definition: FFTJetInterface.h:79
CandidateFwd.h
fftjetcms::FFTJetInterface::candidateIndex
std::vector< unsigned > candidateIndex
Definition: FFTJetInterface.h:97
fftjetcms::FFTJetInterface::srcPVs
const edm::InputTag srcPVs
Definition: FFTJetInterface.h:85
fftjetcms::FFTJetInterface::etaDependentMagnutideFactors
const std::vector< double > etaDependentMagnutideFactors
Definition: FFTJetInterface.h:88
fftjetcms::FFTJetInterface
Definition: FFTJetInterface.h:52
Particle.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
AnomalousTower.h
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
fftjetcms::FFTJetInterface::vertex_
reco::Particle::Point vertex_
Definition: FFTJetInterface.h:113
fftjetcms::FFTJetInterface::energyFlow
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
Definition: FFTJetInterface.h:100
fftjetcms::FFTJetInterface::insertCompleteEvent
const bool insertCompleteEvent
Definition: FFTJetInterface.h:111
fftjetcms::FFTJetInterface::storeInSinglePrecision
bool storeInSinglePrecision() const
Definition: FFTJetInterface.cc:15
fftjetcms::FFTJetInterface::anomalous
const AnomalousTower anomalous
Definition: FFTJetInterface.h:91
VertexFwd.h
fftjetcms::FFTJetInterface::~FFTJetInterface
~FFTJetInterface() override
Definition: FFTJetInterface.h:54
fftjetcms::FFTJetInterface::eventData
std::vector< fftjetcms::VectorLike > eventData
Definition: FFTJetInterface.h:94
fftjetcms::JetType
JetType
Definition: JetType.h:7
ParameterSetfwd.h
edm::EDProducer
Definition: EDProducer.h:35
Exception.h
fftjetcms::FFTJetInterface::discretizeEnergyFlow
void discretizeEnergyFlow()
Definition: FFTJetInterface.cc:79
reco::Particle::Point
math::XYZPoint Point
point in the space
Definition: Particle.h:25
fftjetcms::FFTJetInterface::doPVCorrection
const bool doPVCorrection
Definition: FFTJetInterface.h:82
cms::Exception
Definition: Exception.h:70
Candidate.h
edm::Event
Definition: Event.h:73
fftjetcms::FFTJetInterface::inputToken
edm::EDGetTokenT< reco::CandidateView > inputToken
Definition: FFTJetInterface.h:115
edm::InputTag
Definition: InputTag.h:15