CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
LeptonSkimming Class Reference

#include <SkimmingForB/LeptonSkimming/plugins/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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
- Public Member Functions inherited from edm::stream::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~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
 
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::vector< ModuleDescription const * > &modules, 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
 
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_
 
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::ConversionCollectionconversionsToken_
 
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::TriggerResultstrgresultsToken_
 
edm::EDGetTokenT< trigger::TriggerEventtrigobjectsToken_
 
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::VertexCollectionvtxToken_
 
float ZvertexTrg = -1 * std::numeric_limits<float>::max()
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDFilter<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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)
 
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<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)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 86 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"))),
38  HLTFilter_(iConfig.getParameter<vector<string>>("HLTFilter")),
39  HLTPath_(iConfig.getParameter<vector<string>>("HLTPath")) {
41  //mu matching with trigger
42  MuTrgMatchCone = runParameters.getParameter<double>("MuTrgMatchCone");
43  SkipIfNoMuMatch = runParameters.getParameter<bool>("SkipIfNoMuMatch");
44  //track cuts
45  PtTrack_Cut = runParameters.getParameter<double>("PtTrack_Cut");
46  EtaTrack_Cut = runParameters.getParameter<double>("EtaTrack_Cut");
47  MinChi2Track_Cut = runParameters.getParameter<double>("MinChi2Track_Cut");
48  MaxChi2Track_Cut = runParameters.getParameter<double>("MaxChi2Track_Cut");
49  MuTrkMinDR_Cut = runParameters.getParameter<double>("MuTrkMinDR_Cut");
50  TrackMuDz_Cut = runParameters.getParameter<double>("TrackMuDz_Cut");
51  TrgExclusionCone = runParameters.getParameter<double>("TrgExclusionCone");
52  //lepton cuts
53  PtMu_Cut = runParameters.getParameter<double>("PtMu_Cut");
54  PtEl_Cut = runParameters.getParameter<double>("PtEl_Cut");
55  QualMu_Cut = runParameters.getParameter<double>("QualMu_Cut");
56  MuTrgExclusionCone = runParameters.getParameter<double>("MuTrgExclusionCone");
57  ElTrgExclusionCone = runParameters.getParameter<double>("ElTrgExclusionCone");
58  TrkObjExclusionCone = runParameters.getParameter<double>("TrkObjExclusionCone");
59  MuTrgMuDz_Cut = runParameters.getParameter<double>("MuTrgMuDz_Cut");
60  ElTrgMuDz_Cut = runParameters.getParameter<double>("ElTrgMuDz_Cut");
61  BiasedWP = runParameters.getParameter<double>("BiasedWP");
62  UnbiasedWP = runParameters.getParameter<double>("UnbiasedWP");
63  SkimOnlyMuons = runParameters.getParameter<bool>("SkimOnlyMuons");
64  SkimOnlyElectrons = runParameters.getParameter<bool>("SkimOnlyElectrons");
65  //pair cuts
66  MaxMee_Cut = runParameters.getParameter<double>("MaxMee_Cut");
67  MinMee_Cut = runParameters.getParameter<double>("MinMee_Cut");
68  Probee_Cut = runParameters.getParameter<double>("Probee_Cut");
69  Cosee_Cut = runParameters.getParameter<double>("Cosee_Cut");
70  EpairZvtx_Cut = runParameters.getParameter<double>("EpairZvtx_Cut");
71  //kaon
72  PtKTrack_Cut = runParameters.getParameter<double>("PtKTrack_Cut");
73  TrackSdxy_Cut = runParameters.getParameter<double>("TrackSdxy_Cut");
74  Ksdxy_Cut = runParameters.getParameter<double>("Ksdxy_Cut");
75  //triplet
76  MaxMB_Cut = runParameters.getParameter<double>("MaxMB_Cut");
77  MinMB_Cut = runParameters.getParameter<double>("MinMB_Cut");
78  ProbeeK_Cut = runParameters.getParameter<double>("ProbeeK_Cut");
79  CoseeK_Cut = runParameters.getParameter<double>("CoseeK_Cut");
80  SLxy_Cut = runParameters.getParameter<double>("SLxy_Cut");
81  PtB_Cut = runParameters.getParameter<double>("PtB_Cut");
82 
83  ObjPtLargerThanTrack = runParameters.getParameter<bool>("ObjPtLargerThanTrack");
84 }
T getParameter(std::string const &) const
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::EDGetToken Tracks_
double ElTrgExclusionCone
edm::EDGetTokenT< trigger::TriggerEvent > trigobjectsToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
double MuTrgExclusionCone
edm::EDGetTokenT< reco::ConversionCollection > conversionsToken_
edm::EDGetToken muonsToken_
edm::EDGetTokenT< edm::ValueMap< float > > eleUnBWPToken_
std::vector< string > HLTPath_
LeptonSkimming::~LeptonSkimming ( )
override

