CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/GeneratorInterface/GenFilters/interface/BsJpsiPhiFilter.h

Go to the documentation of this file.
00001 #ifndef _BsJpsiPhiFilter_h_
00002 #define _BsJpsiPhiFilter_h_
00003 
00004 
00005 // system include files
00006 #include <memory>
00007 #include <iostream>
00008 #include <vector>
00009 
00010 // user include files
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "FWCore/Framework/interface/EDFilter.h"
00013 
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/MakerMacros.h"
00016 
00017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00018 
00019 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00020 
00021 #include "HepMC/GenVertex.h"
00022 
00023 
00024 // 
00025 
00026 
00027 class BsJpsiPhiFilter : public edm::EDFilter 
00028 {
00029 
00030 public:
00031 
00032   explicit BsJpsiPhiFilter(const edm::ParameterSet&);
00033   ~BsJpsiPhiFilter();
00034   
00035   virtual bool filter(edm::Event&, const edm::EventSetup&);
00036 
00037 private:
00038 
00039   struct CutStruct {
00040     int type;
00041     double etaMin, etaMax, ptMin;
00042   };
00043 
00044   typedef std::vector< HepMC::GenParticle * > GenPartVect;
00045   typedef std::vector< HepMC::GenParticle * >::const_iterator GenPartVectIt;
00046 
00047   //  HepMC::GenParticle * findParticle(const GenPartVect genPartVect, const int requested_id) ;
00048 
00049   //***
00050   HepMC::GenParticle * findParticle(HepMC::GenVertex* , const int requested_id) ;
00051   //***
00052 
00053   HepMC::GenEvent::particle_const_iterator getNextBs(const HepMC::GenEvent::particle_const_iterator start, 
00054                                                      const HepMC::GenEvent::particle_const_iterator end);
00055   
00056 
00057   bool cuts(const HepMC::GenParticle * jpsi, const CutStruct cut);
00058   bool etaInRange(float eta, float etamin, float etamax);
00059 
00060   CutStruct leptonCuts, hadronCuts;
00061 
00062   std::string label_;
00063   int noAccepted;
00064 };
00065 
00066 
00067 #endif