CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 // $Id: FFTJetInterface.h,v 1.3 2012/08/06 21:36:54 igv Exp $
15 //
16 //
17 
18 #ifndef RecoJets_FFTJetProducers_FFTJetInterface_h
19 #define RecoJets_FFTJetProducers_FFTJetInterface_h
20 
21 #include <memory>
22 #include <vector>
23 #include <cassert>
24 
25 // FFTJet headers
26 #include "fftjet/Grid2d.hh"
27 
28 // framework include files
32 
34 
36 
40 
41 // local FFTJet-related definitions
44 
45 //
46 // class declaration
47 //
48 namespace fftjetcms {
50  {
51  public:
52  virtual ~FFTJetInterface() {}
53 
54  protected:
55  explicit FFTJetInterface(const edm::ParameterSet&);
56 
57  template<class Ptr>
58  void checkConfig(const Ptr& ptr, const char* message)
59  {
60  if (ptr.get() == NULL)
61  throw cms::Exception("FFTJetBadConfig") << message << std::endl;
62  }
63 
64  void loadInputCollection(const edm::Event&);
65  void discretizeEnergyFlow();
66  double getEventScale() const;
67  bool storeInSinglePrecision() const;
68 
69  const reco::Particle::Point& vertexUsed() const {return vertex_;}
70 
71  // Label for the input collection
73 
74  // Label for the output objects
76 
77  // Jet type to produce
79 
80  // Vertex correction-related stuff
81  const bool doPVCorrection;
82 
83  // Label for the vertices
85 
86  // Try to equalize magnitudes in the energy flow grid?
87  const std::vector<double> etaDependentMagnutideFactors;
88 
89  // Functor for finding anomalous towers
91 
92  // Event data 4-vectors
93  std::vector<fftjetcms::VectorLike> eventData;
94 
95  // Candidate number which corresponds to the item in the "eventData"
96  std::vector<unsigned> candidateIndex;
97 
98  // The energy discretization grid
99  std::auto_ptr<fftjet::Grid2d<fftjetcms::Real> > energyFlow;
100 
101  // The input handle for the collection of candidates
103 
104  private:
105  // Explicitly disable other ways to construct this object
106  FFTJetInterface();
109 
111  const double completeEventScale;
113  };
114 }
115 
116 #endif // RecoJets_FFTJetProducers_FFTJetInterface_h
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
const edm::InputTag inputLabel
edm::Handle< reco::CandidateView > inputCollection
const reco::Particle::Point & vertexUsed() const
void loadInputCollection(const edm::Event &)
const edm::InputTag srcPVs
#define NULL
Definition: scimark2.h:8
void checkConfig(const Ptr &ptr, const char *message)
std::vector< unsigned > candidateIndex
reco::Particle::Point vertex_
const std::vector< double > etaDependentMagnutideFactors
math::XYZPoint Point
point in the space
Definition: Particle.h:29
const AnomalousTower anomalous
bool storeInSinglePrecision() const
FFTJetInterface & operator=(const FFTJetInterface &)
std::vector< fftjetcms::VectorLike > eventData
const std::string outputLabel