![]() |
![]() |
00001 #ifndef ImpactParameter_PromptTrackCountingComputer_h 00002 #define ImpactParameter_PromptTrackCountingComputer_h 00003 00004 #include "RecoBTag/ImpactParameter/interface/TrackCountingComputer.h" 00005 00006 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00007 00008 // This returns a discriminator equal to the number of prompt tracks in the jet 00009 // It is intended for exotica physics, not b tagging. 00010 // Author: Ian Tomalin 00011 00012 class PromptTrackCountingComputer : public TrackCountingComputer 00013 { 00014 public: 00015 PromptTrackCountingComputer(const edm::ParameterSet & parameters ) : TrackCountingComputer(parameters) 00016 { 00017 maxImpactParameterSig = parameters.getParameter<double>("maxImpactParameterSig"); 00018 } 00019 00020 float discriminator(const TagInfoHelper & ti) const 00021 { 00022 const reco::TrackIPTagInfo & tkip = ti.get<reco::TrackIPTagInfo>(); 00023 std::multiset<float> significances = orderedSignificances(tkip); 00024 std::multiset<float>::iterator sig; 00025 unsigned int nPromptTrk = 0; 00026 for(sig=significances.begin(); sig!=significances.end(); sig++) { 00027 if (fabs(*sig) < maxImpactParameterSig) nPromptTrk++; 00028 // edm::LogDebug("") << "Track "<< nPromptTrk << " sig=" << *sig; 00029 } 00030 return double(nPromptTrk); 00031 } 00032 00033 private: 00034 00035 double maxImpactParameterSig; 00036 }; 00037 00038 #endif