CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
HcalIsoTrkAnalyzer Class Reference
Inheritance diagram for HcalIsoTrkAnalyzer:
edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 HcalIsoTrkAnalyzer (edm::ParameterSet const &)
 
 ~HcalIsoTrkAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

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

Private Member Functions

void analyze (edm::Event const &, edm::EventSetup const &) override
 
void beginJob () override
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
double dR (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
double eThreshold (const DetId &id, const CaloGeometry *geo) const
 
std::array< int, 3 > fillTree (std::vector< math::XYZTLorentzVector > &vecL1, std::vector< math::XYZTLorentzVector > &vecL3, math::XYZPoint &leadPV, std::vector< spr::propagatedTrackDirection > &trkCaloDirections, std::vector< spr::propagatedTrackID > &trkCaloDets, const CaloGeometry *geo, const CaloTopology *topo, const HcalTopology *theHBHETopology, const EcalChannelStatus *theEcalChStatus, const EcalSeverityLevelAlgo *theEcalSevlv, edm::Handle< EcalRecHitCollection > &barrelRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapRecHitsHandle, edm::Handle< HBHERecHitCollection > &hbhe, edm::Handle< CaloTowerCollection > &towerHandle, edm::Handle< reco::GenParticleCollection > &genParticles, const HcalRespCorrs *respCorrs, const edm::Handle< reco::MuonCollection > &muonh)
 
DetId newId (const DetId &)
 
bool notaMuon (const reco::Track *pTrack0, const edm::Handle< reco::MuonCollection > &muonh)
 
double rhoh (const edm::Handle< CaloTowerCollection > &)
 
void storeEnergy (int indx, const HcalRespCorrs *respCorrs, const std::vector< DetId > &ids, std::vector< double > &edet, double &eHcal, std::vector< unsigned int > *detIds, std::vector< double > *hitEnergies)
 
double trackP (const reco::Track *, const edm::Handle< reco::GenParticleCollection > &)
 

Private Attributes

double a_charIsoR_
 
double a_coneR1_
 
double a_coneR2_
 
const double a_coneR_
 
const double a_mipR2_
 
const double a_mipR3_
 
const double a_mipR4_
 
const double a_mipR5_
 
const double a_mipR_
 
const edm::InputTag algTag_
 
const bool collapseDepth_
 
const int dataType_
 
const std::vector< int > debEvents_
 
bool debug_
 
const double eEcalMax_
 
const double eIsolate1_
 
const double eIsolate2_
 
std::vector< double > etabins_
 
double etadist_
 
double etahalfdist_
 
const EcalPFRecHitThresholdseThresholds_
 
const edm::InputTag extTag_
 
const double hcalScale_
 
const HcalDDDRecConstantshdc_
 
const bool hep17_
 
const double hitEthrEB_
 
const double hitEthrEE0_
 
const double hitEthrEE1_
 
const double hitEthrEE2_
 
const double hitEthrEE3_
 
const double hitEthrEEHi_
 
const double hitEthrEELo_
 
HLTConfigProvider hltConfig_
 
const bool ignoreTrigger_
 
const std::string l1Filter_
 
l1t::L1TGlobalUtill1GtUtils_
 
const std::string l1TrigName_
 
const std::string l2Filter_
 
const std::string l3Filter_
 
const std::string labelBS_
 
const std::string labelEB_
 
const std::string labelEE_
 
const std::string labelGenTrack_
 
const std::string labelHBHE_
 
const std::string labelMuon_
 
const std::string labelRecVtx_
 
const std::string labelTower_
 
const double maxRestrictionP_
 
const int mode_
 
const std::string modnam_
 
const std::vector< int > newDepth_
 
unsigned int nHigh_
 
unsigned int nLow_
 
unsigned int nRun_
 
std::vector< int > oldDepth_
 
std::vector< int > oldDet_
 
std::vector< int > oldEta_
 
const std::vector< int > oldID_
 
std::vector< double > phibins_
 
double phidist_
 
double phihalfdist_
 
const std::string prdnam_
 
const int prescaleHigh_
 
const int prescaleLow_
 
const std::string processName_
 
const double pTrackHigh_
 
const double pTrackLow_
 
const double pTrackMin_
 
spr::trackSelectionParameters selectionParameter_
 
const double slopeRestrictionP_
 
int t_allvertex
 
int t_DataType
 
std::vector< unsigned int > * t_DetIds
 
std::vector< unsigned int > * t_DetIds1
 
std::vector< unsigned int > * t_DetIds3
 
double t_eAnnular
 
double t_eHcal
 
double t_eHcal10
 
double t_eHcal30
 
double t_emaxNearP
 
double t_eMipDR
 
double t_eMipDR2
 
double t_eMipDR3
 
double t_eMipDR4
 
double t_eMipDR5
 
int t_Event
 
unsigned int t_EventNo
 
double t_EventWeight
 
double t_gentrackP
 
int t_goodPV
 
double t_hAnnular
 
std::vector< double > * t_HitEnergies
 
std::vector< double > * t_HitEnergies1
 
std::vector< double > * t_HitEnergies3
 
std::vector< bool > * t_hltbits
 
double t_hmaxNearP
 
int t_ieta
 
std::vector< int > * t_ietaAll
 
std::vector< int > * t_ietaGood
 
int t_iphi
 
bool t_L1Bit
 
double t_l1eta
 
double t_l1phi
 
double t_l1pt
 
double t_l3eta
 
double t_l3phi
 
double t_l3pt
 
double t_mindR1
 
double t_mindR2
 
int t_nTrk
 
int t_nVtx
 
double t_p
 
double t_phi
 
double t_pt
 
bool t_qltyFlag
 
bool t_qltyMissFlag
 
bool t_qltyPVFlag
 
double t_rhoh
 
int t_Run
 
unsigned int t_RunNo
 
bool t_selectTk
 
int t_Tracks
 
int t_TracksLoose
 
int t_TracksProp
 
int t_TracksSaved
 
int t_TracksTight
 
std::vector< int > * t_trackType
 
std::vector< bool > * t_trgbits
 
bool t_TrigPass
 
bool t_TrigPassSel
 
const std::string theTrackQuality_
 
const edm::InputTag theTriggerResultsLabel_
 
const edm::EDGetTokenT< BXVector< GlobalAlgBlk > > tok_alg_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtok_bFieldH_
 
const edm::EDGetTokenT< reco::BeamSpottok_bs_
 
const edm::EDGetTokenT< CaloTowerCollectiontok_cala_
 
const edm::ESGetToken< CaloTopology, CaloTopologyRecordtok_caloTopology_
 
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtok_ddrec_
 
const edm::EDGetTokenT< EcalRecHitCollectiontok_EB_
 
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcdtok_ecalChStatus_
 
const edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcdtok_ecalPFRecHitThresholds_
 
const edm::EDGetTokenT< EcalRecHitCollectiontok_EE_
 
const edm::EDGetTokenT< GenEventInfoProducttok_ew_
 
const edm::EDGetTokenT< reco::TrackCollectiontok_genTrack_
 
const edm::ESGetToken< CaloGeometry, CaloGeometryRecordtok_geom_
 
const edm::EDGetTokenT< HBHERecHitCollectiontok_hbhe_
 
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecordtok_htopo_
 
const edm::EDGetTokenT< reco::MuonCollectiontok_Muon_
 
const edm::EDGetTokenT< reco::GenParticleCollectiontok_parts_
 
const edm::EDGetTokenT< reco::VertexCollectiontok_recVtx_
 
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcdtok_resp_
 
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcdtok_sevlv_
 
const edm::EDGetTokenT< trigger::TriggerEventtok_trigEvt_
 
const edm::EDGetTokenT< edm::TriggerResultstok_trigRes_
 
TTree * tree
 
TTree * tree2
 
const edm::InputTag triggerEvent_
 
const std::vector< std::string > trigNames_
 
const bool unCorrect_
 
const bool useL1Trigger_
 
const bool usePFThresh_
 
const int useRaw_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- 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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 86 of file HcalIsoTrkAnalyzer.cc.

Constructor & Destructor Documentation

◆ HcalIsoTrkAnalyzer()

HcalIsoTrkAnalyzer::HcalIsoTrkAnalyzer ( edm::ParameterSet const &  iConfig)
explicit

Definition at line 217 of file HcalIsoTrkAnalyzer.cc.

References a_charIsoR_, a_coneR1_, a_coneR2_, a_coneR_, a_mipR2_, a_mipR3_, a_mipR4_, a_mipR5_, a_mipR_, algTag_, collapseDepth_, edm::EDConsumerBase::consumesCollector(), dataType_, debEvents_, eEcalMax_, eIsolate1_, eIsolate2_, PVValHelper::eta, etabins_, etadist_, etahalfdist_, l1t::Event, extTag_, edm::ParameterSet::getParameter(), hcalScale_, hep17_, hitEthrEB_, hitEthrEE0_, hitEthrEE1_, hitEthrEE2_, hitEthrEE3_, hitEthrEEHi_, hitEthrEELo_, mps_fire::i, ignoreTrigger_, ProducerED_cfi::InputTag, dqmdumpme::k, TFileService::kSharedResource, l1Filter_, l1GtUtils_, l1TrigName_, l2Filter_, l3Filter_, labelBS_, labelEB_, labelEE_, labelGenTrack_, labelHBHE_, labelMuon_, labelRecVtx_, labelTower_, M_PI, spr::trackSelectionParameters::maxChi2, spr::trackSelectionParameters::maxDpOverP, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, maxRestrictionP_, spr::trackSelectionParameters::minLayerCrossed, spr::trackSelectionParameters::minOuterHit, spr::trackSelectionParameters::minPt, spr::trackSelectionParameters::minQuality, mode_, modnam_, newDepth_, oldDepth_, oldDet_, oldEta_, oldID_, phi, phibins_, phidist_, phihalfdist_, prdnam_, prescaleHigh_, prescaleLow_, processName_, pTrackHigh_, pTrackLow_, pTrackMin_, reco::TrackBase::qualityByName(), selectionParameter_, slopeRestrictionP_, theTrackQuality_, theTriggerResultsLabel_, triggerEvent_, trigNames_, unCorrect_, useL1Trigger_, usePFThresh_, and useRaw_.

218  : trigNames_(iConfig.getParameter<std::vector<std::string>>("triggers")),
219  theTrackQuality_(iConfig.getParameter<std::string>("trackQuality")),
220  processName_(iConfig.getParameter<std::string>("processName")),
221  l1Filter_(iConfig.getParameter<std::string>("l1Filter")),
222  l2Filter_(iConfig.getParameter<std::string>("l2Filter")),
223  l3Filter_(iConfig.getParameter<std::string>("l3Filter")),
224  a_coneR_(iConfig.getParameter<double>("coneRadius")),
225  a_mipR_(iConfig.getParameter<double>("coneRadiusMIP")),
226  a_mipR2_(iConfig.getParameter<double>("coneRadiusMIP2")),
227  a_mipR3_(iConfig.getParameter<double>("coneRadiusMIP3")),
228  a_mipR4_(iConfig.getParameter<double>("coneRadiusMIP4")),
229  a_mipR5_(iConfig.getParameter<double>("coneRadiusMIP5")),
230  pTrackMin_(iConfig.getParameter<double>("minimumTrackP")),
231  eEcalMax_(iConfig.getParameter<double>("maximumEcalEnergy")),
232  maxRestrictionP_(iConfig.getParameter<double>("maxTrackP")),
233  slopeRestrictionP_(iConfig.getParameter<double>("slopeTrackP")),
234  hcalScale_(iConfig.getUntrackedParameter<double>("hHcalScale", 1.0)),
235  eIsolate1_(iConfig.getParameter<double>("isolationEnergyTight")),
236  eIsolate2_(iConfig.getParameter<double>("isolationEnergyLoose")),
237  pTrackLow_(iConfig.getParameter<double>("momentumLow")),
238  pTrackHigh_(iConfig.getParameter<double>("momentumHigh")),
239  prescaleLow_(iConfig.getParameter<int>("prescaleLow")),
240  prescaleHigh_(iConfig.getParameter<int>("prescaleHigh")),
241  useRaw_(iConfig.getUntrackedParameter<int>("useRaw", 0)),
242  dataType_(iConfig.getUntrackedParameter<int>("dataType", 0)),
243  mode_(iConfig.getUntrackedParameter<int>("outMode", 11)),
244  ignoreTrigger_(iConfig.getUntrackedParameter<bool>("ignoreTriggers", false)),
245  useL1Trigger_(iConfig.getUntrackedParameter<bool>("useL1Trigger", false)),
246  unCorrect_(iConfig.getUntrackedParameter<bool>("unCorrect", false)),
247  collapseDepth_(iConfig.getUntrackedParameter<bool>("collapseDepth", false)),
248  hitEthrEB_(iConfig.getParameter<double>("EBHitEnergyThreshold")),
249  hitEthrEE0_(iConfig.getParameter<double>("EEHitEnergyThreshold0")),
250  hitEthrEE1_(iConfig.getParameter<double>("EEHitEnergyThreshold1")),
251  hitEthrEE2_(iConfig.getParameter<double>("EEHitEnergyThreshold2")),
252  hitEthrEE3_(iConfig.getParameter<double>("EEHitEnergyThreshold3")),
253  hitEthrEELo_(iConfig.getParameter<double>("EEHitEnergyThresholdLow")),
254  hitEthrEEHi_(iConfig.getParameter<double>("EEHitEnergyThresholdHigh")),
255  triggerEvent_(iConfig.getParameter<edm::InputTag>("labelTriggerEvent")),
256  theTriggerResultsLabel_(iConfig.getParameter<edm::InputTag>("labelTriggerResult")),
257  labelGenTrack_(iConfig.getParameter<std::string>("labelTrack")),
258  labelRecVtx_(iConfig.getParameter<std::string>("labelVertex")),
259  labelEB_(iConfig.getParameter<std::string>("labelEBRecHit")),
260  labelEE_(iConfig.getParameter<std::string>("labelEERecHit")),
261  labelHBHE_(iConfig.getParameter<std::string>("labelHBHERecHit")),
262  labelTower_(iConfig.getParameter<std::string>("labelCaloTower")),
263  l1TrigName_(iConfig.getUntrackedParameter<std::string>("l1TrigName", "L1_SingleJet60")),
264  oldID_(iConfig.getUntrackedParameter<std::vector<int>>("oldID")),
265  newDepth_(iConfig.getUntrackedParameter<std::vector<int>>("newDepth")),
266  hep17_(iConfig.getUntrackedParameter<bool>("hep17")),
267  debEvents_(iConfig.getParameter<std::vector<int>>("debugEvents")),
268  usePFThresh_(iConfig.getParameter<bool>("usePFThreshold")),
269  labelBS_(iConfig.getParameter<std::string>("labelBeamSpot")),
270  modnam_(iConfig.getUntrackedParameter<std::string>("moduleName", "")),
271  prdnam_(iConfig.getUntrackedParameter<std::string>("producerName", "")),
272  labelMuon_(iConfig.getParameter<std::string>("labelMuon")),
273  algTag_(iConfig.getParameter<edm::InputTag>("algInputTag")),
274  extTag_(iConfig.getParameter<edm::InputTag>("extInputTag")),
275  tok_trigEvt_(consumes<trigger::TriggerEvent>(triggerEvent_)),
276  tok_trigRes_(consumes<edm::TriggerResults>(theTriggerResultsLabel_)),
277  tok_parts_(consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"))),
278  tok_genTrack_(consumes<reco::TrackCollection>(labelGenTrack_)),
279  tok_bs_(consumes<reco::BeamSpot>(labelBS_)),
280  tok_recVtx_((modnam_.empty()) ? consumes<reco::VertexCollection>(labelRecVtx_)
301  nRun_(0),
302  nLow_(0),
303  nHigh_(0),
304  hdc_(nullptr) {
305  usesResource(TFileService::kSharedResource);
306 
307  //now do whatever initialization is needed
308  const double isolationRadius(28.9), innerR(10.0), outerR(30.0);
310  selectionParameter_.minPt = iConfig.getParameter<double>("minTrackPt");
311  ;
312  selectionParameter_.minQuality = trackQuality_;
313  selectionParameter_.maxDxyPV = iConfig.getParameter<double>("maxDxyPV");
314  selectionParameter_.maxDzPV = iConfig.getParameter<double>("maxDzPV");
315  selectionParameter_.maxChi2 = iConfig.getParameter<double>("maxChi2");
316  selectionParameter_.maxDpOverP = iConfig.getParameter<double>("maxDpOverP");
317  selectionParameter_.minOuterHit = iConfig.getParameter<int>("minOuterHit");
318  selectionParameter_.minLayerCrossed = iConfig.getParameter<int>("minLayerCrossed");
319  selectionParameter_.maxInMiss = iConfig.getParameter<int>("maxInMiss");
320  selectionParameter_.maxOutMiss = iConfig.getParameter<int>("maxOutMiss");
321  a_charIsoR_ = a_coneR_ + isolationRadius;
322  a_coneR1_ = a_coneR_ + innerR;
323  a_coneR2_ = a_coneR_ + outerR;
324  // Different isolation cuts are described in DN-2016/029
325  // Tight cut uses 2 GeV; Loose cut uses 10 GeV
326  // Eta dependent cut uses (maxRestrictionP_ * exp(|ieta|*log(2.5)/18))
327  // with the factor for exponential slopeRestrictionP_ = log(2.5)/18
328  // maxRestrictionP_ = 8 GeV as came from a study
329 
330  for (unsigned int k = 0; k < oldID_.size(); ++k) {
331  oldDet_.emplace_back((oldID_[k] / 10000) % 10);
332  oldEta_.emplace_back((oldID_[k] / 100) % 100);
333  oldDepth_.emplace_back(oldID_[k] % 100);
334  }
335 
336  l1GtUtils_ =
338  // define tokens for access
339 
340  if (modnam_.empty()) {
341  edm::LogVerbatim("HcalIsoTrack") << "Labels used " << triggerEvent_ << " " << theTriggerResultsLabel_ << " "
342  << labelBS_ << " " << labelRecVtx_ << " " << labelGenTrack_ << " "
343  << edm::InputTag("ecalRecHit", labelEB_) << " "
344  << edm::InputTag("ecalRecHit", labelEE_) << " " << labelHBHE_ << " " << labelTower_
345  << " " << labelMuon_;
346  } else {
347  edm::LogVerbatim("HcalIsoTrack") << "Labels used " << triggerEvent_ << " " << theTriggerResultsLabel_ << " "
348  << labelBS_ << " " << edm::InputTag(modnam_, labelRecVtx_, prdnam_) << " "
349  << labelGenTrack_ << " " << edm::InputTag(modnam_, labelEB_, prdnam_) << " "
351  << edm::InputTag(modnam_, labelHBHE_, prdnam_) << " " << labelTower_ << " "
352  << labelMuon_;
353  }
354 
355  edm::LogVerbatim("HcalIsoTrack")
356  << "Parameters read from config file \n"
357  << "\t minPt " << selectionParameter_.minPt << "\t theTrackQuality " << theTrackQuality_ << "\t minQuality "
358  << selectionParameter_.minQuality << "\t maxDxyPV " << selectionParameter_.maxDxyPV << "\t maxDzPV "
359  << selectionParameter_.maxDzPV << "\t maxChi2 " << selectionParameter_.maxChi2 << "\t maxDpOverP "
360  << selectionParameter_.maxDpOverP << "\t minOuterHit " << selectionParameter_.minOuterHit << "\t minLayerCrossed "
361  << selectionParameter_.minLayerCrossed << "\t maxInMiss " << selectionParameter_.maxInMiss << "\t maxOutMiss "
362  << selectionParameter_.maxOutMiss << "\t a_coneR " << a_coneR_ << ":" << a_coneR1_ << ":" << a_coneR2_
363  << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR " << a_mipR_ << "\t a_mipR2 " << a_mipR2_ << "\t a_mipR3 "
364  << a_mipR3_ << "\t a_mipR4 " << a_mipR4_ << "\t a_mipR5 " << a_mipR5_ << "\n pTrackMin_ " << pTrackMin_
365  << "\t eEcalMax_ " << eEcalMax_ << "\t maxRestrictionP_ " << maxRestrictionP_ << "\t slopeRestrictionP_ "
366  << slopeRestrictionP_ << "\t eIsolateStrong_ " << eIsolate1_ << "\t eIsolateSoft_ " << eIsolate2_
367  << "\t hcalScale_ " << hcalScale_ << "\n\t momentumLow_ " << pTrackLow_ << "\t prescaleLow_ " << prescaleLow_
368  << "\t momentumHigh_ " << pTrackHigh_ << "\t prescaleHigh_ " << prescaleHigh_ << "\n\t useRaw_ " << useRaw_
369  << "\t ignoreTrigger_ " << ignoreTrigger_ << "\n\t useL1Trigegr_ " << useL1Trigger_ << "\t dataType_ "
370  << dataType_ << "\t mode_ " << mode_ << "\t unCorrect_ " << unCorrect_ << "\t collapseDepth_ "
371  << collapseDepth_ << "\t L1TrigName_ " << l1TrigName_ << "\nThreshold flag used " << usePFThresh_
372  << " value for EB " << hitEthrEB_ << " EE " << hitEthrEE0_ << ":" << hitEthrEE1_ << ":" << hitEthrEE2_ << ":"
373  << hitEthrEE3_ << ":" << hitEthrEELo_ << ":" << hitEthrEEHi_ << " and " << debEvents_.size()
374  << " events to be debugged";
375  edm::LogVerbatim("HcalIsoTrack") << "Process " << processName_ << " L1Filter:" << l1Filter_
376  << " L2Filter:" << l2Filter_ << " L3Filter:" << l3Filter_;
377  for (unsigned int k = 0; k < trigNames_.size(); ++k) {
378  edm::LogVerbatim("HcalIsoTrack") << "Trigger[" << k << "] " << trigNames_[k];
379  }
380  edm::LogVerbatim("HcalIsoTrack") << oldID_.size() << " DetIDs to be corrected with HEP17 flag:" << hep17_;
381  for (unsigned int k = 0; k < oldID_.size(); ++k)
382  edm::LogVerbatim("HcalIsoTrack") << "[" << k << "] Det " << oldDet_[k] << " EtaAbs " << oldEta_[k] << " Depth "
383  << oldDepth_[k] << ":" << newDepth_[k];
384 
385  for (int i = 0; i < 10; i++)
386  phibins_.push_back(-M_PI + 0.1 * (2 * i + 1) * M_PI);
387  for (int i = 0; i < 8; ++i)
388  etabins_.push_back(-2.1 + 0.6 * i);
389  etadist_ = etabins_[1] - etabins_[0];
390  phidist_ = phibins_[1] - phibins_[0];
391  etahalfdist_ = 0.5 * etadist_;
392  phihalfdist_ = 0.5 * phidist_;
393  edm::LogVerbatim("HcalIsoTrack") << "EtaDist " << etadist_ << " " << etahalfdist_ << " PhiDist " << phidist_ << " "
394  << phihalfdist_;
395  unsigned int k1(0), k2(0);
396  for (auto phi : phibins_) {
397  edm::LogVerbatim("HcalIsoTrack") << "phibin_[" << k1 << "] " << phi;
398  ++k1;
399  }
400  for (auto eta : etabins_) {
401  edm::LogVerbatim("HcalIsoTrack") << "etabin_[" << k2 << "] " << eta;
402  ++k2;
403  }
404 }
static const std::string kSharedResource
Definition: TFileService.h:76
const std::string labelHBHE_
const std::vector< std::string > trigNames_
Log< level::Info, true > LogVerbatim
spr::trackSelectionParameters selectionParameter_
const edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
const std::string l1TrigName_
const double maxRestrictionP_
const std::string modnam_
std::vector< int > oldEta_
const std::string labelRecVtx_
const edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > tok_ecalPFRecHitThresholds_
TrackQuality
track quality
Definition: TrackBase.h:150
const std::string labelTower_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_htopo_
std::vector< int > oldDepth_
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
const std::string labelBS_
const edm::EDGetTokenT< CaloTowerCollection > tok_cala_
const edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
const edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
std::vector< Vertex > VertexCollection
Definition: Vertex.h:31
std::vector< double > etabins_
const edm::EDGetTokenT< reco::BeamSpot > tok_bs_
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
const edm::InputTag extTag_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::InputTag algTag_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const std::string labelGenTrack_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
l1t::L1TGlobalUtil * l1GtUtils_
const edm::EDGetTokenT< reco::GenParticleCollection > tok_parts_
Transition
Definition: Transition.h:12
const std::string l3Filter_
#define M_PI
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcd > tok_resp_
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
const double slopeRestrictionP_
const std::vector< int > debEvents_
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
const std::string l2Filter_
const edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
const std::string processName_
const edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
const std::string labelEB_
std::vector< double > phibins_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_bFieldH_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
std::vector< int > oldDet_
const edm::InputTag theTriggerResultsLabel_
fixed size matrix
HLT enums.
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
const HcalDDDRecConstants * hdc_
reco::TrackBase::TrackQuality minQuality
const edm::EDGetTokenT< BXVector< GlobalAlgBlk > > tok_alg_
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_ddrec_
const std::string prdnam_
const std::vector< int > newDepth_
const edm::InputTag triggerEvent_
const std::vector< int > oldID_
const std::string labelEE_
const std::string labelMuon_
const std::string l1Filter_
const std::string theTrackQuality_

◆ ~HcalIsoTrkAnalyzer()

HcalIsoTrkAnalyzer::~HcalIsoTrkAnalyzer ( )
inlineoverride

Definition at line 89 of file HcalIsoTrkAnalyzer.cc.

89 {}

Member Function Documentation

◆ analyze()

void HcalIsoTrkAnalyzer::analyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 406 of file HcalIsoTrkAnalyzer.cc.

References Calorimetry_cff::bField, dataType_, debEvents_, debug_, l1t::L1TGlobalUtil::decisionsFinal(), fileCollector::done, l1ctLayer1_cff::dr, dR(), trigger::TriggerObject::energy(), trigger::TriggerObject::eta(), eThresholds_, fillTree(), spr::find(), genParticles2HepMC_cfi::genEventInfo, AJJGenJetFilter_cfi::genParticles, edm::EventSetup::getData(), photonIsolationHIProducer_cfi::hbhe, ValidationMatrix::hlt, hltConfig_, mps_fire::i, trigger::TriggerObject::id(), iEvent, ignoreTrigger_, edm::HandleBase::isValid(), dqmdumpme::k, l1Filter_, l1GtUtils_, l1TrigName_, l2Filter_, l3Filter_, label, edm::InputTag::label(), labelEB_, labelEE_, labelGenTrack_, labelHBHE_, trigger::TriggerObject::mass(), HLTConfigProvider::moduleLabels(), LogMessageMonitor_cff::modules, names, convertSQLiteXML::ok, trigger::TriggerObject::phi(), reco::BeamSpot::position(), edm::Handle< T >::product(), spr::propagateCALO(), trigger::TriggerObject::pt(), trigger::TriggerObject::px(), trigger::TriggerObject::py(), trigger::TriggerObject::pz(), l1t::L1TGlobalUtil::retrieveL1(), AlCaHLTBitMon_QueryRunRegistry::string, t_allvertex, t_DataType, t_Event, t_EventNo, t_EventWeight, t_goodPV, t_hltbits, t_ietaAll, t_ietaGood, t_L1Bit, t_l1eta, t_l1phi, t_l1pt, t_l3eta, t_l3phi, t_l3pt, t_nVtx, t_Run, t_RunNo, t_Tracks, t_TracksLoose, t_TracksProp, t_TracksSaved, t_TracksTight, t_trackType, t_trgbits, t_TrigPass, t_TrigPassSel, theTrackQuality_, tok_alg_, tok_bFieldH_, tok_bs_, tok_cala_, tok_caloTopology_, tok_EB_, tok_ecalChStatus_, tok_ecalPFRecHitThresholds_, tok_EE_, tok_ew_, tok_genTrack_, tok_geom_, tok_hbhe_, tok_htopo_, tok_Muon_, tok_parts_, tok_recVtx_, tok_resp_, tok_sevlv_, tok_trigEvt_, tok_trigRes_, tree2, PDWG_DiPhoton_SD_cff::triggerEvent, triggerEvent_, HLTConfigProvider::triggerIndex(), L1TEGammaOffline_cfi::triggerNames, triggerResults, trigNames_, useL1Trigger_, x, y, and z.

406  {
407  t_Run = iEvent.id().run();
408  t_Event = iEvent.id().event();
410  debug_ = (debEvents_.empty())
411  ? true
412  : (std::find(debEvents_.begin(), debEvents_.end(), iEvent.id().event()) != debEvents_.end());
413 #ifdef EDM_ML_DEBUG
414  if (debug_)
415  edm::LogVerbatim("HcalIsoTrack") << "Run " << t_Run << " Event " << t_Event << " type " << t_DataType
416  << " Luminosity " << iEvent.luminosityBlock() << " Bunch "
417  << iEvent.bunchCrossing();
418 #endif
419  //Get magnetic field and ECAL channel status
420  const MagneticField* bField = &iSetup.getData(tok_bFieldH_);
421  const EcalChannelStatus* theEcalChStatus = &iSetup.getData(tok_ecalChStatus_);
422  const EcalSeverityLevelAlgo* theEcalSevlv = &iSetup.getData(tok_sevlv_);
423  eThresholds_ = &iSetup.getData(tok_ecalPFRecHitThresholds_);
424 
425  // get calogeometry and calotopology
426  const CaloGeometry* geo = &iSetup.getData(tok_geom_);
427  const CaloTopology* caloTopology = &iSetup.getData(tok_caloTopology_);
428  const HcalTopology* theHBHETopology = &iSetup.getData(tok_htopo_);
429 
430  // get Hcal response corrections
431  const HcalRespCorrs* respCorrs = &iSetup.getData(tok_resp_);
432 
433  //=== genParticle information
435 
436  bool okC(true);
437  //Get track collection
438  edm::Handle<reco::TrackCollection> trkCollection = iEvent.getHandle(tok_genTrack_);
439  if (!trkCollection.isValid()) {
440  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelGenTrack_;
441  okC = false;
442  }
443 
444  //Get muon collection
445  const edm::Handle<reco::MuonCollection> muonh = iEvent.getHandle(tok_Muon_);
446 
447  //event weight for FLAT sample
448  t_EventWeight = 1.0;
450  if (genEventInfo.isValid())
451  t_EventWeight = genEventInfo->weight();
452 
453  //Define the best vertex and the beamspot
454  const edm::Handle<reco::VertexCollection> recVtxs = iEvent.getHandle(tok_recVtx_);
455  const edm::Handle<reco::BeamSpot> beamSpotH = iEvent.getHandle(tok_bs_);
456  math::XYZPoint leadPV(0, 0, 0);
457  t_goodPV = t_nVtx = 0;
458  if (recVtxs.isValid() && !(recVtxs->empty())) {
459  t_nVtx = recVtxs->size();
460  for (unsigned int k = 0; k < recVtxs->size(); ++k) {
461  if (!((*recVtxs)[k].isFake()) && ((*recVtxs)[k].ndof() > 4)) {
462  if (t_goodPV == 0)
463  leadPV = math::XYZPoint((*recVtxs)[k].x(), (*recVtxs)[k].y(), (*recVtxs)[k].z());
464  t_goodPV++;
465  }
466  }
467  }
468  if (t_goodPV == 0 && beamSpotH.isValid()) {
469  leadPV = beamSpotH->position();
470  }
472 #ifdef EDM_ML_DEBUG
473  if (debug_) {
474  edm::LogVerbatim("HcalIsoTrack") << "Primary Vertex " << leadPV << " out of " << t_goodPV << " vertex";
475  if (beamSpotH.isValid())
476  edm::LogVerbatim("HcalIsoTrack") << " Beam Spot " << beamSpotH->position();
477  }
478 #endif
479  // RecHits
480  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle = iEvent.getHandle(tok_EB_);
481  if (!barrelRecHitsHandle.isValid()) {
482  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEB_;
483  okC = false;
484  }
485  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle = iEvent.getHandle(tok_EE_);
486  if (!endcapRecHitsHandle.isValid()) {
487  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEE_;
488  okC = false;
489  }
491  if (!hbhe.isValid()) {
492  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelHBHE_;
493  okC = false;
494  }
495  edm::Handle<CaloTowerCollection> caloTower = iEvent.getHandle(tok_cala_);
496 
497  //Propagate tracks to calorimeter surface)
498  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
499  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, false);
500  std::vector<spr::propagatedTrackID> trkCaloDets;
501  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDets, false);
502  std::vector<math::XYZTLorentzVector> vecL1, vecL3;
503  t_RunNo = iEvent.id().run();
504  t_EventNo = iEvent.id().event();
505  t_Tracks = trkCollection->size();
506  t_TracksProp = trkCaloDirections.size();
507  t_ietaAll->clear();
508  t_ietaGood->clear();
509  t_trackType->clear();
510  t_trgbits->clear();
511  t_hltbits->clear();
512 #ifdef EDM_ML_DEBUG
513  if (debug_)
514  edm::LogVerbatim("HcalIsoTrack") << "# of propagated tracks " << t_TracksProp << " out of " << t_Tracks
515  << " with Trigger " << ignoreTrigger_;
516 #endif
517 
518  //Trigger
519  t_trgbits->assign(trigNames_.size(), false);
520  t_hltbits->assign(trigNames_.size(), false);
522  t_L1Bit = true;
523  t_TrigPass = false;
524 
525  if (!ignoreTrigger_) {
526  //L1
528  const std::vector<std::pair<std::string, bool>>& finalDecisions = l1GtUtils_->decisionsFinal();
529  for (const auto& decision : finalDecisions) {
530  if (decision.first.find(l1TrigName_) != std::string::npos) {
531  t_L1Bit = decision.second;
532  break;
533  }
534  }
535 #ifdef EDM_ML_DEBUG
536  if (debug_)
537  edm::LogVerbatim("HcalIsoTrack") << "Trigger Information for " << l1TrigName_ << " is " << t_L1Bit
538  << " from a list of " << finalDecisions.size() << " decisions";
539 #endif
540 
541  //HLT
543  if (triggerResults.isValid()) {
544  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
545  const std::vector<std::string>& names = triggerNames.triggerNames();
546  if (!trigNames_.empty()) {
547  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
548  int hlt = triggerResults->accept(iHLT);
549  for (unsigned int i = 0; i < trigNames_.size(); ++i) {
550  if (names[iHLT].find(trigNames_[i]) != std::string::npos) {
551  t_trgbits->at(i) = (hlt > 0);
552  t_hltbits->at(i) = (hlt > 0);
553  if (hlt > 0)
554  t_TrigPass = true;
555 #ifdef EDM_ML_DEBUG
556  if (debug_)
557  edm::LogVerbatim("HcalIsoTrack")
558  << "This trigger " << names[iHLT] << " Flag " << hlt << ":" << t_trgbits->at(i);
559 #endif
560  }
561  }
562  }
563  }
564  }
565 #ifdef EDM_ML_DEBUG
566  if (debug_)
567  edm::LogVerbatim("HcalIsoTrack") << "HLT Information shows " << t_TrigPass << ":" << trigNames_.empty() << ":"
568  << okC;
569 #endif
570  }
571 
572  std::array<int, 3> ntksave{{0, 0, 0}};
573  if (ignoreTrigger_ || useL1Trigger_) {
574  t_l1pt = t_l1eta = t_l1phi = 0;
575  t_l3pt = t_l3eta = t_l3phi = 0;
576  if (ignoreTrigger_ || t_L1Bit)
577  ntksave = fillTree(vecL1,
578  vecL3,
579  leadPV,
580  trkCaloDirections,
581  trkCaloDets,
582  geo,
583  caloTopology,
584  theHBHETopology,
585  theEcalChStatus,
586  theEcalSevlv,
587  barrelRecHitsHandle,
588  endcapRecHitsHandle,
589  hbhe,
590  caloTower,
591  genParticles,
592  respCorrs,
593  muonh);
594  t_TracksSaved = ntksave[0];
595  t_TracksLoose = ntksave[1];
596  t_TracksTight = ntksave[2];
597  } else {
599  const edm::Handle<trigger::TriggerEvent>& triggerEventHandle = iEvent.getHandle(tok_trigEvt_);
600  if (!triggerEventHandle.isValid()) {
601  edm::LogWarning("HcalIsoTrack") << "Error! Can't get the product " << triggerEvent_.label();
602  } else if (okC) {
604  triggerEvent = *(triggerEventHandle.product());
605  const trigger::TriggerObjectCollection& TOC(triggerEvent.getObjects());
606  bool done(false);
607  if (triggerResults.isValid()) {
608  std::vector<std::string> modules;
609  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
610  const std::vector<std::string>& names = triggerNames.triggerNames();
611  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
612  bool ok = (t_TrigPass) || (trigNames_.empty());
613  if (ok) {
614  unsigned int triggerindx = hltConfig_.triggerIndex(names[iHLT]);
615  const std::vector<std::string>& moduleLabels(hltConfig_.moduleLabels(triggerindx));
616  std::vector<math::XYZTLorentzVector> vecL2;
617  vecL1.clear();
618  vecL3.clear();
619  //loop over all trigger filters in event (i.e. filters passed)
620  for (unsigned int ifilter = 0; ifilter < triggerEvent.sizeFilters(); ++ifilter) {
621  std::vector<int> Keys;
622  std::string label = triggerEvent.filterTag(ifilter).label();
623  //loop over keys to objects passing this filter
624  for (unsigned int imodule = 0; imodule < moduleLabels.size(); imodule++) {
625  if (label.find(moduleLabels[imodule]) != std::string::npos) {
626 #ifdef EDM_ML_DEBUG
627  if (debug_)
628  edm::LogVerbatim("HcalIsoTrack") << "FilterName " << label;
629 #endif
630  for (unsigned int ifiltrKey = 0; ifiltrKey < triggerEvent.filterKeys(ifilter).size(); ++ifiltrKey) {
631  Keys.push_back(triggerEvent.filterKeys(ifilter)[ifiltrKey]);
632  const trigger::TriggerObject& TO(TOC[Keys[ifiltrKey]]);
633  math::XYZTLorentzVector v4(TO.px(), TO.py(), TO.pz(), TO.energy());
634  if (label.find(l2Filter_) != std::string::npos) {
635  vecL2.push_back(v4);
636  } else if (label.find(l3Filter_) != std::string::npos) {
637  vecL3.push_back(v4);
638  } else if ((label.find(l1Filter_) != std::string::npos) || (l1Filter_.empty())) {
639  vecL1.push_back(v4);
640  }
641 #ifdef EDM_ML_DEBUG
642  if (debug_)
643  edm::LogVerbatim("HcalIsoTrack")
644  << "key " << ifiltrKey << " : pt " << TO.pt() << " eta " << TO.eta() << " phi " << TO.phi()
645  << " mass " << TO.mass() << " Id " << TO.id();
646 #endif
647  }
648 #ifdef EDM_ML_DEBUG
649  if (debug_)
650  edm::LogVerbatim("HcalIsoTrack")
651  << "sizes " << vecL1.size() << ":" << vecL2.size() << ":" << vecL3.size();
652 #endif
653  }
654  }
655  }
657  math::XYZTLorentzVector mindRvec1;
658  double mindR1(999);
659  for (unsigned int i = 0; i < vecL2.size(); i++) {
660  double dr = dR(vecL1[0], vecL2[i]);
661 #ifdef EDM_ML_DEBUG
662  if (debug_)
663  edm::LogVerbatim("HcalIsoTrack") << "lvl2[" << i << "] dR " << dr;
664 #endif
665  if (dr < mindR1) {
666  mindR1 = dr;
667  mindRvec1 = vecL2[i];
668  }
669  }
670 #ifdef EDM_ML_DEBUG
671  if (debug_)
672  edm::LogVerbatim("HcalIsoTrack") << "L2 object closest to L1 " << mindRvec1 << " at Dr " << mindR1;
673 #endif
674 
675  if (!vecL1.empty()) {
676  t_l1pt = vecL1[0].pt();
677  t_l1eta = vecL1[0].eta();
678  t_l1phi = vecL1[0].phi();
679  } else {
680  t_l1pt = t_l1eta = t_l1phi = 0;
681  }
682  if (!vecL3.empty()) {
683  t_l3pt = vecL3[0].pt();
684  t_l3eta = vecL3[0].eta();
685  t_l3phi = vecL3[0].phi();
686  } else {
687  t_l3pt = t_l3eta = t_l3phi = 0;
688  }
689  // Now fill in the tree for each selected track
690  if (!done) {
691  ntksave = fillTree(vecL1,
692  vecL3,
693  leadPV,
694  trkCaloDirections,
695  trkCaloDets,
696  geo,
697  caloTopology,
698  theHBHETopology,
699  theEcalChStatus,
700  theEcalSevlv,
701  barrelRecHitsHandle,
702  endcapRecHitsHandle,
703  hbhe,
704  caloTower,
705  genParticles,
706  respCorrs,
707  muonh);
708  t_TracksSaved += ntksave[0];
709  t_TracksLoose += ntksave[1];
710  t_TracksTight += ntksave[2];
711  done = true;
712  }
713  }
714  }
715  }
716  }
717  }
718 #ifdef EDM_ML_DEBUG
719  if (debug_)
720  edm::LogVerbatim("HcalIsoTrack") << "Final results on selected tracks " << t_TracksSaved << ":" << t_TracksLoose
721  << ":" << t_TracksTight;
722 #endif
724  tree2->Fill();
725 }
const std::string labelHBHE_
const std::vector< std::string > trigNames_
Log< level::Info, true > LogVerbatim
const edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
const std::string l1TrigName_
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:26
const Point & position() const
position
Definition: BeamSpot.h:59
const edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > tok_ecalPFRecHitThresholds_
std::vector< int > * t_ietaAll
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_htopo_
T const * product() const
Definition: Handle.h:70
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
const edm::EDGetTokenT< CaloTowerCollection > tok_cala_
std::string const & label() const
Definition: InputTag.h:36
const edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
const std::string names[nVars_]
const edm::EDGetTokenT< reco::BeamSpot > tok_bs_
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:21
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
char const * label
const EcalPFRecHitThresholds * eThresholds_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
int iEvent
Definition: GenABIO.cc:224
const std::string labelGenTrack_
std::array< int, 3 > fillTree(std::vector< math::XYZTLorentzVector > &vecL1, std::vector< math::XYZTLorentzVector > &vecL3, math::XYZPoint &leadPV, std::vector< spr::propagatedTrackDirection > &trkCaloDirections, std::vector< spr::propagatedTrackID > &trkCaloDets, const CaloGeometry *geo, const CaloTopology *topo, const HcalTopology *theHBHETopology, const EcalChannelStatus *theEcalChStatus, const EcalSeverityLevelAlgo *theEcalSevlv, edm::Handle< EcalRecHitCollection > &barrelRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapRecHitsHandle, edm::Handle< HBHERecHitCollection > &hbhe, edm::Handle< CaloTowerCollection > &towerHandle, edm::Handle< reco::GenParticleCollection > &genParticles, const HcalRespCorrs *respCorrs, const edm::Handle< reco::MuonCollection > &muonh)
l1t::L1TGlobalUtil * l1GtUtils_
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
std::vector< bool > * t_hltbits
const edm::EDGetTokenT< reco::GenParticleCollection > tok_parts_
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
static std::string const triggerResults
Definition: EdmProvDump.cc:47
HLTConfigProvider hltConfig_
const std::string l3Filter_
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcd > tok_resp_
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
std::vector< bool > * t_trgbits
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
const std::vector< int > debEvents_
const std::string l2Filter_
const edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
const edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::vector< size_type > Keys
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
const std::string labelEB_
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_bFieldH_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
bool isValid() const
Definition: HandleBase.h:70
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
const edm::EDGetTokenT< BXVector< GlobalAlgBlk > > tok_alg_
const std::vector< std::pair< std::string, bool > > & decisionsFinal()
const edm::InputTag triggerEvent_
Log< level::Warning, false > LogWarning
std::vector< int > * t_ietaGood
const std::string labelEE_
void retrieveL1(const edm::Event &iEvent, const edm::EventSetup &evSetup)
initialize the class (mainly reserve)
const std::string l1Filter_
const std::string theTrackQuality_
std::vector< int > * t_trackType

