CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
LeptonSkimming Class Reference

#include <Configuration/Skimming/src/LeptonSkimming.cc>

Inheritance diagram for LeptonSkimming:
edm::stream::EDFilter<> edm::stream::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 LeptonSkimming (const edm::ParameterSet &)
 
 ~LeptonSkimming () override
 
- Public Member Functions inherited from edm::stream::EDFilter<>
 EDFilter ()=default
 
 EDFilter (const EDFilter &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDFilteroperator= (const EDFilter &)=delete
 
- Public Member Functions inherited from edm::stream::EDFilterBase
 EDFilterBase ()
 
 EDFilterBase (const EDFilterBase &)=delete
 
ModuleDescription const & moduleDescription () const
 
const EDFilterBaseoperator= (const EDFilterBase &)=delete
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void beginStream (edm::StreamID) override
 
void endStream () override
 
bool filter (edm::Event &, const edm::EventSetup &) override
 
bool hltFired (const edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< string > HLTPath)
 
std::array< float, 5 > hltObject (const edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< string > Seed)
 

Private Attributes

float beam_x
 
float beam_y
 
float beam_z
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
edm::ESGetToken< MagneticField,
IdealMagneticFieldRecord
bFieldToken_
 
double BiasedWP = -100
 
std::vector< std::shared_ptr
< reco::Track > > 
cleanedObjTracks
 
std::vector< std::shared_ptr
< reco::Track > > 
cleanedPairTracks
 
std::vector< std::shared_ptr
< reco::Track > > 
cleanedTracks
 
edm::EDGetTokenT
< reco::ConversionCollection
conversionsToken_
 
double Cosee_Cut = -1
 
double CoseeK_Cut = 0
 
bool EarlyStop = false
 
std::vector< float > el_eta
 
std::vector< float > el_phi
 
std::vector< float > el_pt
 
edm::EDGetTokenT
< edm::ValueMap< float > > 
eleBWPToken_
 
edm::EDGetToken electronsToken_
 
edm::EDGetTokenT
< edm::ValueMap< float > > 
eleUnBWPToken_
 
std::vector< std::shared_ptr
< reco::Track > > 
ElTracks
 
double ElTrgExclusionCone = 0
 
double ElTrgMuDz_Cut = 1000
 
std::vector< unsigned int > Epair_ObjectId
 
std::vector< unsigned int > Epair_ObjectIndex
 
std::vector< unsigned int > Epair_TrkIndex
 
double EpairZvtx_Cut = 10000000
 
double EtaTrack_Cut = 10
 
std::vector< string > HLTFilter_
 
std::vector< string > HLTPath_
 
double Ksdxy_Cut = 1000
 
double MaxChi2Track_Cut = 1000
 
double MaxMB_Cut = 1000
 
double MaxMee_Cut = 1000
 
double MinChi2Track_Cut = -1000
 
double MinMB_Cut = 0
 
double MinMee_Cut = 0
 
std::vector< float > muon_eta
 
std::vector< float > muon_medium
 
std::vector< float > muon_phi
 
std::vector< float > muon_pt
 
std::vector< float > muon_soft
 
std::vector< float > muon_tight
 
edm::EDGetToken muonsToken_
 
std::vector< std::shared_ptr
< reco::Track > > 
MuTracks
 
double MuTrgExclusionCone = 0
 
double MuTrgMatchCone = 1000
 
double MuTrgMuDz_Cut = 1000
 
double MuTrkMinDR_Cut = 0
 
unsigned int nel = 0
 
unsigned int nmuons = 0
 
unsigned int ntracks = 0
 
std::vector< unsigned int > object_container
 
std::vector< unsigned int > object_id
 
bool ObjPtLargerThanTrack = false
 
double Probee_Cut = 0
 
double ProbeeK_Cut = 0
 
double PtB_Cut = 0
 
double PtEl_Cut = 0
 
double PtKTrack_Cut = 0
 
double PtMu_Cut = 0
 
double PtTrack_Cut = 0
 
double QualMu_Cut = 0
 
bool Result = false
 
bool SaveOnlyEPairTracks = false
 
bool SaveOnlyTracks = false
 
bool SaveOutputRoot = true
 
float SelectedMu_DR = -1
 
int SelectedMu_index
 
std::vector< float > SelectedTrgObj_PtEtaPhiCharge
 
bool SkimOnlyElectrons = false
 
bool SkimOnlyMuons = false
 
bool SkipIfNoMuMatch = false
 
double SLxy_Cut = 0
 
std::vector< float > tempPtEtaPhiM
 
std::vector< float > tempXYZ
 
int test_ev = 0
 
std::vector< float > track_vx
 
std::vector< float > track_vy
 
std::vector< float > track_vz
 
double TrackMuDz_Cut = 100000000
 
std::vector< unsigned int > trackObj_container
 
std::vector< unsigned int > trackPair_container
 
edm::EDGetToken Tracks_
 
double TrackSdxy_Cut = 0
 
double TrgExclusionCone = -1
 
edm::EDGetTokenT
< edm::TriggerResults
trgresultsToken_
 
edm::EDGetTokenT
< trigger::TriggerEvent
trigobjectsToken_
 
std::vector< unsigned int > Trk_container
 
unsigned int trk_index = 0
 
double TrkObjExclusionCone = 0
 
double UnbiasedWP = -100
 
bool UseOnlyBKeeMCForTriplets = false
 
reco::TrackBase::Point vertex_point
 
edm::EDGetTokenT
< reco::VertexCollection
vtxToken_
 
float ZvertexTrg = -1 * std::numeric_limits<float>::max()
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDFilter<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Public Types inherited from edm::stream::EDFilterBase
typedef EDFilterAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 84 of file LeptonSkimming.h.

Constructor & Destructor Documentation

LeptonSkimming::LeptonSkimming ( const edm::ParameterSet iConfig)
explicit

Definition at line 26 of file LeptonSkimming.cc.

References BiasedWP, Cosee_Cut, CoseeK_Cut, ElTrgExclusionCone, ElTrgMuDz_Cut, EpairZvtx_Cut, EtaTrack_Cut, edm::ParameterSet::getParameter(), Ksdxy_Cut, MaxChi2Track_Cut, MaxMB_Cut, MaxMee_Cut, MinChi2Track_Cut, MinMB_Cut, MinMee_Cut, MuTrgExclusionCone, MuTrgMatchCone, MuTrgMuDz_Cut, MuTrkMinDR_Cut, ObjPtLargerThanTrack, Probee_Cut, ProbeeK_Cut, PtB_Cut, PtEl_Cut, PtKTrack_Cut, PtMu_Cut, PtTrack_Cut, QualMu_Cut, environment_file_cff::runParameters, SkimOnlyElectrons, SkimOnlyMuons, SkipIfNoMuMatch, SLxy_Cut, TrackMuDz_Cut, TrackSdxy_Cut, TrgExclusionCone, TrkObjExclusionCone, and UnbiasedWP.

27  : electronsToken_(consumes<std::vector<reco::GsfElectron>>(iConfig.getParameter<edm::InputTag>("electrons"))),
30  muonsToken_(consumes<std::vector<reco::Muon>>(iConfig.getParameter<edm::InputTag>("muons"))),
31  Tracks_(consumes<std::vector<reco::Track>>(iConfig.getParameter<edm::InputTag>("tracks"))),
32  vtxToken_(consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("vertices"))),
33  beamSpotToken_(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
34  conversionsToken_(consumes<reco::ConversionCollection>(iConfig.getParameter<edm::InputTag>("conversions"))),
35 
36  trgresultsToken_(consumes<edm::TriggerResults>(iConfig.getParameter<edm::InputTag>("triggerresults"))),
37  trigobjectsToken_(consumes<trigger::TriggerEvent>(iConfig.getParameter<edm::InputTag>("triggerobjects"))),
39  HLTFilter_(iConfig.getParameter<vector<string>>("HLTFilter")),
40  HLTPath_(iConfig.getParameter<vector<string>>("HLTPath")) {
42  //mu matching with trigger
43  MuTrgMatchCone = runParameters.getParameter<double>("MuTrgMatchCone");
44  SkipIfNoMuMatch = runParameters.getParameter<bool>("SkipIfNoMuMatch");
45  //track cuts
46  PtTrack_Cut = runParameters.getParameter<double>("PtTrack_Cut");
47  EtaTrack_Cut = runParameters.getParameter<double>("EtaTrack_Cut");
48  MinChi2Track_Cut = runParameters.getParameter<double>("MinChi2Track_Cut");
49  MaxChi2Track_Cut = runParameters.getParameter<double>("MaxChi2Track_Cut");
50  MuTrkMinDR_Cut = runParameters.getParameter<double>("MuTrkMinDR_Cut");
51  TrackMuDz_Cut = runParameters.getParameter<double>("TrackMuDz_Cut");
52  TrgExclusionCone = runParameters.getParameter<double>("TrgExclusionCone");
53  //lepton cuts
54  PtMu_Cut = runParameters.getParameter<double>("PtMu_Cut");
55  PtEl_Cut = runParameters.getParameter<double>("PtEl_Cut");
56  QualMu_Cut = runParameters.getParameter<double>("QualMu_Cut");
57  MuTrgExclusionCone = runParameters.getParameter<double>("MuTrgExclusionCone");
58  ElTrgExclusionCone = runParameters.getParameter<double>("ElTrgExclusionCone");
59  TrkObjExclusionCone = runParameters.getParameter<double>("TrkObjExclusionCone");
60  MuTrgMuDz_Cut = runParameters.getParameter<double>("MuTrgMuDz_Cut");
61  ElTrgMuDz_Cut = runParameters.getParameter<double>("ElTrgMuDz_Cut");
62  BiasedWP = runParameters.getParameter<double>("BiasedWP");
63  UnbiasedWP = runParameters.getParameter<double>("UnbiasedWP");
64  SkimOnlyMuons = runParameters.getParameter<bool>("SkimOnlyMuons");
65  SkimOnlyElectrons = runParameters.getParameter<bool>("SkimOnlyElectrons");
66  //pair cuts
67  MaxMee_Cut = runParameters.getParameter<double>("MaxMee_Cut");
68  MinMee_Cut = runParameters.getParameter<double>("MinMee_Cut");
69  Probee_Cut = runParameters.getParameter<double>("Probee_Cut");
70  Cosee_Cut = runParameters.getParameter<double>("Cosee_Cut");
71  EpairZvtx_Cut = runParameters.getParameter<double>("EpairZvtx_Cut");
72  //kaon
73  PtKTrack_Cut = runParameters.getParameter<double>("PtKTrack_Cut");
74  TrackSdxy_Cut = runParameters.getParameter<double>("TrackSdxy_Cut");
75  Ksdxy_Cut = runParameters.getParameter<double>("Ksdxy_Cut");
76  //triplet
77  MaxMB_Cut = runParameters.getParameter<double>("MaxMB_Cut");
78  MinMB_Cut = runParameters.getParameter<double>("MinMB_Cut");
79  ProbeeK_Cut = runParameters.getParameter<double>("ProbeeK_Cut");
80  CoseeK_Cut = runParameters.getParameter<double>("CoseeK_Cut");
81  SLxy_Cut = runParameters.getParameter<double>("SLxy_Cut");
82  PtB_Cut = runParameters.getParameter<double>("PtB_Cut");
83 
84  ObjPtLargerThanTrack = runParameters.getParameter<bool>("ObjPtLargerThanTrack");
85 }
double TrgExclusionCone
double MaxChi2Track_Cut
double MinChi2Track_Cut
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
double TrkObjExclusionCone
edm::EDGetTokenT< edm::TriggerResults > trgresultsToken_
std::vector< string > HLTFilter_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetToken electronsToken_
edm::EDGetTokenT< edm::ValueMap< float > > eleBWPToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bFieldToken_
edm::EDGetToken Tracks_
double ElTrgExclusionCone
edm::EDGetTokenT< trigger::TriggerEvent > trigobjectsToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
double MuTrgExclusionCone
edm::EDGetTokenT< reco::ConversionCollection > conversionsToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetToken muonsToken_
edm::EDGetTokenT< edm::ValueMap< float > > eleUnBWPToken_
std::vector< string > HLTPath_
LeptonSkimming::~LeptonSkimming ( )
override

Definition at line 87 of file LeptonSkimming.cc.

87  {
88  // do anything here that needs to be done at destruction time
89  // (e.g. close files, deallocate resources etc.)
90 }

Member Function Documentation

void LeptonSkimming::beginStream ( edm::StreamID  )
overrideprivatevirtual

Reimplemented from edm::stream::EDFilterBase.

Definition at line 529 of file LeptonSkimming.cc.

529 {}
void LeptonSkimming::endStream ( )
overrideprivatevirtual

Reimplemented from edm::stream::EDFilterBase.

Definition at line 532 of file LeptonSkimming.cc.

532 {}
void LeptonSkimming::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 567 of file LeptonSkimming.cc.

References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and edm::ParameterSetDescription::setUnknown().

567  {
568  //The following says we do not know what parameters are allowed so do no validation
569  // Please change this to state exactly what you do use, even if it is no parameters
571  desc.setUnknown();
572  descriptions.addDefault(desc);
573 }
void addDefault(ParameterSetDescription const &psetDescription)
bool LeptonSkimming::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::stream::EDFilterBase.

Definition at line 168 of file LeptonSkimming.cc.

References beam_x, beam_y, beam_z, beamSpotToken_, ecalTB2006H4_GenSimDigiReco_cfg::bField, bFieldToken_, BiasedWP, ChiSquaredProbability(), cleanedObjTracks, cleanedPairTracks, cleanedTracks, conversions_cfi::conversions, conversionsToken_, Cosee_Cut, CoseeK_Cut, HLT_FULL_cff::deltaR, el_eta, el_phi, el_pt, eleBWPToken_, HI_PhotonSkim_cff::electrons, electronsToken_, eleUnBWPToken_, ElTracks, ElTrgExclusionCone, ElTrgMuDz_Cut, Epair_ObjectId, Epair_ObjectIndex, Epair_TrkIndex, EpairZvtx_Cut, submitPVValidationJobs::err, reco::TrackBase::eta(), EtaTrack_Cut, edm::Event::getByToken(), edm::EventSetup::getData(), ConversionTools::hasMatchedConversion(), HLTFilter_, hltFired(), hltObject(), HLTPath_, isMediumMuonCustom(), edm::Ref< C, T, F >::isNull(), muon::isSoftMuon(), isTightMuonCustom(), Ksdxy_Cut, SiStripPI::max, MaxChi2Track_Cut, MaxMB_Cut, MaxMee_Cut, MinChi2Track_Cut, MinMB_Cut, MinMee_Cut, RPCpg::mu, muon_eta, muon_medium, muon_phi, muon_pt, muon_soft, muon_tight, patZpeak::muons, muonsToken_, MuTracks, MuTrgExclusionCone, MuTrgMuDz_Cut, nel, nmuons, ntracks, getGTfromDQMFile::obj, object_container, object_id, ObjPtLargerThanTrack, PV3DBase< T, PVType, FrameType >::perp(), Probee_Cut, ProbeeK_Cut, reco::TrackBase::pt(), PtB_Cut, PtEl_Cut, PtKTrack_Cut, PtMu_Cut, PtTrack_Cut, QualMu_Cut, dt_dqm_sourceclient_common_cff::reco, GlobalErrorBase< T, ErrorWeightType >::rerr(), Result, fileCollector::seed, SelectedMu_DR, SelectedMu_index, SelectedTrgObj_PtEtaPhiCharge, SkimOnlyElectrons, SkimOnlyMuons, SkipIfNoMuMatch, SLxy_Cut, mathSSE::sqrt(), test_ev, TrackMuDz_Cut, tracks, Tracks_, TrackSdxy_Cut, TrgExclusionCone, trgresultsToken_, Trk_container, trk_index, TrkObjExclusionCone, UnbiasedWP, KalmanVertexFitter::vertex(), vertex_point, beam_dqm_sourceclient-live_cfg::vertices, vtxToken_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and ZvertexTrg.

168  {
169  using namespace std;
170  using namespace edm;
171  using namespace reco;
172  using namespace trigger;
173  // using namespace PhysicsTools;
174 
175  test_ev++;
176  //Get a few collections to apply basic electron ID
177  //Get electrons
180  //get bdt values
181  edm::Handle<edm::ValueMap<float>> ele_mva_wp_biased;
182  iEvent.getByToken(eleBWPToken_, ele_mva_wp_biased);
183  edm::Handle<edm::ValueMap<float>> ele_mva_wp_unbiased;
184  iEvent.getByToken(eleUnBWPToken_, ele_mva_wp_unbiased);
185  //get muons
187  iEvent.getByToken(muonsToken_, muons);
188  //Get conversions
191  // Get the beam spot
192  edm::Handle<reco::BeamSpot> theBeamSpot;
193  iEvent.getByToken(beamSpotToken_, theBeamSpot);
194  //Get vertices
196  iEvent.getByToken(vtxToken_, vertices);
197  //continue if there are no vertices
198  if (vertices->empty())
199  return false;
201  iEvent.getByToken(Tracks_, tracks);
203  iEvent.getByToken(trgresultsToken_, trigResults);
204  auto const& bField = iSetup.getData(bFieldToken_);
205  KalmanVertexFitter theKalmanFitter(false);
206  TransientVertex LLvertex;
207 
208  // trigger1=0; trigger2=0; trigger3=0; trigger4=0; trigger5=0; trigger6=0;
209  nmuons = 0;
210  nel = 0;
211  ntracks = 0;
212 
213  SelectedMu_index = -1;
215  muon_pt.clear();
216  muon_eta.clear();
217  muon_phi.clear();
218  Result = false;
219  el_pt.clear();
220  el_eta.clear();
221  el_phi.clear();
222  Trk_container.clear();
223  MuTracks.clear();
224  ElTracks.clear();
225  object_container.clear();
226  object_id.clear();
227  cleanedTracks.clear();
228  Epair_ObjectId.clear();
229  muon_soft.clear();
230  muon_medium.clear();
231  muon_tight.clear();
232  Epair_ObjectIndex.clear();
233  cleanedObjTracks.clear();
234  cleanedPairTracks.clear();
235  Epair_ObjectIndex.clear();
236  Epair_ObjectId.clear();
237  Epair_TrkIndex.clear();
238  //internal stuff
240  std::array<float, 5> SelectedTrgObj_PtEtaPhiCharge{{-999, -999, -999, -999, -999}};
241  vertex_point.SetCoordinates(-1 * std::numeric_limits<float>::max(),
244  for (const reco::Vertex& vtx : *vertices) {
245  bool isFake = vtx.isFake();
246  if (isFake)
247  continue;
248  vertex_point.SetCoordinates(vtx.x(), vtx.y(), vtx.z());
250  break;
251  }
253  return false;
254 
255  beam_x = theBeamSpot->x0();
256  beam_y = theBeamSpot->y0();
257  beam_z = theBeamSpot->z0();
258  if (!hltFired(iEvent, iSetup, HLTPath_))
259  return false;
260 
263  MuTracks.clear();
264  object_container.clear();
265  object_id.clear();
266  nmuons = 0;
267  for (const reco::Muon& mu : *muons) {
268  if (fabs(mu.eta()) > EtaTrack_Cut)
269  continue;
270  //find triggering muon
271  float deltaRmu = deltaR(mu.eta(), mu.phi(), SelectedTrgObj_PtEtaPhiCharge[1], SelectedTrgObj_PtEtaPhiCharge[2]);
272  if (deltaRmu < MuTrgMatchCone && SelectedMu_DR > deltaRmu) {
274  ZvertexTrg = mu.vz();
275  }
276  //save muons that we want to skim
277  if (!SkimOnlyElectrons) {
278  bool tight = false, soft = false;
279  if (vertices.isValid()) {
280  tight = isTightMuonCustom(*(&mu), (*vertices)[0]);
281  soft = muon::isSoftMuon(*(&mu), (*vertices)[0]);
282  }
283  const Track* mutrack = mu.bestTrack();
284  muon_medium.push_back(isMediumMuonCustom(*(&mu)));
285  muon_tight.push_back(tight);
286  muon_soft.push_back(soft);
287  muon_pt.push_back(mu.pt());
288  muon_eta.push_back(mu.eta());
289  muon_phi.push_back(mu.phi());
290  auto muTrack = std::make_shared<reco::Track>(*mutrack);
291  MuTracks.push_back(muTrack);
292  object_container.push_back(nmuons);
293  object_id.push_back(13);
294  nmuons++;
295  }
296  }
297 
299  return false;
300  }
301 
302  //Save electrons we want to skim
303  ElTracks.clear();
304  if (!SkimOnlyMuons) {
305  unsigned int count_el = -1;
306  for (const reco::GsfElectron& el : *electrons) {
307  count_el++;
308  bool passConvVeto = !ConversionTools::hasMatchedConversion(*(&el), *conversions, theBeamSpot->position());
309  if (!passConvVeto)
310  continue;
311  reco::GsfTrackRef seed = el.gsfTrack();
312  if (seed.isNull())
313  continue;
314  if ((*ele_mva_wp_biased)[seed] < BiasedWP)
315  continue;
316  if ((*ele_mva_wp_unbiased)[seed] < UnbiasedWP)
317  continue;
318  const Track* eltrack = el.bestTrack();
319  if (fabs(eltrack->eta()) > EtaTrack_Cut)
320  continue;
321  if (eltrack->pt() < PtEl_Cut)
322  continue;
323  auto ElTrack = std::make_shared<reco::Track>(*eltrack);
324  ElTracks.push_back(ElTrack);
325  object_container.push_back(nel);
326  el_pt.push_back(eltrack->pt());
327  el_eta.push_back(eltrack->eta());
328  el_phi.push_back(eltrack->phi());
329  nel++;
330  object_id.push_back(11);
331  }
332  }
333 
334  //Save tracks we want to skim: used both as mu or e candidate
335  cleanedTracks.clear();
336  trk_index = 0;
337  for (const reco::Track& trk : *tracks) {
338  if (!trk.quality(Track::highPurity))
339  continue;
340  if (trk.pt() < PtTrack_Cut)
341  continue;
342  if (fabs(trk.eta()) > EtaTrack_Cut)
343  continue;
344  if (trk.charge() == 0)
345  continue;
346  if (trk.normalizedChi2() > MaxChi2Track_Cut || trk.normalizedChi2() < MinChi2Track_Cut)
347  continue;
348  if (fabs(trk.dxy()) / trk.dxyError() < TrackSdxy_Cut)
349  continue;
351  if (fabs(ZvertexTrg - trk.vz()) > TrackMuDz_Cut)
352  continue;
353  if (deltaR(trk.eta(), trk.phi(), SelectedTrgObj_PtEtaPhiCharge[1], SelectedTrgObj_PtEtaPhiCharge[2]) <
355  continue;
356  }
357  //assignments
358  auto cleanTrack = std::make_shared<reco::Track>(trk);
359  cleanedTracks.push_back(cleanTrack);
360  Trk_container.push_back(trk_index);
361  trk_index++;
362  }
363 
364  //create ll combination
365 
366  // fit track pairs
367  cleanedObjTracks.clear();
368  cleanedPairTracks.clear();
369  TLorentzVector vel1, vel2;
370  std::vector<std::shared_ptr<reco::Track>> cleanedObjects;
371  //add tracks of objects
372  if (!SkimOnlyElectrons) {
373  for (auto& vec : MuTracks)
374  cleanedObjects.push_back(vec);
375  }
376 
377  if (!SkimOnlyMuons) {
378  for (auto& vec : ElTracks)
379  cleanedObjects.push_back(vec);
380  }
381 
382  if (cleanedObjects.empty())
383  return false;
384 
385  for (auto& obj : cleanedObjects) {
386  auto tranobj = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*obj, &bField));
387  unsigned int iobj = &obj - &cleanedObjects[0];
388  unsigned int index = object_container.at(iobj);
389  float massLep = 0.0005;
390  if (object_id.at(iobj) == 13)
391  massLep = 0.105;
392  //posible cut in mu quality
393  if (object_id.at(iobj) == 13 && QualMu_Cut == 1 && !muon_soft.at(index))
394  continue;
395  if (object_id.at(iobj) == 13 && QualMu_Cut == 2 && !muon_medium.at(index))
396  continue;
397  if (object_id.at(iobj) == 13 && QualMu_Cut == 3 && !muon_tight.at(index))
398  continue;
399  // take the corresponding lepton track for lorentz vector
400  vel1.SetPtEtaPhiM(obj->pt(), obj->eta(), obj->phi(), massLep);
401  if (object_id.at(iobj) == 13 && vel1.Pt() < PtMu_Cut)
402  continue;
403  for (auto& trk2 : cleanedTracks) {
404  unsigned int itrk2 = &trk2 - &cleanedTracks[0];
405  //opposite sign
406  if (obj->charge() * trk2->charge() == 1)
407  continue;
408  if (ObjPtLargerThanTrack && vel1.Pt() < trk2->pt())
409  continue;
410  vel2.SetPtEtaPhiM(trk2->pt(), trk2->eta(), trk2->phi(), massLep);
411  //probe side cuts
412  if (object_id.at(iobj) == 13 &&
415  continue;
416  if (object_id.at(iobj) == 11 &&
419  continue;
421  if (object_id.at(iobj) == 13 && fabs(ZvertexTrg - obj->vz()) > MuTrgMuDz_Cut)
422  continue;
423  if (object_id.at(iobj) == 11 && fabs(ZvertexTrg - obj->vz()) > ElTrgMuDz_Cut)
424  continue;
425  }
426  //additional cuts
427  float InvMassLepLep = (vel1 + vel2).M();
428  if (InvMassLepLep > MaxMee_Cut || InvMassLepLep < MinMee_Cut)
429  continue;
430  auto trantrk2 = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*trk2, &bField));
431  std::vector<reco::TransientTrack> tempTracks;
432  tempTracks.reserve(2);
433  tempTracks.push_back(*tranobj);
434  tempTracks.push_back(*trantrk2);
435  LLvertex = theKalmanFitter.vertex(tempTracks);
436  if (!LLvertex.isValid())
437  continue;
438  if (ChiSquaredProbability(LLvertex.totalChiSquared(), LLvertex.degreesOfFreedom()) < Probee_Cut)
439  continue;
440  if (ZvertexTrg > -1 * std::numeric_limits<float>::max() &&
441  fabs(ZvertexTrg - LLvertex.position().z()) > EpairZvtx_Cut)
442  continue;
443  GlobalError err = LLvertex.positionError();
444  GlobalPoint Dispbeamspot(-1 * ((theBeamSpot->x0() - LLvertex.position().x()) +
445  (LLvertex.position().z() - theBeamSpot->z0()) * theBeamSpot->dxdz()),
446  -1 * ((theBeamSpot->y0() - LLvertex.position().y()) +
447  (LLvertex.position().z() - theBeamSpot->z0()) * theBeamSpot->dydz()),
448  0);
449  math::XYZVector pperp((vel1 + vel2).Px(), (vel1 + vel2).Py(), 0);
450  math::XYZVector vperp(Dispbeamspot.x(), Dispbeamspot.y(), 0.);
451  float tempCos = vperp.Dot(pperp) / (vperp.R() * pperp.R());
452  if (tempCos < Cosee_Cut)
453  continue;
454  cleanedObjTracks.push_back(obj);
455  cleanedPairTracks.push_back(trk2);
456  Epair_ObjectIndex.push_back(object_container.at(iobj));
457  Epair_ObjectId.push_back(object_id.at(iobj));
458  Epair_TrkIndex.push_back(Trk_container.at(itrk2));
459  }
460  }
461 
462  // B recontrsuction
463  TLorentzVector vK;
464  for (unsigned int iobj = 0; iobj < cleanedObjTracks.size(); iobj++) {
465  auto objtrk = cleanedObjTracks.at(iobj);
466  auto pairtrk = cleanedPairTracks.at(iobj);
467  auto tranobj = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*objtrk, &bField));
468  auto tranpair = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*pairtrk, &bField));
469  //unsigned int index=Epair_ObjectIndex.at(iobj);
470  float massLep = 0.0005;
471  if (Epair_ObjectId.at(iobj) == 13)
472  massLep = 0.105;
473  vel1.SetPtEtaPhiM(objtrk->pt(), objtrk->eta(), objtrk->phi(), massLep);
474  vel2.SetPtEtaPhiM(pairtrk->pt(), pairtrk->eta(), pairtrk->phi(), massLep);
475  for (auto& trk : cleanedTracks) {
476  //reject track corresponding to mu or e
477  if (trk->charge() == objtrk->charge() &&
478  deltaR(objtrk->eta(), objtrk->phi(), trk->eta(), trk->phi()) < TrkObjExclusionCone)
479  continue;
480  if (trk->pt() < PtKTrack_Cut)
481  continue;
482  if (fabs(trk->dxy(vertex_point)) / trk->dxyError() < Ksdxy_Cut)
483  continue;
484  // skip the track that was used as mu or e
485  if (Epair_TrkIndex.at(iobj) == &trk - &cleanedTracks[0])
486  continue;
487  vK.SetPtEtaPhiM(trk->pt(), trk->eta(), trk->phi(), 0.493);
488  //final cuts
489  float InvMass = (vel1 + vel2 + vK).M();
490  if (InvMass > MaxMB_Cut || InvMass < MinMB_Cut)
491  continue;
492  if ((vel1 + vel2 + vK).Pt() < PtB_Cut)
493  continue;
494  auto trantrk = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*trk, &bField));
495  std::vector<reco::TransientTrack> tempTracks;
496  tempTracks.reserve(3);
497  tempTracks.push_back(*tranobj);
498  tempTracks.push_back(*tranpair);
499  tempTracks.push_back(*trantrk);
500  LLvertex = theKalmanFitter.vertex(tempTracks);
501  if (!LLvertex.isValid())
502  continue;
503  if (ChiSquaredProbability(LLvertex.totalChiSquared(), LLvertex.degreesOfFreedom()) < ProbeeK_Cut)
504  continue;
505  GlobalError err = LLvertex.positionError();
506  GlobalPoint Dispbeamspot(-1 * ((theBeamSpot->x0() - LLvertex.position().x()) +
507  (LLvertex.position().z() - theBeamSpot->z0()) * theBeamSpot->dxdz()),
508  -1 * ((theBeamSpot->y0() - LLvertex.position().y()) +
509  (LLvertex.position().z() - theBeamSpot->z0()) * theBeamSpot->dydz()),
510  0);
511  math::XYZVector pperp((vel1 + vel2 + vK).Px(), (vel1 + vel2 + vK).Py(), 0);
512  math::XYZVector vperp(Dispbeamspot.x(), Dispbeamspot.y(), 0.);
513  float tempCos = vperp.Dot(pperp) / (vperp.R() * pperp.R());
514  if (tempCos < CoseeK_Cut)
515  continue;
516  if (SLxy_Cut > Dispbeamspot.perp() / sqrt(err.rerr(Dispbeamspot)))
517  continue;
518  Result = true;
519  break;
520  }
521  if (Result)
522  break;
523  }
524  //decission
525  return Result;
526 }
unsigned int trk_index
std::vector< float > muon_eta
std::vector< std::shared_ptr< reco::Track > > cleanedTracks
std::vector< unsigned int > object_id
double TrgExclusionCone
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
double MaxChi2Track_Cut
double MinChi2Track_Cut
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
unsigned int nmuons
auto const & tracks
cannot be loose
double TrkObjExclusionCone
edm::EDGetTokenT< edm::TriggerResults > trgresultsToken_
std::vector< std::shared_ptr< reco::Track > > cleanedPairTracks
std::vector< unsigned int > Epair_ObjectId
std::vector< string > HLTFilter_
std::vector< unsigned int > Epair_ObjectIndex
std::vector< std::shared_ptr< reco::Track > > MuTracks
std::vector< unsigned int > Epair_TrkIndex
bool getData(T &iHolder) const
Definition: EventSetup.h:128
reco::TrackBase::Point vertex_point
std::vector< float > SelectedTrgObj_PtEtaPhiCharge
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
edm::EDGetToken electronsToken_
std::vector< float > el_pt
edm::EDGetTokenT< edm::ValueMap< float > > eleBWPToken_
std::vector< unsigned int > object_container
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bFieldToken_
T sqrt(T t)
Definition: SSEVec.h:19
static bool hasMatchedConversion(const reco::GsfElectron &ele, const reco::ConversionCollection &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
double pt() const
track transverse momentum
Definition: TrackBase.h:637
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< float > el_eta
bool isTightMuonCustom(const reco::Muon &recoMu, const reco::Vertex recoVtx)
Definition: MuonID.h:36
const int mu
Definition: Constants.h:22
std::vector< unsigned int > Trk_container
bool isMediumMuonCustom(const reco::Muon &recoMu)
Definition: MuonID.h:27
std::vector< float > muon_medium
edm::EDGetToken Tracks_
unsigned int ntracks
bool isSoftMuon(const reco::Muon &, const reco::Vertex &, bool run2016_hip_mitigation=false)
double ElTrgExclusionCone
unsigned int nel
bool isNull() const
Checks for null.
Definition: Ref.h:235
std::vector< std::shared_ptr< reco::Track > > cleanedObjTracks
std::vector< std::shared_ptr< reco::Track > > ElTracks
std::vector< float > muon_pt
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
double MuTrgExclusionCone
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
edm::EDGetTokenT< reco::ConversionCollection > conversionsToken_
T rerr(const GlobalPoint &aPoint) const
std::vector< float > el_phi
edm::EDGetToken muonsToken_
std::vector< float > muon_tight
bool hltFired(const edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< string > HLTPath)
std::vector< float > muon_soft
edm::EDGetTokenT< edm::ValueMap< float > > eleUnBWPToken_
std::vector< string > HLTPath_
tuple muons
Definition: patZpeak.py:39
std::vector< float > muon_phi
std::array< float, 5 > hltObject(const edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< string > Seed)
bool LeptonSkimming::hltFired ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  HLTPath 
)
private

