CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/HLTrigger/HLTfilters/interface/HLTDoublet.h

Go to the documentation of this file.
00001 #ifndef HLTDoublet_h
00002 #define HLTDoublet_h
00003 
00022 #include "DataFormats/Common/interface/Ref.h"
00023 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
00024 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
00025 #include<string>
00026 #include<vector>
00027 
00028 //
00029 // class declaration
00030 //
00031 
00032 template<typename T1, typename T2>
00033 class HLTDoublet : public HLTFilter {
00034 
00035    public:
00036 
00037       explicit HLTDoublet(const edm::ParameterSet&);
00038       ~HLTDoublet();
00039       static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
00040       virtual bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs & filterproduct);
00041 
00042    private:
00043       // configuration
00044       edm::InputTag originTag1_;  // input tag identifying original 1st product
00045       edm::InputTag originTag2_;  // input tag identifying original 2nd product
00046       edm::InputTag inputTag1_;   // input tag identifying filtered 1st product
00047       edm::InputTag inputTag2_;   // input tag identifying filtered 2nd product
00048       int triggerType1_;
00049       int triggerType2_;
00050       double min_Dphi_,max_Dphi_; // Delta phi window
00051       double min_Deta_,max_Deta_; // Delta eta window
00052       double min_Minv_,max_Minv_; // Minv(1,2) window
00053       double min_DelR_,max_DelR_; // Delta R window
00054       double min_Pt_  ,max_Pt_;   // Pt(1,2) window
00055       int    min_N_;              // number of pairs passing cuts required
00056 
00057       // calculated from configuration in c'tor
00058       bool   same_;                      // 1st and 2nd product are one and the same
00059       bool   cutdphi_,cutdeta_,cutminv_,cutdelr_,cutpt_; // cuts are on=true or off=false
00060 
00061       std::string label_;         // module label
00062 
00063       //
00064       typedef std::vector<T1> T1Collection;
00065       typedef edm::Ref<T1Collection> T1Ref;
00066       std::vector<T1Ref> coll1_;
00067       typedef std::vector<T2> T2Collection;
00068       typedef edm::Ref<T2Collection> T2Ref;
00069       std::vector<T2Ref> coll2_;
00070 
00071 };
00072 
00073 #endif //HLTDoublet_h