CMS 3D CMS Logo

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

#include <TrackingRegionsFromBeamSpotAndL2Tau.h>

Inheritance diagram for TrackingRegionsFromBeamSpotAndL2Tau:
TrackingRegionProducer

Public Member Functions

std::vector< std::unique_ptr< TrackingRegion > > regions (const edm::Event &e, const edm::EventSetup &es) const override
 
 TrackingRegionsFromBeamSpotAndL2Tau (const edm::ParameterSet &conf, edm::ConsumesCollector &&iC)
 
 ~TrackingRegionsFromBeamSpotAndL2Tau () override
 
- Public Member Functions inherited from TrackingRegionProducer
virtual ~TrackingRegionProducer ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

float m_deltaEta
 
float m_deltaPhi
 
float m_jetMaxEta
 
int m_jetMaxN
 
float m_jetMinPt
 
float m_originHalfLength
 
float m_originRadius
 
bool m_precise
 
float m_ptMin
 
bool m_searchOpt
 
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
 
edm::EDGetTokenT< reco::BeamSpottoken_beamSpot
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtoken_field
 
edm::EDGetTokenT< reco::CandidateViewtoken_jet
 
edm::EDGetTokenT< MeasurementTrackerEventtoken_measurementTracker
 
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecordtoken_msmaker
 

Detailed Description

class TrackingRegionsFromBeamSpotAndL2Tau plugin for creating eta-phi TrackingRegions in directions of L2 taus

Definition at line 25 of file TrackingRegionsFromBeamSpotAndL2Tau.h.

Constructor & Destructor Documentation

◆ TrackingRegionsFromBeamSpotAndL2Tau()

TrackingRegionsFromBeamSpotAndL2Tau::TrackingRegionsFromBeamSpotAndL2Tau ( const edm::ParameterSet conf,
edm::ConsumesCollector &&  iC 
)
inlineexplicit

Definition at line 27 of file TrackingRegionsFromBeamSpotAndL2Tau.h.

References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), RectangularEtaPhiTrackingRegion::kNever, m_deltaEta, m_deltaPhi, m_jetMaxEta, m_jetMaxN, m_jetMinPt, m_originHalfLength, m_originRadius, m_precise, m_ptMin, m_searchOpt, m_whereToUseMeasurementTracker, AlCaHLTBitMon_QueryRunRegistry::string, RectangularEtaPhiTrackingRegion::stringToUseMeasurementTracker(), token_beamSpot, token_field, token_jet, token_measurementTracker, and token_msmaker.

27  {
28  edm::LogInfo("TrackingRegionsFromBeamSpotAndL2Tau") << "Enter the TrackingRegionsFromBeamSpotAndL2Tau";
29 
30  edm::ParameterSet regionPSet = conf.getParameter<edm::ParameterSet>("RegionPSet");
31 
32  m_ptMin = regionPSet.getParameter<double>("ptMin");
33  m_originRadius = regionPSet.getParameter<double>("originRadius");
34  m_originHalfLength = regionPSet.getParameter<double>("originHalfLength");
35  m_deltaEta = regionPSet.getParameter<double>("deltaEta");
36  m_deltaPhi = regionPSet.getParameter<double>("deltaPhi");
38  m_jetMinPt = regionPSet.getParameter<double>("JetMinPt");
39  m_jetMaxEta = regionPSet.getParameter<double>("JetMaxEta");
40  m_jetMaxN = regionPSet.getParameter<int>("JetMaxN");
41  token_beamSpot = iC.consumes<reco::BeamSpot>(regionPSet.getParameter<edm::InputTag>("beamSpot"));
42  m_precise = regionPSet.getParameter<bool>("precise");
43 
44  if (regionPSet.exists("searchOpt"))
45  m_searchOpt = regionPSet.getParameter<bool>("searchOpt");
46  else
47  m_searchOpt = false;
48 
50  regionPSet.getParameter<std::string>("whereToUseMeasurementTracker"));
53  iC.consumes<MeasurementTrackerEvent>(regionPSet.getParameter<edm::InputTag>("measurementTrackerName"));
54  }
55  token_field = iC.esConsumes();
56  if (m_precise) {
58  }
59  }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > token_msmaker
edm::EDGetTokenT< MeasurementTrackerEvent > token_measurementTracker
static UseMeasurementTracker stringToUseMeasurementTracker(const std::string &name)
edm::EDGetTokenT< reco::CandidateView > token_jet
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > token_field
Log< level::Info, false > LogInfo