◆ beginJob()

void HcalIsoTrkAnalyzer::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 727 of file HcalIsoTrkAnalyzer.cc.

References compareTotals::fs, t_allvertex, t_DataType, t_DetIds, t_DetIds1, t_DetIds3, t_eAnnular, t_eHcal, t_eHcal10, t_eHcal30, t_emaxNearP, t_eMipDR, t_eMipDR2, t_eMipDR3, t_eMipDR4, t_eMipDR5, t_Event, t_EventNo, t_EventWeight, t_gentrackP, t_goodPV, t_hAnnular, t_HitEnergies, t_HitEnergies1, t_HitEnergies3, t_hltbits, t_hmaxNearP, t_ieta, t_ietaAll, t_ietaGood, t_iphi, t_L1Bit, t_l1eta, t_l1phi, t_l1pt, t_l3eta, t_l3phi, t_l3pt, t_mindR1, t_mindR2, t_nTrk, t_nVtx, t_p, t_phi, t_pt, t_qltyFlag, t_qltyMissFlag, t_qltyPVFlag, t_rhoh, t_Run, t_RunNo, t_selectTk, t_Tracks, t_TracksLoose, t_TracksProp, t_TracksSaved, t_TracksTight, t_trackType, t_trgbits, t_TrigPass, t_TrigPassSel, and tree2.

