17 #include "TLorentzVector.h"
26 explicit CaloRecoTauDiscriminationByFlightPathSignificance(
29 flightPathSig = iConfig.
getParameter<
double>(
"flightPathSig");
34 booleanOutput = iConfig.
getParameter<
bool>(
"BooleanOutput");
36 ~CaloRecoTauDiscriminationByFlightPathSignificance(){}
41 double threeProngFlightPathSig(
const CaloTauRef&)
const ;
54 void CaloRecoTauDiscriminationByFlightPathSignificance::beginEvent(
64 transientTrackBuilder = builder.
product();
68 CaloRecoTauDiscriminationByFlightPathSignificance::discriminate(
71 return ( threeProngFlightPathSig(tau) > flightPathSig ? 1. : 0. );
72 return threeProngFlightPathSig(tau);
76 CaloRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(
78 double flightPathSignificance = 0;
81 vector<TransientTrack> transientTracks;
82 for(
size_t i = 0;
i < signalTracks.
size(); ++
i){
84 transientTrackBuilder->build(signalTracks[
i]);
85 transientTracks.push_back(transientTrack);
87 if(transientTracks.size() > 1) {
93 flightPathSignificance = vertexSignificance(
primaryVertex,secVer,tauDir);
96 return flightPathSignificance;
100 CaloRecoTauDiscriminationByFlightPathSignificance::vertexSignificance(
T getParameter(std::string const &) const
#define DEFINE_FWK_MODULE(type)
static Measurement1D computeDist3d(const reco::Vertex &pv, const SV &sv, const GlobalVector &direction, bool withPVError)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
double significance() const
T const * product() const
size_type size() const
Size of the RefVector.