Definition at line 92 of file LeptonSkimming.cc.

References edm::Event::getByToken(), dt_dqm_sourceclient_common_cff::reco, AlCaHLTBitMon_QueryRunRegistry::string, trgresultsToken_, edm::TriggerNames::triggerName(), and edm::Event::triggerNames().

Referenced by filter().

92  {
93  using namespace std;
94  using namespace edm;
95  using namespace reco;
96  using namespace trigger;
97 
99  iEvent.getByToken(trgresultsToken_, trigResults);
100  bool fire = false;
101  if (trigResults.failedToGet())
102  return false;
103  for (unsigned int ip = 0; ip < HLTPath.size(); ip++) {
104  int N_Triggers = trigResults->size();
105  const edm::TriggerNames& trigName = iEvent.triggerNames(*trigResults);
106  for (int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
107  if (!trigResults->accept(i_Trig))
108  continue;
109  const std::string& TrigPath = trigName.triggerName(i_Trig);
110  if (TrigPath.find(HLTPath[ip]) != std::string::npos)
111  fire = true;
112  }
113  }
114  return fire;
115 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< edm::TriggerResults > trgresultsToken_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:275
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:50
std::array< float, 5 > LeptonSkimming::hltObject ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  Seed 
)
private

Definition at line 117 of file LeptonSkimming.cc.