727  {
729  tree = fs->make<TTree>("CalibTree", "CalibTree");
730 
731  tree->Branch("t_Run", &t_Run, "t_Run/I");
732  tree->Branch("t_Event", &t_Event, "t_Event/I");
733  tree->Branch("t_DataType", &t_DataType, "t_DataType/I");
734  tree->Branch("t_ieta", &t_ieta, "t_ieta/I");
735  tree->Branch("t_iphi", &t_iphi, "t_iphi/I");
736  tree->Branch("t_EventWeight", &t_EventWeight, "t_EventWeight/D");
737  tree->Branch("t_nVtx", &t_nVtx, "t_nVtx/I");
738  tree->Branch("t_nTrk", &t_nTrk, "t_nTrk/I");
739  tree->Branch("t_goodPV", &t_goodPV, "t_goodPV/I");
740  tree->Branch("t_l1pt", &t_l1pt, "t_l1pt/D");
741  tree->Branch("t_l1eta", &t_l1eta, "t_l1eta/D");
742  tree->Branch("t_l1phi", &t_l1phi, "t_l1phi/D");
743  tree->Branch("t_l3pt", &t_l3pt, "t_l3pt/D");
744  tree->Branch("t_l3eta", &t_l3eta, "t_l3eta/D");
745  tree->Branch("t_l3phi", &t_l3phi, "t_l3phi/D");
746  tree->Branch("t_p", &t_p, "t_p/D");
747  tree->Branch("t_pt", &t_pt, "t_pt/D");
748  tree->Branch("t_phi", &t_phi, "t_phi/D");
749  tree->Branch("t_mindR1", &t_mindR1, "t_mindR1/D");
750  tree->Branch("t_mindR2", &t_mindR2, "t_mindR2/D");
751  tree->Branch("t_eMipDR", &t_eMipDR, "t_eMipDR/D");
752  tree->Branch("t_eMipDR2", &t_eMipDR2, "t_eMipDR2/D");
753  tree->Branch("t_eMipDR3", &t_eMipDR3, "t_eMipDR3/D");
754  tree->Branch("t_eMipDR4", &t_eMipDR4, "t_eMipDR4/D");
755  tree->Branch("t_eMipDR5", &t_eMipDR5, "t_eMipDR5/D");
756  tree->Branch("t_eHcal", &t_eHcal, "t_eHcal/D");
757  tree->Branch("t_eHcal10", &t_eHcal10, "t_eHcal10/D");
758  tree->Branch("t_eHcal30", &t_eHcal30, "t_eHcal30/D");
759  tree->Branch("t_hmaxNearP", &t_hmaxNearP, "t_hmaxNearP/D");
760  tree->Branch("t_emaxNearP", &t_emaxNearP, "t_emaxNearP/D");
761  tree->Branch("t_eAnnular", &t_eAnnular, "t_eAnnular/D");
762  tree->Branch("t_hAnnular", &t_hAnnular, "t_hAnnular/D");
763  tree->Branch("t_rhoh", &t_rhoh, "t_rhoh/D");
764  tree->Branch("t_selectTk", &t_selectTk, "t_selectTk/O");
765  tree->Branch("t_qltyFlag", &t_qltyFlag, "t_qltyFlag/O");
766  tree->Branch("t_qltyMissFlag", &t_qltyMissFlag, "t_qltyMissFlag/O");
767  tree->Branch("t_qltyPVFlag", &t_qltyPVFlag, "t_qltyPVFlag/O");
768  tree->Branch("t_gentrackP", &t_gentrackP, "t_gentrackP/D");
769 
770  t_DetIds = new std::vector<unsigned int>();
771  t_DetIds1 = new std::vector<unsigned int>();
772  t_DetIds3 = new std::vector<unsigned int>();
773  t_HitEnergies = new std::vector<double>();
774  t_HitEnergies1 = new std::vector<double>();
775  t_HitEnergies3 = new std::vector<double>();
776  t_trgbits = new std::vector<bool>();
777  tree->Branch("t_DetIds", "std::vector<unsigned int>", &t_DetIds);
778  tree->Branch("t_HitEnergies", "std::vector<double>", &t_HitEnergies);
779  tree->Branch("t_trgbits", "std::vector<bool>", &t_trgbits);
780  tree->Branch("t_DetIds1", "std::vector<unsigned int>", &t_DetIds1);
781  tree->Branch("t_DetIds3", "std::vector<unsigned int>", &t_DetIds3);
782  tree->Branch("t_HitEnergies1", "std::vector<double>", &t_HitEnergies1);
783  tree->Branch("t_HitEnergies3", "std::vector<double>", &t_HitEnergies3);
784 
785  tree2 = fs->make<TTree>("EventInfo", "Event Information");
786 
787  tree2->Branch("t_RunNo", &t_RunNo, "t_RunNo/i");
788  tree2->Branch("t_EventNo", &t_EventNo, "t_EventNo/i");
789  tree2->Branch("t_Tracks", &t_Tracks, "t_Tracks/I");
790  tree2->Branch("t_TracksProp", &t_TracksProp, "t_TracksProp/I");
791  tree2->Branch("t_TracksSaved", &t_TracksSaved, "t_TracksSaved/I");
792  tree2->Branch("t_TracksLoose", &t_TracksLoose, "t_TracksLoose/I");
793  tree2->Branch("t_TracksTight", &t_TracksTight, "t_TracksTight/I");
794  tree2->Branch("t_TrigPass", &t_TrigPass, "t_TrigPass/O");
795  tree2->Branch("t_TrigPassSel", &t_TrigPassSel, "t_TrigPassSel/O");
796  tree2->Branch("t_L1Bit", &t_L1Bit, "t_L1Bit/O");
797  tree2->Branch("t_allvertex", &t_allvertex, "t_allvertex/I");
798  t_hltbits = new std::vector<bool>();
799  t_ietaAll = new std::vector<int>();
800  t_ietaGood = new std::vector<int>();
801  t_trackType = new std::vector<int>();
802  tree2->Branch("t_ietaAll", "std::vector<int>", &t_ietaAll);
803  tree2->Branch("t_ietaGood", "std::vector<int>", &t_ietaGood);
804  tree2->Branch("t_trackType", "std::vector<int>", &t_trackType);
805  tree2->Branch("t_hltbits", "std::vector<bool>", &t_hltbits);
806 }
std::vector< int > * t_ietaAll
std::vector< double > * t_HitEnergies
std::vector< unsigned int > * t_DetIds
std::vector< double > * t_HitEnergies1
std::vector< double > * t_HitEnergies3
std::vector< bool > * t_hltbits
std::vector< bool > * t_trgbits
std::vector< unsigned int > * t_DetIds1
Definition: tree.py:1
std::vector< int > * t_ietaGood
std::vector< unsigned int > * t_DetIds3
std::vector< int > * t_trackType