◆ ~TrackingRegionsFromBeamSpotAndL2Tau()

TrackingRegionsFromBeamSpotAndL2Tau::~TrackingRegionsFromBeamSpotAndL2Tau ( )
inlineoverride

Definition at line 61 of file TrackingRegionsFromBeamSpotAndL2Tau.h.

61 {}

Member Function Documentation

◆ fillDescriptions()

static void TrackingRegionsFromBeamSpotAndL2Tau::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 63 of file TrackingRegionsFromBeamSpotAndL2Tau.h.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_2022v12_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

63  {
65 
66  desc.add<double>("ptMin", 5.0);
67  desc.add<double>("originRadius", 0.2);
68  desc.add<double>("originHalfLength", 24.0);
69  desc.add<double>("deltaEta", 0.3);
70  desc.add<double>("deltaPhi", 0.3);
71  desc.add<edm::InputTag>("JetSrc", edm::InputTag("hltFilterL2EtCutDoublePFIsoTau25Trk5"));
72  desc.add<double>("JetMinPt", 25.0);
73  desc.add<double>("JetMaxEta", 2.1);
74  desc.add<int>("JetMaxN", 10);
75  desc.add<edm::InputTag>("beamSpot", edm::InputTag("hltOnlineBeamSpot"));
76  desc.add<bool>("precise", true);
77  desc.add<std::string>("howToUseMeasurementTracker", "Never");
78  desc.add<edm::InputTag>("measurementTrackerName", edm::InputTag("MeasurementTrackerEvent"));
79 
80  // Only for backwards-compatibility
82  descRegion.add<edm::ParameterSetDescription>("RegionPSet", desc);
83 
84  descriptions.add("trackingRegionsFromBeamSpotAndL2Tau", descRegion);
85  }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ regions()

std::vector<std::unique_ptr<TrackingRegion> > TrackingRegionsFromBeamSpotAndL2Tau::regions ( const edm::Event e,
const edm::EventSetup es 
) const
inlineoverridevirtual

Implements TrackingRegionProducer.

Definition at line 87 of file TrackingRegionsFromBeamSpotAndL2Tau.h.

References funct::abs(), cms::cuda::bs, MillePedeFileConverter_cfg::e, edm::EventSetup::getData(), mps_fire::i, edm::EDGetTokenT< T >::isUninitialized(), edm::HandleBase::isValid(), metsig::jet, m_deltaEta, m_deltaPhi, m_jetMaxEta, m_jetMaxN, m_jetMinPt, m_originHalfLength, m_originRadius, m_precise, m_ptMin, m_searchOpt, m_whereToUseMeasurementTracker, HLTSiStripMonitoring_cff::measurementTracker, L1TPhase2Offline_cfi::objects, edm::Handle< T >::product(), mps_fire::result, token_beamSpot, token_field, token_jet, token_measurementTracker, and token_msmaker.