References a, b, trigger::TriggerObject::eta(), edm::Event::getByToken(), trigger::TriggerObject::id(), HLT_FULL_cff::InputTag, dqmiolumiharvest::j, relativeConstraints::keys, trigger::TriggerObject::phi(), trigger::TriggerObject::pt(), dt_dqm_sourceclient_common_cff::reco, and trigobjectsToken_.

Referenced by filter().

119  {
120  using namespace std;
121  using namespace edm;
122  using namespace reco;
123  using namespace trigger;
124 
125  edm::Handle<trigger::TriggerEvent> triggerObjectsSummary;
126  iEvent.getByToken(trigobjectsToken_, triggerObjectsSummary);
127  trigger::TriggerObjectCollection selectedObjects;
128 
129  std::vector<std::array<float, 5>> max_per_trigger;
130 
131  for (unsigned int ipath = 0; ipath < Seed.size(); ipath++) {
132  std::vector<std::array<float, 5>> tot_tr_obj_pt_eta_phi;
133  if (!triggerObjectsSummary.isValid())
134  continue;
135  size_t filterIndex = (*triggerObjectsSummary).filterIndex(InputTag(Seed[ipath], "", "HLT"));
136  trigger::TriggerObjectCollection allTriggerObjects = triggerObjectsSummary->getObjects();
137  if (filterIndex < (*triggerObjectsSummary).sizeFilters()) {
138  const trigger::Keys& keys = (*triggerObjectsSummary).filterKeys(filterIndex);
139  for (size_t j = 0; j < keys.size(); j++) {
140  const trigger::TriggerObject& foundObject = (allTriggerObjects)[keys[j]];
141  std::array<float, 5> tr_obj_pt_eta_phi;
142  if (fabs(foundObject.id()) != 13)
143  continue;
144  tr_obj_pt_eta_phi[0] = foundObject.pt();
145  tr_obj_pt_eta_phi[1] = foundObject.eta();
146  tr_obj_pt_eta_phi[2] = foundObject.phi();
147  tr_obj_pt_eta_phi[3] = foundObject.id() / fabs(foundObject.id());
148  tot_tr_obj_pt_eta_phi.push_back(tr_obj_pt_eta_phi);
149  }
150  }
151  //take the max per hlt
152  if (!tot_tr_obj_pt_eta_phi.empty()) {
153  std::sort(tot_tr_obj_pt_eta_phi.begin(),
154  tot_tr_obj_pt_eta_phi.end(),
155  [](const std::array<float, 5>& a, const std::array<float, 5>& b) { return a[0] > b[0]; });
156  max_per_trigger.push_back(tot_tr_obj_pt_eta_phi.at(0));
157  }
158  }
159  //we know that at least a trigger fired
160  //find the total max
161  std::sort(max_per_trigger.begin(),
162  max_per_trigger.end(),
163  [](const std::array<float, 5>& a, const std::array<float, 5>& b) { return a[0] > b[0]; });
164  return max_per_trigger.at(0);
165 }
int id() const
getters
Definition: TriggerObject.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
float phi() const
Definition: TriggerObject.h:54
float eta() const
Definition: TriggerObject.h:53
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:21
edm::EDGetTokenT< trigger::TriggerEvent > trigobjectsToken_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
std::vector< size_type > Keys
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

