CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTMhtHtFilter< T > Class Template Reference

#include <HLTMhtHtFilter.h>

Inheritance diagram for HLTMhtHtFilter< T >:
HLTFilter edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct)
 
 HLTMhtHtFilter (const edm::ParameterSet &)
 
 ~HLTMhtHtFilter ()
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module () const
 
const std::string * moduleLabel () const
 
int path () const
 
const std::string * pathName () const
 
std::pair< int, int > pmid () const
 
bool saveTags () const
 
virtual ~HLTFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Private Attributes

const std::vector< double > etaJet_
 
const edm::InputTag inputJetTag_
 
const edm::InputTag inputTracksTag_
 
const double meffSlope_
 
const double minAlphaT_
 
const double minHt_
 
const double minMeff_
 
const double minMht_
 
const int minNJet_
 
const double minPT12_
 
const std::vector< double > minPtJet_
 
const int mode_
 
int triggerType_
 
const bool usePt_
 
const bool useTracks_
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

template<typename T>
class HLTMhtHtFilter< T >

Author
Gheorghe Lungu

Definition at line 22 of file HLTMhtHtFilter.h.

Constructor & Destructor Documentation

template<typename T >
HLTMhtHtFilter< T >::HLTMhtHtFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 33 of file HLTMhtHtFilter.cc.

References HLTMhtHtFilter< T >::etaJet_, HLTMhtHtFilter< T >::minPtJet_, HLTMhtHtFilter< T >::mode_, and or.

33  :
34  HLTFilter(iConfig),
35  inputJetTag_ ( iConfig.template getParameter<edm::InputTag>("inputJetTag") ),
36  inputTracksTag_ ( iConfig.template getParameter<edm::InputTag>("inputTracksTag") ),
37  minPtJet_ ( iConfig.template getParameter<std::vector<double> >("minPtJet") ),
38  etaJet_ ( iConfig.template getParameter<std::vector<double> > ("etaJet") ),
39  minPT12_ ( iConfig.template getParameter<double>("minPT12") ),
40  minHt_ ( iConfig.template getParameter<double>("minHt") ),
41  minMht_ ( iConfig.template getParameter<double>("minMht") ),
42  minAlphaT_ ( iConfig.template getParameter<double>("minAlphaT") ),
43  minMeff_ ( iConfig.template getParameter<double>("minMeff") ),
44  meffSlope_ ( iConfig.template getParameter<double>("meffSlope") ),
45  minNJet_ ( iConfig.template getParameter<int>("minNJet") ),
46  mode_ ( iConfig.template getParameter<int>("mode") ),
47  //----mode=1 for MHT only
48  //----mode=2 for Meff
49  //----mode=3 for PT12
50  //----mode=4 for HT only
51  //----mode=5 for HT and AlphaT cross trigger (ALWAYS uses jet ET, not pT)
52  usePt_ ( iConfig.template getParameter<bool>("usePt") ),
53  useTracks_ ( iConfig.template getParameter<bool>("useTracks") ),
54  triggerType_ ( iConfig.template getParameter<int> ("triggerType"))
55 {
56  // sanity checks
57  if ( (minPtJet_.size() != etaJet_.size())
58  or ( (minPtJet_.size()<1) || (etaJet_.size()<1) )
59  or ( ((minPtJet_.size()<2) || (etaJet_.size()<2)) and ( (mode_==1) or (mode_==2) or (mode_ == 5)))
60  )
61  {
62  edm::LogError("HLTMhtHtFilter") << "inconsistent module configuration!";
63  }
64 }
const double minHt_
const int minNJet_
const double minMht_
const double minPT12_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
const std::vector< double > etaJet_
const edm::InputTag inputTracksTag_
const double minAlphaT_
const double meffSlope_
const bool usePt_
const int mode_
const std::vector< double > minPtJet_
const edm::InputTag inputJetTag_
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:18
const bool useTracks_
const double minMeff_
template<typename T >
HLTMhtHtFilter< T >::~HLTMhtHtFilter ( )

Definition at line 67 of file HLTMhtHtFilter.cc.

67 {}

Member Function Documentation

template<typename T >
void HLTMhtHtFilter< T >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 71 of file HLTMhtHtFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), mergeVDriftHistosByStation::name, and trigger::TriggerJet.