Definition at line 86 of file LeptonSkimming.cc.

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

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(), DEFINE_FWK_MODULE, 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 
)
overrideprivate

Definition at line 167 of file LeptonSkimming.cc.

References beam_x, beam_y, beam_z, beamSpotToken_, BiasedWP, ChiSquaredProbability(), cleanedObjTracks, cleanedPairTracks, cleanedTracks, pwdgSkimBPark_cfi::conversions, conversionsToken_, Cosee_Cut, CoseeK_Cut, TransientVertex::degreesOfFreedom(), PbPb_ZMuSkimMuonDPG_cff::deltaR, reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), el_eta, el_phi, el_pt, eleBWPToken_, pwdgSkimBPark_cfi::electrons, electronsToken_, eleUnBWPToken_, ElTracks, ElTrgExclusionCone, ElTrgMuDz_Cut, Epair_ObjectId, Epair_ObjectIndex, Epair_TrkIndex, EpairZvtx_Cut, runTheMatrix::err, reco::TrackBase::eta(), EtaTrack_Cut, edm::EventSetup::get(), edm::Event::getByToken(), ConversionTools::hasMatchedConversion(), tkConvValidator_cfi::highPurity, HLTFilter_, hltFired(), hltObject(), HLTPath_, isMediumMuonCustom(), edm::Ref< C, T, F >::isNull(), muon::isSoftMuon(), isTightMuonCustom(), TransientVertex::isValid(), Ksdxy_Cut, SiStripPI::max, MaxChi2Track_Cut, MaxMB_Cut, MaxMee_Cut, MinChi2Track_Cut, MinMB_Cut, MinMee_Cut, amptDefaultParameters_cff::mu, muon_eta, muon_medium, muon_phi, muon_pt, muon_soft, muon_tight, PDWG_BPHSkim_cff::muons, muonsToken_, MuTracks, MuTrgExclusionCone, MuTrgMuDz_Cut, nel, nmuons, ntracks, getGTfromDQMFile::obj, object_container, object_id, ObjPtLargerThanTrack, PV3DBase< T, PVType, FrameType >::perp(), reco::BeamSpot::position(), TransientVertex::position(), TransientVertex::positionError(), Probee_Cut, ProbeeK_Cut, reco::TrackBase::pt(), PtB_Cut, PtEl_Cut, PtKTrack_Cut, PtMu_Cut, PtTrack_Cut, QualMu_Cut, GlobalErrorBase< T, ErrorWeightType >::rerr(), Result, SurveyInfoScenario_cff::seed, SelectedMu_DR, SelectedMu_index, SelectedTrgObj_PtEtaPhiCharge, SkimOnlyElectrons, SkimOnlyMuons, SkipIfNoMuMatch, SLxy_Cut, mathSSE::sqrt(), test_ev, TransientVertex::totalChiSquared(), TrackMuDz_Cut, PDWG_EXOHSCP_cff::tracks, Tracks_, TrackSdxy_Cut, TrgExclusionCone, trgresultsToken_, Trk_container, trk_index, TrkObjExclusionCone, UnbiasedWP, KalmanVertexFitter::vertex(), vertex_point, pwdgSkimBPark_cfi::vertices, badGlobalMuonTaggersAOD_cff::vtx, vtxToken_, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), reco::BeamSpot::z0(), and ZvertexTrg.