87  {
88  std::vector<std::unique_ptr<TrackingRegion> > result;
89 
90  // use beam spot to pick up the origin
92  e.getByToken(token_beamSpot, bsHandle);
93  if (!bsHandle.isValid())
94  return result;
95  const reco::BeamSpot& bs = *bsHandle;
96  GlobalPoint origin(bs.x0(), bs.y0(), bs.z0());
97 
98  // pick up the candidate objects of interest
100  e.getByToken(token_jet, objects);
101  size_t n_objects = objects->size();
102  if (n_objects == 0)
103  return result;
104 
108  e.getByToken(token_measurementTracker, hmte);
109  measurementTracker = hmte.product();
110  }
111 
112  const auto& field = es.getData(token_field);
113  const MultipleScatteringParametrisationMaker* msmaker = nullptr;
114  if (m_precise) {
115  msmaker = &es.getData(token_msmaker);
116  }
117 
118  // create maximum JetMaxN tracking regions in directions of
119  // highest pt jets that are above threshold and are within allowed eta
120  // (we expect that jet collection was sorted in decreasing pt order)
121  int n_regions = 0;
122  for (size_t i = 0; i < n_objects && n_regions < m_jetMaxN; ++i) {
123  const reco::Candidate& jet = (*objects)[i];
124  if (jet.pt() < m_jetMinPt || std::abs(jet.eta()) > m_jetMaxEta)
125  continue;
126 
127  GlobalVector direction(jet.momentum().x(), jet.momentum().y(), jet.momentum().z());
128 
129  result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(direction,
130  origin,
131  m_ptMin,
134  m_deltaEta,
135  m_deltaPhi,
136  field,
137  msmaker,
138  m_precise,
141  m_searchOpt));
142  ++n_regions;
143  }
144  //std::cout<<"nregions = "<<n_regions<<std::endl;
145  return result;
146  }
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > token_msmaker
T const * product() const
Definition: Handle.h:70
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
edm::EDGetTokenT< MeasurementTrackerEvent > token_measurementTracker
edm::EDGetTokenT< reco::CandidateView > token_jet
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool getData(T &iHolder) const
Definition: EventSetup.h:122
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > token_field
bool isValid() const
Definition: HandleBase.h:70

Member Data Documentation

◆ m_deltaEta

float TrackingRegionsFromBeamSpotAndL2Tau::m_deltaEta
private

◆ m_deltaPhi

float TrackingRegionsFromBeamSpotAndL2Tau::m_deltaPhi
private

◆ m_jetMaxEta

float TrackingRegionsFromBeamSpotAndL2Tau::m_jetMaxEta
private

◆ m_jetMaxN

int TrackingRegionsFromBeamSpotAndL2Tau::m_jetMaxN
private

◆ m_jetMinPt

float TrackingRegionsFromBeamSpotAndL2Tau::m_jetMinPt
private

◆ m_originHalfLength

float TrackingRegionsFromBeamSpotAndL2Tau::m_originHalfLength
private

◆ m_originRadius

float TrackingRegionsFromBeamSpotAndL2Tau::m_originRadius
private

◆ m_precise

bool TrackingRegionsFromBeamSpotAndL2Tau::m_precise
private

◆ m_ptMin

float TrackingRegionsFromBeamSpotAndL2Tau::m_ptMin
private

◆ m_searchOpt

bool TrackingRegionsFromBeamSpotAndL2Tau::m_searchOpt
private

◆ m_whereToUseMeasurementTracker

RectangularEtaPhiTrackingRegion::UseMeasurementTracker TrackingRegionsFromBeamSpotAndL2Tau::m_whereToUseMeasurementTracker
private

◆ token_beamSpot

edm::EDGetTokenT<reco::BeamSpot> TrackingRegionsFromBeamSpotAndL2Tau::token_beamSpot
private

◆ token_field

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TrackingRegionsFromBeamSpotAndL2Tau::token_field
private

◆ token_jet

edm::EDGetTokenT<reco::CandidateView> TrackingRegionsFromBeamSpotAndL2Tau::token_jet
private

◆ token_measurementTracker

edm::EDGetTokenT<MeasurementTrackerEvent> TrackingRegionsFromBeamSpotAndL2Tau::token_measurementTracker
private

◆ token_msmaker

edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> TrackingRegionsFromBeamSpotAndL2Tau::token_msmaker
private