71  {
74  desc.add<edm::InputTag>("inputJetTag",edm::InputTag("hltMCJetCorJetIcone5HF07"));
75  desc.add<double>("minMht",0.0);
76  {
77  std::vector<double> temp1;
78  temp1.reserve(2);
79  temp1.push_back(20.0);
80  temp1.push_back(20.0);
81  desc.add<std::vector<double> >("minPtJet",temp1);
82  }
83  desc.add<int>("minNJet",0);
84  desc.add<int>("mode",2);
85  {
86  std::vector<double> temp1;
87  temp1.reserve(2);
88  temp1.push_back(9999.0);
89  temp1.push_back(9999.0);
90  desc.add<std::vector<double> >("etaJet",temp1);
91  }
92  desc.add<bool>("usePt",true);
93  desc.add<double>("minPT12",0.0);
94  desc.add<double>("minMeff",180.0);
95  desc.add<double>("meffSlope",1.0);
96  desc.add<double>("minHt",0.0);
97  desc.add<double>("minAlphaT",0.0);
98  desc.add<bool>("useTracks",false);
99  desc.add<edm::InputTag>("inputTracksTag",edm::InputTag("hltL3Mouns"));
100  desc.add<int>("triggerType",trigger::TriggerJet);
101  descriptions.add(std::string("hlt")+std::string(typeid(HLTMhtHtFilter<T>).name()),desc);
102 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:27
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename T >
bool HLTMhtHtFilter< T >::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
)
virtual

Implements HLTFilter.

Definition at line 109 of file HLTMhtHtFilter.cc.

References abs, accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), funct::cos(), edm::Event::getByLabel(), metsig::jet, n, dt_dqm_sourceclient_common_cff::reco, CommPDSkim_cfg::saveTags, funct::sin(), mathSSE::sqrt(), and testEve_cfg::tracks.

110 {
111  using namespace std;
112  using namespace edm;
113  using namespace reco;
114  using namespace trigger;
115 
116  typedef vector<T> TCollection;
117  typedef Ref<TCollection> TRef;
118 
119  // The filter object
120  if (saveTags()) filterproduct.addCollectionTag(inputJetTag_);
121 
122  // Ref to Candidate object to be recorded in filter object
123  TRef ref;
124 
125  // get hold of collection of objects
126  Handle<TCollection> objects;
127  iEvent.getByLabel (inputJetTag_,objects);
130 
131  // look at all candidates, check cuts and add to filter object
132  int n(0), nj(0), flag(0);
133  double ht=0.;
134  double mhtx=0., mhty=0.;
135  double jetVar;
136  double dht = 0.;
137  double aT = 0.;
138  if(objects->size() > 0){
139  // events with at least one jet
140  typename TCollection::const_iterator jet ( objects->begin() );
141  for (; jet!=objects->end(); jet++) {
142  if (flag == 1){break;}
143  jetVar = jet->pt();
144  if (!usePt_ || mode_==3 ) jetVar = jet->et();
145 
146  if (mode_==1 || mode_==2 || mode_ == 5) {//---get MHT
147  if (jetVar > minPtJet_.at(1) && std::abs(jet->eta()) < etaJet_.at(1)) {
148  mhtx -= jetVar*cos(jet->phi());
149  mhty -= jetVar*sin(jet->phi());
150  if (mode_==1) ++nj;
151  }
152  }
153  if (mode_==2 || mode_==4 || mode_==5) {//---get HT
154  if (jetVar > minPtJet_.at(0) && std::abs(jet->eta()) < etaJet_.at(0)) {
155  ht += jetVar;
156  nj++;
157  }
158  }
159  if (mode_==3) {//---get PT12
160  if (jetVar > minPtJet_.at(0) && std::abs(jet->eta()) < etaJet_.at(0)) {
161  nj++;
162  mhtx -= jetVar*cos(jet->phi());
163  mhty -= jetVar*sin(jet->phi());
164  if (nj==2) break;
165  }
166  }
167  if(mode_ == 5){
168  double mHT = sqrt( (mhtx*mhtx) + (mhty*mhty) );
169  // Make sure to apply jet selection to the jets going into deltaHT as well!!!!!
170  if (jetVar > minPtJet_.at(0) && std::abs(jet->eta()) < etaJet_.at(0)) {
171  dht += ( nj < 2 ? jetVar : -1.* jetVar ); //@@ only use for njets < 4
172  }
173  if ( nj == 2 || nj == 3 ) {
174  aT = ( ht - std::abs(dht) ) / ( 2. * sqrt( ( ht*ht ) - ( mHT*mHT ) ) );
175  } else if ( nj > 3 ) {
176  aT = ht / ( 2.*sqrt( ( ht*ht ) - ( mHT*mHT ) ) );
177  }
178  if(ht > minHt_ && aT > minAlphaT_){
179  // put filter object into the Event
180  flag = 1;
181  }
182  }
183  }
184  if ( (useTracks_) && (tracks->size()>0) ) {
185  for (TrackCollection::const_iterator track = tracks->begin();
186  track != tracks->end(); track++) {
187  if (mode_==1 || mode_==2 || mode_ == 5) {//---get MHT
188  if (track->pt() > minPtJet_.at(1) && std::abs(track->eta()) < etaJet_.at(1)) {
189  mhtx -= track->px();
190  mhty -= track->py();
191  }
192  }
193  if (mode_==2 || mode_==4 || mode_==5) {//---get HT
194  if (track->pt() > minPtJet_.at(0) && std::abs(track->eta()) < etaJet_.at(0)) {
195  ht += track->pt();
196  nj++;
197  }
198  }
199  }
200  }
201 
202  if( mode_==1 && sqrt(mhtx*mhtx + mhty*mhty) > minMht_ && nj >= minNJet_ ) flag=1;
203  if( mode_==2 && sqrt(mhtx*mhtx + mhty*mhty) + meffSlope_*ht > minMeff_) flag=1;
204  if( mode_==3 && sqrt(mhtx*mhtx + mhty*mhty) > minPT12_ && nj>1) flag=1;
205  if( mode_==4 && ht > minHt_ && nj >= minNJet_ ) flag=1;
206 
207  if (flag==1) {
208  typename TCollection::const_iterator jet ( objects->begin() );
209  for (; jet!=objects->end(); jet++) {
210  jetVar = jet->pt();
211  if (!usePt_ || mode_==3) jetVar = jet->et();
212 
213  if (jetVar > minPtJet_.at(0)) {
214  ref = TRef(objects,distance(objects->begin(),jet));
215  filterproduct.addObject(triggerType_,ref);
216  n++;
217  }
218  }
219  }
220  } // events with at least one jet
221 
222  // filter decision
223  bool accept(n>0);
224 
225  return accept;
226 }
const double minHt_
const int minNJet_
long int flag
Definition: mlp_lapack.h:47
const double minMht_
const double minPT12_
const std::vector< double > etaJet_
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
#define abs(x)
Definition: mlp_lapack.h:159
const edm::InputTag inputTracksTag_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:22
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref&lt;C&gt;)
const double minAlphaT_
const double meffSlope_
const bool usePt_
const int mode_
T sqrt(T t)
Definition: SSEVec.h:46
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const std::vector< double > minPtJet_
const edm::InputTag inputJetTag_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
const bool useTracks_
tuple tracks
Definition: testEve_cfg.py:39
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
bool saveTags() const
Definition: HLTFilter.h:45
const double minMeff_

