CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/PhysicsTools/HepMCCandAlgos/interface/FlavorHistoryFilter.h

Go to the documentation of this file.
00001 #ifndef PhysicsTools_HepMCCandAlgos_interface_FlavorHistoryFilter_h
00002 #define PhysicsTools_HepMCCandAlgos_interface_FlavorHistoryFilter_h
00003 
00004 
00005 // -*- C++ -*-
00006 //
00007 // Package:    FlavorHistoryFilter
00008 // Class:      FlavorHistoryFilter
00009 // 
00046 //
00047 // Original Author:  "Salvatore Rappoccio"
00048 //         Created:  Sat Jun 28 00:41:21 CDT 2008
00049 // $Id: FlavorHistoryFilter.h,v 1.9 2010/01/11 13:26:22 hegner Exp $
00050 //
00051 //
00052 
00053 
00054 // system include files
00055 #include <memory>
00056 
00057 // user include files
00058 #include "FWCore/Framework/interface/Frameworkfwd.h"
00059 #include "FWCore/Framework/interface/EDFilter.h"
00060 
00061 #include "FWCore/Framework/interface/Event.h"
00062 #include "FWCore/Framework/interface/MakerMacros.h"
00063 
00064 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00065 
00066 
00067 #include "DataFormats/HepMCCandidate/interface/FlavorHistoryEvent.h"
00068 #include "DataFormats/HepMCCandidate/interface/FlavorHistory.h"
00069 #include "DataFormats/Candidate/interface/CandidateFwd.h"
00070 
00071 #include "PhysicsTools/HepMCCandAlgos/interface/FlavorHistorySelectorUtil.h"
00072 
00073 //
00074 // class declaration
00075 //
00076 
00077 class FlavorHistoryFilter : public edm::EDFilter {
00078    public:
00079      typedef reco::FlavorHistory::FLAVOR_T flavor_type;
00080      typedef std::vector<int>              flavor_vector;
00081 
00082       explicit FlavorHistoryFilter(const edm::ParameterSet&);
00083       ~FlavorHistoryFilter();
00084 
00085    private:
00086       virtual bool filter(edm::Event&, const edm::EventSetup&);
00087       virtual void endJob() ;
00088       
00089       // ----------member data ---------------------------
00090       edm::InputTag   bsrc_;           // Input b flavor history collection name
00091       edm::InputTag   csrc_;           // Input c flavor history collection name
00092       int             pathToSelect_;   // Select any of the following paths:
00093       double          dr_;             // dr with which to cut off the events
00094       // Note! The "b" and "c" here refer to the number of matched b and c genjets, respectively
00095       reco::FlavorHistorySelectorUtil * bb_me_;      // To select bb->2 events from matrix element... Path 1 
00096       reco::FlavorHistorySelectorUtil *  b_me_;      // To select  b->1 events from matrix element... Path 2
00097       reco::FlavorHistorySelectorUtil * cc_me_;      // To select cc->2 events from matrix element... Path 3
00098       reco::FlavorHistorySelectorUtil *  c_me_;      // To select  c->1 events from matrix element... Path 4
00099       reco::FlavorHistorySelectorUtil *  b_ps_;      // To select bb->2 events from parton shower ... Path 5
00100       reco::FlavorHistorySelectorUtil *  c_ps_;      // To select cc->2 events from parton shower ... Path 6
00101       reco::FlavorHistorySelectorUtil * bb_me_comp_; // To select bb->1 events from matrix element... Path 7
00102       reco::FlavorHistorySelectorUtil * cc_me_comp_; // To select cc->1 events from matrix element... Path 8
00103       reco::FlavorHistorySelectorUtil *  b_ps_comp_; // To select bb->2 events from parton shower ... Path 9
00104       reco::FlavorHistorySelectorUtil *  c_ps_comp_; // To select cc->1 events from parton shower ... Path 10
00105                                                      // The veto of all of these is               ... Path 11
00106 };
00107 
00108 
00109 #endif