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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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::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 87 of file LeptonSkimming.h.

Constructor & Destructor Documentation

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

Definition at line 28 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, SkimOnlyElectrons, SkimOnlyMuons, SkipIfNoMuMatch, SLxy_Cut, TrackMuDz_Cut, TrackSdxy_Cut, TrgExclusionCone, TrkObjExclusionCone, and UnbiasedWP.

28  :
29  electronsToken_(consumes<std::vector<reco::GsfElectron> >(iConfig.getParameter<edm::InputTag> ("electrons"))),
32  muonsToken_(consumes<std::vector<reco::Muon>>(iConfig.getParameter<edm::InputTag>("muons"))),
33  Tracks_(consumes<std::vector<reco::Track> >(iConfig.getParameter<edm::InputTag>("tracks"))),
34  vtxToken_(consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("vertices"))),
35  beamSpotToken_(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
36  conversionsToken_(consumes< reco::ConversionCollection > (iConfig.getParameter<edm::InputTag> ("conversions"))),
37 
38  trgresultsToken_(consumes<edm::TriggerResults>(iConfig.getParameter<edm::InputTag> ("triggerresults"))),
39  trigobjectsToken_(consumes<trigger::TriggerEvent>(iConfig.getParameter<edm::InputTag> ("triggerobjects"))),
40  HLTFilter_(iConfig.getParameter<vector<string> >("HLTFilter")),
41  HLTPath_(iConfig.getParameter<vector<string> >("HLTPath"))
42  {
43  edm::ParameterSet runParameters=iConfig.getParameter<edm::ParameterSet>("RunParameters");
44  //mu matching with trigger
45  MuTrgMatchCone=runParameters.getParameter<double>("MuTrgMatchCone");
46  SkipIfNoMuMatch=runParameters.getParameter<bool>("SkipIfNoMuMatch");
47  //track cuts
48  PtTrack_Cut=runParameters.getParameter<double>("PtTrack_Cut");
49  EtaTrack_Cut=runParameters.getParameter<double>("EtaTrack_Cut");
50  MinChi2Track_Cut=runParameters.getParameter<double>("MinChi2Track_Cut");
51  MaxChi2Track_Cut=runParameters.getParameter<double>("MaxChi2Track_Cut");
52  MuTrkMinDR_Cut=runParameters.getParameter<double>("MuTrkMinDR_Cut");
53  TrackMuDz_Cut=runParameters.getParameter<double>("TrackMuDz_Cut");
54  TrgExclusionCone=runParameters.getParameter<double>("TrgExclusionCone");
55  //lepton cuts
56  PtMu_Cut=runParameters.getParameter<double>("PtMu_Cut");
57  PtEl_Cut=runParameters.getParameter<double>("PtEl_Cut");
58  QualMu_Cut=runParameters.getParameter<double>("QualMu_Cut");
59  MuTrgExclusionCone=runParameters.getParameter<double>("MuTrgExclusionCone");
60  ElTrgExclusionCone=runParameters.getParameter<double>("ElTrgExclusionCone");
61  TrkObjExclusionCone=runParameters.getParameter<double>("TrkObjExclusionCone");
62  MuTrgMuDz_Cut=runParameters.getParameter<double>("MuTrgMuDz_Cut");
63  ElTrgMuDz_Cut=runParameters.getParameter<double>("ElTrgMuDz_Cut");
64  BiasedWP=runParameters.getParameter<double>("BiasedWP");
65  UnbiasedWP=runParameters.getParameter<double>("UnbiasedWP");
66  SkimOnlyMuons=runParameters.getParameter<bool>("SkimOnlyMuons");
67  SkimOnlyElectrons=runParameters.getParameter<bool>("SkimOnlyElectrons");
68  //pair cuts
69  MaxMee_Cut=runParameters.getParameter<double>("MaxMee_Cut");
70  MinMee_Cut=runParameters.getParameter<double>("MinMee_Cut");
71  Probee_Cut=runParameters.getParameter<double>("Probee_Cut");
72  Cosee_Cut=runParameters.getParameter<double>("Cosee_Cut");
73  EpairZvtx_Cut=runParameters.getParameter<double>("EpairZvtx_Cut");
74  //kaon
75  PtKTrack_Cut=runParameters.getParameter<double>("PtKTrack_Cut");
76  TrackSdxy_Cut=runParameters.getParameter<double>("TrackSdxy_Cut");
77  Ksdxy_Cut=runParameters.getParameter<double>("Ksdxy_Cut");
78  //triplet
79  MaxMB_Cut=runParameters.getParameter<double>("MaxMB_Cut");
80  MinMB_Cut=runParameters.getParameter<double>("MinMB_Cut");
81  ProbeeK_Cut=runParameters.getParameter<double>("ProbeeK_Cut");
82  CoseeK_Cut=runParameters.getParameter<double>("CoseeK_Cut");
83  SLxy_Cut=runParameters.getParameter<double>("SLxy_Cut");
84  PtB_Cut=runParameters.getParameter<double>("PtB_Cut");
85 
86  ObjPtLargerThanTrack=runParameters.getParameter<bool>("ObjPtLargerThanTrack");
87 
88 }
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 91 of file LeptonSkimming.cc.

92 {
93 
94  // do anything here that needs to be done at destruction time
95  // (e.g. close files, deallocate resources etc.)
96 
97 }

Member Function Documentation

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

Reimplemented from edm::stream::EDFilterBase.

Definition at line 436 of file LeptonSkimming.cc.

437 {
438 }
void LeptonSkimming::endStream ( )
overrideprivatevirtual

Reimplemented from edm::stream::EDFilterBase.

Definition at line 442 of file LeptonSkimming.cc.

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

Definition at line 479 of file LeptonSkimming.cc.

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

479  {
480  //The following says we do not know what parameters are allowed so do no validation
481  // Please change this to state exactly what you do use, even if it is no parameters
483  desc.setUnknown();
484  descriptions.addDefault(desc);
485 }
void addDefault(ParameterSetDescription const &psetDescription)
bool LeptonSkimming::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 170 of file LeptonSkimming.cc.

References beam_x, beam_y, beam_z, beamSpotToken_, BiasedWP, ChiSquaredProbability(), cleanedObjTracks, cleanedPairTracks, cleanedTracks, conversions_cfi::conversions, conversionsToken_, Cosee_Cut, CoseeK_Cut, TransientVertex::degreesOfFreedom(), boostedElectronIsolation_cff::deltaR, reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), el_eta, el_phi, el_pt, eleBWPToken_, nano_cff::electrons, electronsToken_, eleUnBWPToken_, ElTracks, ElTrgExclusionCone, ElTrgMuDz_Cut, Epair_ObjectId, Epair_ObjectIndex, Epair_TrkIndex, EpairZvtx_Cut, reco::TrackBase::eta(), EtaTrack_Cut, edm::EventSetup::get(), edm::Event::getByToken(), ConversionTools::hasMatchedConversion(), muons_cff::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, RPCpg::mu, muon_eta, muon_medium, muon_phi, muon_pt, muon_soft, muon_tight, extraflags_cff::muons, muonsToken_, MuTracks, MuTrgExclusionCone, MuTrgMuDz_Cut, nel, nmuons, ntracks, hgcalPlots::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, l1t::tracks, Tracks_, TrackSdxy_Cut, TrgExclusionCone, trgresultsToken_, Trk_container, trk_index, TrkObjExclusionCone, UnbiasedWP, KalmanVertexFitter::vertex(), vertex_point, electrons_cff::vertices, extraflags_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().