◆ beginRun()

void HcalIsoTrkAnalyzer::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 809 of file HcalIsoTrkAnalyzer.cc.

References RemoveAddSevLevel::flag, edm::EventSetup::getData(), hdc_, hltConfig_, ignoreTrigger_, HLTConfigProvider::init(), dqmiodumpmetadata::n, nRun_, processName_, edm::RunBase::run(), HLTConfigProvider::size(), tok_ddrec_, HLTConfigProvider::triggerIndex(), and trigNames_.

809  {
810  hdc_ = &iSetup.getData(tok_ddrec_);
811 
812  if (!ignoreTrigger_) {
813  bool changed_(true);
814  bool flag = hltConfig_.init(iRun, iSetup, processName_, changed_);
815  edm::LogVerbatim("HcalIsoTrack") << "Run[" << nRun_ << "] " << iRun.run() << " process " << processName_
816  << " init flag " << flag << " change flag " << changed_;
817  // check if trigger names in (new) config
818  if (changed_) {
819 #ifdef EDM_ML_DEBUG
820  edm::LogVerbatim("HcalIsoTrack") << "New trigger menu found !!!";
821 #endif
822  const unsigned int n(hltConfig_.size());
823  for (unsigned itrig = 0; itrig < trigNames_.size(); itrig++) {
824  unsigned int triggerindx = hltConfig_.triggerIndex(trigNames_[itrig]);
825  if (triggerindx >= n) {
826  edm::LogWarning("HcalIsoTrack") << trigNames_[itrig] << " " << triggerindx << " does not exist in "
827  << "the current menu";
828 #ifdef EDM_ML_DEBUG
829  } else {
830  edm::LogVerbatim("HcalIsoTrack") << trigNames_[itrig] << " " << triggerindx << " exists";
831 #endif
832  }
833  }
834  }
835  }
836 }
const std::vector< std::string > trigNames_
Log< level::Info, true > LogVerbatim
unsigned int size() const
number of trigger paths in trigger table
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
HLTConfigProvider hltConfig_
const std::string processName_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
const HcalDDDRecConstants * hdc_
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_ddrec_
Log< level::Warning, false > LogWarning

◆ dR()

double HcalIsoTrkAnalyzer::dR ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 1320 of file HcalIsoTrkAnalyzer.cc.

References reco::deltaR().

Referenced by analyze(), fillTree(), notaMuon(), and trackP().

1320  {
1321  return reco::deltaR(vec1.eta(), vec1.phi(), vec2.eta(), vec2.phi());
1322 }
std::vector< double > vec1
Definition: HCALResponse.h:15
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
std::vector< vec1 > vec2
Definition: HCALResponse.h:16

◆ endRun()

