1 #ifndef TESTCORRECTION_HH 2 #define TESTCORRECTION_HH 73 std::vector<MuScleFitMuon>
muons;
74 typename std::vector<T>::const_iterator
track;
75 for( track = tracks.begin(); track != tracks.end(); ++
track ) {
78 sqrt(track->p()*track->p() + + 0.011163612));
80 Double_t hitsTk(0), hitsMuon(0), ptError(0);
81 if (
const reco::Muon* myMu = dynamic_cast<const reco::Muon*>(&(*track)) ){
82 hitsTk = myMu->innerTrack()->hitPattern().numberOfValidTrackerHits();
83 hitsMuon = myMu->innerTrack()->hitPattern().numberOfValidMuonHits();
84 ptError = myMu->innerTrack()->ptError();
86 else if (
const pat::Muon* myMu = dynamic_cast<const pat::Muon*>(&(*track)) ) {
87 hitsTk = myMu->innerTrack()->hitPattern().numberOfValidTrackerHits();
88 hitsMuon = myMu->innerTrack()->hitPattern().numberOfValidMuonHits();
89 ptError = myMu->innerTrack()->ptError();
91 else if (
const reco::Track* myMu = dynamic_cast<const reco::Track*>(&(*track))){
92 hitsTk = myMu->hitPattern().numberOfValidTrackerHits();
93 hitsMuon = myMu->hitPattern().numberOfValidMuonHits();
94 ptError = myMu->ptError();
100 std::cout<<
"[TestCorrection::fillMuonCollection] after MuScleFitMuon initialization"<<std::endl;
104 muons.push_back(
muon);
122 std::unique_ptr<MomentumScaleCorrector>
corrector_;
127 #endif // TESTCORRECTION_HH lorentzVector correctMuon(const lorentzVector &muon)
TProfile * correctedPtVsEta_
virtual void initialize(const edm::EventSetup &)
std::unique_ptr< BackgroundFunction > background_
reco::Particle::LorentzVector lorentzVector
void analyze(const edm::Event &, const edm::EventSetup &) override
std::unique_ptr< MomentumScaleCorrector > corrector_
TestCorrection(const edm::ParameterSet &)
TProfile * uncorrectedPtVsEta_
~TestCorrection() override
std::vector< MuScleFitMuon > fillMuonCollection(const std::vector< T > &tracks)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Analysis-level muon class.
std::unique_ptr< ResolutionFunction > resolution_