34 template<
typename jetType>
37 inputJetTag_ (iConfig.
template getParameter< edm::InputTag > (
"inputJetTag")),
38 minMass_ (iConfig.
template getParameter<double> (
"minMass")),
39 fatJetDeltaR_ (iConfig.
template getParameter<double> (
"fatJetDeltaR")),
40 maxDeltaEta_ (iConfig.
template getParameter<double> (
"maxDeltaEta")),
41 maxJetEta_ (iConfig.
template getParameter<double> (
"maxJetEta")),
42 minJetPt_ (iConfig.
template getParameter<double> (
"minJetPt")),
43 triggerType_ (iConfig.
template getParameter<int> (
"triggerType"))
45 LogDebug(
"") <<
"HLTFatJetMassFilter: Input/minMass/fatJetDeltaR/maxDeltaEta/maxJetEta/minJetPt/triggerType : "
55 template<
typename jetType>
58 template<
typename jetType>
62 makeHLTFilterDescription(desc);
64 desc.
add<
double>(
"minMass",0.0);
65 desc.
add<
double>(
"fatJetDeltaR",1.1);
66 desc.
add<
double>(
"maxDeltaEta",10.0);
67 desc.
add<
double>(
"maxJetEta",3.0);
68 desc.
add<
double>(
"minJetPt",30.0);
74 template<
typename jetType>
94 typename JetCollection::const_iterator
i ( objects->begin() );
95 for(;
i != objects->end();
i++){
96 if(
std::abs(
i->eta()) < maxJetEta_ &&
i->pt() >= minJetPt_){
98 recojets.push_back(
jet);
103 if(recojets.size() < 2)
return false;
111 CaloJetCollection::const_iterator recojet ( recojets.begin() );
112 for (; recojet != recojets.end() ; recojet++) {
113 if(recojet->pt() > jetPt1) {
119 jetPt1 = recojet->pt();
120 }
else if(recojet->pt() > jetPt2) {
123 jetPt2 = recojet->pt();
128 double DeltaEta =
std::abs(j1.eta() - j2.eta());
129 if(DeltaEta > maxDeltaEta_)
return false;
135 for ( recojet = recojets.begin() ; recojet != recojets.end() ; recojet++) {
136 double DeltaR1 =
sqrt(
pow(recojet->phi()-j1.phi(), 2.)+
pow(recojet->eta()-j1.eta(),2.));
137 double DeltaR2 =
sqrt(
pow(recojet->phi()-j2.phi(), 2.)+
pow(recojet->eta()-j2.eta(),2.));
138 if(DeltaR1 < DeltaR2 && DeltaR1 < fatJetDeltaR_) {
139 fj1 += recojet->p4();
140 }
else if(DeltaR2 < fatJetDeltaR_) {
141 fj2 += recojet->p4();
147 if(fj1.mass() < minMass_)
return false;
Jets made from CaloTowers.
std::vector< Jet > JetCollection
edm::Ref< JetCollection > JetRef
virtual bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct)
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
edm::InputTag inputJetTag_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
HLTFatJetMassFilter(const edm::ParameterSet &)
Power< A, B >::type pow(const A &a, const B &b)
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects