39 useTrajectory ( conf.getParameter<bool>(
"useTrajectory") ),
40 setTrackerOnly ( conf.getParameter<bool>(
"setTrackerOnly") ),
41 setArbitratedEcalSeeded ( conf.getParameter<bool>(
"setArbitratedEcalSeeded") ),
42 setArbitratedMerged ( conf.getParameter<bool>(
"setArbitratedMerged") ),
43 setArbitratedMergedEcalGeneral ( conf.getParameter<bool>(
"setArbitratedMergedEcalGeneral") ),
44 beamSpotInputTag ( consumes<
reco::
BeamSpot>(conf.getParameter<edm::
InputTag>(
"beamSpotInputTag")) ),
45 filterOnConvTrackHyp( conf.getParameter<bool>(
"filterOnConvTrackHyp") ),
46 minConvRadius( conf.getParameter<double>(
"minConvRadius") )
50 consumes<edm::View<reco::Track> >(thetp);
52 consumes<TrajTrackAssociationCollection>(thetp);
54 consumes<TrajGsfTrackAssociationCollection>(thetp);
55 produces<reco::ConversionTrackCollection>();
74 std::map<reco::TrackRef,edm::Ref<std::vector<Trajectory> > > tracktrajmap;
75 std::map<reco::GsfTrackRef,edm::Ref<std::vector<Trajectory> > > gsftracktrajmap;
78 if (hTrks->size()>0) {
79 if (dynamic_cast<const reco::GsfTrack*>(&hTrks->at(0))) {
84 iPair != hTTAssGsf->end(); ++iPair) {
86 gsftracktrajmap[iPair->val] = iPair->key;
95 iPair != hTTAss->end();
98 tracktrajmap[iPair->val] = iPair->key;
106 outputTrks = std::make_unique<reco::ConversionTrackCollection>();
122 <<
"invalid collection for the BeamSpot";
132 for (
size_t i = 0;
i < hTrks->size(); ++
i) {
153 if (gsftracktrajmap.size()) {
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void setIsArbitratedMergedEcalGeneral(bool b)
friend struct const_iterator
void setMagnField(const MagneticField *magnField)
virtual void produce(edm::Event &e, const edm::EventSetup &c)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< edm::View< reco::Track > > genericTracks
edm::EDGetTokenT< TrajTrackAssociationCollection > kfTrajectories
ConversionTrackProducer(const edm::ParameterSet &conf)
bool setArbitratedMergedEcalGeneral
virtual ~ConversionTrackProducer()
void setTrajRef(edm::Ref< std::vector< Trajectory > > tr)
void setIsArbitratedEcalSeeded(bool b)
std::string trackProducer
bool setArbitratedEcalSeeded
std::unique_ptr< reco::ConversionTrackCollection > outputTrks
IdealHelixParameters ConvTrackPreSelector
void setIsTrackerOnly(bool b)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
edm::EDGetTokenT< reco::BeamSpot > beamSpotInputTag
T const * product() const
edm::EDGetTokenT< TrajGsfTrackAssociationCollection > gsfTrajectories
bool filterOnConvTrackHyp
bool isTangentPointDistanceLessThan(float rmax, const reco::Track *track, const math::XYZVector &refPoint)
void setIsArbitratedMerged(bool b)