Member Data Documentation

float LeptonSkimming::beam_x
private

Definition at line 113 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_y
private

Definition at line 113 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_z
private

Definition at line 113 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetTokenT<reco::BeamSpot> LeptonSkimming::beamSpotToken_
private

Definition at line 105 of file LeptonSkimming.h.

Referenced by filter().

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> LeptonSkimming::bFieldToken_
private

Definition at line 109 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::BiasedWP = -100
private

Definition at line 174 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<std::shared_ptr<reco::Track> > LeptonSkimming::cleanedObjTracks
private

Definition at line 127 of file LeptonSkimming.h.

Referenced by filter().

std::vector<std::shared_ptr<reco::Track> > LeptonSkimming::cleanedPairTracks
private

Definition at line 128 of file LeptonSkimming.h.

Referenced by filter().

std::vector<std::shared_ptr<reco::Track> > LeptonSkimming::cleanedTracks
private

Definition at line 131 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetTokenT<reco::ConversionCollection> LeptonSkimming::conversionsToken_
private

Definition at line 106 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Cosee_Cut = -1
private

Definition at line 152 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::CoseeK_Cut = 0
private

Definition at line 159 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::EarlyStop = false
private

Definition at line 153 of file LeptonSkimming.h.

std::vector<float> LeptonSkimming::el_eta
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::el_phi
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::el_pt
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetTokenT<edm::ValueMap<float> > LeptonSkimming::eleBWPToken_
private

