55 enum Alg{useInputPV=0, useFont};
68 PFTauToken_(consumes<std::vector<
reco::
PFTau> >(iConfig.getParameter<edm::
InputTag>(
"PFTauTag"))),
71 useFullCalculation_(iConfig.getParameter<bool>(
"useFullCalculation"))
73 produces<edm::AssociationVector<PFTauRefProd, std::vector<reco::PFTauTransverseImpactParameterRef> > >();
74 produces<PFTauTransverseImpactParameterCollection>(
"PFTauTIP");
96 auto_ptr<edm::AssociationVector<PFTauRefProd, std::vector<reco::PFTauTransverseImpactParameterRef> > > AVPFTauTIP(
new edm::AssociationVector<
PFTauRefProd, std::vector<reco::PFTauTransverseImpactParameterRef> >(
PFTauRefProd(Tau)));
106 const std::vector<reco::VertexRef> SV=PFTauSVA->value(RefPFTau.
key());
107 double dxy(-999), dxy_err(-999);
109 if(RefPFTau->leadPFChargedHadrCand().
isNonnull()){
110 if(RefPFTau->leadPFChargedHadrCand()->trackRef().
isNonnull()){
112 reco::TransientTrack transTrk=transTrackBuilder->build(RefPFTau->leadPFChargedHadrCand()->trackRef());
113 GlobalPoint pv(PV->position().x(),PV->position().y(),PV->position().z());
120 dxy_err=RefPFTau->leadPFChargedHadrCand()->trackRef()->d0Error();
121 dxy=RefPFTau->leadPFChargedHadrCand()->trackRef()->dxy(PV->position());
130 cov(
i,
j)=SV.at(0)->covariance(
i,
j)+PV->covariance(
i,
j);
133 GlobalVector direction(RefPFTau->px(),RefPFTau->py(),RefPFTau->pz());
134 double vSig = SecondaryVertex::computeDist3d(*PV,*SV.at(0),direction,
true).significance();
137 TIPCollection_out->push_back(TIPV);
138 AVPFTauTIP->setValue(iPFTau,TIPVRef);
143 TIPCollection_out->push_back(TIPV);
144 AVPFTauTIP->setValue(iPFTau,TIPVRef);
148 iEvent.
put(TIPCollection_out,
"PFTauTIP");
149 iEvent.
put(AVPFTauTIP);
const AlgebraicVector5 & vector() const
GlobalPoint position() const
const PerigeeTrajectoryError & perigeeError() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
edm::RefProd< PFTauCollection > PFTauRefProd
references to PFTau collection
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
edm::EDGetTokenT< std::vector< reco::PFTau > > PFTauToken_
edm::EDGetTokenT< edm::AssociationVector< PFTauRefProd, std::vector< std::vector< reco::VertexRef > > > > PFTauSVAToken_
bool isNonnull() const
Checks for non-null.
edm::EDGetTokenT< edm::AssociationVector< PFTauRefProd, std::vector< reco::VertexRef > > > PFTauPVAToken_
virtual void produce(edm::Event &, const edm::EventSetup &)
const PerigeeTrajectoryParameters & perigeeParameters() const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
math::XYZPoint Point
point in the space
RefProd< PROD > getRefBeforePut()
const AlgebraicSymMatrix55 & covarianceMatrix() const
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint &point) const
key_type key() const
Accessor for product key.
edm::Ref< PFTauTransverseImpactParameterCollection > PFTauTransverseImpactParameterRef
presistent reference to a PFTauTransverseImpactParameter
PFTauTransverseImpactParameters(const edm::ParameterSet &iConfig)
tuple PFTauTransverseImpactParameters
std::vector< reco::PFTauTransverseImpactParameter > PFTauTransverseImpactParameterCollection
collection of PFTauTransverseImpactParameter objects
~PFTauTransverseImpactParameters()