103 m_vertexConstraint(
cfg.getParameter<
bool>(
"vertexConstraint")),
120 m_diMuon_Z =
book1D(
"/iterN/",
"diMuon_Z",
"Di-muon mass (GeV)", 200, 90. - 50., 90. + 50.);
121 m_diMuon_Zforward =
book1D(
"/iterN/",
"diMuon_Zforward",
"Di-muon mass (GeV) eta > 1.4", 200, 90. - 50., 90. + 50.);
123 book1D(
"/iterN/",
"diMuon_Zbarrel",
"Di-muon mass (GeV) -1.4 < eta < 1.4", 200, 90. - 50., 90. + 50.);
125 book1D(
"/iterN/",
"diMuon_Zbackward",
"Di-muon mass (GeV) eta < -1.4", 200, 90. - 50., 90. + 50.);
126 m_diMuon_Ups =
book1D(
"/iterN/",
"diMuon_Ups",
"Di-muon mass (GeV)", 200, 9. - 3., 9. + 3.);
127 m_diMuon_Jpsi =
book1D(
"/iterN/",
"diMuon_Jpsi",
"Di-muon mass (GeV)", 200, 3. - 1., 3. + 1.);
132 m_chi2_log =
book1D(
"/iterN/",
"m_chi2_log",
"Log track chi^2", 100, -3, 7);
139 "/iterN/",
"m_chi2DOF_improvement",
"Track-by-track (chi^2/DOF)/(original chi^2/original DOF)", 100, 0., 10.);
140 for (
int i = 0;
i < 36;
i++) {
142 snprintf(
name,
sizeof(
name),
"m_pt_phi%d",
i);
143 snprintf(
title,
sizeof(
title),
"Track pt (GeV) in phi bin %d/36",
i);
163 for (ConstTrajTrackPairCollection::const_iterator it =
tracks.begin(); it !=
tracks.end(); ++it) {
171 std::vector<TrajectoryMeasurement> measurements = traj->
measurements();
172 for (std::vector<TrajectoryMeasurement>::const_iterator im = measurements.begin(); im != measurements.end(); ++im) {
177 nDOF +=
hit->dimension();
191 std::pair<bool, FreeTrajectoryState>
state;
202 double chi2DOF =
chi2 / double(nDOF);
229 double pt = momentum.
perp();
230 double phi = momentum.
phi();
238 for (
int i = 0;
i < 36;
i++) {
239 if (phibin <
i + 1) {
249 if (
e1 > 0. && e2 > 0.) {
250 double energy_tot =
e1 + e2;
252 double mass =
sqrt(energy_tot * energy_tot - momentum_tot.
mag2());
253 double eta = momentum_tot.
eta();
289 "AlignmentMonitorTracksFromTrajectories");
AlignmentMonitorTracksFromTrajectories(const edm::ParameterSet &cfg, edm::ConsumesCollector iC)
Point3DBase< Scalar, LocalTag > LocalPoint
void book()
Book or retrieve histograms; MUST be reimplemented.
Geom::Phi< T > phi() const
TH1F * m_diMuon_Zbackward
int closest(std::vector< int > const &vec, int value)
const SurfaceType & surface() const
DataContainer const & measurements() const
void event(const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
Called for each event (by "run()"): may be reimplemented.
std::pair< bool, FreeTrajectoryState > propagateWithUpdate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot &beamSpot) const
Propagate to the 2D-PCA and apply the vertex constraint.
const edm::InputTag m_beamSpot
TrajectoryStateOnSurface const & backwardPredictedState() const
Access to backward predicted state (from smoother)
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
std::pair< bool, FreeTrajectoryState > propagate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot &beamSpot) const
Propagate the state to the 2D-PCA.
MuonServiceProxy * theMuonServiceProxy
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
TrajectoryStateOnSurface TSOS
TH1F * m_chi2DOF_improvement
auto const & tracks
cannot be loose
MuonUpdatorAtVertex * theMuonUpdatorAtVertex
const bool m_vertexConstraint
TH1F * m_chi2_improvement
~AlignmentMonitorTracksFromTrajectories()
void update(const edm::EventSetup &setup, bool duringEvent=true)
update the services each event
#define DEFINE_EDM_PLUGIN(factory, type, name)
ConstRecHitPointer const & recHit() const