Definition at line 100 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::electronsToken_
private

Definition at line 99 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetTokenT<edm::ValueMap<float> > LeptonSkimming::eleUnBWPToken_
private

Definition at line 101 of file LeptonSkimming.h.

Referenced by filter().

std::vector<std::shared_ptr<reco::Track> > LeptonSkimming::ElTracks
private

Definition at line 130 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::ElTrgExclusionCone = 0
private

Definition at line 168 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ElTrgMuDz_Cut = 1000
private

Definition at line 171 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<unsigned int> LeptonSkimming::Epair_ObjectId
private

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

std::vector<unsigned int> LeptonSkimming::Epair_ObjectIndex
private

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

std::vector<unsigned int> LeptonSkimming::Epair_TrkIndex
private

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::EpairZvtx_Cut = 10000000
private

Definition at line 156 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::EtaTrack_Cut = 10
private

Definition at line 138 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<string> LeptonSkimming::HLTFilter_
private

Definition at line 110 of file LeptonSkimming.h.

Referenced by filter().

std::vector<string> LeptonSkimming::HLTPath_
private

Definition at line 110 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Ksdxy_Cut = 1000
private

Definition at line 157 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxChi2Track_Cut = 1000
private

Definition at line 140 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMB_Cut = 1000
private

Definition at line 144 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMee_Cut = 1000
private

