17 #include "TLorentzVector.h"
27 flightPathSig = iConfig.
getParameter<
double>(
"flightPathSig");
32 booleanOutput = iConfig.
getParameter<
bool>(
"BooleanOutput");
39 double threeProngFlightPathSig(
const CaloTauRef&);
58 primaryVertex = *(vertexCollection.
begin());
62 transientTrackBuilder = builder.
product();
69 return ( threeProngFlightPathSig(tau) > flightPathSig ? 1. : 0. );
70 return threeProngFlightPathSig(tau);
76 double flightPathSignificance = 0;
79 vector<TransientTrack> transientTracks;
80 for(
size_t i = 0;
i < signalTracks.
size(); ++
i){
82 transientTrackBuilder->build(signalTracks[
i]);
83 transientTracks.push_back(transientTrack);
85 if(transientTracks.size() > 1) {
91 flightPathSignificance = vertexSignificance(primaryVertex,secVer,tauDir);
94 return flightPathSignificance;
T getParameter(std::string const &) const
virtual CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &tracks) const
double threeProngFlightPathSig(const CaloTauRef &)
void beginEvent(const edm::Event &, const edm::EventSetup &) override
CaloRecoTauDiscriminationByFlightPathSignificance(const edm::ParameterSet &iConfig)
reco::Vertex primaryVertex
~CaloRecoTauDiscriminationByFlightPathSignificance()
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static Measurement1D computeDist3d(const reco::Vertex &pv, const reco::Vertex &sv, const GlobalVector &direction, bool withPVError)
DEFINE_FWK_MODULE(CosmicTrackingParticleSelector)
double significance() const
T const * product() const
double vertexSignificance(reco::Vertex &, reco::Vertex &, GlobalVector &)
double discriminate(const reco::CaloTauRef &) override
size_type size() const
Size of the RefVector.
const_iterator begin() const
const TransientTrackBuilder * transientTrackBuilder