void HcalIsoTrkAnalyzer::endRun ( edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivate

Definition at line 839 of file HcalIsoTrkAnalyzer.cc.

References nRun_, and edm::RunBase::run().

839  {
840  nRun_++;
841  edm::LogVerbatim("HcalIsoTrack") << "endRun[" << nRun_ << "] " << iRun.run();
842 }
Log< level::Info, true > LogVerbatim

◆ eThreshold()

double HcalIsoTrkAnalyzer::eThreshold ( const DetId id,
const CaloGeometry geo 
) const
private

Definition at line 1372 of file HcalIsoTrkAnalyzer.cc.

References funct::abs(), EcalBarrel, PVValHelper::eta, CaloGeometry::getPosition(), hitEthrEB_, hitEthrEE0_, hitEthrEE1_, hitEthrEE2_, hitEthrEE3_, hitEthrEEHi_, hitEthrEELo_, l1ctLayer2EG_cff::id, and usePFThresh_.

Referenced by fillTree().

1372  {
1373  double eThr(hitEthrEB_);
1374  if (usePFThresh_) {
1375  eThr = static_cast<double>((*eThresholds_)[id]);
1376  } else {
1377  const GlobalPoint& pos = geo->getPosition(id);
1378  double eta = std::abs(pos.eta());
1379  if (id.subdetId() != EcalBarrel) {
1380  eThr = (((eta * hitEthrEE3_ + hitEthrEE2_) * eta + hitEthrEE1_) * eta + hitEthrEE0_);
1381  if (eThr < hitEthrEELo_)
1382  eThr = hitEthrEELo_;
1383  else if (eThr > hitEthrEEHi_)
1384  eThr = hitEthrEEHi_;
1385  }
1386  }
1387  return eThr;
1388 }
GlobalPoint getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:50
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ fillDescriptions()

void HcalIsoTrkAnalyzer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 844 of file HcalIsoTrkAnalyzer.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, events, ProducerED_cfi::InputTag, AlCaHLTBitMon_QueryRunRegistry::string, and ClusterTask_cfi::trig.

844  {
846  std::vector<std::string> trig = {"HLT_PFJet40",
847  "HLT_PFJet60",
848  "HLT_PFJet80",
849  "HLT_PFJet140",
850  "HLT_PFJet200",
851  "HLT_PFJet260",
852  "HLT_PFJet320",
853  "HLT_PFJet400",
854  "HLT_PFJet450",
855  "HLT_PFJet500"};
856  desc.add<std::vector<std::string>>("triggers", trig);
857  desc.add<std::string>("processName", "HLT");
858  desc.add<std::string>("l1Filter", "");
859  desc.add<std::string>("l2Filter", "L2Filter");
860  desc.add<std::string>("l3Filter", "Filter");
861  // following 10 parameters are parameters to select good tracks
862  desc.add<std::string>("trackQuality", "highPurity");
863  desc.add<double>("minTrackPt", 1.0);
864  desc.add<double>("maxDxyPV", 0.02);
865  desc.add<double>("maxDzPV", 0.02);
866  desc.add<double>("maxChi2", 5.0);
867  desc.add<double>("maxDpOverP", 0.1);
868  desc.add<int>("minOuterHit", 4);
869  desc.add<int>("minLayerCrossed", 8);
870  desc.add<int>("maxInMiss", 0);
871  desc.add<int>("maxOutMiss", 0);
872  // Minimum momentum of selected isolated track and signal zone
873  desc.add<double>("minimumTrackP", 10.0);
874  desc.add<double>("coneRadius", 34.98);
875  // signal zone in ECAL and MIP energy cutoff
876  desc.add<double>("coneRadiusMIP", 14.0);
877  desc.add<double>("coneRadiusMIP2", 18.0);
878  desc.add<double>("coneRadiusMIP3", 20.0);
879  desc.add<double>("coneRadiusMIP4", 22.0);
880  desc.add<double>("coneRadiusMIP5", 24.0);
881  desc.add<double>("maximumEcalEnergy", 2.0);
882  // following 4 parameters are for isolation cuts and described in the code
883  desc.add<double>("maxTrackP", 8.0);
884  desc.add<double>("slopeTrackP", 0.05090504066);
885  desc.add<double>("isolationEnergyTight", 2.0);
886  desc.add<double>("isolationEnergyLoose", 10.0);
887  // energy thershold for ECAL (from Egamma group)
888  desc.add<double>("EBHitEnergyThreshold", 0.08);
889  desc.add<double>("EEHitEnergyThreshold0", 0.30);
890  desc.add<double>("EEHitEnergyThreshold1", 0.00);
891  desc.add<double>("EEHitEnergyThreshold2", 0.00);
892  desc.add<double>("EEHitEnergyThreshold3", 0.00);
893  desc.add<double>("EEHitEnergyThresholdLow", 0.30);
894  desc.add<double>("EEHitEnergyThresholdHigh", 0.30);
895  // prescale factors
896  desc.add<double>("momentumLow", 40.0);
897  desc.add<double>("momentumHigh", 60.0);
898  desc.add<int>("prescaleLow", 1);
899  desc.add<int>("prescaleHigh", 1);
900  // various labels for collections used in the code
901  desc.add<edm::InputTag>("labelTriggerEvent", edm::InputTag("hltTriggerSummaryAOD", "", "HLT"));
902  desc.add<edm::InputTag>("labelTriggerResult", edm::InputTag("TriggerResults", "", "HLT"));
903  desc.add<std::string>("labelTrack", "generalTracks");
904  desc.add<std::string>("labelVertex", "offlinePrimaryVertices");
905  desc.add<std::string>("labelEBRecHit", "EcalRecHitsEB");
906  desc.add<std::string>("labelEERecHit", "EcalRecHitsEE");
907  desc.add<std::string>("labelHBHERecHit", "hbhereco");
908  desc.add<std::string>("labelBeamSpot", "offlineBeamSpot");
909  desc.add<std::string>("labelCaloTower", "towerMaker");
910  desc.add<std::string>("labelMuon", "muons");
911  desc.add<edm::InputTag>("algInputTag", edm::InputTag("gtStage2Digis"));
912  desc.add<edm::InputTag>("extInputTag", edm::InputTag("gtStage2Digis"));
913  desc.addUntracked<std::string>("moduleName", "");
914  desc.addUntracked<std::string>("producerName", "");
915  // Various flags used for selecting tracks, choice of energy Method2/0
916  // Data type 0/1 for single jet trigger or others
917  desc.addUntracked<int>("useRaw", 0);
918  desc.addUntracked<bool>("ignoreTriggers", false);
919  desc.addUntracked<bool>("useL1Trigger", false);
920  desc.addUntracked<double>("hcalScale", 1.0);
921  desc.addUntracked<int>("dataType", 0);
922  desc.addUntracked<bool>("unCorrect", false);
923  desc.addUntracked<bool>("collapseDepth", false);
924  desc.addUntracked<std::string>("l1TrigName", "L1_SingleJet60");
925  desc.addUntracked<int>("outMode", 11);
926  std::vector<int> dummy;
927  desc.addUntracked<std::vector<int>>("oldID", dummy);
928  desc.addUntracked<std::vector<int>>("newDepth", dummy);
929  desc.addUntracked<bool>("hep17", false);
930  std::vector<int> events;
931  desc.add<std::vector<int>>("debugEvents", events);
932  desc.add<bool>("usePFThreshold", true);
933  descriptions.add("hcalIsoTrkAnalyzer", desc);
934 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)
int events

◆ fillTree()

std::array< int, 3 > HcalIsoTrkAnalyzer::fillTree ( std::vector< math::XYZTLorentzVector > &  vecL1,
std::vector< math::XYZTLorentzVector > &  vecL3,
math::XYZPoint leadPV,
std::vector< spr::propagatedTrackDirection > &  trkCaloDirections,
std::vector< spr::propagatedTrackID > &  trkCaloDets,
const CaloGeometry geo,
const CaloTopology topo,
const HcalTopology theHBHETopology,
const EcalChannelStatus theEcalChStatus,
const EcalSeverityLevelAlgo theEcalSevlv,
edm::Handle< EcalRecHitCollection > &  barrelRecHitsHandle,
edm::Handle< EcalRecHitCollection > &  endcapRecHitsHandle,
edm::Handle< HBHERecHitCollection > &  hbhe,
edm::Handle< CaloTowerCollection > &  towerHandle,
edm::Handle< reco::GenParticleCollection > &  genParticles,
const HcalRespCorrs respCorrs,
const edm::Handle< reco::MuonCollection > &  muonh 
)
private

Definition at line 936 of file HcalIsoTrkAnalyzer.cc.

References a_charIsoR_, a_coneR1_, a_coneR2_, a_coneR_, a_mipR2_, a_mipR3_, a_mipR4_, a_mipR5_, a_mipR_, funct::abs(), accept(), spr::chargeIsolationCone(), spr::chargeIsolationEcal(), debug_, hcalRecHitTable_cff::detId, l1ctLayer1_cff::dr, dR(), spr::eCone_ecal(), spr::eCone_hcal(), spr::eECALmatrix(), eEcalMax_, spr::eHCALmatrix(), eIsolate1_, eIsolate2_, reco::TrackBase::eta(), eThreshold(), JetChargeProducer_cfi::exp, AJJGenJetFilter_cfi::genParticles, spr::goodTrack(), photonIsolationHIProducer_cfi::hbhe, testProducerWithPsetDescEmpty_cfi::i3, edm::HandleBase::isValid(), dqmdumpme::k, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, maxRestrictionP_, newId(), nHigh_, jetSelector_cfi::nLoose, nLow_, notaMuon(), beamSpotPI::nTracks, oldID_, reco::TrackBase::p(), reco::TrackBase::phi(), prescaleHigh_, prescaleLow_, reco::TrackBase::pt(), pTrackHigh_, pTrackLow_, pTrackMin_, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), rhoh(), selectionParameter_, slopeRestrictionP_, storeEnergy(), t_DetIds, t_DetIds1, t_DetIds3, t_eAnnular, t_eHcal, t_eHcal10, t_eHcal30, t_emaxNearP, t_eMipDR, t_eMipDR2, t_eMipDR3, t_eMipDR4, t_eMipDR5, t_EventNo, t_gentrackP, t_hAnnular, t_HitEnergies, t_HitEnergies1, t_HitEnergies3, t_hmaxNearP, t_ieta, t_ietaAll, t_ietaGood, t_iphi, t_mindR1, t_mindR2, t_nTrk, t_p, t_phi, t_pt, t_qltyFlag, t_qltyMissFlag, t_qltyPVFlag, t_rhoh, t_RunNo, t_selectTk, t_trackType, t_trgbits, l1tHGCalTowerProducer_cfi::tower, trackP(), and useRaw_.

Referenced by analyze(), and core.AutoFillTreeProducer.AutoFillTreeProducer::process().