171 {
172 
173  using namespace std;
174  using namespace edm;
175  using namespace reco;
176  using namespace trigger;
177  // using namespace PhysicsTools;
178 
179  test_ev++;
180  //Get a few collections to apply basic electron ID
181  //Get electrons
183  iEvent.getByToken(electronsToken_, electrons);
184  //get bdt values
185  edm::Handle<edm::ValueMap<float> > ele_mva_wp_biased;
186  iEvent.getByToken( eleBWPToken_ ,ele_mva_wp_biased);
187  edm::Handle<edm::ValueMap<float> > ele_mva_wp_unbiased;
188  iEvent.getByToken( eleUnBWPToken_ ,ele_mva_wp_unbiased);
189  //get muons
191  iEvent.getByToken(muonsToken_,muons);
192  //Get conversions
194  iEvent.getByToken(conversionsToken_, conversions);
195  // Get the beam spot
196  edm::Handle<reco::BeamSpot> theBeamSpot;
197  iEvent.getByToken(beamSpotToken_,theBeamSpot);
198  //Get vertices
200  iEvent.getByToken(vtxToken_, vertices);
201  //continue if there are no vertices
202  if (vertices->empty()) return false;
204  iEvent.getByToken(Tracks_, tracks);
206  iEvent.getByToken(trgresultsToken_, trigResults);
207  edm::ESHandle<MagneticField> bFieldHandle;
208  iSetup.get<IdealMagneticFieldRecord>().get(bFieldHandle);
209  KalmanVertexFitter theKalmanFitter(false);
210  TransientVertex LLvertex;
211 
212 
213  // trigger1=0; trigger2=0; trigger3=0; trigger4=0; trigger5=0; trigger6=0;
214  nmuons=0; nel=0; ntracks=0;
215 
216  SelectedMu_index=-1;
218  Result=false; el_pt.clear(); el_eta.clear(); el_phi.clear();
219  Trk_container.clear(); MuTracks.clear(); ElTracks.clear();
220  object_container.clear(); object_id.clear(); cleanedTracks.clear();
221  Epair_ObjectId.clear(); muon_soft.clear(); muon_medium.clear(); muon_tight.clear();
222  Epair_ObjectIndex.clear(); cleanedObjTracks.clear(); cleanedPairTracks.clear();
223  Epair_ObjectIndex.clear(); Epair_ObjectId.clear(); Epair_TrkIndex.clear();
224  //internal stuff
226  std::array<float,5> SelectedTrgObj_PtEtaPhiCharge{ {-999,-999,-999,-999,-999}} ;
228  for (const reco::Vertex& vtx : *vertices) {
229  bool isFake = vtx.isFake();
230  if (isFake) continue;
231  vertex_point.SetCoordinates(vtx.x(),vtx.y(),vtx.z());
232  if (vertex_point.x()!=-1*std::numeric_limits<float>::max()) break;
233  }
235  return false;
236 
237  beam_x= theBeamSpot->x0(); beam_y= theBeamSpot->y0(); beam_z= theBeamSpot->z0();
238  if(!hltFired(iEvent,iSetup,HLTPath_))
239  return false;
240 
243  MuTracks.clear(); object_container.clear(); object_id.clear(); nmuons=0;
244  for (const reco::Muon &mu: *muons){
245  if (fabs(mu.eta())>EtaTrack_Cut) continue;
246  //find triggering muon
247  float deltaRmu=deltaR(mu.eta(),mu.phi(), SelectedTrgObj_PtEtaPhiCharge[1], SelectedTrgObj_PtEtaPhiCharge[2]);
248  if ( deltaRmu<MuTrgMatchCone && SelectedMu_DR>deltaRmu ){
250  ZvertexTrg=mu.vz();}
251  //save muons that we want to skim
252  if (!SkimOnlyElectrons){
253  bool tight=false,soft=false;
254  if(vertices.isValid()){
255  tight=isTightMuonCustom(*(&mu),(*vertices)[0]);
256  soft=muon::isSoftMuon(*(&mu),(*vertices)[0]);
257  }
258  const Track * mutrack= mu.bestTrack();
259  muon_medium.push_back(isMediumMuonCustom(*(&mu)));
260  muon_tight.push_back(tight); muon_soft.push_back(soft);
261  muon_pt.push_back(mu.pt()); muon_eta.push_back(mu.eta()); muon_phi.push_back(mu.phi());
262  auto muTrack=std::make_shared<reco::Track>(*mutrack);
263  MuTracks.push_back(muTrack);
264  object_container.push_back(nmuons);
265  object_id.push_back(13);
266  nmuons++;}
267 
268  }
269 
271  return false;
272  }
273 
274 
275  //Save electrons we want to skim
276  ElTracks.clear();
277  if (!SkimOnlyMuons){
278  unsigned int count_el=-1;
279  for(const reco::GsfElectron &el : *electrons){
280  count_el++;
281  bool passConvVeto = !ConversionTools::hasMatchedConversion(*(&el), *conversions, theBeamSpot->position());
282  if (!passConvVeto) continue;
283  reco::GsfTrackRef seed = el.gsfTrack();
284  if ( seed.isNull() ) continue;
285  if ((*ele_mva_wp_biased)[seed] <BiasedWP) continue;
286  if ((*ele_mva_wp_unbiased)[seed] <UnbiasedWP) continue;
287  const Track * eltrack= el.bestTrack();
288  if (fabs(eltrack->eta())>EtaTrack_Cut) continue;
289  if (eltrack->pt()<PtEl_Cut) continue;
290  auto ElTrack=std::make_shared<reco::Track>(*eltrack);
291  ElTracks.push_back(ElTrack); object_container.push_back(nel);
292  el_pt.push_back(eltrack->pt()); el_eta.push_back(eltrack->eta()); el_phi.push_back(eltrack->phi());
293  nel++; object_id.push_back(11);
294  }
295  }
296 
297  //Save tracks we want to skim: used both as mu or e candidate
298  cleanedTracks.clear();
299  trk_index=0;
300  for (const reco::Track& trk : *tracks){
301  if (!trk.quality(Track::highPurity)) continue;
302  if (trk.pt()<PtTrack_Cut) continue;
303  if (fabs(trk.eta())>EtaTrack_Cut) continue;
304  if(trk.charge()==0) continue;
305  if(trk.normalizedChi2()>MaxChi2Track_Cut || trk.normalizedChi2()<MinChi2Track_Cut) continue;
306  if (fabs(trk.dxy())/trk.dxyError()<TrackSdxy_Cut) continue;
308  if (fabs(ZvertexTrg-trk.vz())>TrackMuDz_Cut ) continue;
310  }
311  //assignments
312  auto cleanTrack=std::make_shared<reco::Track>(trk);
313  cleanedTracks.push_back(cleanTrack);
314  Trk_container.push_back(trk_index);
315  trk_index++;
316  }
317 
318  //create ll combination
319 
320  // fit track pairs
321  cleanedObjTracks.clear(); cleanedPairTracks.clear();
322  TLorentzVector vel1,vel2;
323  std::vector<std::shared_ptr<reco::Track>> cleanedObjects;
324  //add tracks of objects
325  if (!SkimOnlyElectrons){
326  for(auto & vec: MuTracks) cleanedObjects.push_back(vec);}
327 
328  if (!SkimOnlyMuons){
329  for(auto & vec: ElTracks) cleanedObjects.push_back(vec);}
330 
331  if (cleanedObjects.empty())
332  return false;
333 
334  for(auto& obj: cleanedObjects){
335  auto tranobj=std::make_shared<reco::TransientTrack>(reco::TransientTrack(*obj,&(*bFieldHandle)));
336  unsigned int iobj=&obj-&cleanedObjects[0];
337  unsigned int index=object_container.at(iobj);
338  float massLep=0.0005;
339  if ( object_id.at(iobj)==13 ) massLep=0.105;
340  //posible cut in mu quality
341  if ( object_id.at(iobj)==13 && QualMu_Cut==1 && !muon_soft.at(index)) continue;
342  if ( object_id.at(iobj)==13 && QualMu_Cut==2 && !muon_medium.at(index)) continue;
343  if ( object_id.at(iobj)==13 && QualMu_Cut==3 && !muon_tight.at(index)) continue;
344  // take the corresponding lepton track for lorentz vector
345  vel1.SetPtEtaPhiM(obj->pt(),obj->eta(),obj->phi(),massLep);
346  if (object_id.at(iobj)==13 && vel1.Pt()<PtMu_Cut) continue;
347  for(auto& trk2: cleanedTracks){
348  unsigned int itrk2=&trk2-&cleanedTracks[0];
349  //opposite sign
350  if (obj->charge()*trk2->charge()==1) continue;
351  if (ObjPtLargerThanTrack && vel1.Pt()<trk2->pt()) continue;
352  vel2.SetPtEtaPhiM(trk2->pt(),trk2->eta(),trk2->phi(),massLep);
353  //probe side cuts
354  if (object_id.at(iobj)==13 && deltaR(obj->eta(),obj->phi(),SelectedTrgObj_PtEtaPhiCharge[1],SelectedTrgObj_PtEtaPhiCharge[2])<MuTrgExclusionCone) continue;
355  if (object_id.at(iobj)==11 && deltaR(obj->eta(),obj->phi(),SelectedTrgObj_PtEtaPhiCharge[1],SelectedTrgObj_PtEtaPhiCharge[2])<ElTrgExclusionCone) continue;
357  if (object_id.at(iobj)==13 && fabs(ZvertexTrg- obj->vz())>MuTrgMuDz_Cut ) continue;
358  if (object_id.at(iobj)==11 && fabs(ZvertexTrg-obj->vz())>ElTrgMuDz_Cut ) continue;
359  }
360  //additional cuts
361  float InvMassLepLep=(vel1+vel2).M();
362  if (InvMassLepLep>MaxMee_Cut || InvMassLepLep<MinMee_Cut ) continue;
363  auto trantrk2=std::make_shared<reco::TransientTrack>(reco::TransientTrack(*trk2,&(*bFieldHandle)));
364  std::vector<reco::TransientTrack> tempTracks;
365  tempTracks.reserve(2);
366  tempTracks.push_back(*tranobj); tempTracks.push_back(*trantrk2);
367  LLvertex = theKalmanFitter.vertex(tempTracks);
368  if (!LLvertex.isValid()) continue;
369  if (ChiSquaredProbability(LLvertex.totalChiSquared(),LLvertex.degreesOfFreedom())<Probee_Cut) continue;
370  if (ZvertexTrg>-1*std::numeric_limits<float>::max() && fabs(ZvertexTrg-LLvertex.position().z())>EpairZvtx_Cut ) continue;
371  GlobalError err =LLvertex.positionError();
372  GlobalPoint Dispbeamspot(-1*((theBeamSpot->x0()-LLvertex.position().x())+(LLvertex.position().z()-theBeamSpot->z0()) * theBeamSpot->dxdz()),-1*((theBeamSpot->y0()-LLvertex.position().y())+ (LLvertex.position().z()-theBeamSpot->z0()) * theBeamSpot->dydz()), 0);
373  math::XYZVector pperp((vel1+vel2).Px(),(vel1+vel2).Py(),0);
374  math::XYZVector vperp(Dispbeamspot.x(),Dispbeamspot.y(),0.);
375  float tempCos=vperp.Dot(pperp)/(vperp.R()*pperp.R());
376  if (tempCos<Cosee_Cut) continue;
377  cleanedObjTracks.push_back(obj);
378  cleanedPairTracks.push_back(trk2);
379  Epair_ObjectIndex.push_back(object_container.at(iobj));
380  Epair_ObjectId.push_back(object_id.at(iobj));
381  Epair_TrkIndex.push_back(Trk_container.at(itrk2));
382  }
383  }
384 
385  // B recontrsuction
386  TLorentzVector vK;
387  for(unsigned int iobj=0; iobj<cleanedObjTracks.size(); iobj++){
388  auto objtrk=cleanedObjTracks.at(iobj);
389  auto pairtrk=cleanedPairTracks.at(iobj);
390  auto tranobj=std::make_shared<reco::TransientTrack>(reco::TransientTrack(*objtrk,&(*bFieldHandle)));
391  auto tranpair=std::make_shared<reco::TransientTrack>(reco::TransientTrack(*pairtrk,&(*bFieldHandle)));
392  //unsigned int index=Epair_ObjectIndex.at(iobj);
393  float massLep=0.0005;
394  if ( Epair_ObjectId.at(iobj)==13) massLep=0.105;
395  vel1.SetPtEtaPhiM(objtrk->pt(),objtrk->eta(),objtrk->phi(),massLep);
396  vel2.SetPtEtaPhiM(pairtrk->pt(),pairtrk->eta(),pairtrk->phi(),massLep);
397  for(auto & trk: cleanedTracks){
398  //reject track corresponding to mu or e
399  if( trk->charge()==objtrk->charge() && deltaR(objtrk->eta(),objtrk->phi(),trk->eta(),trk->phi())<TrkObjExclusionCone) continue;
400  if (trk->pt()<PtKTrack_Cut) continue;
401  if (fabs(trk->dxy(vertex_point))/trk->dxyError()<Ksdxy_Cut) continue;
402  // skip the track that was used as mu or e
403  if (Epair_TrkIndex.at(iobj)==&trk-&cleanedTracks[0]) continue;
404  vK.SetPtEtaPhiM(trk->pt(),trk->eta(),trk->phi(),0.493);
405  //final cuts
406  float InvMass=(vel1+vel2+vK).M();
407  if (InvMass> MaxMB_Cut || InvMass<MinMB_Cut) continue;
408  if ((vel1+vel2+vK).Pt()<PtB_Cut) continue;
409  auto trantrk=std::make_shared<reco::TransientTrack>(reco::TransientTrack(*trk,&(*bFieldHandle)));
410  std::vector<reco::TransientTrack> tempTracks;
411  tempTracks.reserve(3);
412  tempTracks.push_back(*tranobj); tempTracks.push_back(*tranpair);
413  tempTracks.push_back(*trantrk);
414  LLvertex = theKalmanFitter.vertex(tempTracks);
415  if (!LLvertex.isValid()) continue;
416  if (ChiSquaredProbability(LLvertex.totalChiSquared(),LLvertex.degreesOfFreedom())<ProbeeK_Cut) continue;
417  GlobalError err =LLvertex.positionError();
418  GlobalPoint Dispbeamspot(-1*((theBeamSpot->x0()-LLvertex.position().x())+(LLvertex.position().z()-theBeamSpot->z0()) * theBeamSpot->dxdz()),-1*((theBeamSpot->y0()-LLvertex.position().y())+ (LLvertex.position().z()-theBeamSpot->z0()) * theBeamSpot->dydz()), 0);
419  math::XYZVector pperp((vel1+vel2+vK).Px(),(vel1+vel2+vK).Py(),0);
420  math::XYZVector vperp(Dispbeamspot.x(),Dispbeamspot.y(),0.);
421  float tempCos=vperp.Dot(pperp)/(vperp.R()*pperp.R());
422  if (tempCos<CoseeK_Cut) continue;
423  if (SLxy_Cut>Dispbeamspot.perp()/sqrt(err.rerr(Dispbeamspot))) continue;
424  Result=true;
425  break;
426  }
427  if (Result) break;
428  }
429  //decission
430  return Result;
431 
432 }
GlobalError positionError() const
unsigned int trk_index
std::vector< float > muon_eta
double z0() const
z coordinate
Definition: BeamSpot.h:68
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:517
double MaxChi2Track_Cut
double MinChi2Track_Cut
float totalChiSquared() const
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
T y() const
Definition: PV3DBase.h:63
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:84
std::vector< float > SelectedTrgObj_PtEtaPhiCharge
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:690
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:18
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:660
T z() const
Definition: PV3DBase.h:64
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< float > el_eta
bool isTightMuonCustom(const reco::Muon &recoMu, const reco::Vertex recoVtx)
Definition: MuonID.h:42
const int mu
Definition: Constants.h:22
std::vector< unsigned int > Trk_container
bool isMediumMuonCustom(const reco::Muon &recoMu)
Definition: MuonID.h:28
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:248
std::vector< std::shared_ptr< reco::Track > > cleanedObjTracks
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
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:30
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:71
double y0() const
y coordinate
Definition: BeamSpot.h:66
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:62
T x() const
Definition: PV3DBase.h:62
bool isValid() const
double x0() const
x coordinate
Definition: BeamSpot.h:64
bool LeptonSkimming::hltFired ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  HLTPath 
)
private