Definition at line 142 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinChi2Track_Cut = -1000
private

Definition at line 139 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMB_Cut = 0
private

Definition at line 145 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMee_Cut = 0
private

Definition at line 150 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<float> LeptonSkimming::muon_eta
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::muon_medium
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::muon_phi
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::muon_pt
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::muon_soft
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::muon_tight
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::muonsToken_
private

Definition at line 102 of file LeptonSkimming.h.

Referenced by filter().

std::vector<std::shared_ptr<reco::Track> > LeptonSkimming::MuTracks
private

Definition at line 129 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::MuTrgExclusionCone = 0
private

Definition at line 167 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrgMatchCone = 1000
private

Definition at line 154 of file LeptonSkimming.h.

Referenced by LeptonSkimming().

double LeptonSkimming::MuTrgMuDz_Cut = 1000
private

Definition at line 170 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrkMinDR_Cut = 0
private

Definition at line 141 of file LeptonSkimming.h.

Referenced by LeptonSkimming().

unsigned int LeptonSkimming::nel = 0
private

Definition at line 135 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::nmuons = 0
private

Definition at line 135 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::ntracks = 0
private

Definition at line 135 of file LeptonSkimming.h.

Referenced by filter().

std::vector<unsigned int> LeptonSkimming::object_container
private

