1 #ifndef RecoJets_JetPlusTrack_JetPlusTrackCorrector_h
2 #define RecoJets_JetPlusTrack_JetPlusTrackCorrector_h
23 #include "boost/range/iterator_range.hpp"
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;
64 void print( std::stringstream&
ss )
const;
82 std::vector<double>
pt_;
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;
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;
202 bool &validMatches) ;
209 bool &validMatches) ;
305 bool in_cone_at_vertex,
306 bool in_cone_at_calo_face ) ;
311 bool in_cone_at_vertex,
312 bool in_cone_at_calo_face ) ;
317 bool in_cone_at_vertex,
318 bool in_cone_at_calo_face ) ;
330 bool in_cone_at_vertex,
331 bool in_cone_at_calo_face,
339 bool in_cone_at_calo_face ) ;
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 ) {
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.
uint32_t nEtaBins() const
uint32_t nEtaBins() const
double eta(uint32_t) const
bool useOutOfVertexTracks_
bool vectorialCorrection() const
Returns value of configurable.
edm::EDGetTokenT< RecoMuons > inut_reco_muons_token_
TrackQuality
track quality
double meanE(uint32_t eta_bin, uint32_t pt_bin) const
Base class for all types of Jets.
const jpt::Map & responseMap() const
reco::TrackRefVector inVertexInCalo_
bool matchTracks(const reco::Jet &, const edm::Event &, const edm::EventSetup &, jpt::MatchedTracks &pions, jpt::MatchedTracks &muons, jpt::MatchedTracks &elecs)
Matches tracks to different particle types.
float theResponseOfChargedWithoutEff
edm::InputTag electronIds_
reco::TrackRefVector vertex_
void addE(uint32_t eta_bin, uint32_t pt_bin, double energy)
reco::TrackRefVector inVertexOutOfCalo_
P4 calculateCorr(const P4 &jet, const TrackRefs &, jpt::Efficiency &, bool in_cone_at_vertex, bool in_cone_at_calo_face, double mass, bool is_pion, double mip)
Generic method to calculates 4-momentum correction to be applied.
reco::GsfElectronCollection RecoElectrons
std::pair< uint16_t, double > Pair
double getResponseOfChargedWithoutEff()
Container class for response & efficiency maps.
uint32_t etaBin(double eta) const
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
virtual double eta() const
momentum pseudorapidity
const jpt::Map & efficiency_
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
bool tracksInCalo(const jpt::MatchedTracks &pions, const jpt::MatchedTracks &muons, const jpt::MatchedTracks &elecs) const
Determines if any tracks in cone at CaloFace.
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 print(std::stringstream &ss) const
double pt(uint32_t) const
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)
bool findTrack(const jpt::JetTracks &, TrackRefs::const_iterator &, TrackRefs::iterator &) const
Find track in JetTracks collection.
const jpt::Map & leakageMap() const
double getResponseOfChargedWithEff()
Get responses/sumPT/SumEnergy with and without Efficiency correction.
reco::TrackRefVector TrackRefs
double binCenterPt(uint32_t) const
math::XYZPoint Point
point in the space
reco::TrackRefVector outOfVertexInCalo_
edm::InputTag jetTracksAtCalo_
float theSumEnergyWithoutEff
bool matchMuons(TrackRefs::const_iterator &, const edm::Handle< RecoMuons > &) const
Matches tracks to RECO muons.
P4 pionEfficiency(const P4 &jet, const jpt::Efficiency &, bool in_cone_at_calo_face)
Correction to be applied using tracking efficiency.
bool failTrackQuality(TrackRefs::const_iterator &) const
Check on track quality.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiE4D< double > > PtEtaPhiELorentzVectorD
Lorentz vector with cartesian internal representation.
double outOfConeCorr(uint32_t eta_bin, uint32_t pt_bin) const
double inConeCorr(uint32_t eta_bin, uint32_t pt_bin) const
math::PtEtaPhiELorentzVectorD PtEtaPhiE
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
double correctAA(const reco::Jet &, const reco::TrackRefVector &, double &, const reco::TrackRefVector &, const reco::TrackRefVector &, double, const reco::TrackRefVector &) const
For AA - correct in tracker.
double getSumPtWithoutEff()
virtual ~JetPlusTrackCorrector()
Destructor.
reco::JetTracksAssociation::Container JetTracksAssociations
void rebuildJta(const reco::Jet &, const JetTracksAssociations &, TrackRefs &included, TrackRefs &excluded) const
Rebuild jet-track association.
bool getMuons(const edm::Event &, edm::Handle< RecoMuons > &) const
Get RECO muons.
std::vector< VPair > VVPair
double sumE(uint32_t eta_bin, uint32_t pt_bin) const
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
void excludeJta(const reco::Jet &, const JetTracksAssociations &, TrackRefs &included, const TrackRefs &excluded) const
Exclude jet-track association.
Tracks associated to jets that are in-cone at Vertex and CaloFace.
bool getElectrons(const edm::Event &, edm::Handle< RecoElectrons > &, edm::Handle< RecoElectronIds > &) const
Get RECO electrons.
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.
bool check(uint32_t eta_bin, uint32_t pt_bin, std::string name="check") const
Jet energy correction algorithm using tracks.
uint16_t nTrks(uint32_t eta_bin, uint32_t pt_bin) const
bool jtaUsingEventData(const reco::Jet &, const edm::Event &, jpt::JetTracks &) const
JTA using collections from event.
uint32_t ptBin(double pt) const
float theSumEnergyWithEff
JetPlusTrackCorrector()
Default constructor.
edm::EDGetTokenT< reco::JetTracksAssociation::Container > input_jetTracksAtCalo_token_
double getSumEnergyWithoutEff()
P4 jetDirFromTracks(const P4 &jet, const jpt::MatchedTracks &pions, const jpt::MatchedTracks &muons, const jpt::MatchedTracks &elecs) const
Calculates vectorial correction using total track 3-momentum.
double value(uint32_t eta_bin, uint32_t pt_bin) const
edm::EDGetTokenT< reco::JetTracksAssociation::Container > input_jetTracksAtVertex_token_
reco::MuonCollection RecoMuons
Get reponses.
edm::EDGetTokenT< reco::VertexCollection > input_pvCollection_token_
double binCenterEta(uint32_t) const
jpt::Efficiency not_used response_
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
double getSumEnergyWithEff()
virtual bool jetTrackAssociation(const reco::Jet &, const edm::Event &, const edm::EventSetup &, jpt::JetTracks &) const
Associates tracks to jets (overriden in derived class)
std::vector< double > VDouble
math::PtEtaPhiMLorentzVectorD PtEtaPhiM
bool matchElectrons(TrackRefs::const_iterator &, const edm::Handle< RecoElectrons > &, const edm::Handle< RecoElectronIds > &) const
Matches tracks to RECO electrons.
const jpt::Map & leakage_