Definition at line 100 of file LeptonSkimming.cc.

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

Referenced by filter().

100  {
101  using namespace std; using namespace edm; using namespace reco;
102  using namespace trigger;
103 
105  iEvent.getByToken(trgresultsToken_, trigResults);
106  bool fire= false;
107  if( trigResults.failedToGet() ) return false;
108  for (unsigned int ip=0; ip<HLTPath.size(); ip++){
109  int N_Triggers = trigResults->size();
110  const edm::TriggerNames & trigName = iEvent.triggerNames(*trigResults);
111  for( int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig ) {
112  if (!trigResults->accept(i_Trig)) continue;
113  const std::string & TrigPath =trigName.triggerName(i_Trig);
114  if (TrigPath.find(HLTPath[ip]) != std::string::npos) fire=true;
115  }
116  }
117  return fire;
118 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
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:78
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:256
std::array< float, 5 > LeptonSkimming::hltObject ( const edm::Event iEvent,
const edm::EventSetup iSetup,
std::vector< string >  Seed 
)
private

Definition at line 120 of file LeptonSkimming.cc.

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

Referenced by filter().

120  {
121  using namespace std; using namespace edm; 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()) continue;
133  size_t filterIndex = (*triggerObjectsSummary).filterIndex(InputTag(Seed[ipath],"","HLT"));
134  trigger::TriggerObjectCollection allTriggerObjects = triggerObjectsSummary->getObjects();
135  if (filterIndex < (*triggerObjectsSummary).sizeFilters()) {
136  const trigger::Keys &keys = (*triggerObjectsSummary).filterKeys(filterIndex);
137  for (size_t j = 0; j < keys.size(); j++) {
138  const trigger::TriggerObject & foundObject = (allTriggerObjects)[keys[j]];
139  std::array<float, 5> tr_obj_pt_eta_phi;
140  if (fabs(foundObject.id())!=13) continue;
141  tr_obj_pt_eta_phi[0]=foundObject.pt();
142  tr_obj_pt_eta_phi[1]=foundObject.eta();
143  tr_obj_pt_eta_phi[2]=foundObject.phi();
144  tr_obj_pt_eta_phi[3]=foundObject.id()/fabs(foundObject.id());
145  tot_tr_obj_pt_eta_phi.push_back(tr_obj_pt_eta_phi);
146  }
147  }
148  //take the max per hlt
149  if (!tot_tr_obj_pt_eta_phi.empty()){
150  std::sort(tot_tr_obj_pt_eta_phi.begin(),tot_tr_obj_pt_eta_phi.end(),
151  [](const std::array<float, 5>& a, const std::array<float, 5>& b) {
152  return a[0] > b[0];
153  });
154  max_per_trigger.push_back(tot_tr_obj_pt_eta_phi.at(0)); }
155  }
156 //we know that at least a trigger fired
157 //find the total max
158  std::sort( max_per_trigger.begin(), max_per_trigger.end(),
159  [](const std::array<float,5>& a, const std::array<float,5>& b) {
160  return a[0] > b[0];
161  });
162  return max_per_trigger.at(0);
163 }
int id() const
getters
Definition: TriggerObject.h:55
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
float phi() const
Definition: TriggerObject.h:58
float eta() const
Definition: TriggerObject.h:57
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:22
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:98
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< trigger::TriggerEvent > trigobjectsToken_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:81
std::vector< size_type > Keys
double b
Definition: hdecay.h:120
fixed size matrix
HLT enums.
double a
Definition: hdecay.h:121

