28 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> >
LorentzV ;
48 if ( (minPtJet_.size() != etaJet_.size())
49 || ( (minPtJet_.empty()) || (etaJet_.empty()) )
50 || ( ((minPtJet_.size()<2) || (etaJet_.size()<2))))
52 edm::LogError(
"HLTAlphaTFilter") <<
"inconsistent module configuration!";
71 std::vector<double> temp1;
73 temp1.push_back(20.0);
74 temp1.push_back(20.0);
75 desc.
add<std::vector<double> >(
"minPtJet",temp1);
77 desc.
add<
int>(
"minNJet",0);
79 std::vector<double> temp1;
81 temp1.push_back(9999.0);
82 temp1.push_back(9999.0);
83 desc.
add<std::vector<double> >(
"etaJet",temp1);
85 desc.
add<
unsigned int>(
"maxNJets",32);
86 desc.
add<
double>(
"minHt",0.0);
87 desc.
add<
double>(
"minAlphaT",0.0);
89 desc.
add<
bool>(
"dynamicAlphaT",
true);
90 desc.
add<
bool>(
"setDHtZero",
false);
103 using namespace reco;
106 typedef vector<T> TCollection;
135 unsigned int njets(0);
137 if(recojets->size() > 1){
140 std::vector<LorentzV>
jets;
141 typename TCollection::const_iterator ijet = recojets->begin();
142 typename TCollection::const_iterator ijetFast = recojetsFastJet->begin();
143 typename TCollection::const_iterator jjet = recojets->end();
147 for( ; ijet != jjet; ijet++, ijetFast++ ) {
148 if( flag == 1)
break;
151 if( ijet->et() <
minPtJet_.at(0) )
continue;
162 htFast += ijetFast->et();
167 LorentzV JetLVec(ijet->pt(),ijet->eta(),ijet->phi(),ijet->mass());
168 jets.push_back( JetLVec );
180 for (
typename TCollection::const_iterator recojet = recojets->begin(); recojet!=jjet; recojet++) {
182 ref = TRef(recojets,
distance(recojets->begin(),recojet));
200 typename TCollection::const_iterator ijet = recojets->begin();
201 typename TCollection::const_iterator jjet = recojets->end();
204 if( (recojets->size() > 1) && (recojetsFastJet->size() > 1) ){
208 typename TCollection::const_iterator ijetFast = recojetsFastJet->begin();
209 typename TCollection::const_iterator jjetFast = recojetsFastJet->end();
210 for( ; ijetFast != jjetFast; ijetFast++ ) {
214 htFast += ijetFast->et();
221 unsigned int njets(0);
223 std::vector<LorentzV>
jets;
224 for( ; ijet != jjet; ijet++ ) {
226 if( ijet->et() <
minPtJet_.at(0) )
continue;
235 LorentzV JetLVec(ijet->pt(),ijet->eta(),ijet->phi(),ijet->mass());
236 jets.push_back( JetLVec );
252 for (
typename TCollection::const_iterator recojet = recojets->begin(); recojet!=jjet; recojet++) {
254 ref = TRef(recojets,
distance(recojets->begin(),recojet));
T getParameter(std::string const &) const
edm::EDGetTokenT< std::vector< T > > m_theRecoJetToken
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::InputTag inputJetTagFastJet_
std::string defaultModuleLabel()
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::InputTag inputJetTag_
Abs< T >::type abs(const T &t)
HLTAlphaTFilter(const edm::ParameterSet &)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > LorentzV
~HLTAlphaTFilter() override
edm::EDGetTokenT< std::vector< T > > m_theFastJetToken
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< double > minPtJet_
std::vector< double > etaJet_