40 typedef std::vector<std::pair<TrackCandidate,std::pair<reco::TrackRef,reco::TrackRef> > >
CandidateToDuplicate;
134 produces<std::vector<TrackCandidate> >(
"candidates");
135 produces<CandidateToDuplicate>(
"candidateMap");
141 if(iPara.
exists(
"GBRForestFileName")){
195 std::auto_ptr<std::vector<TrackCandidate> > out_duplicateCandidates(
new std::vector<TrackCandidate>());
199 for(
int i = 0;
i < (int)handle->size();
i++){
203 for(
int j =
i+1;
j < (int)handle->size();
j++){
282 out_duplicateCandidates->push_back(mergedTrack);
284 std::pair<TrackCandidate, std::pair<TrackRef,TrackRef> >
cp(mergedTrack,trackPair);
285 out_candidateMap->push_back(cp);
288 iEvent.
put(out_duplicateCandidates,
"candidates");
289 iEvent.
put(out_candidateMap,
"candidateMap");
T getParameter(std::string const &) const
TrackMerger merger_
Merger.
std::string dbFileName_
MVA weights file.
DuplicateTrackMerger(const edm::ParameterSet &iPara)
constructor
float tmva_outer_nMissingInner_
double maxDLambda_
max difference in Lambda between two tracks
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const FreeTrajectoryState & theState() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
#define DEFINE_FWK_MODULE(type)
std::vector< std::pair< TrackCandidate, std::pair< reco::TrackRef, reco::TrackRef > > > CandidateToDuplicate
Geom::Phi< T > phi() const
bool exists(std::string const ¶meterName) const
checks if a parameter exists
double maxDQoP_
max difference in q/p between two tracks
double maxDPhi_
max difference in phi between two tracks
const math::XYZPoint & outerPosition() const
position of the outermost hit
void init(const edm::EventSetup &iSetup)
TrackCandidate merge(const reco::Track &inner, const reco::Track &outer) const
double maxDCA_
max distance between two tracks at closest approach
Geom::Theta< T > theta() const
const math::XYZPoint & innerPosition() const
position of the innermost hit
float tmva_inner_nMissingOuter_
double minP_
min p cut value
GBRForest * forest_
MVA discriminator.
double minDeltaR3d_
minDeltaR3d cut value
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
double maxDdsz_
max difference in longitudinal impact parameter between two tracks
GlobalVector momentum() const
edm::ESHandle< MagneticField > magfield_
GlobalPoint position() const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
T const * product() const
virtual ~DuplicateTrackMerger()
destructor
int numberOfLostHits(HitCategory category) const
double minpT_
min pT cut value
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
void produce(edm::Event &, const edm::EventSetup &) override
produce one event
int charge() const
track electric charge
edm::EDGetTokenT< reco::TrackCollection > trackSource_
track input collection
double minBDTG_
minBDTG cut value
float tmva_ddsz_
MVA input variables.
double GetClassifier(const float *vector) const
double signedInverseMomentum() const
double maxDdxy_
max difference in transverse impact parameter between two tracks
Power< A, B >::type pow(const A &a, const B &b)
GlobalVector momentum() const