Member Data Documentation

float LeptonSkimming::beam_x
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_y
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

float LeptonSkimming::beam_z
private

Definition at line 116 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 109 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::BiasedWP =-100
private

Definition at line 154 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 110 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Cosee_Cut =-1
private

Definition at line 144 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::CoseeK_Cut =0
private

Definition at line 147 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::EarlyStop =false
private

Definition at line 145 of file LeptonSkimming.h.

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 104 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::electronsToken_
private

Definition at line 103 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 105 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 150 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ElTrgMuDz_Cut =1000
private

Definition at line 152 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 120 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 120 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 120 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::EpairZvtx_Cut =10000000
private

Definition at line 146 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 113 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 113 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::Ksdxy_Cut =1000
private

Definition at line 146 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxChi2Track_Cut =1000
private

Definition at line 139 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMB_Cut =1000
private

Definition at line 141 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MaxMee_Cut =1000
private

Definition at line 139 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinChi2Track_Cut =-1000
private

Definition at line 138 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMB_Cut =0
private

Definition at line 141 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MinMee_Cut =0
private

Definition at line 144 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 119 of file LeptonSkimming.h.

Referenced by filter().

edm::EDGetToken LeptonSkimming::muonsToken_
private

Definition at line 106 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 150 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrgMatchCone =1000
private