Definition at line 133 of file LeptonSkimming.h.

Referenced by filter().

std::vector<unsigned int> LeptonSkimming::object_id
private

Definition at line 133 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::ObjPtLargerThanTrack = false
private

Definition at line 173 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::Probee_Cut = 0
private

Definition at line 151 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ProbeeK_Cut = 0
private

Definition at line 158 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtB_Cut = 0
private

Definition at line 163 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtEl_Cut = 0
private

Definition at line 166 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtKTrack_Cut = 0
private

Definition at line 143 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtMu_Cut = 0
private

Definition at line 164 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtTrack_Cut = 0
private

Definition at line 137 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::QualMu_Cut = 0
private

Definition at line 165 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::Result = false
private

Definition at line 112 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SaveOnlyEPairTracks = false
private

Definition at line 147 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOnlyTracks = false
private

Definition at line 146 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOutputRoot = true
private

Definition at line 172 of file LeptonSkimming.h.

float LeptonSkimming::SelectedMu_DR = -1
private

Definition at line 122 of file LeptonSkimming.h.

Referenced by filter().

int LeptonSkimming::SelectedMu_index
private

Definition at line 120 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::SelectedTrgObj_PtEtaPhiCharge
private

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SkimOnlyElectrons = false
private

Definition at line 177 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkimOnlyMuons = false
private

