CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_4/src/HLTrigger/HLTfilters/interface/HLTDoubletDZ.h

Go to the documentation of this file.
00001 #ifndef HLTDoubletDZ_h
00002 #define HLTDoubletDZ_h
00003 
00004 // 
00005 // Class imlements |dZ|<Max for a pair of two objects
00006 //
00007 
00008 #include "DataFormats/Common/interface/Ref.h"
00009 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00010 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
00011 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
00012 #include<string>
00013 #include<vector>
00014 
00015 //
00016 // class declaration
00017 //
00018 
00019 template<typename T1, typename T2>
00020 class HLTDoubletDZ : public HLTFilter {
00021 
00022    public:
00023 
00024       explicit HLTDoubletDZ(const edm::ParameterSet&);
00025       ~HLTDoubletDZ();
00026       static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
00027       virtual bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs & filterproduct);
00028 
00029    private:
00030       // configuration
00031       edm::InputTag originTag1_;  // input tag identifying original 1st product
00032       edm::InputTag originTag2_;  // input tag identifying original 2nd product
00033       edm::InputTag inputTag1_;   // input tag identifying filtered 1st product
00034       edm::InputTag inputTag2_;   // input tag identifying filtered 2nd product
00035       int triggerType1_;
00036       int triggerType2_;
00037       double minDR_;              // minimum dR between two objects to be considered a pair
00038       double maxDZ_;              // number of pairs passing cuts required
00039       bool   same_;               // 1st and 2nd product are one and the same
00040       int    min_N_;              // number of pairs passing cuts required
00041 
00042       std:: string label_;        // module label
00043 
00044       typedef std::vector<T1> T1Collection;
00045       typedef edm::Ref<T1Collection> T1Ref;
00046       std::vector<T1Ref> coll1_;
00047       typedef std::vector<T2> T2Collection;
00048       typedef edm::Ref<T2Collection> T2Ref;
00049       std::vector<T2Ref> coll2_;
00050 
00051 
00052 };
00053 
00054 #endif //HLTDoubletDZ_h