Referenced by Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filter(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setDataAccessor(), and Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView().

167  {
168  using namespace std;
169  using namespace edm;
170  using namespace reco;
171  using namespace trigger;
172  // using namespace PhysicsTools;
173 
174  test_ev++;
175  //Get a few collections to apply basic electron ID
176  //Get electrons
178  iEvent.getByToken(electronsToken_, electrons);
179  //get bdt values
180  edm::Handle<edm::ValueMap<float>> ele_mva_wp_biased;
181  iEvent.getByToken(eleBWPToken_, ele_mva_wp_biased);
182  edm::Handle<edm::ValueMap<float>> ele_mva_wp_unbiased;
183  iEvent.getByToken(eleUnBWPToken_, ele_mva_wp_unbiased);
184  //get muons
186  iEvent.getByToken(muonsToken_, muons);
187  //Get conversions
189  iEvent.getByToken(conversionsToken_, conversions);
190  // Get the beam spot
191  edm::Handle<reco::BeamSpot> theBeamSpot;
192  iEvent.getByToken(beamSpotToken_, theBeamSpot);
193  //Get vertices
195  iEvent.getByToken(vtxToken_, vertices);
196  //continue if there are no vertices
197  if (vertices->empty())
198  return false;
200  iEvent.getByToken(Tracks_, tracks);
202  iEvent.getByToken(trgresultsToken_, trigResults);
203  edm::ESHandle<MagneticField> bFieldHandle;
204  iSetup.get<IdealMagneticFieldRecord>().get(bFieldHandle);
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, &(*bFieldHandle)));
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, &(*bFieldHandle)));
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;
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, &(*bFieldHandle)));
468  auto tranpair = std::make_shared<reco::TransientTrack>(reco::TransientTrack(*pairtrk, &(*bFieldHandle)));
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, &(*bFieldHandle)));
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;
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 }
GlobalError positionError() const
unsigned int trk_index
std::vector< float > muon_eta
double z0() const
z coordinate
Definition: BeamSpot.h:65
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:525
double MaxChi2Track_Cut
double MinChi2Track_Cut
float totalChiSquared() const
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
T y() const
Definition: PV3DBase.h:60
unsigned int nmuons
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
reco::TrackBase::Point vertex_point
double dydz() const
dydz slope
Definition: BeamSpot.h:80
std::vector< float > SelectedTrgObj_PtEtaPhiCharge
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:617
edm::EDGetToken electronsToken_
std::vector< float > el_pt
edm::EDGetTokenT< edm::ValueMap< float > > eleBWPToken_
std::vector< unsigned int > object_container
float degreesOfFreedom() const
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)
GlobalPoint position() const
double pt() const
track transverse momentum
Definition: TrackBase.h:602
T z() const
Definition: PV3DBase.h:61
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
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
double dxdz() const
dxdz slope
Definition: BeamSpot.h:78
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_
fixed size matrix
std::vector< string > HLTPath_
HLT enums.
std::vector< float > muon_phi
T get() const
Definition: EventSetup.h:73
double y0() const
y coordinate
Definition: BeamSpot.h:63
std::array< float, 5 > hltObject(const edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< string > Seed)
const Point & position() const
position
Definition: BeamSpot.h:59
T x() const
Definition: PV3DBase.h:59
bool isValid() const
double x0() const
x coordinate
Definition: BeamSpot.h:61
bool LeptonSkimming::hltFired ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  HLTPath 
)
private

Definition at line 91 of file LeptonSkimming.cc.

References edm::HLTGlobalStatus::accept(), edm::HandleBase::failedToGet(), edm::Event::getByToken(), edm::HLTGlobalStatus::size(), AlCaHLTBitMon_QueryRunRegistry::string, trgresultsToken_, edm::TriggerNames::triggerName(), edm::Event::triggerNames(), and EgHLTOffTrigSelection_cfi::trigName.

Referenced by filter().

91  {
92  using namespace std;
93  using namespace edm;
94  using namespace reco;
95  using namespace trigger;
96 
98  iEvent.getByToken(trgresultsToken_, trigResults);
99  bool fire = false;
100  if (trigResults.failedToGet())
101  return false;
102  for (unsigned int ip = 0; ip < HLTPath.size(); ip++) {
103  int N_Triggers = trigResults->size();
104  const edm::TriggerNames& trigName = iEvent.triggerNames(*trigResults);
105  for (int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
106  if (!trigResults->accept(i_Trig))
107  continue;
108  const std::string& TrigPath = trigName.triggerName(i_Trig);
109  if (TrigPath.find(HLTPath[ip]) != std::string::npos)
110  fire = true;
111  }
112  }
113  return fire;
114 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
bool accept() const
Has at least one path accepted the event?
edm::EDGetTokenT< edm::TriggerResults > trgresultsToken_
unsigned int size() const
Get number of paths stored.
bool failedToGet() const
Definition: HandleBase.h:72
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:22
fixed size matrix
HLT enums.
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:265
std::array< float, 5 > LeptonSkimming::hltObject ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  Seed 
)
private

Definition at line 116 of file LeptonSkimming.cc.

References a, b, trigger::TriggerObject::eta(), edm::Event::getByToken(), trigger::TriggerEvent::getObjects(), trigger::TriggerObject::id(), HLT_2018_cff::InputTag, edm::HandleBase::isValid(), dqmiolumiharvest::j, relativeConstraints::keys, trigger::TriggerObject::phi(), trigger::TriggerObject::pt(), and trigobjectsToken_.

Referenced by filter().

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

Member Data Documentation

float LeptonSkimming::beam_x
private