Definition at line 176 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkipIfNoMuMatch = false
private

Definition at line 155 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::SLxy_Cut = 0
private

Definition at line 162 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<float> LeptonSkimming::tempPtEtaPhiM
private

Definition at line 126 of file LeptonSkimming.h.

std::vector<float> LeptonSkimming::tempXYZ
private

Definition at line 126 of file LeptonSkimming.h.

int LeptonSkimming::test_ev = 0
private

Definition at line 178 of file LeptonSkimming.h.

Referenced by filter().

std::vector<float> LeptonSkimming::track_vx
private

Definition at line 115 of file LeptonSkimming.h.

std::vector<float> LeptonSkimming::track_vy
private

Definition at line 115 of file LeptonSkimming.h.

std::vector<float> LeptonSkimming::track_vz
private

Definition at line 115 of file LeptonSkimming.h.

double LeptonSkimming::TrackMuDz_Cut = 100000000
private

Definition at line 160 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

std::vector<unsigned int> LeptonSkimming::trackObj_container
private

Definition at line 132 of file LeptonSkimming.h.

std::vector<unsigned int> LeptonSkimming::trackPair_container
private

Definition at line 132 of file LeptonSkimming.h.

edm::EDGetToken LeptonSkimming::Tracks_
private

Definition at line 103 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::TrackSdxy_Cut = 0
private

Definition at line 148 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::TrgExclusionCone = -1
private

Definition at line 161 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

edm::EDGetTokenT<edm::TriggerResults> LeptonSkimming::trgresultsToken_
private

Definition at line 107 of file LeptonSkimming.h.

Referenced by filter(), and hltFired().

edm::EDGetTokenT<trigger::TriggerEvent> LeptonSkimming::trigobjectsToken_
private

Definition at line 108 of file LeptonSkimming.h.

Referenced by hltObject().

std::vector<unsigned int> LeptonSkimming::Trk_container
private

Definition at line 133 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::trk_index = 0
private

Definition at line 124 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::TrkObjExclusionCone = 0
private

Definition at line 169 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::UnbiasedWP = -100
private

Definition at line 175 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::UseOnlyBKeeMCForTriplets = false
private

Definition at line 149 of file LeptonSkimming.h.

reco::TrackBase::Point LeptonSkimming::vertex_point
private

Definition at line 125 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetTokenT<reco::VertexCollection> LeptonSkimming::vtxToken_
private

Definition at line 104 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::ZvertexTrg = -1 * std::numeric_limits<float>::max()
private

Definition at line 123 of file LeptonSkimming.h.

Referenced by filter().