CMS 3D CMS Logo

JetFlavourIdentifier.h

Go to the documentation of this file.
00001 #ifndef JetFlavourIdentifier_H
00002 #define JetFlavourIdentifier_H
00003 
00004 #include "FWCore/Framework/interface/Event.h"
00005 #include "DataFormats/JetReco/interface/Jet.h"
00006 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 #include "RecoBTag/MCTools/interface/MCParton.h"
00009 #include "RecoBTag/MCTools/interface/JetFlavour.h"
00010 #include "DataFormats/Math/interface/LorentzVector.h"
00011 
00012 class JetFlavourIdentifier {
00013 public:
00014   JetFlavourIdentifier() {}
00015   JetFlavourIdentifier(const edm::ParameterSet& iConfig);
00016   void readEvent(const edm::Event& iEvent);
00017 
00018   BTagMCTools::JetFlavour identifyBasedOnPartons( const reco::Jet & jet ) const;
00019   const std::vector<MCParton> & getListOfPartons() const { return m_partons; }
00020 
00021 private:
00022   void fillInfo( const HepMC::GenEvent * generated_event );
00023 
00024   BTagMCTools::JetFlavour basicIdentityBasedOnPartons(const math::XYZTLorentzVector & jet4Vec, const double coneSize) const;
00025 
00026   void fillAlgorithmicDefinition(BTagMCTools::JetFlavour & jetFlavour) const;
00027   void fillPhysicsDefinition(BTagMCTools::JetFlavour & jetFlavour, const math::XYZTLorentzVector & jet4Vec) const;
00028 
00029   double coneSizeToAssociate;
00030 
00031   bool fillPartons;
00032   bool fillHeavyHadrons;
00033   bool fillLeptons;
00034   bool physDefinition;
00035   bool rejectBCSplitting;
00036   std::vector<MCParton> m_partons;
00037   bool vetoB, vetoC, vetoL, vetoG;
00038   std::string moduleLabel;
00039   HepMC::GenEvent * generated_event;
00040 };
00041 
00042 #endif

Generated on Tue Jun 9 17:43:03 2009 for CMSSW by  doxygen 1.5.4