952  {
953  int nSave(0), nLoose(0), nTight(0);
954  //Loop over tracks
955  unsigned int nTracks(0);
956  t_nTrk = trkCaloDirections.size();
957  t_rhoh = (tower.isValid()) ? rhoh(tower) : 0;
958  for (const auto& trkDetItr : trkCaloDirections) {
959  const reco::Track* pTrack = &(*(trkDetItr.trkItr));
960  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
961  t_p = pTrack->p();
962  t_pt = pTrack->pt();
963  t_phi = pTrack->phi();
964 
965 #ifdef EDM_ML_DEBUG
966  if (debug_)
967  edm::LogVerbatim("HcalIsoTrack") << "This track : " << nTracks << " (pt|eta|phi|p) : " << t_pt << "|"
968  << pTrack->eta() << "|" << t_phi << "|" << t_p;
969 #endif
970  t_mindR2 = 999;
971  for (unsigned int k = 0; k < vecL3.size(); ++k) {
972  double dr = dR(vecL3[k], v4);
973  if (dr < t_mindR2) {
974  t_mindR2 = dr;
975  }
976  }
977  t_mindR1 = (!vecL1.empty()) ? dR(vecL1[0], v4) : 999;
978 #ifdef EDM_ML_DEBUG
979  if (debug_)
980  edm::LogVerbatim("HcalIsoTrack") << "Closest L3 object at dr : " << t_mindR2 << " and from L1 " << t_mindR1;
981 #endif
982 
983  t_ieta = t_iphi = 0;
984  if (trkDetItr.okHCAL) {
985  HcalDetId detId = (HcalDetId)(trkDetItr.detIdHCAL);
986  t_ieta = detId.ieta();
987  t_iphi = detId.iphi();
988  if (t_p > 40.0 && t_p <= 60.0)
989  t_ietaAll->emplace_back(t_ieta);
990  }
991  //Selection of good track
992  t_selectTk = spr::goodTrack(pTrack, leadPV, selectionParameter_, false);
994  oneCutParameters.maxDxyPV = 10;
995  oneCutParameters.maxDzPV = 100;
996  oneCutParameters.maxInMiss = 2;
997  oneCutParameters.maxOutMiss = 2;
998  bool qltyFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, false);
999  oneCutParameters = selectionParameter_;
1000  oneCutParameters.maxDxyPV = 10;
1001  oneCutParameters.maxDzPV = 100;
1002  t_qltyMissFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, false);
1003  oneCutParameters = selectionParameter_;
1004  oneCutParameters.maxInMiss = 2;
1005  oneCutParameters.maxOutMiss = 2;
1006  t_qltyPVFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, false);
1007  double eIsolation = maxRestrictionP_ * exp(slopeRestrictionP_ * std::abs((double)t_ieta));
1008  if (eIsolation < eIsolate1_)
1009  eIsolation = eIsolate1_;
1010  if (eIsolation < eIsolate2_)
1011  eIsolation = eIsolate2_;
1012 #ifdef EDM_ML_DEBUG
1013  if (debug_)
1014  edm::LogVerbatim("HcalIsoTrack") << "qltyFlag|okECAL|okHCAL : " << qltyFlag << "|" << trkDetItr.okECAL << "|"
1015  << trkDetItr.okHCAL << " eIsolation " << eIsolation;
1016 #endif
1017  t_qltyFlag = (qltyFlag && trkDetItr.okECAL && trkDetItr.okHCAL);
1018  bool notMuon = (muonh.isValid()) ? notaMuon(pTrack, muonh) : true;
1019  if (t_qltyFlag && notMuon) {
1020  int nNearTRKs(0);
1022  std::vector<DetId> eIds;
1023  std::vector<double> eHit;
1024  t_eMipDR = spr::eCone_ecal(geo,
1025  barrelRecHitsHandle,
1026  endcapRecHitsHandle,
1027  trkDetItr.pointHCAL,
1028  trkDetItr.pointECAL,
1029  a_mipR_,
1030  trkDetItr.directionECAL,
1031  eIds,
1032  eHit);
1033  double eEcal(0);
1034  for (unsigned int k = 0; k < eIds.size(); ++k) {
1035  if (eHit[k] > eThreshold(eIds[k], geo))
1036  eEcal += eHit[k];
1037  }
1038 #ifdef EDM_ML_DEBUG
1039  if (debug_)
1040  edm::LogVerbatim("HcalIsoTrack") << "eMIP before and after: " << t_eMipDR << ":" << eEcal;
1041 #endif
1042  t_eMipDR = eEcal;
1045  std::vector<DetId> eIds2;
1046  std::vector<double> eHit2;
1047  t_eMipDR2 = spr::eCone_ecal(geo,
1048  barrelRecHitsHandle,
1049  endcapRecHitsHandle,
1050  trkDetItr.pointHCAL,
1051  trkDetItr.pointECAL,
1052  a_mipR2_,
1053  trkDetItr.directionECAL,
1054  eIds2,
1055  eHit2);
1056  double eEcal2(0);
1057  for (unsigned int k = 0; k < eIds2.size(); ++k) {
1058  if (eHit2[k] > eThreshold(eIds2[k], geo))
1059  eEcal2 += eHit2[k];
1060  }
1061 #ifdef EDM_ML_DEBUG
1062  if (debug_)
1063  edm::LogVerbatim("HcalIsoTrack") << "eMIP before and after: " << t_eMipDR2 << ":" << eEcal2;
1064 #endif
1065  t_eMipDR2 = eEcal2;
1068  std::vector<DetId> eIds3;
1069  std::vector<double> eHit3;
1070  t_eMipDR3 = spr::eCone_ecal(geo,
1071  barrelRecHitsHandle,
1072  endcapRecHitsHandle,
1073  trkDetItr.pointHCAL,
1074  trkDetItr.pointECAL,
1075  a_mipR3_,
1076  trkDetItr.directionECAL,
1077  eIds3,
1078  eHit3);
1079  double eEcal3(0);
1080  for (unsigned int k = 0; k < eIds3.size(); ++k) {
1081  if (eHit3[k] > eThreshold(eIds3[k], geo))
1082  eEcal3 += eHit3[k];
1083  }
1084 #ifdef EDM_ML_DEBUG
1085  if (debug_)
1086  edm::LogVerbatim("HcalIsoTrack") << "eMIP before and after: " << t_eMipDR3 << ":" << eEcal3;
1087 #endif
1088  t_eMipDR3 = eEcal3;
1091  std::vector<DetId> eIds4;
1092  std::vector<double> eHit4;
1093  t_eMipDR4 = spr::eCone_ecal(geo,
1094  barrelRecHitsHandle,
1095  endcapRecHitsHandle,
1096  trkDetItr.pointHCAL,
1097  trkDetItr.pointECAL,
1098  a_mipR4_,
1099  trkDetItr.directionECAL,
1100  eIds4,
1101  eHit4);
1102  double eEcal4(0);
1103  for (unsigned int k = 0; k < eIds4.size(); ++k) {
1104  if (eHit4[k] > eThreshold(eIds4[k], geo))
1105  eEcal4 += eHit4[k];
1106  }
1107 #ifdef EDM_ML_DEBUG
1108  if (debug_)
1109  edm::LogVerbatim("HcalIsoTrack") << "eMIP before and after: " << t_eMipDR4 << ":" << eEcal4;
1110 #endif
1111  t_eMipDR4 = eEcal4;
1114  std::vector<DetId> eIds5;
1115  std::vector<double> eHit5;
1116  t_eMipDR5 = spr::eCone_ecal(geo,
1117  barrelRecHitsHandle,
1118  endcapRecHitsHandle,
1119  trkDetItr.pointHCAL,
1120  trkDetItr.pointECAL,
1121  a_mipR5_,
1122  trkDetItr.directionECAL,
1123  eIds5,
1124  eHit5);
1125  double eEcal5(0);
1126  for (unsigned int k = 0; k < eIds5.size(); ++k) {
1127  if (eHit5[k] > eThreshold(eIds5[k], geo))
1128  eEcal5 += eHit5[k];
1129  }
1130 #ifdef EDM_ML_DEBUG
1131  if (debug_)
1132  edm::LogVerbatim("HcalIsoTrack") << "eMIP before and after: " << t_eMipDR5 << ":" << eEcal5;
1133 #endif
1134  t_eMipDR5 = eEcal5;
1136 
1137  t_emaxNearP = spr::chargeIsolationEcal(nTracks, trkCaloDets, geo, caloTopology, 15, 15);
1138  const DetId cellE(trkDetItr.detIdECAL);
1139  std::pair<double, bool> e11x11P = spr::eECALmatrix(cellE,
1140  barrelRecHitsHandle,
1141  endcapRecHitsHandle,
1142  *theEcalChStatus,
1143  geo,
1144  caloTopology,
1145  theEcalSevlv,
1146  5,
1147  5,
1148  -100.0,
1149  -100.0,
1150  -100.0,
1151  100.0);
1152  std::pair<double, bool> e15x15P = spr::eECALmatrix(cellE,
1153  barrelRecHitsHandle,
1154  endcapRecHitsHandle,
1155  *theEcalChStatus,
1156  geo,
1157  caloTopology,
1158  theEcalSevlv,
1159  7,
1160  7,
1161  -100.0,
1162  -100.0,
1163  -100.0,
1164  100.0);
1165  if (e11x11P.second && e15x15P.second) {
1166  t_eAnnular = (e15x15P.first - e11x11P.first);
1167  } else {
1168  t_eAnnular = -(e15x15P.first - e11x11P.first);
1169  }
1170  t_hmaxNearP = spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, false);
1171  const DetId cellH(trkDetItr.detIdHCAL);
1172  double h5x5 = spr::eHCALmatrix(
1173  theHBHETopology, cellH, hbhe, 2, 2, false, true, -100.0, -100.0, -100.0, -100.0, -100.0, 100.0);
1174  double h7x7 = spr::eHCALmatrix(
1175  theHBHETopology, cellH, hbhe, 3, 3, false, true, -100.0, -100.0, -100.0, -100.0, -100.0, 100.0);
1176  t_hAnnular = h7x7 - h5x5;
1177 #ifdef EDM_ML_DEBUG
1178  if (debug_)
1179  edm::LogVerbatim("HcalIsoTrack") << "max p Near (Ecal) " << t_emaxNearP << " (Hcal) " << t_hmaxNearP
1180  << " Annular E (Ecal) " << e11x11P.first << ":" << e15x15P.first << ":"
1181  << t_eAnnular << " (Hcal) " << h5x5 << ":" << h7x7 << ":" << t_hAnnular;
1182 #endif
1183  t_gentrackP = trackP(pTrack, genParticles);
1184  if (t_eMipDR < eEcalMax_ && t_hmaxNearP < eIsolation) {
1185  t_DetIds->clear();
1186  t_HitEnergies->clear();
1187  t_DetIds1->clear();
1188  t_HitEnergies1->clear();
1189  t_DetIds3->clear();
1190  t_HitEnergies3->clear();
1191  int nRecHits(-999), nRecHits1(-999), nRecHits3(-999);
1192  std::vector<DetId> ids, ids1, ids3;
1193  std::vector<double> edet0, edet1, edet3;
1194  t_eHcal = spr::eCone_hcal(geo,
1195  hbhe,
1196  trkDetItr.pointHCAL,
1197  trkDetItr.pointECAL,
1198  a_coneR_,
1199  trkDetItr.directionHCAL,
1200  nRecHits,
1201  ids,
1202  edet0,
1203  useRaw_);
1204  if (!oldID_.empty()) {
1205  for (unsigned k = 0; k < ids.size(); ++k)
1206  ids[k] = newId(ids[k]);
1207  }
1208  storeEnergy(0, respCorrs, ids, edet0, t_eHcal, t_DetIds, t_HitEnergies);
1209 
1210  //----- hcal energy in the extended cone 1 (a_coneR+10) --------------
1211  t_eHcal10 = spr::eCone_hcal(geo,
1212  hbhe,
1213  trkDetItr.pointHCAL,
1214  trkDetItr.pointECAL,
1215  a_coneR1_,
1216  trkDetItr.directionHCAL,
1217  nRecHits1,
1218  ids1,
1219  edet1,
1220  useRaw_);
1221  if (!oldID_.empty()) {
1222  for (unsigned k = 0; k < ids1.size(); ++k)
1223  ids1[k] = newId(ids1[k]);
1224  }
1225  storeEnergy(1, respCorrs, ids1, edet1, t_eHcal10, t_DetIds1, t_HitEnergies1);
1226 
1227  //----- hcal energy in the extended cone 3 (a_coneR+30) --------------
1228  t_eHcal30 = spr::eCone_hcal(geo,
1229  hbhe,
1230  trkDetItr.pointHCAL,
1231  trkDetItr.pointECAL,
1232  a_coneR2_,
1233  trkDetItr.directionHCAL,
1234  nRecHits3,
1235  ids3,
1236  edet3,
1237  useRaw_);
1238  if (!oldID_.empty()) {
1239  for (unsigned k = 0; k < ids3.size(); ++k)
1240  ids3[k] = newId(ids3[k]);
1241  }
1242  storeEnergy(3, respCorrs, ids3, edet3, t_eHcal30, t_DetIds3, t_HitEnergies3);
1243 
1244 #ifdef EDM_ML_DEBUG
1245  if (debug_) {
1246  edm::LogVerbatim("HcalIsoTrack")
1247  << "This track : " << nTracks << " (pt|eta|phi|p) : " << t_pt << "|" << pTrack->eta() << "|" << t_phi
1248  << "|" << t_p << " Generator Level p " << t_gentrackP;
1249  edm::LogVerbatim("HcalIsoTrack")
1250  << "e_MIP " << t_eMipDR << " Chg Isolation " << t_hmaxNearP << " eHcal" << t_eHcal << " ieta " << t_ieta
1251  << " Quality " << t_qltyMissFlag << ":" << t_qltyPVFlag << ":" << t_selectTk;
1252  for (unsigned int ll = 0; ll < t_DetIds->size(); ll++) {
1253  edm::LogVerbatim("HcalIsoTrack")
1254  << "det id is = " << HcalDetId(t_DetIds->at(ll)) << " hit enery is = " << t_HitEnergies->at(ll);
1255  }
1256  for (unsigned int ll = 0; ll < t_DetIds1->size(); ll++) {
1257  edm::LogVerbatim("HcalIsoTrack")
1258  << "det id is = " << HcalDetId(t_DetIds1->at(ll)) << " hit enery is = " << t_HitEnergies1->at(ll);
1259  }
1260  for (unsigned int ll = 0; ll < t_DetIds3->size(); ll++) {
1261  edm::LogVerbatim("HcalIsoTrack")
1262  << "det id is = " << HcalDetId(t_DetIds3->at(ll)) << " hit enery is = " << t_HitEnergies3->at(ll);
1263  }
1264  }
1265 #endif
1266  bool accept(false);
1267  if (t_p > pTrackMin_) {
1268  if (t_p < pTrackLow_) {
1269  ++nLow_;
1270  if (prescaleLow_ <= 1)
1271  accept = true;
1272  else if (nLow_ % prescaleLow_ == 1)
1273  accept = true;
1274  } else if (t_p > pTrackHigh_) {
1275  ++nHigh_;
1276  if (prescaleHigh_ <= 1)
1277  accept = true;
1278  else if (nHigh_ % prescaleHigh_ == 1)
1279  accept = true;
1280  } else {
1281  accept = true;
1282  }
1283  }
1284  if (accept) {
1285  tree->Fill();
1286  edm::LogVerbatim("HcalIsoTrackX")
1287  << "Run " << t_RunNo << " Event " << t_EventNo << " Track " << nTracks << " p " << t_p;
1288  nSave++;
1289  int type(0);
1290  if (t_eMipDR < 1.0) {
1291  if (t_hmaxNearP < eIsolate2_) {
1292  ++nLoose;
1293  type = 1;
1294  }
1295  if (t_hmaxNearP < eIsolate1_) {
1296  ++nTight;
1297  type = 2;
1298  }
1299  }
1300  if (t_p > 40.0 && t_p <= 60.0 && t_selectTk) {
1301  t_ietaGood->emplace_back(t_ieta);
1302  t_trackType->emplace_back(type);
1303  }
1304 #ifdef EDM_ML_DEBUG
1305  if (debug_) {
1306  for (unsigned int k = 0; k < t_trgbits->size(); k++) {
1307  edm::LogVerbatim("HcalIsoTrack") << "trigger bit is = " << t_trgbits->at(k);
1308  }
1309  }
1310 #endif
1311  }
1312  }
1313  }
1314  ++nTracks;
1315  }
1316  std::array<int, 3> i3{{nSave, nLoose, nTight}};
1317  return i3;
1318 }
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
Log< level::Info, true > LogVerbatim
spr::trackSelectionParameters selectionParameter_
const double maxRestrictionP_
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
std::vector< int > * t_ietaAll
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
std::vector< double > * t_HitEnergies
double chargeIsolationCone(unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
void storeEnergy(int indx, const HcalRespCorrs *respCorrs, const std::vector< DetId > &ids, std::vector< double > &edet, double &eHcal, std::vector< unsigned int > *detIds, std::vector< double > *hitEnergies)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
std::vector< unsigned int > * t_DetIds
std::vector< double > * t_HitEnergies1
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
std::vector< double > * t_HitEnergies3
double trackP(const reco::Track *, const edm::Handle< reco::GenParticleCollection > &)
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
double eCone_ecal(const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
std::vector< bool > * t_trgbits
const double slopeRestrictionP_
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
Definition: DetId.h:17
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
double rhoh(const edm::Handle< CaloTowerCollection > &)
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
bool isValid() const
Definition: HandleBase.h:70
std::vector< unsigned int > * t_DetIds1
Definition: tree.py:1
std::vector< int > * t_ietaGood
std::vector< unsigned int > * t_DetIds3
double eThreshold(const DetId &id, const CaloGeometry *geo) const
const std::vector< int > oldID_
bool notaMuon(const reco::Track *pTrack0, const edm::Handle< reco::MuonCollection > &muonh)
DetId newId(const DetId &)
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
std::vector< int > * t_trackType

◆ newId()

DetId HcalIsoTrkAnalyzer::newId ( const DetId id)
private

Definition at line 1390 of file HcalIsoTrkAnalyzer.cc.

References HcalDetId::depth(), hep17_, l1ctLayer2EG_cff::id, HcalDetId::ieta(), HcalDetId::ietaAbs(), HcalDetId::iphi(), dqmdumpme::k, newDepth_, oldDepth_, oldDet_, oldEta_, oldID_, HcalDetId::subdet(), DetId::subdetId(), and HcalDetId::zside().

Referenced by fillTree().

1390  {
1391  HcalDetId hid(id);
1392  if (hep17_ && ((hid.iphi() < 63) || (hid.iphi() > 66) || (hid.zside() < 0)))
1393  return id;
1394  for (unsigned int k = 0; k < oldID_.size(); ++k) {
1395  if ((hid.subdetId() == oldDet_[k]) && (hid.ietaAbs() == oldEta_[k]) && (hid.depth() == oldDepth_[k])) {
1396  return static_cast<DetId>(HcalDetId(hid.subdet(), hid.ieta(), hid.iphi(), newDepth_[k]));
1397  }
1398  }
1399  return id;
1400 }
std::vector< int > oldEta_
std::vector< int > oldDepth_
Definition: DetId.h:17
std::vector< int > oldDet_
const std::vector< int > newDepth_
const std::vector< int > oldID_

◆ notaMuon()

bool HcalIsoTrkAnalyzer::notaMuon ( const reco::Track pTrack0,
const edm::Handle< reco::MuonCollection > &  muonh 
)
private

Definition at line 1463 of file HcalIsoTrkAnalyzer.cc.

References reco::deltaR(), dR(), reco::TrackBase::eta(), RemoveAddSevLevel::flag, reco::TrackBase::phi(), and muon::segmentCompatibility().

Referenced by fillTree().

1463  {
1464  bool flag(true);
1465  for (reco::MuonCollection::const_iterator recMuon = muonh->begin(); recMuon != muonh->end(); ++recMuon) {
1466  if (recMuon->innerTrack().isNonnull()) {
1467  const reco::Track* pTrack = (recMuon->innerTrack()).get();
1468  bool mediumMuon = (((recMuon->isPFMuon()) && (recMuon->isGlobalMuon() || recMuon->isTrackerMuon())) &&
1469  (recMuon->innerTrack()->validFraction() > 0.49));
1470  if (mediumMuon) {
1471  double chiGlobal = ((recMuon->globalTrack().isNonnull()) ? recMuon->globalTrack()->normalizedChi2() : 999);
1472  bool goodGlob = (recMuon->isGlobalMuon() && chiGlobal < 3 &&
1473  recMuon->combinedQuality().chi2LocalPosition < 12 && recMuon->combinedQuality().trkKink < 20);
1474  mediumMuon = muon::segmentCompatibility(*recMuon) > (goodGlob ? 0.303 : 0.451);
1475  }
1476  if (mediumMuon) {
1477  double dR = reco::deltaR(pTrack->eta(), pTrack->phi(), pTrack0->eta(), pTrack0->phi());
1478  if (dR < 0.1) {
1479  flag = false;
1480  break;
1481  }
1482  }
1483  }
1484  }
1485  return flag;
1486 }
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)

◆ rhoh()

double HcalIsoTrkAnalyzer::rhoh ( const edm::Handle< CaloTowerCollection > &  tower)
private

Definition at line 1340 of file HcalIsoTrkAnalyzer.cc.

References debug_, reco::deltaPhi(), PVValHelper::eta, etabins_, etadist_, etahalfdist_, phi, phibins_, phidist_, phihalfdist_, jetUpdater_cfi::sort, and l1tHGCalTowerProducer_cfi::tower.

Referenced by fillTree().

1340  {
1341  std::vector<double> sumPFNallSMDQH2;
1342  sumPFNallSMDQH2.reserve(phibins_.size() * etabins_.size());
1343 
1344  for (auto eta : etabins_) {
1345  for (auto phi : phibins_) {
1346  double hadder = 0;
1347  for (const auto& pf_it : (*tower)) {
1348  if (fabs(eta - pf_it.eta()) > etahalfdist_)
1349  continue;
1350  if (fabs(reco::deltaPhi(phi, pf_it.phi())) > phihalfdist_)
1351  continue;
1352  hadder += pf_it.hadEt();
1353  }
1354  sumPFNallSMDQH2.emplace_back(hadder);
1355  }
1356  }
1357 
1358  double evt_smdq(0);
1359  std::sort(sumPFNallSMDQH2.begin(), sumPFNallSMDQH2.end());
1360  if (sumPFNallSMDQH2.size() % 2)
1361  evt_smdq = sumPFNallSMDQH2[(sumPFNallSMDQH2.size() - 1) / 2];
1362  else
1363  evt_smdq = (sumPFNallSMDQH2[sumPFNallSMDQH2.size() / 2] + sumPFNallSMDQH2[(sumPFNallSMDQH2.size() - 2) / 2]) / 2.;
1364  double rhoh = evt_smdq / (etadist_ * phidist_);
1365 #ifdef EDM_ML_DEBUG
1366  if (debug_)
1367  edm::LogVerbatim("HcalIsoTrack") << "Rho " << evt_smdq << ":" << rhoh;
1368 #endif
1369  return rhoh;
1370 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
Log< level::Info, true > LogVerbatim
std::vector< double > etabins_
std::vector< double > phibins_
double rhoh(const edm::Handle< CaloTowerCollection > &)

◆ storeEnergy()

void HcalIsoTrkAnalyzer::storeEnergy ( int  indx,
const HcalRespCorrs respCorrs,
const std::vector< DetId > &  ids,
std::vector< double > &  edet,
double &  eHcal,
std::vector< unsigned int > *  detIds,
std::vector< double > *  hitEnergies 
)
private

Definition at line 1402 of file HcalIsoTrkAnalyzer.cc.

References funct::abs(), collapseDepth_, alignCSCRings::corr, debug_, reco::JetExtendedAssociation::getValue(), HcalCondObjectContainer< Item >::getValues(), hcalScale_, hdc_, l1ctLayer2EG_cff::id, dqmdumpme::k, HcalDDDRecConstants::mergedDepthDetId(), nano_mu_digi_cff::rawId, and unCorrect_.

Referenced by fillTree().

1408  {
1409  double ehcal(0);
1410  if (unCorrect_) {
1411  for (unsigned int k = 0; k < ids.size(); ++k) {
1412  double corr = (respCorrs->getValues(ids[k]))->getValue();
1413  if (corr != 0)
1414  edet[k] /= corr;
1415  ehcal += edet[k];
1416  }
1417  } else {
1418  for (const auto& en : edet)
1419  ehcal += en;
1420  }
1421  if ((std::abs(ehcal - eHcal) > 0.001) && (!unCorrect_))
1422  edm::LogWarning("HcalIsoTrack") << "Check inconsistent energies: " << indx << " " << eHcal << ":" << ehcal
1423  << " from " << ids.size() << " cells";
1424  eHcal = hcalScale_ * ehcal;
1425 
1426  if (collapseDepth_) {
1427  std::map<HcalDetId, double> hitMap;
1428  for (unsigned int k = 0; k < ids.size(); ++k) {
1429  HcalDetId id = hdc_->mergedDepthDetId(HcalDetId(ids[k]));
1430  auto itr = hitMap.find(id);
1431  if (itr == hitMap.end()) {
1432  hitMap[id] = edet[k];
1433  } else {
1434  (itr->second) += edet[k];
1435  }
1436  }
1437  detIds->reserve(hitMap.size());
1438  hitEnergies->reserve(hitMap.size());
1439  for (const auto& hit : hitMap) {
1440  detIds->emplace_back(hit.first.rawId());
1441  hitEnergies->emplace_back(hit.second);
1442  }
1443  } else {
1444  detIds->reserve(ids.size());
1445  hitEnergies->reserve(ids.size());
1446  for (unsigned int k = 0; k < ids.size(); ++k) {
1447  detIds->emplace_back(ids[k].rawId());
1448  hitEnergies->emplace_back(edet[k]);
1449  }
1450  }
1451 #ifdef EDM_ML_DEBUG
1452  if (debug_) {
1453  edm::LogVerbatim("HcalIsoTrack") << "Input to storeEnergy with " << ids.size() << " cells";
1454  for (unsigned int k = 0; k < ids.size(); ++k)
1455  edm::LogVerbatim("HcalIsoTrack") << "Hit [" << k << "] " << HcalDetId(ids[k]) << " E " << edet[k];
1456  edm::LogVerbatim("HcalIsoTrack") << "Output of storeEnergy with " << detIds->size() << " cells and Etot " << eHcal;
1457  for (unsigned int k = 0; k < detIds->size(); ++k)
1458  edm::LogVerbatim("HcalIsoTrack") << "Hit [" << k << "] " << HcalDetId((*detIds)[k]) << " E " << (*hitEnergies)[k];
1459  }
1460 #endif
1461 }
Log< level::Info, true > LogVerbatim
HcalDetId mergedDepthDetId(const HcalDetId &id) const
const Item * getValues(DetId fId, bool throwOnFail=true) const
dictionary corr
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const HcalDDDRecConstants * hdc_
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found
Log< level::Warning, false > LogWarning

◆ trackP()

double HcalIsoTrkAnalyzer::trackP ( const reco::Track pTrack,
const edm::Handle< reco::GenParticleCollection > &  genParticles 
)
private

Definition at line 1324 of file HcalIsoTrkAnalyzer.cc.

References reco::deltaR(), dR(), reco::TrackBase::eta(), AJJGenJetFilter_cfi::genParticles, AlCaHLTBitMon_ParallelJobs::p, and reco::TrackBase::phi().

Referenced by fillTree().

1325  {
1326  double pmom = -1.0;
1327  if (genParticles.isValid()) {
1328  double mindR(999.9);
1329  for (const auto& p : (*genParticles)) {
1330  double dR = reco::deltaR(pTrack->eta(), pTrack->phi(), p.momentum().Eta(), p.momentum().Phi());
1331  if (dR < mindR) {
1332  mindR = dR;
1333  pmom = p.momentum().R();
1334  }
1335  }
1336  }
1337  return pmom;
1338 }
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)

Member Data Documentation

◆ a_charIsoR_

double HcalIsoTrkAnalyzer::a_charIsoR_
private

Definition at line 184 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_coneR1_

double HcalIsoTrkAnalyzer::a_coneR1_
private

Definition at line 184 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_coneR2_

double HcalIsoTrkAnalyzer::a_coneR2_
private

Definition at line 184 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_coneR_

const double HcalIsoTrkAnalyzer::a_coneR_
private

Definition at line 137 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_mipR2_

const double HcalIsoTrkAnalyzer::a_mipR2_
private

Definition at line 137 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_mipR3_

const double HcalIsoTrkAnalyzer::a_mipR3_
private

Definition at line 137 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_mipR4_

const double HcalIsoTrkAnalyzer::a_mipR4_
private

Definition at line 138 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_mipR5_

const double HcalIsoTrkAnalyzer::a_mipR5_
private

Definition at line 138 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ a_mipR_

const double HcalIsoTrkAnalyzer::a_mipR_
private

Definition at line 137 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ algTag_

const edm::InputTag HcalIsoTrkAnalyzer::algTag_
private

Definition at line 157 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ collapseDepth_

const bool HcalIsoTrkAnalyzer::collapseDepth_
private

Definition at line 145 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and storeEnergy().

◆ dataType_

const int HcalIsoTrkAnalyzer::dataType_
private

Definition at line 143 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ debEvents_

const std::vector<int> HcalIsoTrkAnalyzer::debEvents_
private

Definition at line 154 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ debug_

bool HcalIsoTrkAnalyzer::debug_
private

Definition at line 214 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), fillTree(), rhoh(), and storeEnergy().

