191 const reco::Vertex& theHltPrimaryVertex = (*thePrimaryVertices->begin());
194 theHltPrimaryVertex.position().y(),
195 theHltPrimaryVertex.position().z());
198 if(thePFTaus.isValid()){
200 for(
unsigned int pfTauIt = 0; pfTauIt < thePFTaus->size(); ++pfTauIt){
201 const PFTauRef thisTauRef(thePFTaus,pfTauIt);
204 if(thePFTauDiscriminatorByIsolation.isValid()){
208 if(thePFTauDiscriminatorAgainstMuon.isValid()){
217 pfTauPt = thePFTaus->at(pfTauIt).pt();
218 pfTauEt = thePFTaus->at(pfTauIt).et();
219 pfTauEta = thePFTaus->at(pfTauIt).eta();
220 pfTauPhi = thePFTaus->at(pfTauIt).eta();
222 const PFCandidateRef& thePFTauLeadTrack = thePFTaus->at(pfTauIt).leadPFChargedHadrCand();
225 pfTauNProngs = thePFTaus->at(pfTauIt).signalPFChargedHadrCands().size();
226 pfTauLTPt = thePFTaus->at(pfTauIt).leadPFChargedHadrCand()->pt();
227 pfTauTrkIso = thePFTaus->at(pfTauIt).isolationPFChargedHadrCandsPtSum();
228 pfTauGammaIso = thePFTaus->at(pfTauIt).isolationPFGammaCandsEtSum();
233 pftauSignalTrkDeltaR = ROOT::Math::VectorUtil::DeltaR((*vIt)->trackRef()->momentum(), thePFTauLeadTrack->momentum());
239 float PFTauLeadIsoPt = 0.;
240 Track thePFTauLeadIsoTrk;
242 pftauIsoTrkDeltaR = ROOT::Math::VectorUtil::DeltaR((*vIt)->trackRef()->momentum(), thePFTauLeadTrack->momentum());
245 if((*vIt)->trackRef()->pt() > PFTauLeadIsoPt){
246 thePFTauLeadIsoTrk = *((*vIt)->trackRef());
247 PFTauLeadIsoPt = (*vIt)->trackRef()->
pt();
260 if(l2Jet.
et() < 15.)
continue;
261 double delta = ROOT::Math::VectorUtil::DeltaR(thePFTaus->at(pfTauIt).p4(),l2Jet.
p4());
265 theMatchedL2Jet = l2Jet;
281 for(IsolatedTauTagInfoCollection::const_iterator
i = tauTagInfo->begin();
i!=tauTagInfo->end();++
i){
282 double delta = ROOT::Math::VectorUtil::DeltaR(theMatchedL2Jet.
p4(),
i->jet()->p4());
283 if(delta < minDeltaR){
286 theMatchedL25TauTagInfo = *
i;
291 pftauL25DeltaR = ROOT::Math::VectorUtil::DeltaR(thePFTaus->at(pfTauIt).p4(), theMatchedL25TauTagInfo.
jet()->
p4());
303 l25TrkPt->push_back((*trkIt)->pt());
324 leadTrkJetDeltaR = ROOT::Math::VectorUtil::DeltaR(theMatchedL25TauTagInfo.
jet()->
p4().Vect(), leadTk->momentum());
327 leadTrkDeltaR = ROOT::Math::VectorUtil::DeltaR(thePFTauLeadTrack->momentum(), leadTk->momentum());
330 bool l25IsoDisc = theMatchedL25TauTagInfo.
discriminator(0.2,0.15,0.5,5.,1.,0,0.2);
338 float l25LeadIsoPt = 0.;
339 Track theL25LeadIsoTrk;
343 if(ROOT::Math::VectorUtil::DeltaR(leadTk->momentum(), (*isoIt)->momentum()) <=
_signalCone){
372 if((*isoIt)->pt() > l25LeadIsoPt){
373 theL25LeadIsoTrk = **isoIt;
374 l25LeadIsoPt = (*isoIt)->
pt();
379 if(thePFTauLeadIsoTrk.
pt() != 0)
leadIsoTrkPtRes = (theL25LeadIsoTrk.
pt() - thePFTauLeadIsoTrk.
pt()) /thePFTauLeadIsoTrk.
pt();
390 else std::cout <<
"Invalid PFTau Collection\n";
std::vector< int > * l25SignalTrkNLostHits
Jets made from CaloTowers.
const Vector & momentum() const
track momentum vector
edm::InputTag _l2TauInfoAssoc
std::vector< float > * l25SignalTrkPt
std::vector< float > * l25TrkChi2
virtual double et() const
transverse energy
std::vector< float > * l25SignalTrkPhi
std::vector< int > * l25SignalTrkNRecHits
std::vector< float > * l25TrkDxy
edm::InputTag _l25JetSource
virtual Vector momentum() const
spatial momentum vector
std::vector< int > * l25SignalTrkNValidPixelHits
std::vector< float > * l25SignalTrkDxy
std::vector< int > * l25IsoTrkNValidHits
const_iterator end() const
Termination of iteration.
void printInfo(const reco::PFTau &thePFTau, const reco::IsolatedTauTagInfo &theTauTagInfo)
std::vector< float > * l25IsoTrkChi2
virtual double eta() const
momentum pseudorapidity
const_iterator begin() const
Initialize an iterator over the RefVector.
std::vector< int > * l25IsoTrkNLostHits
edm::InputTag _pfTauSource
edm::InputTag _pfTauIsoSource
const TrackRefVector selectedTracks() const
bool isNonnull() const
Checks for non-null.
int numQPixTrkInSignalCone
std::vector< float > * l25SignalTrkChi2NdF
float discriminator() const
double pt() const
track transverse momentum
std::vector< float > * l25TrkPhi
std::vector< int > * l25IsoTrkNValidPixelHits
edm::InputTag _pVtxSource
std::vector< float > * l25TrkNValidPixelHits
std::vector< float > * l25IsoTrkPt
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< float > * l25SignalTrkDz
virtual edm::RefToBase< Jet > jet(void) const
returns a polymorphic reference to the tagged jet
float pftauSignalTrkDeltaR
std::vector< float > * l25IsoTrkPhi
XYZPointD XYZPoint
point in space with cartesian internal representation
std::vector< int > * l25SignalTrkNValidHits
std::vector< float > * l25SignalTrkEta
edm::InputTag _pfTauMuonDiscSource
std::vector< float > * l25TrkEta
const TrackRef leadingSignalTrack() const
value_type const at(size_type idx) const
Retrieve an element of the RefVector.
std::vector< float > * l25SignalTrkChi2
math::XYZPoint theVertexPosition
std::vector< float > * l25IsoTrkDxy
std::vector< int > * l25IsoTrkNRecHits
size_type size() const
Size of the RefVector.
const TrackRefVector tracksInCone(const math::XYZVector myVector, const float size, const float pt_min) const
float _l25JetLeadTkMacthingCone
std::vector< float > * l25TrkDz
std::vector< float > * l25IsoTrkChi2NdF
const TrackRefVector allTracks() const
std::vector< float > * l25IsoTrkEta
virtual double phi() const
momentum azimuthal angle
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
std::vector< float > * l25TrkNRecHits
std::vector< float > * l25IsoTrkDz
std::vector< float > * l25TrkPt
std::vector< float > * l25TrkChi2NdF