Definition at line 114 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_y
private

Definition at line 114 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_z
private

Definition at line 114 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 107 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::BiasedWP = -100
private

Definition at line 175 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 128 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 129 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 132 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 108 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Cosee_Cut = -1
private

Definition at line 153 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::CoseeK_Cut = 0
private

Definition at line 160 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::EarlyStop = false
private

Definition at line 154 of file LeptonSkimming.h.

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 102 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::electronsToken_
private

Definition at line 101 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 103 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 131 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::ElTrgExclusionCone = 0
private

Definition at line 169 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ElTrgMuDz_Cut = 1000
private

Definition at line 172 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 118 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 118 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 118 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::EpairZvtx_Cut = 10000000
private

Definition at line 157 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::EtaTrack_Cut = 10
private

Definition at line 139 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 111 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 111 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Ksdxy_Cut = 1000
private

Definition at line 158 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxChi2Track_Cut = 1000
private

Definition at line 141 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMB_Cut = 1000
private

Definition at line 145 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMee_Cut = 1000
private

Definition at line 143 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinChi2Track_Cut = -1000
private

Definition at line 140 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMB_Cut = 0
private

Definition at line 146 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMee_Cut = 0
private

Definition at line 151 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 117 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::muonsToken_
private

Definition at line 104 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 130 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::MuTrgExclusionCone = 0
private

Definition at line 168 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrgMatchCone = 1000
private

Definition at line 155 of file LeptonSkimming.h.

Referenced by LeptonSkimming().

double LeptonSkimming::MuTrgMuDz_Cut = 1000
private

Definition at line 171 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrkMinDR_Cut = 0
private

Definition at line 142 of file LeptonSkimming.h.

Referenced by LeptonSkimming().

unsigned int LeptonSkimming::nel = 0
private

Definition at line 136 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::nmuons = 0
private

Definition at line 136 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::ntracks = 0
private

Definition at line 136 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 134 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 134 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::ObjPtLargerThanTrack = false
private

Definition at line 174 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::Probee_Cut = 0
private

Definition at line 152 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ProbeeK_Cut = 0
private

Definition at line 159 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtB_Cut = 0
private

Definition at line 164 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtEl_Cut = 0
private

Definition at line 167 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtKTrack_Cut = 0
private

Definition at line 144 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtMu_Cut = 0
private

Definition at line 165 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtTrack_Cut = 0
private

Definition at line 138 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::QualMu_Cut = 0
private

Definition at line 166 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::Result = false
private

Definition at line 113 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SaveOnlyEPairTracks = false
private

Definition at line 148 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOnlyTracks = false
private

Definition at line 147 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOutputRoot = true
private

Definition at line 173 of file LeptonSkimming.h.

float LeptonSkimming::SelectedMu_DR = -1
private

Definition at line 123 of file LeptonSkimming.h.

Referenced by filter().

int LeptonSkimming::SelectedMu_index
private

Definition at line 121 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 120 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SkimOnlyElectrons = false
private

Definition at line 178 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkimOnlyMuons = false
private

Definition at line 177 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkipIfNoMuMatch = false
private

Definition at line 156 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::SLxy_Cut = 0
private

Definition at line 163 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 127 of file LeptonSkimming.h.

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

Definition at line 127 of file LeptonSkimming.h.

int LeptonSkimming::test_ev = 0
private

Definition at line 179 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 116 of file LeptonSkimming.h.

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

Definition at line 116 of file LeptonSkimming.h.

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

Definition at line 116 of file LeptonSkimming.h.

double LeptonSkimming::TrackMuDz_Cut = 100000000
private

Definition at line 161 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 133 of file LeptonSkimming.h.

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

Definition at line 133 of file LeptonSkimming.h.

edm::EDGetToken LeptonSkimming::Tracks_
private

Definition at line 105 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::TrackSdxy_Cut = 0
private

Definition at line 149 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::TrgExclusionCone = -1
private

Definition at line 162 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 109 of file LeptonSkimming.h.

Referenced by filter(), and hltFired().

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

Definition at line 110 of file LeptonSkimming.h.

Referenced by hltObject().

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

Definition at line 134 of file LeptonSkimming.h.

Referenced by filter().

unsigned int LeptonSkimming::trk_index = 0
private

Definition at line 125 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::TrkObjExclusionCone = 0
private

Definition at line 170 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::UnbiasedWP = -100
private

Definition at line 176 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::UseOnlyBKeeMCForTriplets = false
private

Definition at line 150 of file LeptonSkimming.h.

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

Definition at line 126 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 106 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 124 of file LeptonSkimming.h.

Referenced by filter().