12 #define init_param(type, varname) varname (ps.getParameter< type >( #varname ))
14 using namespace fftjetcms;
25 const std::string&
name)
27 if (!name.compare(
"BasicJet"))
29 else if (!name.compare(
"GenJet"))
31 else if (!name.compare(
"CaloJet"))
33 else if (!name.compare(
"PFJet"))
35 else if (!name.compare(
"TrackJet"))
37 else if (!name.compare(
"JPTJet"))
41 <<
"Unsupported jet type specification \""
42 << name <<
"\"" << std::endl;
47 :
inputLabel(ps.getParameter<edm::InputTag>(
"src")),
49 jetType(parse_jet_type(ps.getParameter<std::string>(
"jetType"))),
52 etaDependentMagnutideFactors(
53 ps.getParameter<std::vector<double> >(
54 "etaDependentMagnutideFactors")),
58 vertex_(0.0, 0.0, 0.0)
62 <<
"Bad scale for the complete event : must be positive"
83 if (pvCollection->empty())
86 vertex_ = pvCollection->begin()->position();
108 const CaloTower& tower(dynamic_cast<const CaloTower&>(item));
127 const unsigned nInputs =
eventData.size();
129 for (
unsigned i=0;
i<nInputs; ++
i)
132 g.fill(item.Eta(), item.Phi(), item.Et());
139 <<
"ERROR in FFTJetInterface::discretizeEnergyFlow() :"
140 " number of elements in the \"etaDependentMagnutideFactors\""
141 " vector is inconsistent with the grid binning"
const bool doPVCorrection
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
const edm::InputTag inputLabel
edm::Handle< reco::CandidateView > inputCollection
const double completeEventScale
math::PtEtaPhiMLorentzVector p4(double vtxZ) const
virtual double pt() const =0
transverse momentum
void loadInputCollection(const edm::Event &)
const edm::InputTag srcPVs
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
double getEventScale() const
std::vector< unsigned > candidateIndex
reco::Particle::Point vertex_
math::XYZTLorentzVector VectorLike
const std::vector< double > etaDependentMagnutideFactors
math::XYZPoint Point
point in the space
const AnomalousTower anomalous
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
bool storeInSinglePrecision() const
void discretizeEnergyFlow()
static JetType parse_jet_type(const std::string &name)
const bool insertCompleteEvent
#define init_param(type, varname)
std::vector< fftjetcms::VectorLike > eventData
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector