CMS 3D CMS Logo

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

Public Member Functions

 HcalHBHEMuonHighEtaAnalyzer (const edm::ParameterSet &)
 
- 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 noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept 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 noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~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

double activeLength (const DetId &)
 
void analyze (edm::Event const &, edm::EventSetup const &) override
 
bool analyzeHadron (edm::Event const &, math::XYZPoint &)
 
bool analyzeMuon (edm::Event const &, math::XYZPoint &)
 
bool analyzeTracks (const reco::Track *, math::XYZPoint &, int, std::vector< spr::propagatedTrackID > &, bool)
 
void beginJob () override
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void clearVectors ()
 
int depth16HE (int, int)
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void fillTrackParameters (const reco::Track *, math::XYZPoint)
 
double gainFactor (const HcalDbService *, const HcalDetId &)
 
bool goodCell (const HcalDetId &, const reco::Track *, const CaloGeometry *, const MagneticField *)
 
bool isGoodVertex (const reco::Vertex &)
 
int matchId (const HcalDetId &, const HcalDetId &)
 
double respCorr (const DetId &)
 

Private Attributes

std::vector< HcalDDDRecConstants::HcalActiveLengthactHB
 
std::vector< HcalDDDRecConstants::HcalActiveLengthactHE
 
const bool analyzeMuon_
 
edm::Handle< EcalRecHitCollectionbarrelRecHitsHandle_
 
const MagneticFieldbField_
 
const CaloTopologycaloTopology_
 
const bool collapseDepth_
 
const HcalDbServiceconditions_
 
std::map< DetId, double > corrValue_
 
std::vector< double > ecal3x3Energy_
 
std::vector< unsigned int > ecalDetId_
 
std::vector< double > ecalEnergy_
 
std::vector< unsigned int > ehcalDetId_
 
std::vector< double > emaxNearP_
 
const double emaxNearPThr_
 
edm::Handle< EcalRecHitCollectionendcapRecHitsHandle_
 
std::vector< double > energyMuon_
 
std::vector< double > etaGlob_
 
const double etaMin_
 
unsigned int eventNumber_
 
const std::string fileInCorr_
 
const CaloGeometrygeo_
 
const bool getCharge_
 
unsigned int goodVertex_
 
edm::Handle< HBHERecHitCollectionhbhe_
 
std::vector< double > hcal1x1Energy_
 
std::vector< int > hcal_ieta_
 
std::vector< int > hcal_iphi_
 
std::vector< double > hcalActiveLength_
 
std::vector< double > hcalActiveLengthHot_
 
std::vector< double > hcalDepthActiveLength_ [depthMax_]
 
std::vector< double > hcalDepthActiveLengthHot_ [depthMax_]
 
std::vector< double > hcalDepthChargeHot_ [depthMax_]
 
std::vector< double > hcalDepthChargeHotBG_ [depthMax_]
 
std::vector< double > hcalDepthEnergy_ [depthMax_]
 
std::vector< double > hcalDepthEnergyCorr_ [depthMax_]
 
std::vector< double > hcalDepthEnergyHot_ [depthMax_]
 
std::vector< double > hcalDepthEnergyHotCorr_ [depthMax_]
 
std::vector< bool > hcalDepthMatch_ [depthMax_]
 
std::vector< bool > hcalDepthMatchHot_ [depthMax_]
 
std::vector< unsigned int > hcalDetId_
 
std::vector< double > hcalEnergy_
 
std::vector< bool > hcalHot_
 
const HcalDDDRecConstantshdc_
 
std::vector< double > hoEnergy_
 
const bool ignoreHECorr_
 
const bool isItPlan1_
 
const bool isItPreRecHit_
 
std::vector< double > isolationR03_
 
std::vector< double > isolationR04_
 
int kount_
 
const edm::InputTag labelEBRecHit_
 
const edm::InputTag labelEERecHit_
 
const std::string labelGenTrack_
 
const edm::InputTag labelHBHERecHit_
 
const std::string labelMuon_
 
const std::string labelVtx_
 
std::vector< bool > matchedId_
 
const int maxDepth_
 
std::vector< bool > mediumMuon_
 
bool mergedDepth_
 
std::vector< double > phiGlob_
 
std::vector< double > pMuon_
 
std::vector< double > ptGlob_
 
HcalRespCorrsrespCorrs_
 
unsigned int runNumber_
 
spr::trackSelectionParameters selectionParameter_
 
const EcalSeverityLevelAlgosevlv_
 
const EcalChannelStatustheEcalChStatus_
 
const HcalTopologytheHBHETopology_
 
const std::string theTrackQuality_
 
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcdtok_chan_
 
const edm::ESGetToken< HcalDbService, HcalDbRecordtok_dbservice_
 
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtok_ddrec_
 
const edm::EDGetTokenT< EcalRecHitCollectiontok_EB_
 
const edm::EDGetTokenT< EcalRecHitCollectiontok_EE_
 
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::ESGetToken< MagneticField, IdealMagneticFieldRecordtok_magField_
 
const edm::EDGetTokenT< reco::MuonCollectiontok_Muon_
 
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcdtok_respcorr_
 
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcdtok_sevlv_
 
const edm::ESGetToken< CaloTopology, CaloTopologyRecordtok_topo_
 
const edm::EDGetTokenT< reco::VertexCollectiontok_Vtx_
 
std::vector< double > trackDz_
 
std::vector< int > trackLayerCrossed_
 
std::vector< int > trackMissedInnerHits_
 
std::vector< int > trackMissedOuterHits_
 
std::vector< int > trackOuterHit_
 
TTree * tree_
 
const bool unCorrect_
 
bool useMyCorr_
 
const int useRaw_
 
const int verbosity_
 
const bool writeRespCorr_
 

Static Private Attributes

static const int depthMax_ = 7
 

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 72 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Constructor & Destructor Documentation

◆ HcalHBHEMuonHighEtaAnalyzer()

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

Definition at line 174 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References collapseDepth_, corrValue_, fileInCorr_, getCharge_, edm::ParameterSet::getUntrackedParameter(), l1ctLayer2EG_cff::id, ignoreHECorr_, timingPdfMaker::infile, isItPlan1_, isItPreRecHit_, kount_, TFileService::kSharedResource, labelEBRecHit_, labelEERecHit_, labelGenTrack_, labelHBHERecHit_, labelMuon_, labelVtx_, spr::trackSelectionParameters::maxChi2, spr::trackSelectionParameters::maxDpOverP, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, mergedDepth_, spr::trackSelectionParameters::minLayerCrossed, spr::trackSelectionParameters::minOuterHit, spr::trackSelectionParameters::minPt, spr::trackSelectionParameters::minQuality, reco::TrackBase::qualityByName(), selectionParameter_, theTrackQuality_, StandaloneTrackMonitor_cfi::trackQuality, unCorrect_, useMyCorr_, and useRaw_.

175  : labelEBRecHit_(iConfig.getParameter<edm::InputTag>("labelEBRecHit")),
176  labelEERecHit_(iConfig.getParameter<edm::InputTag>("labelEERecHit")),
177  labelHBHERecHit_(iConfig.getParameter<edm::InputTag>("labelHBHERecHit")),
178  labelVtx_(iConfig.getParameter<std::string>("labelVertex")),
179  labelMuon_(iConfig.getParameter<std::string>("labelMuon")),
180  labelGenTrack_(iConfig.getParameter<std::string>("labelTrack")),
181  etaMin_(iConfig.getParameter<double>("etaMin")),
182  emaxNearPThr_(iConfig.getParameter<double>("emaxNearPThreshold")),
183  analyzeMuon_(iConfig.getParameter<bool>("analyzeMuon")),
184  unCorrect_(iConfig.getParameter<bool>("unCorrect")),
185  collapseDepth_(iConfig.getParameter<bool>("collapseDepth")),
186  isItPlan1_(iConfig.getParameter<bool>("isItPlan1")),
187  getCharge_(iConfig.getParameter<bool>("getCharge")),
188  useRaw_(iConfig.getParameter<int>("useRaw")),
189  verbosity_(iConfig.getParameter<int>("verbosity")),
190  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("trackQuality")),
191  fileInCorr_(iConfig.getUntrackedParameter<std::string>("fileInCorr", "")),
192  ignoreHECorr_(iConfig.getUntrackedParameter<bool>("ignoreHECorr", false)),
193  isItPreRecHit_(iConfig.getUntrackedParameter<bool>("isItPreRecHit", false)),
194  writeRespCorr_(iConfig.getUntrackedParameter<bool>("writeRespCorr", false)),
195  maxDepth_(iConfig.getUntrackedParameter<int>("maxDepth", 7)),
196  tok_Vtx_(consumes<reco::VertexCollection>(labelVtx_)),
197  tok_EB_(consumes<EcalRecHitCollection>(labelEBRecHit_)),
198  tok_EE_(consumes<EcalRecHitCollection>(labelEERecHit_)),
199  tok_HBHE_(consumes<HBHERecHitCollection>(labelHBHERecHit_)),
200  tok_Muon_(consumes<reco::MuonCollection>(labelMuon_)),
201  tok_genTrack_(consumes<reco::TrackCollection>(labelGenTrack_)),
202  tok_ddrec_(esConsumes<HcalDDDRecConstants, HcalRecNumberingRecord, edm::Transition::BeginRun>()),
203  tok_htopo_(esConsumes<HcalTopology, HcalRecNumberingRecord, edm::Transition::BeginRun>()),
204  tok_respcorr_(esConsumes<HcalRespCorrs, HcalRespCorrsRcd, edm::Transition::BeginRun>()),
205  tok_geom_(esConsumes<CaloGeometry, CaloGeometryRecord, edm::Transition::BeginRun>()),
206  tok_magField_(esConsumes<MagneticField, IdealMagneticFieldRecord>()),
207  tok_chan_(esConsumes<EcalChannelStatus, EcalChannelStatusRcd>()),
208  tok_sevlv_(esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>()),
209  tok_topo_(esConsumes<CaloTopology, CaloTopologyRecord>()),
210  tok_dbservice_(esConsumes<HcalDbService, HcalDbRecord>()),
211  hdc_(nullptr),
212  theHBHETopology_(nullptr),
213  respCorrs_(nullptr),
214  tree_(nullptr) {
215  usesResource(TFileService::kSharedResource);
216  //now do what ever initialization is needed
217  kount_ = 0;
218 
220  selectionParameter_.minPt = iConfig.getUntrackedParameter<double>("minTrackPt");
222  selectionParameter_.maxDxyPV = iConfig.getUntrackedParameter<double>("maxDxyPV");
223  selectionParameter_.maxDzPV = iConfig.getUntrackedParameter<double>("maxDzPV");
224  selectionParameter_.maxChi2 = iConfig.getUntrackedParameter<double>("maxChi2");
225  selectionParameter_.maxDpOverP = iConfig.getUntrackedParameter<double>("maxDpOverP");
228 
230  edm::LogVerbatim("HBHEMuon") << "Labels used: Track " << labelGenTrack_ << " Vtx " << labelVtx_ << " EB "
231  << labelEBRecHit_ << " EE " << labelEERecHit_ << " HBHE " << labelHBHERecHit_ << " MU "
232  << labelMuon_;
233 
234  if (!fileInCorr_.empty()) {
235  std::ifstream infile(fileInCorr_.c_str());
236  if (infile.is_open()) {
237  while (true) {
238  unsigned int id;
239  double cfac;
240  infile >> id >> cfac;
241  if (!infile.good())
242  break;
243  corrValue_[DetId(id)] = cfac;
244  }
245  infile.close();
246  }
247  }
248  useMyCorr_ = (!corrValue_.empty());
249  edm::LogVerbatim("HBHEMuon") << "Flags used: UseRaw " << useRaw_ << " GetCharge " << getCharge_ << " UnCorrect "
250  << unCorrect_ << " IgnoreHECorr " << ignoreHECorr_ << " CollapseDepth " << collapseDepth_
251  << ":" << mergedDepth_ << " IsItPlan1 " << isItPlan1_ << " IsItPreRecHit "
252  << isItPreRecHit_ << " UseMyCorr " << useMyCorr_;
253 }
static const std::string kSharedResource
Definition: TFileService.h:76
Log< level::Info, true > LogVerbatim
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
spr::trackSelectionParameters selectionParameter_
const edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
TrackQuality
track quality
Definition: TrackBase.h:150
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_topo_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_htopo_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
T getUntrackedParameter(std::string const &, T const &) const
const edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
const edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_chan_
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcd > tok_respcorr_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_ddrec_
Definition: DetId.h:17
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
const edm::ESGetToken< HcalDbService, HcalDbRecord > tok_dbservice_
reco::TrackBase::TrackQuality minQuality
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_

Member Function Documentation

◆ activeLength()

double HcalHBHEMuonHighEtaAnalyzer::activeLength ( const DetId hid)
private

Definition at line 925 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References actHB, actHE, hcalRecHitTable_cff::depth, spr::find(), HcalBarrel, hdc_, mps_fire::i, l1ctLayer2EG_cff::id, hcalRecHitTable_cff::ieta, hcalRecHitTable_cff::iphi, mergedDepth_, HcalDDDRecConstants::unmergeDepthDetId(), and ecaldqm::zside().

Referenced by analyzeTracks(), and beginRun().

925  {
926  HcalDetId id(hid);
927  int ieta = id.ietaAbs();
928  int zside = id.zside();
929  int iphi = id.iphi();
930  std::vector<int> dpths;
931  if (mergedDepth_) {
932  std::vector<HcalDetId> ids;
933  hdc_->unmergeDepthDetId(id, ids);
934  for (auto idh : ids)
935  dpths.emplace_back(idh.depth());
936  } else {
937  dpths.emplace_back(id.depth());
938  }
939  double lx(0);
940  if (id.subdet() == HcalBarrel) {
941  for (unsigned int i = 0; i < actHB.size(); ++i) {
942  if ((ieta == actHB[i].ieta) && (zside == actHB[i].zside) &&
943  (std::find(dpths.begin(), dpths.end(), actHB[i].depth) != dpths.end()) &&
944  (std::find(actHB[i].iphis.begin(), actHB[i].iphis.end(), iphi) != actHB[i].iphis.end())) {
945  lx += actHB[i].thick;
946  }
947  }
948  } else {
949  for (unsigned int i = 0; i < actHE.size(); ++i) {
950  if ((ieta == actHE[i].ieta) && (zside == actHE[i].zside) &&
951  (std::find(dpths.begin(), dpths.end(), actHE[i].depth) != dpths.end()) &&
952  (std::find(actHE[i].iphis.begin(), actHE[i].iphis.end(), iphi) != actHE[i].iphis.end())) {
953  lx += actHE[i].thick;
954  }
955  }
956  }
957  return lx;
958 }
std::vector< HcalDDDRecConstants::HcalActiveLength > actHE
int zside(DetId const &)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< HcalDDDRecConstants::HcalActiveLength > actHB
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 354 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References accept(), analyzeHadron(), analyzeMuon(), analyzeMuon_, barrelRecHitsHandle_, bField_, caloTopology_, clearVectors(), conditions_, depthMax_, ecal3x3Energy_, ecalDetId_, ecalEnergy_, ehcalDetId_, emaxNearP_, endcapRecHitsHandle_, energyMuon_, etaGlob_, eventNumber_, edm::EventSetup::getData(), goodVertex_, hbhe_, hcal1x1Energy_, hcal_ieta_, hcal_iphi_, hcalActiveLength_, hcalActiveLengthHot_, hcalDepthActiveLength_, hcalDepthActiveLengthHot_, hcalDepthChargeHot_, hcalDepthChargeHotBG_, hcalDepthEnergy_, hcalDepthEnergyCorr_, hcalDepthEnergyHot_, hcalDepthEnergyHotCorr_, hcalDepthMatch_, hcalDepthMatchHot_, hcalDetId_, hcalEnergy_, hcalHot_, hoEnergy_, mps_fire::i, iEvent, isGoodVertex(), isolationR03_, isolationR04_, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, kount_, matchedId_, mediumMuon_, phiGlob_, pMuon_, ptGlob_, runNumber_, sevlv_, theEcalChStatus_, tok_chan_, tok_dbservice_, tok_EB_, tok_EE_, tok_HBHE_, tok_magField_, tok_sevlv_, tok_topo_, tok_Vtx_, trackDz_, trackLayerCrossed_, trackMissedInnerHits_, trackMissedOuterHits_, trackOuterHit_, tree_, verbosity_, and L1BJetProducer_cff::vtx.

354  {
355  ++kount_;
356  clearVectors();
357  runNumber_ = iEvent.id().run();
358  eventNumber_ = iEvent.id().event();
359 #ifdef EDM_ML_DEBUG
360  edm::LogVerbatim("HBHEMuon") << "Run " << runNumber_ << " Event " << eventNumber_;
361 #endif
362 
363  // get handles to calogeometry and calotopology
364  bField_ = &iSetup.getData(tok_magField_);
365  theEcalChStatus_ = &iSetup.getData(tok_chan_);
366  sevlv_ = &iSetup.getData(tok_sevlv_);
367  caloTopology_ = &iSetup.getData(tok_topo_);
368  conditions_ = &iSetup.getData(tok_dbservice_);
369 
370  // Relevant blocks from iEvent
372 
373  iEvent.getByToken(tok_EB_, barrelRecHitsHandle_);
374  iEvent.getByToken(tok_EE_, endcapRecHitsHandle_);
375  iEvent.getByToken(tok_HBHE_, hbhe_);
376 
377  // require a good vertex
378  math::XYZPoint pvx;
379  goodVertex_ = 0;
380  if (!vtx.isValid()) {
381 #ifdef EDM_ML_DEBUG
382  edm::LogVerbatim("HBHEMuon") << "No Good Vertex found == Reject\n";
383 #endif
384  return;
385  }
386 
387  reco::VertexCollection::const_iterator firstGoodVertex = vtx->end();
388  for (reco::VertexCollection::const_iterator it = vtx->begin(); it != vtx->end(); it++) {
389  if (isGoodVertex(*it)) {
390  if (firstGoodVertex == vtx->end())
391  firstGoodVertex = it;
392  ++goodVertex_;
393  }
394  }
395  if (firstGoodVertex != vtx->end())
396  pvx = firstGoodVertex->position();
397 
398  bool accept(false);
399  if (barrelRecHitsHandle_.isValid() && endcapRecHitsHandle_.isValid() && hbhe_.isValid()) {
401  }
402  if (accept) {
403 #ifdef EDM_ML_DEBUG
404  edm::LogVerbatim("HBHEMuon") << "Total of " << hcal_ieta_.size() << " propagated points";
405  for (unsigned int i = 0; i < hcal_ieta_.size(); ++i)
406  edm::LogVerbatim("HBHEMuon") << "[" << i << "] ieta/iphi for entry to "
407  << "HCAL has value of " << hcal_ieta_[i] << ":" << hcal_iphi_[i];
408  if ((verbosity_ / 100) % 10 > 0) {
409  edm::LogVerbatim("HBHEMuon") << "Sizes:: ptGlob:" << ptGlob_.size() << " etaGlob:" << etaGlob_.size()
410  << " phiGlob:" << phiGlob_.size() << " energyMuon:" << energyMuon_.size()
411  << " pMuon:" << pMuon_.size() << " mediumMuon: " << mediumMuon_.size()
412  << " isolation:" << isolationR04_.size() << ":" << isolationR03_.size()
413  << " e|h|ho energy: " << ecalEnergy_.size() << ":" << hcalEnergy_.size() << ":"
414  << hoEnergy_.size();
415  edm::LogVerbatim("HBHEMuon") << " matchedId:" << matchedId_.size() << " hcalHot:" << hcalHot_.size()
416  << " 3x3|1x1 energy:" << ecal3x3Energy_.size() << ":" << hcal1x1Energy_.size()
417  << " detId:" << ecalDetId_.size() << ":" << hcalDetId_.size() << ":"
418  << ehcalDetId_.size() << " eta|phi:" << hcal_ieta_.size() << ":"
419  << hcal_iphi_.size();
420  edm::LogVerbatim("HBHEMuon") << " activeLength:" << hcalActiveLength_.size() << ":"
421  << hcalActiveLengthHot_.size() << " emaxNearP:" << emaxNearP_.size()
422  << " trackDz: " << trackDz_.size() << " tracks:" << trackLayerCrossed_.size() << ":"
423  << trackOuterHit_.size() << ":" << trackMissedInnerHits_.size() << ":"
424  << trackMissedOuterHits_.size();
425  for (unsigned int i = 0; i < depthMax_; ++i)
426  edm::LogVerbatim("HBHEMuon")
427  << "Depth " << i
428  << " Energy|Length|EnergyHot|LengthHot|Charge|ChargeBG|EnergyCorr|EnergyHotCorr|Match|MatchHot:"
429  << hcalDepthEnergy_[i].size() << ":" << hcalDepthActiveLength_[i].size() << ":"
430  << hcalDepthEnergyHot_[i].size() << ":" << hcalDepthActiveLengthHot_[i].size() << ":"
431  << hcalDepthChargeHot_[i].size() << ":" << hcalDepthChargeHotBG_[i].size() << ":"
432  << hcalDepthEnergyCorr_[i].size() << ":" << hcalDepthEnergyHotCorr_[i].size() << ":"
433  << hcalDepthMatch_[i].size() << ":" << hcalDepthMatchHot_[i].size();
434  }
435 #endif
436  tree_->Fill();
437  }
438 }
Log< level::Info, true > LogVerbatim
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
const EcalChannelStatus * theEcalChStatus_
edm::Handle< HBHERecHitCollection > hbhe_
const edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
std::vector< double > hcalDepthEnergyCorr_[depthMax_]
std::vector< double > hcalDepthEnergy_[depthMax_]
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_topo_
const EcalSeverityLevelAlgo * sevlv_
std::vector< bool > hcalDepthMatchHot_[depthMax_]
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
bool analyzeMuon(edm::Event const &, math::XYZPoint &)
std::vector< unsigned int > hcalDetId_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
std::vector< double > hcalDepthChargeHotBG_[depthMax_]
bool isGoodVertex(const reco::Vertex &)
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_chan_
std::vector< double > hcalDepthEnergyHot_[depthMax_]
std::vector< double > hcalDepthActiveLength_[depthMax_]
std::vector< double > hcalDepthEnergyHotCorr_[depthMax_]
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
const edm::ESGetToken< HcalDbService, HcalDbRecord > tok_dbservice_
std::vector< unsigned int > ehcalDetId_
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
std::vector< double > hcalDepthChargeHot_[depthMax_]
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
std::vector< bool > hcalDepthMatch_[depthMax_]
std::vector< unsigned int > ecalDetId_
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
bool analyzeHadron(edm::Event const &, math::XYZPoint &)

◆ analyzeHadron()

bool HcalHBHEMuonHighEtaAnalyzer::analyzeHadron ( edm::Event const &  iEvent,
math::XYZPoint leadPV 
)
private

Definition at line 556 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References funct::abs(), accept(), analyzeTracks(), bField_, reco::TrackBase::eta(), etaMin_, geo_, iEvent, edm::HandleBase::isValid(), l1ctLayer1_cff::nTrack, spr::propagateCALO(), theTrackQuality_, and tok_genTrack_.

Referenced by analyze().

556  {
557  //Get track collection
558  edm::Handle<reco::TrackCollection> trkCollection = iEvent.getHandle(tok_genTrack_);
559  bool accept = false;
560 
561  if (!trkCollection.isValid()) {
562  std::vector<spr::propagatedTrackID> trkCaloDets;
563  spr::propagateCALO(trkCollection, geo_, bField_, theTrackQuality_, trkCaloDets, false);
564  int nTrack(0);
565  std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
566  for (trkDetItr = trkCaloDets.begin(), nTrack = 0; trkDetItr != trkCaloDets.end(); trkDetItr++, nTrack++) {
567  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
568  if (std::abs(pTrack->eta()) > etaMin_) {
569  accept = analyzeTracks(pTrack, leadPV, nTrack, trkCaloDets, true);
570  }
571  }
572  }
573  return accept;
574 }
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
int iEvent
Definition: GenABIO.cc:224
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
bool analyzeTracks(const reco::Track *, math::XYZPoint &, int, std::vector< spr::propagatedTrackID > &, bool)
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
bool isValid() const
Definition: HandleBase.h:70

◆ analyzeMuon()

bool HcalHBHEMuonHighEtaAnalyzer::analyzeMuon ( edm::Event const &  iEvent,
math::XYZPoint leadPV 
)
private

Definition at line 493 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References funct::abs(), accept(), analyzeTracks(), ecalEnergy_, energyMuon_, reco::TrackBase::eta(), etaGlob_, etaMin_, hcalEnergy_, hoEnergy_, iEvent, isolationR03_, isolationR04_, edm::HandleBase::isValid(), SiStripPI::max, mediumMuon_, l1ctLayer1_cff::nTrack, phiGlob_, pMuon_, edm::Handle< T >::product(), ptGlob_, muon::segmentCompatibility(), tok_Muon_, and verbosity_.

Referenced by analyze().

493  {
494  const edm::Handle<reco::MuonCollection>& _Muon = iEvent.getHandle(tok_Muon_);
495  bool accept = false;
496 
497  if (_Muon.isValid()) {
498  int nTrack(0);
499  std::vector<spr::propagatedTrackID> trkCaloDets;
500  for (const auto& RecMuon : (*(_Muon.product()))) {
501  if (RecMuon.innerTrack().isNonnull()) {
502  const reco::Track* pTrack = (RecMuon.innerTrack()).get();
503  if (std::abs(pTrack->eta()) > etaMin_) {
504  if (analyzeTracks(pTrack, leadPV, nTrack, trkCaloDets, false)) {
505  accept = true;
506  ptGlob_.emplace_back(RecMuon.pt());
507  etaGlob_.emplace_back(RecMuon.eta());
508  phiGlob_.emplace_back(RecMuon.phi());
509  energyMuon_.push_back(RecMuon.energy());
510  pMuon_.emplace_back(RecMuon.p());
511  bool mediumMuon = (((RecMuon.isPFMuon()) && (RecMuon.isGlobalMuon() || RecMuon.isTrackerMuon())) &&
512  (RecMuon.innerTrack()->validFraction() > 0.49));
513  if (mediumMuon) {
514  double chiGlobal = ((RecMuon.globalTrack().isNonnull()) ? RecMuon.globalTrack()->normalizedChi2() : 999);
515  bool goodGlob =
516  (RecMuon.isGlobalMuon() && chiGlobal < 3 && RecMuon.combinedQuality().chi2LocalPosition < 12 &&
517  RecMuon.combinedQuality().trkKink < 20);
518  mediumMuon = muon::segmentCompatibility(RecMuon) > (goodGlob ? 0.303 : 0.451);
519  }
520  mediumMuon_.emplace_back(mediumMuon);
521  bool isoR03 =
522  ((RecMuon.pfIsolationR03().sumChargedHadronPt +
523  std::max(0.,
524  RecMuon.pfIsolationR03().sumNeutralHadronEt + RecMuon.pfIsolationR03().sumPhotonEt -
525  (0.5 * RecMuon.pfIsolationR03().sumPUPt))) /
526  RecMuon.pt());
527  bool isoR04 =
528  ((RecMuon.pfIsolationR04().sumChargedHadronPt +
529  std::max(0.,
530  RecMuon.pfIsolationR04().sumNeutralHadronEt + RecMuon.pfIsolationR04().sumPhotonEt -
531  (0.5 * RecMuon.pfIsolationR04().sumPUPt))) /
532  RecMuon.pt());
533  isolationR03_.emplace_back(isoR03);
534  isolationR04_.emplace_back(isoR04);
535 
536  ecalEnergy_.emplace_back(RecMuon.calEnergy().emS9);
537  hcalEnergy_.emplace_back(RecMuon.calEnergy().hadS9);
538  hoEnergy_.emplace_back(RecMuon.calEnergy().hoS9);
539 #ifdef EDM_ML_DEBUG
540  if ((verbosity_ / 100) % 10 > 0)
541  edm::LogVerbatim("HBHEMuon")
542  << "Muon[" << ptGlob_.size() << "] pt:eta:phi:p " << ptGlob_.back() << ":" << etaGlob_.back() << ":"
543  << phiGlob_.back() << ":" << energyMuon_.back() << ":" << pMuon_.back() << ":"
544  << " Medium:i3:i4 " << mediumMuon_.back() << ":" << isolationR03_.back() << ":"
545  << isolationR04_.back() << ":"
546  << " Energy EC:HC:HO " << ecalEnergy_.back() << ":" << hcalEnergy_.back() << ":" << hoEnergy_.back();
547 #endif
548  }
549  }
550  }
551  }
552  }
553  return accept;
554 }
T const * product() const
Definition: Handle.h:70
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
bool analyzeTracks(const reco::Track *, math::XYZPoint &, int, std::vector< spr::propagatedTrackID > &, bool)
bool isValid() const
Definition: HandleBase.h:70

◆ analyzeTracks()

bool HcalHBHEMuonHighEtaAnalyzer::analyzeTracks ( const reco::Track pTrack,
math::XYZPoint leadPV,
int  nTrack,
std::vector< spr::propagatedTrackID > &  trkCaloDets,
bool  ifHadron 
)
private

Definition at line 576 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References funct::abs(), accept(), activeLength(), barrelRecHitsHandle_, bField_, caloTopology_, spr::chargeIsolationEcal(), RPCNoise_example::check, chg, collapseDepth_, conditions_, alignCSCRings::corr, TauDecayModes::dec, hcalRecHitTable_cff::depth, depth16HE(), depthMax_, spr::propagatedTrackID::detIdECAL, spr::propagatedTrackID::detIdEHCAL, spr::propagatedTrackID::detIdHCAL, ecal3x3Energy_, ecalDetId_, spr::eECALmatrix(), ehcalDetId_, spr::eHCALmatrix(), emaxNearP_, emaxNearPThr_, endcapRecHitsHandle_, spr::energyHCALCell(), fillTrackParameters(), PedestalClient_cfi::gain, gainFactor(), geo_, getCharge_, goodCell(), spr::goodTrack(), hbhe_, hcal1x1Energy_, hcal_ieta_, hcal_iphi_, hcalActiveLength_, hcalActiveLengthHot_, HcalBarrel, hcalDepthActiveLength_, hcalDepthActiveLengthHot_, hcalDepthChargeHot_, hcalDepthChargeHotBG_, hcalDepthEnergy_, hcalDepthEnergyCorr_, hcalDepthEnergyHot_, hcalDepthEnergyHotCorr_, hcalDepthMatch_, hcalDepthMatchHot_, hcalDetId_, HcalEndcap, hcalHot_, hdc_, mps_fire::i, hcalRecHitTable_cff::ieta, HcalDetId::ieta(), ignoreHECorr_, info(), hcalRecHitTable_cff::iphi, HcalDetId::iphi(), isItPlan1_, isItPreRecHit_, dqmdumpme::k, matchedId_, matchId(), maxDepth_, HcalDDDRecConstants::mergedDepthDetId(), l1ctLayer1_cff::nTrack, spr::propagatedTrackID::okECAL, spr::propagatedTrackID::okHCAL, spr::propagateCALO(), spr::propagateHCALBack(), DetId::rawId(), respCorr(), edm::second(), selectionParameter_, sevlv_, HcalDetId::subdet(), theEcalChStatus_, theHBHETopology_, unCorrect_, useRaw_, HcalTopology::validHcal(), and verbosity_.

Referenced by analyzeHadron(), and analyzeMuon().

580  {
581  bool accept(false);
582 
583  if (spr::goodTrack(pTrack, leadPV, selectionParameter_, false)) {
584  spr::propagatedTrackID trackID = spr::propagateCALO(pTrack, geo_, bField_, false);
585 
586  if (trackID.okECAL && trackID.okHCAL) {
587  double emaxNearP = (ifHadron) ? spr::chargeIsolationEcal(nTrack, trkCaloDets, geo_, caloTopology_, 15, 15) : 0;
588  if (emaxNearP < emaxNearPThr_) {
589  double eEcal(0), eHcal(0), activeLengthTot(0), activeLengthHotTot(0);
590  double eHcalDepth[depthMax_], eHcalDepthHot[depthMax_];
591  double eHcalDepthC[depthMax_], eHcalDepthHotC[depthMax_];
592  double cHcalDepthHot[depthMax_], cHcalDepthHotBG[depthMax_];
593  double activeL[depthMax_], activeHotL[depthMax_];
594  bool matchDepth[depthMax_], matchDepthHot[depthMax_];
595  HcalDetId eHcalDetId[depthMax_];
596  unsigned int isHot(0);
597  bool tmpmatch(false);
598  int ieta(-1000), iphi(-1000);
599  for (int i = 0; i < depthMax_; ++i) {
600  eHcalDepth[i] = eHcalDepthHot[i] = 0;
601  eHcalDepthC[i] = eHcalDepthHotC[i] = 0;
602  cHcalDepthHot[i] = cHcalDepthHotBG[i] = 0;
603  activeL[i] = activeHotL[i] = 0;
604  matchDepth[i] = matchDepthHot[i] = true;
605  }
606 
608  std::pair<bool, HcalDetId> info = spr::propagateHCALBack(pTrack, geo_, bField_, false);
609  if (info.first)
610  check = info.second;
611 
612  const DetId isoCell(trackID.detIdECAL);
613  std::pair<double, bool> e3x3 = spr::eECALmatrix(isoCell,
617  geo_,
619  sevlv_,
620  1,
621  1,
622  -100.0,
623  -100.0,
624  -500.0,
625  500.0,
626  false);
627  eEcal = e3x3.first;
628 #ifdef EDM_ML_DEBUG
629  if (verbosity_ % 10 > 0)
630  edm::LogVerbatim("HBHEMuon") << "Propagate Track to ECAL: " << e3x3.second << ":" << trackID.okECAL << " E "
631  << eEcal;
632 #endif
633 
634  DetId closestCell(trackID.detIdHCAL);
635  HcalDetId hcidt(closestCell.rawId());
636  if ((hcidt.ieta() == check.ieta()) && (hcidt.iphi() == check.iphi()))
637  tmpmatch = true;
638 #ifdef EDM_ML_DEBUG
639  if (verbosity_ % 10 > 0)
640  edm::LogVerbatim("HBHEMuon") << "Front " << hcidt << " Back " << info.first << ":" << check << " Match "
641  << tmpmatch;
642 #endif
643 
644  HcalSubdetector subdet = hcidt.subdet();
645  ieta = hcidt.ieta();
646  iphi = hcidt.iphi();
647  bool hborhe = (std::abs(ieta) == 16);
648 
650  closestCell,
651  hbhe_,
652  0,
653  0,
654  false,
655  true,
656  -100.0,
657  -100.0,
658  -100.0,
659  -100.0,
660  -500.,
661  500.,
662  useRaw_);
663  std::vector<std::pair<double, int>> ehdepth;
664  spr::energyHCALCell((HcalDetId)closestCell,
665  hbhe_,
666  ehdepth,
667  depthMax_,
668  -100.0,
669  -100.0,
670  -100.0,
671  -100.0,
672  -500.0,
673  500.0,
674  useRaw_,
675  depth16HE(ieta, iphi),
676  false);
677  for (int i = 0; i < depthMax_; ++i)
678  eHcalDetId[i] = HcalDetId();
679  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
680  HcalSubdetector subdet0 =
681  (hborhe) ? ((ehdepth[i].second >= depth16HE(ieta, iphi)) ? HcalEndcap : HcalBarrel) : subdet;
682  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
683  double actL = activeLength(DetId(hcid0));
684  double ene = ehdepth[i].first;
685  bool tmpC(false);
686  if (ene > 0.0) {
687  if (!(theHBHETopology_->validHcal(hcid0))) {
688  edm::LogWarning("HBHEMuon") << "(1) Invalid ID " << hcid0 << " with E = " << ene;
689  edm::LogWarning("HBHEMuon") << HcalDetId(closestCell) << " with " << ehdepth.size() << " depths:";
690  for (const auto& ehd : ehdepth)
691  edm::LogWarning("HBHEMuon") << " " << ehd.second << ":" << ehd.first;
692  } else {
693  tmpC = goodCell(hcid0, pTrack, geo_, bField_);
694  double enec(ene);
695  if (unCorrect_) {
696  double corr = (ignoreHECorr_ && (subdet0 == HcalEndcap)) ? 1.0 : respCorr(DetId(hcid0));
697  if (corr != 0)
698  ene /= corr;
699 #ifdef EDM_ML_DEBUG
700  if (verbosity_ % 10 > 0) {
701  HcalDetId id = (isItPlan1_ && isItPreRecHit_) ? hdc_->mergedDepthDetId(hcid0) : hcid0;
702  edm::LogVerbatim("HBHEMuon") << hcid0 << ":" << id << " Corr " << corr;
703  }
704 #endif
705  }
706  int depth = ehdepth[i].second - 1;
707  if (collapseDepth_) {
708  HcalDetId id = hdc_->mergedDepthDetId(hcid0);
709  depth = id.depth() - 1;
710  }
711  eHcalDepth[depth] += ene;
712  eHcalDepthC[depth] += enec;
713  activeL[depth] += actL;
714  activeLengthTot += actL;
715  matchDepth[depth] = (matchDepth[depth] && tmpC);
716 #ifdef EDM_ML_DEBUG
717  if ((verbosity_ / 10) % 10 > 0)
718  edm::LogVerbatim("HBHEMuon")
719  << hcid0 << " E " << ene << ":" << enec << " L " << actL << " Match " << tmpC;
720 #endif
721  }
722  }
723  }
724 #ifdef EDM_ML_DEBUG
725  if ((verbosity_ / 10) % 10 > 0) {
726  edm::LogVerbatim("HBHEMuon") << hcidt << " Match " << tmpmatch << " Depths " << ehdepth.size();
727  for (unsigned int k = 0; k < ehdepth.size(); ++k)
728  edm::LogVerbatim("HBHEMuon") << " [" << k << ":" << ehdepth[k].second << "] " << matchDepth[k];
729  }
730 #endif
731  HcalDetId hotCell;
732  spr::eHCALmatrix(geo_, theHBHETopology_, closestCell, hbhe_, 1, 1, hotCell, false, useRaw_, false);
733  isHot = matchId(closestCell, hotCell);
734  if (hotCell != HcalDetId()) {
735  subdet = HcalDetId(hotCell).subdet();
736  ieta = HcalDetId(hotCell).ieta();
737  iphi = HcalDetId(hotCell).iphi();
738  hborhe = (std::abs(ieta) == 16);
739  std::vector<std::pair<double, int>> ehdepth;
740  spr::energyHCALCell(hotCell,
741  hbhe_,
742  ehdepth,
743  depthMax_,
744  -100.0,
745  -100.0,
746  -100.0,
747  -100.0,
748  -500.0,
749  500.0,
750  useRaw_,
751  depth16HE(ieta, iphi),
752  false);
753  for (int i = 0; i < depthMax_; ++i)
754  eHcalDetId[i] = HcalDetId();
755  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
756  HcalSubdetector subdet0 =
757  (hborhe) ? ((ehdepth[i].second >= depth16HE(ieta, iphi)) ? HcalEndcap : HcalBarrel) : subdet;
758  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
759  double actL = activeLength(DetId(hcid0));
760  double ene = ehdepth[i].first;
761  bool tmpC(false);
762  if (ene > 0.0) {
763  if (!(theHBHETopology_->validHcal(hcid0))) {
764  edm::LogWarning("HBHEMuon") << "(2) Invalid ID " << hcid0 << " with E = " << ene;
765  edm::LogWarning("HBHEMuon") << HcalDetId(hotCell) << " with " << ehdepth.size() << " depths:";
766  for (const auto& ehd : ehdepth)
767  edm::LogWarning("HBHEMuon") << " " << ehd.second << ":" << ehd.first;
768  } else {
769  tmpC = goodCell(hcid0, pTrack, geo_, bField_);
770  double chg(ene), enec(ene);
771  if (unCorrect_) {
772  double corr = (ignoreHECorr_ && (subdet0 == HcalEndcap)) ? 1.0 : respCorr(DetId(hcid0));
773  if (corr != 0)
774  ene /= corr;
775 #ifdef EDM_ML_DEBUG
776  if (verbosity_ % 10 > 0) {
777  HcalDetId id = (isItPlan1_ && isItPreRecHit_) ? hdc_->mergedDepthDetId(hcid0) : hcid0;
778  edm::LogVerbatim("HBHEMuon")
779  << hcid0 << ":" << id << " Corr " << corr << " E " << ene << ":" << enec;
780  }
781 #endif
782  }
783  if (getCharge_) {
784  double gain = gainFactor(conditions_, hcid0);
785  if (gain != 0)
786  chg /= gain;
787 #ifdef EDM_ML_DEBUG
788  if (verbosity_ % 10 > 0)
789  edm::LogVerbatim("HBHEMuon") << hcid0 << " Gain " << gain << " C " << chg;
790 #endif
791  }
792  int depth = ehdepth[i].second - 1;
793  if (collapseDepth_) {
794  HcalDetId id = hdc_->mergedDepthDetId(hcid0);
795  depth = id.depth() - 1;
796  }
797  eHcalDepthHot[depth] += ene;
798  eHcalDepthHotC[depth] += enec;
799  cHcalDepthHot[depth] += chg;
800  activeHotL[depth] += actL;
801  activeLengthHotTot += actL;
802  matchDepthHot[depth] = (matchDepthHot[depth] && tmpC);
803 #ifdef EDM_ML_DEBUG
804  if ((verbosity_ / 10) % 10 > 0)
805  edm::LogVerbatim("HBHEMuon") << hcid0 << " depth " << depth << " E " << ene << ":" << enec << " C "
806  << chg << " L " << actL << " Match " << tmpC;
807 #endif
808  }
809  }
810  }
811  }
812 #ifdef EDM_ML_DEBUG
813  edm::LogVerbatim("HBHEMuon") << "Propagate Track to HCAL: " << trackID.okHCAL << " Match " << tmpmatch
814  << " Hot " << isHot << " Energy " << eHcal;
815 #endif
816 
817  accept = true;
818  ecalDetId_.emplace_back((trackID.detIdECAL)());
819  hcalDetId_.emplace_back((trackID.detIdHCAL)());
820  ehcalDetId_.emplace_back((trackID.detIdEHCAL)());
821  emaxNearP_.emplace_back(emaxNearP);
822  matchedId_.emplace_back(tmpmatch);
823  ecal3x3Energy_.emplace_back(eEcal);
824  hcal1x1Energy_.emplace_back(eHcal);
825  hcal_ieta_.emplace_back(ieta);
826  hcal_iphi_.emplace_back(iphi);
827  for (int i = 0; i < maxDepth_; ++i) {
828  hcalDepthEnergy_[i].emplace_back(eHcalDepth[i]);
829  hcalDepthActiveLength_[i].emplace_back(activeL[i]);
830  hcalDepthEnergyHot_[i].emplace_back(eHcalDepthHot[i]);
831  hcalDepthActiveLengthHot_[i].emplace_back(activeHotL[i]);
832  hcalDepthEnergyCorr_[i].emplace_back(eHcalDepthC[i]);
833  hcalDepthEnergyHotCorr_[i].emplace_back(eHcalDepthHotC[i]);
834  hcalDepthChargeHot_[i].emplace_back(cHcalDepthHot[i]);
835  hcalDepthChargeHotBG_[i].emplace_back(cHcalDepthHotBG[i]);
836  hcalDepthMatch_[i].emplace_back(matchDepth[i]);
837  hcalDepthMatchHot_[i].emplace_back(matchDepthHot[i]);
838  }
839  hcalActiveLength_.emplace_back(activeLengthTot);
840  hcalHot_.emplace_back(isHot);
841  hcalActiveLengthHot_.emplace_back(activeLengthHotTot);
842 #ifdef EDM_ML_DEBUG
843  if ((verbosity_ / 100) % 10 > 0) {
844  edm::LogVerbatim("HBHEMuon") << "Track " << std::hex << ecalDetId_.back() << ":" << hcalDetId_.back() << ":"
845  << ehcalDetId_.back() << std::dec << ":" << emaxNearP_.back() << ":"
846  << matchedId_.back() << ":" << ecal3x3Energy_.back() << ":"
847  << hcal1x1Energy_.back() << ":" << hcal_ieta_.back() << ":" << hcal_iphi_.back()
848  << ":" << hcalActiveLength_.back() << ":" << hcalHot_.back() << ":"
849  << hcalActiveLengthHot_.back();
850  for (int i = 0; i < maxDepth_; ++i) {
851  edm::LogVerbatim("HBHEMuon") << "Depth[" << i << "] " << hcalDepthEnergy_[i].back() << ":"
852  << hcalDepthActiveLength_[i].back() << ":" << hcalDepthEnergyHot_[i].back()
853  << ":" << hcalDepthActiveLengthHot_[i].back() << ":"
854  << hcalDepthEnergyCorr_[i].back() << ":" << hcalDepthEnergyHotCorr_[i].back()
855  << ":" << hcalDepthChargeHot_[i].back() << ":"
856  << hcalDepthChargeHotBG_[i].back() << ":" << hcalDepthMatch_[i].back() << ":"
857  << hcalDepthMatchHot_[i].back();
858  }
859  }
860 #endif
861  fillTrackParameters(pTrack, leadPV);
862  }
863  }
864  }
865  return accept;
866 }
int matchId(const HcalDetId &, const HcalDetId &)
Log< level::Info, true > LogVerbatim
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
const EcalChannelStatus * theEcalChStatus_
static const TGPicture * info(bool iBackgroundIsBlack)
spr::trackSelectionParameters selectionParameter_
edm::Handle< HBHERecHitCollection > hbhe_
HcalDetId mergedDepthDetId(const HcalDetId &id) const
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
std::vector< double > hcalDepthEnergyCorr_[depthMax_]
const float chg[109]
Definition: CoreSimTrack.cc:5
std::vector< double > hcalDepthEnergy_[depthMax_]
const EcalSeverityLevelAlgo * sevlv_
std::vector< bool > hcalDepthMatchHot_[depthMax_]
std::vector< unsigned int > hcalDetId_
bool goodCell(const HcalDetId &, const reco::Track *, const CaloGeometry *, const MagneticField *)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
std::vector< double > hcalDepthChargeHotBG_[depthMax_]
U second(std::pair< T, U > const &p)
double gainFactor(const HcalDbService *, const HcalDetId &)
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
dictionary corr
spr::propagatedTrackDirection propagateHCALBack(unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const CaloGeometry *geo, const MagneticField *bField, bool debug=false)
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
std::vector< double > hcalDepthEnergyHot_[depthMax_]
HcalSubdetector
Definition: HcalAssistant.h:31
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void fillTrackParameters(const reco::Track *, math::XYZPoint)
std::vector< double > hcalDepthActiveLength_[depthMax_]
Definition: DetId.h:17
std::vector< double > hcalDepthEnergyHotCorr_[depthMax_]
std::vector< unsigned int > ehcalDetId_
bool validHcal(const HcalDetId &id) const
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
std::vector< double > hcalDepthChargeHot_[depthMax_]
Log< level::Warning, false > LogWarning
std::vector< bool > hcalDepthMatch_[depthMax_]
std::vector< unsigned int > ecalDetId_
void energyHCALCell(HcalDetId detId, edm::Handle< T > &hits, std::vector< std::pair< double, int > > &energyCell, int maxDepth=1, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, int depthHE=3, bool debug=false)
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
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)

◆ beginJob()

void HcalHBHEMuonHighEtaAnalyzer::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 292 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References ecal3x3Energy_, ecalDetId_, ecalEnergy_, ehcalDetId_, emaxNearP_, energyMuon_, etaGlob_, eventNumber_, compareTotals::fs, goodVertex_, hcal1x1Energy_, hcal_ieta_, hcal_iphi_, hcalActiveLength_, hcalActiveLengthHot_, hcalDepthActiveLength_, hcalDepthActiveLengthHot_, hcalDepthChargeHot_, hcalDepthChargeHotBG_, hcalDepthEnergy_, hcalDepthEnergyCorr_, hcalDepthEnergyHot_, hcalDepthEnergyHotCorr_, hcalDepthMatch_, hcalDepthMatchHot_, hcalDetId_, hcalEnergy_, hcalHot_, hoEnergy_, isolationR03_, isolationR04_, dqmdumpme::k, matchedId_, maxDepth_, mediumMuon_, Skims_PA_cff::name, phiGlob_, pMuon_, ptGlob_, runNumber_, trackDz_, trackLayerCrossed_, trackMissedInnerHits_, trackMissedOuterHits_, trackOuterHit_, and tree_.

292  {
294  tree_ = fs->make<TTree>("HBHEMuonHighEta", "HBHEMuonHighEta");
295  tree_->Branch("pt_of_muon", &ptGlob_);
296  tree_->Branch("eta_of_muon", &etaGlob_);
297  tree_->Branch("phi_of_muon", &phiGlob_);
298  tree_->Branch("energy_of_muon", &energyMuon_);
299  tree_->Branch("p_of_muon", &pMuon_);
300  tree_->Branch("MediumMuon", &mediumMuon_);
301  tree_->Branch("IsolationR04", &isolationR04_);
302  tree_->Branch("IsolationR03", &isolationR03_);
303  tree_->Branch("ecal_3into3", &ecalEnergy_);
304  tree_->Branch("hcal_3into3", &hcalEnergy_);
305  tree_->Branch("ho_3into3", &hoEnergy_);
306  tree_->Branch("emaxNearP", &emaxNearP_);
307 
308  tree_->Branch("Run_No", &runNumber_);
309  tree_->Branch("Event_No", &eventNumber_);
310  tree_->Branch("GoodVertex", &goodVertex_);
311  tree_->Branch("matchedId", &matchedId_);
312  tree_->Branch("hcal_cellHot", &hcalHot_);
313  tree_->Branch("ecal_3x3", &ecal3x3Energy_);
314  tree_->Branch("hcal_1x1", &hcal1x1Energy_);
315  tree_->Branch("ecal_detID", &ecalDetId_);
316  tree_->Branch("hcal_detID", &hcalDetId_);
317  tree_->Branch("ehcal_detID", &ehcalDetId_);
318  tree_->Branch("hcal_ieta", &hcal_ieta_);
319  tree_->Branch("hcal_iphi", &hcal_iphi_);
320 
321  char name[100];
322  for (int k = 0; k < maxDepth_; ++k) {
323  sprintf(name, "hcal_edepth%d", (k + 1));
324  tree_->Branch(name, &hcalDepthEnergy_[k]);
325  sprintf(name, "hcal_activeL%d", (k + 1));
326  tree_->Branch(name, &hcalDepthActiveLength_[k]);
327  sprintf(name, "hcal_edepthHot%d", (k + 1));
328  tree_->Branch(name, &hcalDepthEnergyHot_[k]);
329  sprintf(name, "hcal_activeHotL%d", (k + 1));
331  sprintf(name, "hcal_cdepthHot%d", (k + 1));
332  tree_->Branch(name, &hcalDepthChargeHot_[k]);
333  sprintf(name, "hcal_cdepthHotBG%d", (k + 1));
334  tree_->Branch(name, &hcalDepthChargeHotBG_[k]);
335  sprintf(name, "hcal_edepthCorrect%d", (k + 1));
336  tree_->Branch(name, &hcalDepthEnergyCorr_[k]);
337  sprintf(name, "hcal_edepthHotCorrect%d", (k + 1));
338  tree_->Branch(name, &hcalDepthEnergyHotCorr_[k]);
339  sprintf(name, "hcal_depthMatch%d", (k + 1));
340  tree_->Branch(name, &hcalDepthMatch_[k]);
341  sprintf(name, "hcal_depthMatchHot%d", (k + 1));
342  tree_->Branch(name, &hcalDepthMatchHot_[k]);
343  }
344  tree_->Branch("activeLength", &hcalActiveLength_);
345  tree_->Branch("activeLengthHot", &hcalActiveLengthHot_);
346  tree_->Branch("trackDz", &trackDz_);
347  tree_->Branch("trackLayerCrossed", &trackLayerCrossed_);
348  tree_->Branch("trackOuterHit", &trackOuterHit_);
349  tree_->Branch("trackMissedInnerHits", &trackMissedInnerHits_);
350  tree_->Branch("trackMissedOuterHits", &trackMissedOuterHits_);
351 }
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
std::vector< double > hcalDepthEnergyCorr_[depthMax_]
std::vector< double > hcalDepthEnergy_[depthMax_]
std::vector< bool > hcalDepthMatchHot_[depthMax_]
std::vector< unsigned int > hcalDetId_
std::vector< double > hcalDepthChargeHotBG_[depthMax_]
std::vector< double > hcalDepthEnergyHot_[depthMax_]
std::vector< double > hcalDepthActiveLength_[depthMax_]
std::vector< double > hcalDepthEnergyHotCorr_[depthMax_]
std::vector< unsigned int > ehcalDetId_
std::vector< double > hcalDepthChargeHot_[depthMax_]
std::vector< bool > hcalDepthMatch_[depthMax_]
std::vector< unsigned int > ecalDetId_

◆ beginRun()

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

Definition at line 441 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References actHB, actHE, activeLength(), geo_, edm::EventSetup::getData(), CaloGeometry::getSubdetectorGeometry(), HcalDDDRecConstants::getThickActive(), HcalGeometry::getValidDetIds(), reco::JetExtendedAssociation::getValue(), HcalCondObjectContainer< Item >::getValues(), DetId::Hcal, HcalBarrel, HcalEndcap, hdc_, mergedDepth_, HcalDDDRecConstants::mergedDepthDetId(), DetId::rawId(), respCorrs_, edm::RunBase::run(), HcalCondObjectContainerBase::setTopo(), theHBHETopology_, tok_ddrec_, tok_geom_, tok_htopo_, tok_respcorr_, verbosity_, and writeRespCorr_.

441  {
442  hdc_ = &iSetup.getData(tok_ddrec_);
443  actHB.clear();
444  actHE.clear();
445  actHB = hdc_->getThickActive(0);
446  actHE = hdc_->getThickActive(1);
447 #ifdef EDM_ML_DEBUG
448  if (verbosity_ % 10 > 0) {
449  unsigned int k1(0), k2(0);
450  edm::LogVerbatim("HBHEMuon") << actHB.size() << " Active Length for HB";
451  for (const auto& act : actHB) {
452  edm::LogVerbatim("HBHEMuon") << "[" << k1 << "] ieta " << act.ieta << " depth " << act.depth << " zside "
453  << act.zside << " type " << act.stype << " phi " << act.iphis.size() << ":"
454  << act.iphis[0] << " L " << act.thick;
455  HcalDetId hcid1(HcalBarrel, (act.ieta) * (act.zside), act.iphis[0], act.depth);
456  HcalDetId hcid2 = mergedDepth_ ? hdc_->mergedDepthDetId(hcid1) : hcid1;
457  edm::LogVerbatim("HBHEMuon") << hcid1 << " | " << hcid2 << " L " << activeLength(DetId(hcid2));
458  ++k1;
459  }
460  edm::LogVerbatim("HBHEMuon") << actHE.size() << " Active Length for HE";
461  for (const auto& act : actHE) {
462  edm::LogVerbatim("HBHEMuon") << "[" << k2 << "] ieta " << act.ieta << " depth " << act.depth << " zside "
463  << act.zside << " type " << act.stype << " phi " << act.iphis.size() << ":"
464  << act.iphis[0] << " L " << act.thick;
465  HcalDetId hcid1(HcalEndcap, (act.ieta) * (act.zside), act.iphis[0], act.depth);
466  HcalDetId hcid2 = mergedDepth_ ? hdc_->mergedDepthDetId(hcid1) : hcid1;
467  edm::LogVerbatim("HBHEMuon") << hcid1 << " | " << hcid2 << " L " << activeLength(DetId(hcid2));
468  ++k2;
469  }
470  }
471 #endif
472 
473  theHBHETopology_ = &iSetup.getData(tok_htopo_);
474  const HcalRespCorrs* resp = &iSetup.getData(tok_respcorr_);
475  respCorrs_ = new HcalRespCorrs(*resp);
477  geo_ = &iSetup.getData(tok_geom_);
478 
479  // Write correction factors for all HB/HE events
480  if (writeRespCorr_) {
482  const std::vector<DetId>& ids = gHcal->getValidDetIds(DetId::Hcal, 0);
483  edm::LogVerbatim("HBHEMuon") << "\nTable of Correction Factors for Run " << iRun.run() << "\n";
484  for (auto const& id : ids) {
485  if ((id.det() == DetId::Hcal) && ((id.subdetId() == HcalBarrel) || (id.subdetId() == HcalEndcap))) {
486  edm::LogVerbatim("HBHEMuon") << HcalDetId(id) << " " << id.rawId() << " "
487  << (respCorrs_->getValues(id))->getValue();
488  }
489  }
490  }
491 }
Log< level::Info, true > LogVerbatim
const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const override
Get a list of valid detector ids (for the given subdetector)
Definition: HcalGeometry.cc:76
HcalDetId mergedDepthDetId(const HcalDetId &id) const
std::vector< HcalDDDRecConstants::HcalActiveLength > actHE
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_htopo_
const Item * getValues(DetId fId, bool throwOnFail=true) const
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcd > tok_respcorr_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_ddrec_
Definition: DetId.h:17
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< HcalDDDRecConstants::HcalActiveLength > actHB
std::vector< HcalActiveLength > getThickActive(const int &type) const
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
void setTopo(const HcalTopology *topo)

◆ clearVectors()

void HcalHBHEMuonHighEtaAnalyzer::clearVectors ( )
private

clearing vectots

Definition at line 868 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References depthMax_, ecal3x3Energy_, ecalDetId_, ecalEnergy_, ehcalDetId_, emaxNearP_, energyMuon_, etaGlob_, eventNumber_, goodVertex_, hcal1x1Energy_, hcal_ieta_, hcal_iphi_, hcalActiveLength_, hcalActiveLengthHot_, hcalDepthActiveLength_, hcalDepthActiveLengthHot_, hcalDepthChargeHot_, hcalDepthChargeHotBG_, hcalDepthEnergy_, hcalDepthEnergyCorr_, hcalDepthEnergyHot_, hcalDepthEnergyHotCorr_, hcalDepthMatch_, hcalDepthMatchHot_, hcalDetId_, hcalEnergy_, hcalHot_, hoEnergy_, mps_fire::i, isolationR03_, isolationR04_, matchedId_, mediumMuon_, phiGlob_, pMuon_, ptGlob_, runNumber_, trackDz_, trackLayerCrossed_, trackMissedInnerHits_, trackMissedOuterHits_, and trackOuterHit_.

Referenced by analyze().

868  {
870  eventNumber_ = -99999;
871  runNumber_ = -99999;
872  goodVertex_ = -99999;
873 
874  mediumMuon_.clear();
875  ptGlob_.clear();
876  etaGlob_.clear();
877  phiGlob_.clear();
878  energyMuon_.clear();
879  pMuon_.clear();
880  isolationR04_.clear();
881  isolationR03_.clear();
882  ecalEnergy_.clear();
883  hcalEnergy_.clear();
884  hoEnergy_.clear();
885 
886  matchedId_.clear();
887  hcalHot_.clear();
888  ecal3x3Energy_.clear();
889  hcal1x1Energy_.clear();
890  ecalDetId_.clear();
891  hcalDetId_.clear();
892  ehcalDetId_.clear();
893  hcal_ieta_.clear();
894  hcal_iphi_.clear();
895  for (int i = 0; i < depthMax_; ++i) {
896  hcalDepthEnergy_[i].clear();
897  hcalDepthActiveLength_[i].clear();
898  hcalDepthEnergyHot_[i].clear();
899  hcalDepthActiveLengthHot_[i].clear();
900  hcalDepthChargeHot_[i].clear();
901  hcalDepthChargeHotBG_[i].clear();
902  hcalDepthEnergyCorr_[i].clear();
903  hcalDepthEnergyHotCorr_[i].clear();
904  hcalDepthMatch_[i].clear();
905  hcalDepthMatchHot_[i].clear();
906  }
907  hcalActiveLength_.clear();
908  hcalActiveLengthHot_.clear();
909 
910  emaxNearP_.clear();
911  trackDz_.clear();
912  trackLayerCrossed_.clear();
913  trackOuterHit_.clear();
914  trackMissedInnerHits_.clear();
915  trackMissedOuterHits_.clear();
916 }
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
std::vector< double > hcalDepthEnergyCorr_[depthMax_]
std::vector< double > hcalDepthEnergy_[depthMax_]
std::vector< bool > hcalDepthMatchHot_[depthMax_]
std::vector< unsigned int > hcalDetId_
std::vector< double > hcalDepthChargeHotBG_[depthMax_]
std::vector< double > hcalDepthEnergyHot_[depthMax_]
std::vector< double > hcalDepthActiveLength_[depthMax_]
std::vector< double > hcalDepthEnergyHotCorr_[depthMax_]
std::vector< unsigned int > ehcalDetId_
std::vector< double > hcalDepthChargeHot_[depthMax_]
std::vector< bool > hcalDepthMatch_[depthMax_]
std::vector< unsigned int > ecalDetId_

◆ depth16HE()

int HcalHBHEMuonHighEtaAnalyzer::depth16HE ( int  ieta,
int  iphi 
)
private

Definition at line 992 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References HcalTopology::dddConstants(), hcalRecHitTable_cff::depth, HcalDDDRecConstants::getMinDepth(), hcalRecHitTable_cff::ieta, hcalRecHitTable_cff::iphi, isItPlan1_, isItPreRecHit_, theHBHETopology_, verbosity_, and ecaldqm::zside().

Referenced by analyzeTracks().

992  {
993  // Transition between HB/HE is special
994  // For Run 1 or for Plan1 standard reconstruction it is 3
995  // For runs beyond 2018 or in Plan1 for HEP17 it is 4
996  int zside = (ieta > 0) ? 1 : -1;
998  if (isItPlan1_ && (!isItPreRecHit_))
999  depth = 3;
1000 #ifdef EDM_ML_DEBUG
1001  if (verbosity_ % 10 > 0)
1002  edm::LogVerbatim("HBHEMuon") << "Plan1 " << isItPlan1_ << " PreRecHit " << isItPreRecHit_ << " phi " << iphi
1003  << " depth " << depth;
1004 #endif
1005  return depth;
1006 }
int getMinDepth(const int &itype, const int &ieta, const int &iphi, const int &zside) const
Log< level::Info, true > LogVerbatim
int zside(DetId const &)
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:164

◆ endRun()

void HcalHBHEMuonHighEtaAnalyzer::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineoverrideprivate

Definition at line 82 of file HcalHBHEMuonHighEtaAnalyzer.cc.

82 {}

◆ fillDescriptions()

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

Definition at line 260 of file HcalHBHEMuonHighEtaAnalyzer.cc.

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

260  {
262  desc.add<edm::InputTag>("labelEBRecHit", edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
263  desc.add<edm::InputTag>("labelEERecHit", edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
264  desc.add<edm::InputTag>("labelHBHERecHit", edm::InputTag("hbhereco"));
265  desc.add<std::string>("labelVertex", "offlinePrimaryVertices");
266  desc.add<std::string>("labelMuon", "muons");
267  desc.add<std::string>("labelTrack", "generalTracks");
268  desc.add<double>("etaMin", 2.0);
269  desc.add<double>("emaxNearPThreshold", 10.0);
270  desc.add<bool>("analyzeMuon", true);
271  desc.add<bool>("unCorrect", true);
272  desc.add<bool>("collapseDepth", false);
273  desc.add<bool>("isItPlan1", false);
274  desc.add<bool>("getCharge", true);
275  desc.add<int>("useRaw", 0);
276  desc.add<int>("verbosity", 0);
277  desc.addUntracked<std::string>("fileInCorr", "");
278  desc.addUntracked<std::string>("trackQuality", "highPurity");
279  desc.addUntracked<double>("minTrackPt", 1.0);
280  desc.addUntracked<double>("maxDxyPV", 0.02);
281  desc.addUntracked<double>("maxDzPV", 100.0);
282  desc.addUntracked<double>("maxChi2", 5.0);
283  desc.addUntracked<double>("maxDpOverP", 0.1);
284  desc.addUntracked<bool>("ignoreHECorr", false);
285  desc.addUntracked<bool>("isItPreRecHit", false);
286  desc.addUntracked<bool>("writeRespCorr", false);
287  desc.addUntracked<int>("maxDepth", 7);
288  descriptions.add("hcalHBHEMuonHighEta", desc);
289 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillTrackParameters()

void HcalHBHEMuonHighEtaAnalyzer::fillTrackParameters ( const reco::Track pTrack,
math::XYZPoint  leadPV 
)
private

Definition at line 1018 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References reco::TrackBase::dz(), reco::TrackBase::hitPattern(), reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, reco::HitPattern::stripTECLayersWithMeasurement(), reco::HitPattern::stripTOBLayersWithMeasurement(), trackDz_, reco::HitPattern::trackerLayersWithMeasurement(), reco::HitPattern::trackerLayersWithoutMeasurement(), trackLayerCrossed_, trackMissedInnerHits_, trackMissedOuterHits_, and trackOuterHit_.

Referenced by analyzeTracks().

1018  {
1019  trackDz_.emplace_back(pTrack->dz(leadPV));
1020  const reco::HitPattern& hitp = pTrack->hitPattern();
1021  trackLayerCrossed_.emplace_back(hitp.trackerLayersWithMeasurement());
1025 }
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:535
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:629
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:622
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:619
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:554
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:504

◆ gainFactor()

double HcalHBHEMuonHighEtaAnalyzer::gainFactor ( const HcalDbService conditions,
const HcalDetId id 
)
private

Definition at line 984 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References submitPVValidationJobs::conditions, PedestalClient_cfi::gain, and HcalCalibrations::respcorrgain().

Referenced by analyzeTracks().

984  {
985  double gain(0.0);
986  const HcalCalibrations& calibs = conditions->getHcalCalibrations(id);
987  for (int capid = 0; capid < 4; ++capid)
988  gain += (0.25 * calibs.respcorrgain(capid));
989  return gain;
990 }
constexpr double respcorrgain(int fCapId) const
get response corrected gain for capid=0..3

◆ goodCell()

bool HcalHBHEMuonHighEtaAnalyzer::goodCell ( const HcalDetId hcid,
const reco::Track pTrack,
const CaloGeometry geo,
const MagneticField bField 
)
private

Definition at line 1008 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References Calorimetry_cff::bField, HcalDDDRecConstants::getRZ(), HcalEndcap, hdc_, match(), spr::propagateHCAL(), and HcalDetId::subdet().

Referenced by analyzeTracks().

1011  {
1012  std::pair<double, double> rz = hdc_->getRZ(hcid);
1013  bool typeRZ = (hcid.subdet() == HcalEndcap) ? false : true;
1014  bool match = spr::propagateHCAL(pTrack, geo, bField, typeRZ, rz, false);
1015  return match;
1016 }
double getRZ(const int &subdet, const int &ieta, const int &depth) const
std::pair< math::XYZPoint, bool > propagateHCAL(const reco::Track *, const MagneticField *, bool debug=false)
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ isGoodVertex()

bool HcalHBHEMuonHighEtaAnalyzer::isGoodVertex ( const reco::Vertex vtx)
private

Definition at line 960 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References L1BJetProducer_cff::vtx.

Referenced by analyze().

960  {
961  if (vtx.isFake())
962  return false;
963  if (vtx.ndof() < 4)
964  return false;
965  if (vtx.position().Rho() > 2.)
966  return false;
967  if (fabs(vtx.position().Z()) > 24.)
968  return false;
969  return true;
970 }

◆ matchId()

int HcalHBHEMuonHighEtaAnalyzer::matchId ( const HcalDetId id1,
const HcalDetId id2 
)
private

Definition at line 918 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References globals_cff::id1, globals_cff::id2, and match().

Referenced by analyzeTracks().

918  {
919  HcalDetId kd1(id1.subdet(), id1.ieta(), id1.iphi(), 1);
920  HcalDetId kd2(id1.subdet(), id2.ieta(), id2.iphi(), 1);
921  int match = ((kd1 == kd2) ? 1 : 0);
922  return match;
923 }
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ respCorr()

double HcalHBHEMuonHighEtaAnalyzer::respCorr ( const DetId id)
private

Definition at line 972 of file HcalHBHEMuonHighEtaAnalyzer.cc.

References corrValue_, reco::JetExtendedAssociation::getValue(), HcalCondObjectContainer< Item >::getValues(), respCorrs_, and useMyCorr_.

Referenced by analyzeTracks().

972  {
973  double cfac(1.0);
974  if (useMyCorr_) {
975  auto itr = corrValue_.find(id);
976  if (itr != corrValue_.end())
977  cfac = itr->second;
978  } else if (respCorrs_ != nullptr) {
979  cfac = (respCorrs_->getValues(id))->getValue();
980  }
981  return cfac;
982 }
const Item * getValues(DetId fId, bool throwOnFail=true) const
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found

Member Data Documentation

◆ actHB

std::vector<HcalDDDRecConstants::HcalActiveLength> HcalHBHEMuonHighEtaAnalyzer::actHB
private

Definition at line 169 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by activeLength(), and beginRun().

◆ actHE

std::vector<HcalDDDRecConstants::HcalActiveLength> HcalHBHEMuonHighEtaAnalyzer::actHE
private

Definition at line 169 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by activeLength(), and beginRun().

◆ analyzeMuon_

const bool HcalHBHEMuonHighEtaAnalyzer::analyzeMuon_
private

Definition at line 101 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ barrelRecHitsHandle_

edm::Handle<EcalRecHitCollection> HcalHBHEMuonHighEtaAnalyzer::barrelRecHitsHandle_
private

Definition at line 138 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ bField_

const MagneticField* HcalHBHEMuonHighEtaAnalyzer::bField_
private

Definition at line 132 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeHadron(), and analyzeTracks().

◆ caloTopology_

const CaloTopology* HcalHBHEMuonHighEtaAnalyzer::caloTopology_
private

Definition at line 135 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ collapseDepth_

const bool HcalHBHEMuonHighEtaAnalyzer::collapseDepth_
private

Definition at line 101 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ conditions_

const HcalDbService* HcalHBHEMuonHighEtaAnalyzer::conditions_
private

Definition at line 136 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ corrValue_

std::map<DetId, double> HcalHBHEMuonHighEtaAnalyzer::corrValue_
private

Definition at line 170 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer(), and respCorr().

◆ depthMax_

const int HcalHBHEMuonHighEtaAnalyzer::depthMax_ = 7
staticprivate

Definition at line 143 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), and clearVectors().

◆ ecal3x3Energy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::ecal3x3Energy_
private

Definition at line 151 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ ecalDetId_

std::vector<unsigned int> HcalHBHEMuonHighEtaAnalyzer::ecalDetId_
private

Definition at line 152 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ ecalEnergy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::ecalEnergy_
private

Definition at line 149 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ ehcalDetId_

std::vector<unsigned int> HcalHBHEMuonHighEtaAnalyzer::ehcalDetId_
private

Definition at line 152 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ emaxNearP_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::emaxNearP_
private

Definition at line 165 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ emaxNearPThr_

const double HcalHBHEMuonHighEtaAnalyzer::emaxNearPThr_
private

Definition at line 100 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks().

◆ endcapRecHitsHandle_

edm::Handle<EcalRecHitCollection> HcalHBHEMuonHighEtaAnalyzer::endcapRecHitsHandle_
private

Definition at line 139 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ energyMuon_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::energyMuon_
private

Definition at line 147 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ etaGlob_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::etaGlob_
private

Definition at line 147 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ etaMin_

const double HcalHBHEMuonHighEtaAnalyzer::etaMin_
private

Definition at line 100 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeHadron(), and analyzeMuon().

◆ eventNumber_

unsigned int HcalHBHEMuonHighEtaAnalyzer::eventNumber_
private

Definition at line 145 of file HcalHBHEMuonHighEtaAnalyzer.cc.

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

◆ fileInCorr_

const std::string HcalHBHEMuonHighEtaAnalyzer::fileInCorr_
private

Definition at line 103 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ geo_

const CaloGeometry* HcalHBHEMuonHighEtaAnalyzer::geo_
private

Definition at line 130 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeHadron(), analyzeTracks(), and beginRun().

◆ getCharge_

const bool HcalHBHEMuonHighEtaAnalyzer::getCharge_
private

Definition at line 101 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ goodVertex_

unsigned int HcalHBHEMuonHighEtaAnalyzer::goodVertex_
private

Definition at line 145 of file HcalHBHEMuonHighEtaAnalyzer.cc.

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

◆ hbhe_

edm::Handle<HBHERecHitCollection> HcalHBHEMuonHighEtaAnalyzer::hbhe_
private

Definition at line 140 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ hcal1x1Energy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcal1x1Energy_
private

Definition at line 151 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcal_ieta_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::hcal_ieta_
private

Definition at line 153 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcal_iphi_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::hcal_iphi_
private

Definition at line 153 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalActiveLength_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalActiveLength_
private

Definition at line 164 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalActiveLengthHot_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalActiveLengthHot_
private

Definition at line 164 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthActiveLength_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthActiveLength_[depthMax_]
private

Definition at line 155 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthActiveLengthHot_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthActiveLengthHot_[depthMax_]
private

Definition at line 157 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthChargeHot_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthChargeHot_[depthMax_]
private

Definition at line 158 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthChargeHotBG_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthChargeHotBG_[depthMax_]
private

Definition at line 159 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthEnergy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergy_[depthMax_]
private

Definition at line 154 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthEnergyCorr_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyCorr_[depthMax_]
private

Definition at line 160 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthEnergyHot_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyHot_[depthMax_]
private

Definition at line 156 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthEnergyHotCorr_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyHotCorr_[depthMax_]
private

Definition at line 161 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthMatch_

std::vector<bool> HcalHBHEMuonHighEtaAnalyzer::hcalDepthMatch_[depthMax_]
private

Definition at line 162 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDepthMatchHot_

std::vector<bool> HcalHBHEMuonHighEtaAnalyzer::hcalDepthMatchHot_[depthMax_]
private

Definition at line 163 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalDetId_

std::vector<unsigned int> HcalHBHEMuonHighEtaAnalyzer::hcalDetId_
private

Definition at line 152 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hcalEnergy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hcalEnergy_
private

Definition at line 149 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ hcalHot_

std::vector<bool> HcalHBHEMuonHighEtaAnalyzer::hcalHot_
private

Definition at line 150 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ hdc_

const HcalDDDRecConstants* HcalHBHEMuonHighEtaAnalyzer::hdc_
private

Definition at line 128 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by activeLength(), analyzeTracks(), beginRun(), and goodCell().

◆ hoEnergy_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::hoEnergy_
private

Definition at line 149 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ ignoreHECorr_

const bool HcalHBHEMuonHighEtaAnalyzer::ignoreHECorr_
private

Definition at line 104 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ isItPlan1_

const bool HcalHBHEMuonHighEtaAnalyzer::isItPlan1_
private

◆ isItPreRecHit_

const bool HcalHBHEMuonHighEtaAnalyzer::isItPreRecHit_
private

◆ isolationR03_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::isolationR03_
private

Definition at line 148 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ isolationR04_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::isolationR04_
private

Definition at line 148 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ kount_

int HcalHBHEMuonHighEtaAnalyzer::kount_
private

Definition at line 125 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and HcalHBHEMuonHighEtaAnalyzer().

◆ labelEBRecHit_

const edm::InputTag HcalHBHEMuonHighEtaAnalyzer::labelEBRecHit_
private

Definition at line 98 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ labelEERecHit_

const edm::InputTag HcalHBHEMuonHighEtaAnalyzer::labelEERecHit_
private

Definition at line 98 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ labelGenTrack_

const std::string HcalHBHEMuonHighEtaAnalyzer::labelGenTrack_
private

Definition at line 99 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ labelHBHERecHit_

const edm::InputTag HcalHBHEMuonHighEtaAnalyzer::labelHBHERecHit_
private

Definition at line 98 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ labelMuon_

const std::string HcalHBHEMuonHighEtaAnalyzer::labelMuon_
private

Definition at line 99 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ labelVtx_

const std::string HcalHBHEMuonHighEtaAnalyzer::labelVtx_
private

Definition at line 99 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer().

◆ matchedId_

std::vector<bool> HcalHBHEMuonHighEtaAnalyzer::matchedId_
private

Definition at line 150 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeTracks(), beginJob(), and clearVectors().

◆ maxDepth_

const int HcalHBHEMuonHighEtaAnalyzer::maxDepth_
private

Definition at line 105 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and beginJob().

◆ mediumMuon_

std::vector<bool> HcalHBHEMuonHighEtaAnalyzer::mediumMuon_
private

Definition at line 146 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ mergedDepth_

bool HcalHBHEMuonHighEtaAnalyzer::mergedDepth_
private

◆ phiGlob_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::phiGlob_
private

Definition at line 147 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ pMuon_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::pMuon_
private

Definition at line 147 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ ptGlob_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::ptGlob_
private

Definition at line 147 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), analyzeMuon(), beginJob(), and clearVectors().

◆ respCorrs_

HcalRespCorrs* HcalHBHEMuonHighEtaAnalyzer::respCorrs_
private

Definition at line 131 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun(), and respCorr().

◆ runNumber_

unsigned int HcalHBHEMuonHighEtaAnalyzer::runNumber_
private

Definition at line 145 of file HcalHBHEMuonHighEtaAnalyzer.cc.

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

◆ selectionParameter_

spr::trackSelectionParameters HcalHBHEMuonHighEtaAnalyzer::selectionParameter_
private

Definition at line 126 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ sevlv_

const EcalSeverityLevelAlgo* HcalHBHEMuonHighEtaAnalyzer::sevlv_
private

Definition at line 134 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ theEcalChStatus_

const EcalChannelStatus* HcalHBHEMuonHighEtaAnalyzer::theEcalChStatus_
private

Definition at line 133 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and analyzeTracks().

◆ theHBHETopology_

const HcalTopology* HcalHBHEMuonHighEtaAnalyzer::theHBHETopology_
private

Definition at line 129 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), beginRun(), and depth16HE().