◆ eEcalMax_

const double HcalIsoTrkAnalyzer::eEcalMax_
private

Definition at line 138 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ eIsolate1_

const double HcalIsoTrkAnalyzer::eIsolate1_
private

Definition at line 140 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ eIsolate2_

const double HcalIsoTrkAnalyzer::eIsolate2_
private

Definition at line 140 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ etabins_

std::vector<double> HcalIsoTrkAnalyzer::etabins_
private

Definition at line 188 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ etadist_

double HcalIsoTrkAnalyzer::etadist_
private

Definition at line 190 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ etahalfdist_

double HcalIsoTrkAnalyzer::etahalfdist_
private

Definition at line 190 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ eThresholds_

const EcalPFRecHitThresholds* HcalIsoTrkAnalyzer::eThresholds_
private

Definition at line 186 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ extTag_

const edm::InputTag HcalIsoTrkAnalyzer::extTag_
private

Definition at line 157 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ hcalScale_

const double HcalIsoTrkAnalyzer::hcalScale_
private

Definition at line 140 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and storeEnergy().

◆ hdc_

const HcalDDDRecConstants* HcalIsoTrkAnalyzer::hdc_
private

Definition at line 185 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginRun(), and storeEnergy().

◆ hep17_

const bool HcalIsoTrkAnalyzer::hep17_
private

Definition at line 153 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and newId().

◆ hitEthrEB_

const double HcalIsoTrkAnalyzer::hitEthrEB_
private

Definition at line 146 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEE0_

const double HcalIsoTrkAnalyzer::hitEthrEE0_
private

Definition at line 146 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEE1_

const double HcalIsoTrkAnalyzer::hitEthrEE1_
private

Definition at line 146 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEE2_

const double HcalIsoTrkAnalyzer::hitEthrEE2_
private

Definition at line 147 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEE3_

const double HcalIsoTrkAnalyzer::hitEthrEE3_
private

Definition at line 147 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEEHi_

const double HcalIsoTrkAnalyzer::hitEthrEEHi_
private

Definition at line 148 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hitEthrEELo_

const double HcalIsoTrkAnalyzer::hitEthrEELo_
private

Definition at line 148 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ hltConfig_

HLTConfigProvider HcalIsoTrkAnalyzer::hltConfig_
private

Definition at line 131 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginRun().

◆ ignoreTrigger_

const bool HcalIsoTrkAnalyzer::ignoreTrigger_
private

Definition at line 144 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginRun(), and HcalIsoTrkAnalyzer().

◆ l1Filter_

const std::string HcalIsoTrkAnalyzer::l1Filter_
private

Definition at line 135 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ l1GtUtils_

l1t::L1TGlobalUtil* HcalIsoTrkAnalyzer::l1GtUtils_
private

Definition at line 130 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ l1TrigName_

const std::string HcalIsoTrkAnalyzer::l1TrigName_
private

Definition at line 151 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ l2Filter_

const std::string HcalIsoTrkAnalyzer::l2Filter_
private

Definition at line 136 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ l3Filter_

const std::string HcalIsoTrkAnalyzer::l3Filter_
private

Definition at line 136 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ labelBS_

const std::string HcalIsoTrkAnalyzer::labelBS_
private

Definition at line 156 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ labelEB_

const std::string HcalIsoTrkAnalyzer::labelEB_
private

Definition at line 150 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ labelEE_

const std::string HcalIsoTrkAnalyzer::labelEE_
private

Definition at line 151 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ labelGenTrack_

const std::string HcalIsoTrkAnalyzer::labelGenTrack_
private

Definition at line 150 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ labelHBHE_

const std::string HcalIsoTrkAnalyzer::labelHBHE_
private

Definition at line 151 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ labelMuon_

const std::string HcalIsoTrkAnalyzer::labelMuon_
private

Definition at line 156 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ labelRecVtx_

const std::string HcalIsoTrkAnalyzer::labelRecVtx_
private

Definition at line 150 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ labelTower_

const std::string HcalIsoTrkAnalyzer::labelTower_
private

Definition at line 151 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ maxRestrictionP_

const double HcalIsoTrkAnalyzer::maxRestrictionP_
private

Definition at line 139 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ mode_

const int HcalIsoTrkAnalyzer::mode_
private

Definition at line 143 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ modnam_

const std::string HcalIsoTrkAnalyzer::modnam_
private

Definition at line 156 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ newDepth_

