1 #ifndef RecoJets_JetPlusTrack_JetPlusTrackCorrector_h 2 #define RecoJets_JetPlusTrack_JetPlusTrackCorrector_h 23 #include "boost/range/iterator_range.hpp" 50 uint32_t nPtBins()
const;
52 double eta( uint32_t )
const;
53 double pt( uint32_t )
const;
55 uint32_t
etaBin(
double eta )
const;
56 uint32_t
ptBin(
double pt )
const;
58 double value( uint32_t eta_bin, uint32_t pt_bin )
const;
60 double binCenterEta( uint32_t )
const;
61 double binCenterPt( uint32_t )
const;
64 void print( std::stringstream& ss )
const;
70 Element() : ieta_(0), ipt_(0), eta_(0.), pt_(0.), val_(0.) {;}
82 std::vector<double>
pt_;
88 inline uint32_t Map::nPtBins()
const {
return pt_.size(); }
99 typedef std::pair<uint16_t,double>
Pair;
101 uint16_t
nTrks( uint32_t eta_bin, uint32_t pt_bin )
const;
103 double inConeCorr( uint32_t eta_bin, uint32_t pt_bin )
const;
104 double outOfConeCorr( uint32_t eta_bin, uint32_t pt_bin )
const;
107 uint32_t nPtBins()
const;
109 uint32_t
size()
const;
112 void addE( uint32_t eta_bin, uint32_t pt_bin,
double energy );
121 double sumE( uint32_t eta_bin, uint32_t pt_bin )
const;
122 double meanE( uint32_t eta_bin, uint32_t pt_bin )
const;
137 inline uint32_t Efficiency::nPtBins()
const {
return response_.nPtBins(); }
202 bool &validMatches) ;
209 bool &validMatches) ;
212 double correction(
const reco::Jet& )
const;
215 double correction(
const P4& )
const;
226 bool eventRequired()
const;
229 bool vectorialCorrection()
const;
245 bool canCorrect(
const reco::Jet& )
const;
284 virtual bool jetTrackAssociation(
const reco::Jet&,
290 bool jtaUsingEventData(
const reco::Jet&,
302 P4 pionCorrection(
const P4& jet,
303 const TrackRefs& pions,
305 bool in_cone_at_vertex,
306 bool in_cone_at_calo_face ) ;
309 P4 muonCorrection(
const P4& jet,
310 const TrackRefs& muons,
311 bool in_cone_at_vertex,
312 bool in_cone_at_calo_face ) ;
315 P4 elecCorrection(
const P4& jet,
316 const TrackRefs& elecs,
317 bool in_cone_at_vertex,
318 bool in_cone_at_calo_face ) ;
321 P4 jetDirFromTracks(
const P4& jet,
327 P4 calculateCorr(
const P4& jet,
330 bool in_cone_at_vertex,
331 bool in_cone_at_calo_face,
337 P4 pionEfficiency(
const P4& jet,
339 bool in_cone_at_calo_face ) ;
342 double checkScale(
const P4& jet, P4& corrected )
const;
382 const JetTracksAssociations&,
384 TrackRefs& excluded )
const;
388 const JetTracksAssociations&,
390 const TrackRefs& excluded )
const;
392 const jpt::Map& responseMap()
const;
393 const jpt::Map& efficiencyMap()
const;
474 bool &validMatches) {
475 P4 not_used_for_scalar_correction;
476 return correction( fJet, fJetcalo, event, setup, not_used_for_scalar_correction,pions,muons,elecs,validMatches );
486 bool in_cone_at_vertex,
487 bool in_cone_at_calo_face ) {
488 return calculateCorr( jet, pions, eff, in_cone_at_vertex, in_cone_at_calo_face, pionMass_,
true, -1. );
493 bool in_cone_at_vertex,
494 bool in_cone_at_calo_face ) {
495 return calculateCorr( jet, muons, not_used, in_cone_at_vertex, in_cone_at_calo_face, muonMass_,
false, 2. );
500 bool in_cone_at_vertex,
501 bool in_cone_at_calo_face ) {
502 return calculateCorr( jet, elecs, not_used, in_cone_at_vertex, in_cone_at_calo_face, elecMass_,
false, 0. );
506 if ( jet.energy() > 0. && ( corrected.energy() / jet.energy() ) < 0. ) {
509 return corrected.energy() / jet.energy();
516 #endif // RecoJets_JetPlusTracks_JetPlusTrackCorrector_h
math::XYZTLorentzVector P4
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > PtEtaPhiMLorentzVectorD
Lorentz vector with cartesian internal representation.
double eta() const final
momentum pseudorapidity
bool useOutOfVertexTracks_
bool vectorialCorrection() const
Returns value of configurable.
edm::EDGetTokenT< RecoMuons > inut_reco_muons_token_
TrackQuality
track quality
Base class for all types of Jets.
const jpt::Map & responseMap() const
reco::TrackRefVector inVertexInCalo_
float theResponseOfChargedWithoutEff
def setup(process, global_tag, zero_tesla=False)
edm::InputTag electronIds_
reco::TrackRefVector vertex_
reco::TrackRefVector inVertexOutOfCalo_
reco::GsfElectronCollection RecoElectrons
std::pair< uint16_t, double > Pair
double getResponseOfChargedWithoutEff()
Container class for response & efficiency maps.
S & print(S &os, JobReport::InputFile const &f)
double checkScale(const P4 &jet, P4 &corrected) const
Check corrected 4-momentum does not give negative scale.
edm::ValueMap< float > RecoElectronIds
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
const jpt::Map & efficiency_
std::pair< double, double > matchTracks(const reco::Track &ref, const reco::Track &probe)
std::vector< Muon > MuonCollection
collection of Muon objects
P4 pionCorrection(const P4 &jet, const jpt::MatchedTracks &pions)
Calculates corrections to be applied using pions.
edm::EDGetTokenT< RecoElectronIds > input_reco_elec_ids_token_
const jpt::Map & efficiencyMap() const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
reco::Particle::Point vertex_
const jpt::Map efficiency_
edm::EDGetTokenT< RecoElectrons > input_reco_elecs_token_
bool canCorrect(const reco::Jet &) const
Can jet be JPT-corrected?
bool eventRequired() const
Returns true.
const jpt::Map & response_
reco::TrackRefVector caloFace_
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
double correction(const reco::Jet &, const reco::Jet &, const edm::Event &, const edm::EventSetup &, P4 &, jpt::MatchedTracks &pions, jpt::MatchedTracks &muons, jpt::MatchedTracks &elecs, bool &validMatches)
Vectorial correction method (corrected 4-momentum passed by reference)
const jpt::Map & leakageMap() const
double getResponseOfChargedWithEff()
Get responses/sumPT/SumEnergy with and without Efficiency correction.
reco::TrackRefVector TrackRefs
math::XYZPoint Point
point in the space
reco::TrackRefVector outOfVertexInCalo_
edm::InputTag jetTracksAtCalo_
float theSumEnergyWithoutEff
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiE4D< double > > PtEtaPhiELorentzVectorD
Lorentz vector with cartesian internal representation.
math::PtEtaPhiELorentzVectorD PtEtaPhiE
double getSumPtWithoutEff()
reco::JetTracksAssociation::Container JetTracksAssociations
std::vector< VPair > VVPair
std::vector< VDouble > VVDouble
edm::InputTag jetTracksAtVertex_
P4 elecCorrection(const P4 &jet, const jpt::MatchedTracks &elecs) const
Calculates correction to be applied using electrons.
float theResponseOfChargedWithEff
Tracks associated to jets that are in-cone at Vertex and CaloFace.
std::vector< double > pt_
reco::TrackBase::TrackQuality trackQuality_
std::vector< Pair > VPair
P4 muonCorrection(const P4 &jet, const jpt::MatchedTracks &muons)
Calculates correction to be applied using muons.
std::vector< double > eta_
Particles matched to tracks that are in/in, in/out, out/in at Vertex and CaloFace.
Jet energy correction algorithm using tracks.
float theSumEnergyWithEff
JetPlusTrackCorrector()
Default constructor.
edm::EDGetTokenT< reco::JetTracksAssociation::Container > input_jetTracksAtCalo_token_
double getSumEnergyWithoutEff()
edm::EDGetTokenT< reco::JetTracksAssociation::Container > input_jetTracksAtVertex_token_
reco::MuonCollection RecoMuons
Get reponses.
edm::EDGetTokenT< reco::VertexCollection > input_pvCollection_token_
void reset(double vett[256])
double getSumEnergyWithEff()
static void check(T const &p, std::string const &id, SelectedProducts const &iProducts)
std::vector< double > VDouble
math::PtEtaPhiMLorentzVectorD PtEtaPhiM
const jpt::Map & leakage_