◆ theTrackQuality_

const std::string HcalHBHEMuonHighEtaAnalyzer::theTrackQuality_
private

Definition at line 103 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeHadron(), and HcalHBHEMuonHighEtaAnalyzer().

◆ tok_chan_

const edm::ESGetToken<EcalChannelStatus, EcalChannelStatusRcd> HcalHBHEMuonHighEtaAnalyzer::tok_chan_
private

Definition at line 119 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_dbservice_

const edm::ESGetToken<HcalDbService, HcalDbRecord> HcalHBHEMuonHighEtaAnalyzer::tok_dbservice_
private

Definition at line 122 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_ddrec_

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

Definition at line 114 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun().

◆ tok_EB_

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

Definition at line 108 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_EE_

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

Definition at line 109 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_genTrack_

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

Definition at line 112 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeHadron().

◆ tok_geom_

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

Definition at line 117 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun().

◆ tok_HBHE_

const edm::EDGetTokenT<HBHERecHitCollection> HcalHBHEMuonHighEtaAnalyzer::tok_HBHE_
private

Definition at line 110 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_htopo_

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

Definition at line 115 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun().

◆ tok_magField_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> HcalHBHEMuonHighEtaAnalyzer::tok_magField_
private

Definition at line 118 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_Muon_

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

Definition at line 111 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeMuon().

◆ tok_respcorr_

const edm::ESGetToken<HcalRespCorrs, HcalRespCorrsRcd> HcalHBHEMuonHighEtaAnalyzer::tok_respcorr_
private

Definition at line 116 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun().

◆ tok_sevlv_

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

Definition at line 120 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_topo_

const edm::ESGetToken<CaloTopology, CaloTopologyRecord> HcalHBHEMuonHighEtaAnalyzer::tok_topo_
private

Definition at line 121 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ tok_Vtx_

const edm::EDGetTokenT<reco::VertexCollection> HcalHBHEMuonHighEtaAnalyzer::tok_Vtx_
private

Definition at line 107 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze().

◆ trackDz_

std::vector<double> HcalHBHEMuonHighEtaAnalyzer::trackDz_
private

◆ trackLayerCrossed_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::trackLayerCrossed_
private

◆ trackMissedInnerHits_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::trackMissedInnerHits_
private

◆ trackMissedOuterHits_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::trackMissedOuterHits_
private

◆ trackOuterHit_

std::vector<int> HcalHBHEMuonHighEtaAnalyzer::trackOuterHit_
private

◆ tree_

TTree* HcalHBHEMuonHighEtaAnalyzer::tree_
private

Definition at line 144 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ unCorrect_

const bool HcalHBHEMuonHighEtaAnalyzer::unCorrect_
private

Definition at line 101 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ useMyCorr_

bool HcalHBHEMuonHighEtaAnalyzer::useMyCorr_
private

Definition at line 124 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by HcalHBHEMuonHighEtaAnalyzer(), and respCorr().

◆ useRaw_

const int HcalHBHEMuonHighEtaAnalyzer::useRaw_
private

Definition at line 102 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by analyzeTracks(), and HcalHBHEMuonHighEtaAnalyzer().

◆ verbosity_

const int HcalHBHEMuonHighEtaAnalyzer::verbosity_
private

◆ writeRespCorr_

const bool HcalHBHEMuonHighEtaAnalyzer::writeRespCorr_
private

Definition at line 104 of file HcalHBHEMuonHighEtaAnalyzer.cc.

Referenced by beginRun().