const std::vector<int> HcalIsoTrkAnalyzer::newDepth_
private

Definition at line 152 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and newId().

◆ nHigh_

unsigned int HcalIsoTrkAnalyzer::nHigh_
private

Definition at line 183 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree().

◆ nLow_

unsigned int HcalIsoTrkAnalyzer::nLow_
private

Definition at line 183 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree().

◆ nRun_

unsigned int HcalIsoTrkAnalyzer::nRun_
private

Definition at line 183 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginRun(), and endRun().

◆ oldDepth_

std::vector<int> HcalIsoTrkAnalyzer::oldDepth_
private

Definition at line 189 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and newId().

◆ oldDet_

std::vector<int> HcalIsoTrkAnalyzer::oldDet_
private

Definition at line 189 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and newId().

◆ oldEta_

std::vector<int> HcalIsoTrkAnalyzer::oldEta_
private

Definition at line 189 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and newId().

◆ oldID_

const std::vector<int> HcalIsoTrkAnalyzer::oldID_
private

Definition at line 152 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), HcalIsoTrkAnalyzer(), and newId().

◆ phibins_

std::vector<double> HcalIsoTrkAnalyzer::phibins_
private

Definition at line 188 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ phidist_

double HcalIsoTrkAnalyzer::phidist_
private

Definition at line 190 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ phihalfdist_

double HcalIsoTrkAnalyzer::phihalfdist_
private

Definition at line 190 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and rhoh().

◆ prdnam_

const std::string HcalIsoTrkAnalyzer::prdnam_
private

Definition at line 156 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ prescaleHigh_

const int HcalIsoTrkAnalyzer::prescaleHigh_
private

Definition at line 142 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ prescaleLow_

const int HcalIsoTrkAnalyzer::prescaleLow_
private

Definition at line 142 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ processName_

const std::string HcalIsoTrkAnalyzer::processName_
private

Definition at line 135 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginRun(), and HcalIsoTrkAnalyzer().

◆ pTrackHigh_

const double HcalIsoTrkAnalyzer::pTrackHigh_
private

Definition at line 141 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ pTrackLow_

const double HcalIsoTrkAnalyzer::pTrackLow_
private

Definition at line 141 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ pTrackMin_

const double HcalIsoTrkAnalyzer::pTrackMin_
private

Definition at line 138 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ selectionParameter_

spr::trackSelectionParameters HcalIsoTrkAnalyzer::selectionParameter_
private

Definition at line 133 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ slopeRestrictionP_

const double HcalIsoTrkAnalyzer::slopeRestrictionP_
private

Definition at line 139 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().

◆ t_allvertex

int HcalIsoTrkAnalyzer::t_allvertex
private

Definition at line 211 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_DataType

int HcalIsoTrkAnalyzer::t_DataType
private

Definition at line 194 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_DetIds

std::vector<unsigned int>* HcalIsoTrkAnalyzer::t_DetIds
private

Definition at line 206 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_DetIds1

std::vector<unsigned int> * HcalIsoTrkAnalyzer::t_DetIds1
private

Definition at line 206 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_DetIds3

std::vector<unsigned int> * HcalIsoTrkAnalyzer::t_DetIds3
private

Definition at line 206 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eAnnular

double HcalIsoTrkAnalyzer::t_eAnnular
private

Definition at line 202 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eHcal

double HcalIsoTrkAnalyzer::t_eHcal
private

Definition at line 203 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eHcal10

double HcalIsoTrkAnalyzer::t_eHcal10
private

Definition at line 203 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eHcal30

double HcalIsoTrkAnalyzer::t_eHcal30
private

Definition at line 203 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_emaxNearP

double HcalIsoTrkAnalyzer::t_emaxNearP
private

Definition at line 202 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eMipDR

double HcalIsoTrkAnalyzer::t_eMipDR
private

Definition at line 200 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eMipDR2

double HcalIsoTrkAnalyzer::t_eMipDR2
private

Definition at line 200 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eMipDR3

double HcalIsoTrkAnalyzer::t_eMipDR3
private

Definition at line 200 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eMipDR4

double HcalIsoTrkAnalyzer::t_eMipDR4
private

Definition at line 200 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_eMipDR5

double HcalIsoTrkAnalyzer::t_eMipDR5
private

Definition at line 201 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_Event

int HcalIsoTrkAnalyzer::t_Event
private

Definition at line 194 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_EventNo

unsigned int HcalIsoTrkAnalyzer::t_EventNo
private

Definition at line 193 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_EventWeight

double HcalIsoTrkAnalyzer::t_EventWeight
private

Definition at line 196 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_gentrackP

double HcalIsoTrkAnalyzer::t_gentrackP
private

Definition at line 201 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_goodPV

int HcalIsoTrkAnalyzer::t_goodPV
private

Definition at line 195 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_hAnnular

double HcalIsoTrkAnalyzer::t_hAnnular
private

Definition at line 202 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_HitEnergies

std::vector<double>* HcalIsoTrkAnalyzer::t_HitEnergies
private

Definition at line 207 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_HitEnergies1

std::vector<double> * HcalIsoTrkAnalyzer::t_HitEnergies1
private

Definition at line 207 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_HitEnergies3

std::vector<double> * HcalIsoTrkAnalyzer::t_HitEnergies3
private

Definition at line 207 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_hltbits

std::vector<bool> * HcalIsoTrkAnalyzer::t_hltbits
private

Definition at line 208 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_hmaxNearP

double HcalIsoTrkAnalyzer::t_hmaxNearP
private

Definition at line 201 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_ieta

int HcalIsoTrkAnalyzer::t_ieta
private

Definition at line 194 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_ietaAll

std::vector<int>* HcalIsoTrkAnalyzer::t_ietaAll
private

Definition at line 212 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_ietaGood

std::vector<int> * HcalIsoTrkAnalyzer::t_ietaGood
private

Definition at line 212 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_iphi

int HcalIsoTrkAnalyzer::t_iphi
private

Definition at line 194 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_L1Bit

bool HcalIsoTrkAnalyzer::t_L1Bit
private

Definition at line 209 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l1eta

double HcalIsoTrkAnalyzer::t_l1eta
private

Definition at line 197 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l1phi

double HcalIsoTrkAnalyzer::t_l1phi
private

Definition at line 197 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l1pt

double HcalIsoTrkAnalyzer::t_l1pt
private

Definition at line 197 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l3eta

double HcalIsoTrkAnalyzer::t_l3eta
private

Definition at line 198 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l3phi

double HcalIsoTrkAnalyzer::t_l3phi
private

Definition at line 198 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_l3pt

double HcalIsoTrkAnalyzer::t_l3pt
private

Definition at line 198 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_mindR1

double HcalIsoTrkAnalyzer::t_mindR1
private

Definition at line 199 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_mindR2

double HcalIsoTrkAnalyzer::t_mindR2
private

Definition at line 199 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_nTrk

int HcalIsoTrkAnalyzer::t_nTrk
private

Definition at line 195 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_nVtx

int HcalIsoTrkAnalyzer::t_nVtx
private

Definition at line 195 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_p

double HcalIsoTrkAnalyzer::t_p
private

Definition at line 196 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_phi

double HcalIsoTrkAnalyzer::t_phi
private

Definition at line 196 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_pt

double HcalIsoTrkAnalyzer::t_pt
private

Definition at line 196 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_qltyFlag

bool HcalIsoTrkAnalyzer::t_qltyFlag
private

Definition at line 204 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_qltyMissFlag

bool HcalIsoTrkAnalyzer::t_qltyMissFlag
private

Definition at line 204 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_qltyPVFlag

bool HcalIsoTrkAnalyzer::t_qltyPVFlag
private

Definition at line 205 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_rhoh

double HcalIsoTrkAnalyzer::t_rhoh
private

Definition at line 203 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_Run

int HcalIsoTrkAnalyzer::t_Run
private

Definition at line 194 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_RunNo

unsigned int HcalIsoTrkAnalyzer::t_RunNo
private

Definition at line 193 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_selectTk

bool HcalIsoTrkAnalyzer::t_selectTk
private

Definition at line 204 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginJob(), and fillTree().

◆ t_Tracks

int HcalIsoTrkAnalyzer::t_Tracks
private

Definition at line 210 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_TracksLoose

int HcalIsoTrkAnalyzer::t_TracksLoose
private

Definition at line 211 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_TracksProp

int HcalIsoTrkAnalyzer::t_TracksProp
private

Definition at line 210 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_TracksSaved

int HcalIsoTrkAnalyzer::t_TracksSaved
private

Definition at line 210 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_TracksTight

int HcalIsoTrkAnalyzer::t_TracksTight
private

Definition at line 211 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_trackType

std::vector<int> * HcalIsoTrkAnalyzer::t_trackType
private

Definition at line 212 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_trgbits

std::vector<bool>* HcalIsoTrkAnalyzer::t_trgbits
private

Definition at line 208 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginJob(), and fillTree().

◆ t_TrigPass

bool HcalIsoTrkAnalyzer::t_TrigPass
private

Definition at line 205 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ t_TrigPassSel

bool HcalIsoTrkAnalyzer::t_TrigPassSel
private

Definition at line 205 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ theTrackQuality_

const std::string HcalIsoTrkAnalyzer::theTrackQuality_
private

Definition at line 134 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ theTriggerResultsLabel_

const edm::InputTag HcalIsoTrkAnalyzer::theTriggerResultsLabel_
private

Definition at line 149 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer().

◆ tok_alg_

const edm::EDGetTokenT<BXVector<GlobalAlgBlk> > HcalIsoTrkAnalyzer::tok_alg_
private

Definition at line 170 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_bFieldH_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> HcalIsoTrkAnalyzer::tok_bFieldH_
private

Definition at line 174 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_bs_

const edm::EDGetTokenT<reco::BeamSpot> HcalIsoTrkAnalyzer::tok_bs_
private

Definition at line 163 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_cala_

const edm::EDGetTokenT<CaloTowerCollection> HcalIsoTrkAnalyzer::tok_cala_
private

Definition at line 168 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_caloTopology_

const edm::ESGetToken<CaloTopology, CaloTopologyRecord> HcalIsoTrkAnalyzer::tok_caloTopology_
private

Definition at line 178 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_ddrec_

const edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> HcalIsoTrkAnalyzer::tok_ddrec_
private

Definition at line 173 of file HcalIsoTrkAnalyzer.cc.

Referenced by beginRun().

◆ tok_EB_

const edm::EDGetTokenT<EcalRecHitCollection> HcalIsoTrkAnalyzer::tok_EB_
private

Definition at line 165 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_ecalChStatus_

const edm::ESGetToken<EcalChannelStatus, EcalChannelStatusRcd> HcalIsoTrkAnalyzer::tok_ecalChStatus_
private

Definition at line 175 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_ecalPFRecHitThresholds_

const edm::ESGetToken<EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd> HcalIsoTrkAnalyzer::tok_ecalPFRecHitThresholds_
private

Definition at line 181 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_EE_

const edm::EDGetTokenT<EcalRecHitCollection> HcalIsoTrkAnalyzer::tok_EE_
private

Definition at line 166 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_ew_

const edm::EDGetTokenT<GenEventInfoProduct> HcalIsoTrkAnalyzer::tok_ew_
private

Definition at line 169 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_genTrack_

const edm::EDGetTokenT<reco::TrackCollection> HcalIsoTrkAnalyzer::tok_genTrack_
private

Definition at line 162 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_geom_

const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> HcalIsoTrkAnalyzer::tok_geom_
private

Definition at line 177 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_hbhe_

const edm::EDGetTokenT<HBHERecHitCollection> HcalIsoTrkAnalyzer::tok_hbhe_
private

Definition at line 167 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_htopo_

const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> HcalIsoTrkAnalyzer::tok_htopo_
private

Definition at line 179 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_Muon_

const edm::EDGetTokenT<reco::MuonCollection> HcalIsoTrkAnalyzer::tok_Muon_
private

Definition at line 171 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_parts_

const edm::EDGetTokenT<reco::GenParticleCollection> HcalIsoTrkAnalyzer::tok_parts_
private

Definition at line 161 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_recVtx_

const edm::EDGetTokenT<reco::VertexCollection> HcalIsoTrkAnalyzer::tok_recVtx_
private

Definition at line 164 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_resp_

const edm::ESGetToken<HcalRespCorrs, HcalRespCorrsRcd> HcalIsoTrkAnalyzer::tok_resp_
private

Definition at line 180 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_sevlv_

const edm::ESGetToken<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd> HcalIsoTrkAnalyzer::tok_sevlv_
private

Definition at line 176 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_trigEvt_

const edm::EDGetTokenT<trigger::TriggerEvent> HcalIsoTrkAnalyzer::tok_trigEvt_
private

Definition at line 159 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tok_trigRes_

const edm::EDGetTokenT<edm::TriggerResults> HcalIsoTrkAnalyzer::tok_trigRes_
private

Definition at line 160 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze().

◆ tree

TTree* HcalIsoTrkAnalyzer::tree
private

◆ tree2

TTree * HcalIsoTrkAnalyzer::tree2
private

Definition at line 192 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ triggerEvent_

const edm::InputTag HcalIsoTrkAnalyzer::triggerEvent_
private

Definition at line 149 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ trigNames_

const std::vector<std::string> HcalIsoTrkAnalyzer::trigNames_
private

Definition at line 132 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), beginRun(), and HcalIsoTrkAnalyzer().

◆ unCorrect_

const bool HcalIsoTrkAnalyzer::unCorrect_
private

Definition at line 145 of file HcalIsoTrkAnalyzer.cc.

Referenced by HcalIsoTrkAnalyzer(), and storeEnergy().

◆ useL1Trigger_

const bool HcalIsoTrkAnalyzer::useL1Trigger_
private

Definition at line 144 of file HcalIsoTrkAnalyzer.cc.

Referenced by analyze(), and HcalIsoTrkAnalyzer().

◆ usePFThresh_

const bool HcalIsoTrkAnalyzer::usePFThresh_
private

Definition at line 155 of file HcalIsoTrkAnalyzer.cc.

Referenced by eThreshold(), and HcalIsoTrkAnalyzer().

◆ useRaw_

const int HcalIsoTrkAnalyzer::useRaw_
private

Definition at line 143 of file HcalIsoTrkAnalyzer.cc.

Referenced by fillTree(), and HcalIsoTrkAnalyzer().