Member Data Documentation

template<typename T >
const std::vector<double> HLTMhtHtFilter< T >::etaJet_
private

Definition at line 34 of file HLTMhtHtFilter.h.

Referenced by HLTMhtHtFilter< T >::HLTMhtHtFilter().

template<typename T >
const edm::InputTag HLTMhtHtFilter< T >::inputJetTag_
private

Definition at line 31 of file HLTMhtHtFilter.h.

template<typename T >
const edm::InputTag HLTMhtHtFilter< T >::inputTracksTag_
private

Definition at line 32 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::meffSlope_
private

Definition at line 40 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::minAlphaT_
private

Definition at line 38 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::minHt_
private

Definition at line 36 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::minMeff_
private

Definition at line 39 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::minMht_
private

Definition at line 37 of file HLTMhtHtFilter.h.

template<typename T >
const int HLTMhtHtFilter< T >::minNJet_
private

Definition at line 41 of file HLTMhtHtFilter.h.

template<typename T >
const double HLTMhtHtFilter< T >::minPT12_
private

Definition at line 35 of file HLTMhtHtFilter.h.

template<typename T >
const std::vector<double> HLTMhtHtFilter< T >::minPtJet_
private

Definition at line 33 of file HLTMhtHtFilter.h.

Referenced by HLTMhtHtFilter< T >::HLTMhtHtFilter().

template<typename T >
const int HLTMhtHtFilter< T >::mode_
private

Definition at line 42 of file HLTMhtHtFilter.h.

Referenced by HLTMhtHtFilter< T >::HLTMhtHtFilter().

template<typename T >
int HLTMhtHtFilter< T >::triggerType_
private

Definition at line 49 of file HLTMhtHtFilter.h.

template<typename T >
const bool HLTMhtHtFilter< T >::usePt_
private

Definition at line 47 of file HLTMhtHtFilter.h.

template<typename T >
const bool HLTMhtHtFilter< T >::useTracks_
private

Definition at line 48 of file HLTMhtHtFilter.h.