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>();
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();
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
const TwoBodyDecayFitter tbdFitter_
~TwoBodyDecayConstraintProducer() override=default
const double chi2CutValue_
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::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
LocalPoint localPosition() const
GlobalPoint globalPosition() const
const double secondaryMass_
const double primaryMass_
const TsosContainer & trajectoryStates(bool useRefittedState=true) const
void produce(edm::StreamID streamid, edm::Event &, const edm::EventSetup &) const override
TrajectoryStateOnSurface innermostMeasurementState() const
virtual const TwoBodyDecay estimate(const std::vector< reco::TransientTrack > &tracks, const TwoBodyDecayVirtualMeasurement &vm) const
bool getData(T &iHolder) const
std::pair< bool, TrajectoryStateOnSurface > innermostState(const reco::TransientTrack &ttrack) const
edm::AssociationMap< edm::OneToOne< reco::TrackCollection, std::vector< TrackParamConstraint > > > TrackParamConstraintAssociationCollection
const edm::InputTag bsSrcTag_
TwoBodyDecayConstraintProducer(const edm::ParameterSet &)
edm::EDGetTokenT< reco::BeamSpot > bsToken_
TrajectoryStateOnSurface outermostMeasurementState() const
RefProd< PROD > getRefBeforePut()
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 edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > trackingGeometryToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
bool match(const TrajectoryStateOnSurface &newTsos, const TrajectoryStateOnSurface &oldTsos) const