49 produces<reco::TrackCollection>();
98 std::vector<int> selected;
for (
unsigned int i=0;
i<tC.size(); ++
i){selected.push_back(1);}
101 for (reco::TrackCollection::const_iterator track=tC.begin(); track!=tC.end(); track++){
103 if ((
short unsigned)track->ndof() < 1){
108 if (track->normalizedChi2() > maxNormalizedChisq){
113 if (track->found() < minFound){
118 if (track->pt() < minPT){
130 for (reco::TrackCollection::const_iterator track=tC.begin(); track!=tC.end(); track++){
133 if (!selected[i])
continue;
135 for (reco::TrackCollection::const_iterator track2=tC.begin(); track2!=tC.end(); track2++){
137 if ((j<=i)||(!selected[
j])||(!selected[i]))
continue;
140 if ((*it)->isValid()){
142 if ((*jt)->isValid()){
143 if (((*it)->geographicalId()==(*jt)->geographicalId())&&((*it)->localPosition().x()==(*jt)->localPosition().x()))noverlap++;
148 float fi=float(noverlap)/float(track->recHitsSize());
float fj=float(noverlap)/float(track2->recHitsSize());
150 if ((fi>0.66)||(fj>0.66)){
160 if (track->chi2() > track2->chi2()){selected[
i]=0;}
else{selected[
j]=0;}
172 for (reco::TrackCollection::const_iterator track=tC.begin(); track!=tC.end(); track++){
173 i++;
if (!selected[i])
continue;
175 (
short unsigned)track->ndof(),
176 track->innerPosition(),
177 track->innerMomentum(),
179 track->innerStateCovariance());
182 theTrack->
setExtra(theTrackExtraRef);
184 output->push_back(*theTrack);
T getParameter(std::string const &) const
std::vector< Track > TrackCollection
collection of Tracks
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
virtual ~RoadSearchTrackListCleaner()
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void setHitPattern(const C &c)
set hit patterns from vector of hit references
void setExtra(const TrackExtraRef &ref)
set reference to "extra" object
T const * product() const
virtual void produce(edm::Event &e, const edm::EventSetup &c)
RoadSearchTrackListCleaner(const edm::ParameterSet &conf)