73 : srcTag_(iConfig.getParameter<
edm::
InputTag>(
"src")),
74 bsSrcTag_(iConfig.getParameter<
edm::
InputTag>(
"beamSpot")),
76 primaryMass_(iConfig.getParameter<double>(
"primaryMass")),
77 primaryWidth_(iConfig.getParameter<double>(
"primaryWidth")),
78 secondaryMass_(iConfig.getParameter<double>(
"secondaryMass")),
79 sigmaPositionCutValue_(iConfig.getParameter<double>(
"sigmaPositionCut")),
80 chi2CutValue_(iConfig.getParameter<double>(
"chi2Cut")),
81 errorRescaleValue_(iConfig.getParameter<double>(
"rescaleError")),
87 produces<std::vector<TrackParamConstraint> >();
88 produces<TrackParamConstraintAssociationCollection>();
114 iEvent.getRefBeforePut<std::vector<TrackParamConstraint> >();
115 std::unique_ptr<std::vector<TrackParamConstraint> > pairs(
new std::vector<TrackParamConstraint>);
116 std::unique_ptr<TrackParamConstraintAssociationCollection>
output(
119 if (trackColl->size() == 2) {
124 std::vector<reco::TransientTrack> ttracks(2);
126 ttracks[0].setTrackingGeometry(trackingGeometry);
128 ttracks[1].setTrackingGeometry(trackingGeometry);
137 std::pair<bool, TrajectoryStateOnSurface> oldInnermostState1 =
innermostState(ttracks[0]);
138 std::pair<bool, TrajectoryStateOnSurface> oldInnermostState2 =
innermostState(ttracks[1]);
139 if (!oldInnermostState1.second.isValid() || !oldInnermostState2.second.isValid())
151 if (!match1 || !match2)
203 double deltaX = lp1.
x() - lp2.
x();
204 double deltaY = lp1.
y() - lp2.
y();
const TwoBodyDecayFitter tbdFitter_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
~TwoBodyDecayConstraintProducer() override=default
const double chi2CutValue_
LocalPoint localPosition() const
const double secondaryMass_
const double primaryMass_
void produce(edm::StreamID streamid, edm::Event &, const edm::EventSetup &) const override
std::pair< bool, TrajectoryStateOnSurface > innermostState(const reco::TransientTrack &ttrack) const
GlobalPoint globalPosition() const
edm::AssociationMap< edm::OneToOne< reco::TrackCollection, std::vector< TrackParamConstraint > > > TrackParamConstraintAssociationCollection
TrajectoryStateOnSurface outermostMeasurementState() const
const edm::InputTag bsSrcTag_
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< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
TwoBodyDecayConstraintProducer(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< reco::BeamSpot > bsToken_
TrajectoryStateOnSurface innermostMeasurementState() const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
void rescaleError(double scale)
const double primaryWidth_
edm::EDGetTokenT< reco::TrackCollection > trackCollToken_
const edm::InputTag srcTag_
const double errorRescaleValue_
const double sigmaPositionCutValue_
const TsosContainer & trajectoryStates(bool useRefittedState=true) const
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > trackingGeometryToken_
bool match(const TrajectoryStateOnSurface &newTsos, const TrajectoryStateOnSurface &oldTsos) const
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
virtual const TwoBodyDecay estimate(const std::vector< reco::TransientTrack > &tracks, const TwoBodyDecayVirtualMeasurement &vm) const