Definition at line 145 of file LeptonSkimming.h.

Referenced by LeptonSkimming().

double LeptonSkimming::MuTrgMuDz_Cut =1000
private

Definition at line 151 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::MuTrkMinDR_Cut =0
private

Definition at line 139 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 153 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::Probee_Cut =0
private

Definition at line 144 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::ProbeeK_Cut =0
private

Definition at line 146 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtB_Cut =0
private

Definition at line 149 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtEl_Cut =0
private

Definition at line 149 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtKTrack_Cut =0
private

Definition at line 140 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::PtMu_Cut =0
private

Definition at line 149 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 149 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::Result =false
private

Definition at line 115 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SaveOnlyEPairTracks =false
private

Definition at line 142 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOnlyTracks =false
private

Definition at line 142 of file LeptonSkimming.h.

bool LeptonSkimming::SaveOutputRoot =true
private

Definition at line 152 of file LeptonSkimming.h.

float LeptonSkimming::SelectedMu_DR =-1
private

Definition at line 124 of file LeptonSkimming.h.

Referenced by filter().

int LeptonSkimming::SelectedMu_index
private

Definition at line 122 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 122 of file LeptonSkimming.h.

Referenced by filter().

bool LeptonSkimming::SkimOnlyElectrons =false
private

Definition at line 155 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkimOnlyMuons =false
private

Definition at line 155 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::SkipIfNoMuMatch =false
private

Definition at line 145 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::SLxy_Cut =0
private

Definition at line 148 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 156 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 118 of file LeptonSkimming.h.

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

Definition at line 118 of file LeptonSkimming.h.

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

Definition at line 118 of file LeptonSkimming.h.

double LeptonSkimming::TrackMuDz_Cut =100000000
private

Definition at line 147 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 107 of file LeptonSkimming.h.

Referenced by filter().

double LeptonSkimming::TrackSdxy_Cut =0
private

Definition at line 143 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::TrgExclusionCone =-1
private

Definition at line 148 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

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

Definition at line 111 of file LeptonSkimming.h.

Referenced by filter(), and hltFired().

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

Definition at line 112 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 151 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

double LeptonSkimming::UnbiasedWP =-100
private

Definition at line 154 of file LeptonSkimming.h.

Referenced by filter(), and LeptonSkimming().

bool LeptonSkimming::UseOnlyBKeeMCForTriplets =false
private

Definition at line 143 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 108 of file LeptonSkimming.h.

Referenced by filter().

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

Definition at line 125 of file LeptonSkimming.h.

Referenced by filter().