CMS 3D CMS Logo

Classes | Functions | Variables
spr Namespace Reference

Classes

struct  caloSimInfo
 
struct  energyMap
 
struct  EtaPhi
 
struct  genSimInfo
 
struct  propagatedGenParticleID
 
struct  propagatedGenTrackID
 
struct  propagatedTrack
 
struct  propagatedTrackDirection
 
struct  propagatedTrackID
 
struct  simTkInfo
 
struct  trackAtOrigin
 
struct  trackSelectionParameters
 

Functions

template<typename T >
energyMap caloSimInfoMatrix (const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, std::vector< typename T::const_iterator > hit, edm::SimTrackContainer::const_iterator trkInfo, double timeCut=150, bool includeHO=false, bool debug=false)
 
void cGenSimInfo (int charge, int pdgid, double p, spr::genSimInfo &info, bool debug=false)
 
void cGenSimInfo (std::vector< DetId > &vdets, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, bool ifECAL, spr::genSimInfo &info, bool debug=false)
 
void cGenSimInfo (std::vector< DetId > &vdets, reco::GenParticleCollection::const_iterator trkItr, std::vector< spr::propagatedGenParticleID > &trackIds, bool ifECAL, spr::genSimInfo &info, bool debug=false)
 
bool chargeIsolation (const DetId anyCell, CaloNavigator< DetId > &navigator, int deta, int dphi)
 
bool chargeIsolation (const DetId anyCell, std::vector< DetId > &vdets)
 
double chargeIsolation (const edm::Event &iEvent, const edm::EventSetup &iSetup, CaloNavigator< DetId > &navigator, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, const CaloSubdetectorGeometry *gEB, const CaloSubdetectorGeometry *gEE, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, int ieta, int iphi, const std::string &theTrackQuality, bool debug=false)
 
std::pair< double, double > chargeIsolationCone (unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, bool debug=false)
 
double chargeIsolationCone (unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
 
double chargeIsolationEcal (const DetId &coreDet, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, const CaloGeometry *geo, const CaloTopology *caloTopology, const MagneticField *bField, int ieta, int iphi, const std::string &theTrackQuality, bool debug=false)
 
double chargeIsolationEcal (const edm::Event &iEvent, const edm::EventSetup &iSetup, const DetId &coreDet, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, const CaloGeometry *geo, const CaloTopology *caloTopology, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, int ieta, int iphi, const std::string &theTrackQuality, bool debug=false)
 
double chargeIsolationEcal (unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
 
double chargeIsolationHcal (const edm::Event &iEvent, const edm::EventSetup &iSetup, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, const DetId ClosestCell, const HcalTopology *topology, const CaloSubdetectorGeometry *gHB, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, int ieta, int iphi, const std::string &theTrackQuality, bool debug=false)
 
double chargeIsolationHcal (reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, const DetId ClosestCell, const HcalTopology *topology, const CaloSubdetectorGeometry *gHB, const MagneticField *bField, int ieta, int iphi, const std::string &theTrackQuality, bool debug=false)
 
double chargeIsolationHcal (unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)
 
double coneChargeIsolation (const edm::Event &iEvent, const edm::EventSetup &iSetup, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, const std::string &theTrackQuality, int &nNearTRKs, int &nLayers_maxNearP, int &trkQual_maxNearP, double &maxNearP_goodTrk, const GlobalPoint &hpoint1, const GlobalVector &trackMom, double dR)
 
int coneChargeIsolation (const GlobalPoint &hpoint1, const GlobalPoint &point2, const GlobalVector &trackMom, double dR)
 
void debugEcalDets (unsigned int, const DetId &, bool)
 
void debugEcalDets (unsigned int, std::vector< DetId > &)
 
void debugEcalDets (unsigned int, std::vector< DetId > &, std::vector< CaloDirection > &)
 
void debugHcalDets (unsigned int, std::vector< DetId > &)
 
std::map< std::string, double > eCaloSimInfo (caloSimInfo &info)
 
template<typename T >
void eCaloSimInfo (const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, std::vector< typename T::const_iterator > hit, edm::SimTrackContainer::const_iterator trkInfo, caloSimInfo &info, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
double eCaloSimInfo (const edm::Event &, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
double eCaloSimInfo (const edm::Event &, const CaloGeometry *geo, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, double timeCut=150, bool debug=false)
 
template<typename T >
std::map< std::string, double > eCaloSimInfo (edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, std::vector< typename T::const_iterator > hit, edm::SimTrackContainer::const_iterator trkInfo, std::vector< int > &multiplicityVector, bool debug=false)
 
template<typename T >
void eCaloSimInfo (std::vector< DetId > vdets, const CaloGeometry *geo, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, edm::SimTrackContainer::const_iterator trkInfo, caloSimInfo &info, double timeCut=150, bool debug=false)
 
template<typename T >
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)
 
template<typename T >
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, std::vector< DetId > &coneRecHitDetIds, std::vector< double > &eHit, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
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)
 
template<typename T >
double eCone_hcal (const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, std::vector< DetId > &coneRecHitDetIds, double &distFromHotCell, int &ietaHotCell, int &iphiHotCell, GlobalPoint &gposHotCell, int detOnly=-1, int useRaw=0, bool debug=false)
 
template<typename T >
double eCone_hcal (const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, std::vector< DetId > &coneRecHitDetIds, std::vector< double > &eHit, int useRaw=0, bool debug=false)
 
template<typename T >
double eCone_hcal (const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, std::vector< int > &RH_ieta, std::vector< int > &RH_iphi, std::vector< double > &RH_ene, std::vector< DetId > &coneRecHitDetIds, double &distFromHotCell, int &ietaHotCell, int &iphiHotCell, GlobalPoint &gposHotCell, int detOnly=-1, int useRaw=0, bool debug=false)
 
template<typename T >
double eECALmatrix (CaloNavigator< DetId > &navigator, edm::Handle< T > &hits, int ieta, int iphi, bool debug=false)
 
std::pair< double, bool > eECALmatrix (const DetId &detId, edm::Handle< EcalRecHitCollection > &hitsEB, edm::Handle< EcalRecHitCollection > &hitsEE, const EcalChannelStatus &chStatus, const CaloGeometry *geo, const CaloTopology *caloTopology, const EcalSeverityLevelAlgo *sevlv, const EcalTrigTowerConstituentsMap &ttMap, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
std::pair< double, bool > eECALmatrix (const DetId &detId, edm::Handle< EcalRecHitCollection > &hitsEB, edm::Handle< EcalRecHitCollection > &hitsEE, const EcalChannelStatus &chStatus, const CaloGeometry *geo, const CaloTopology *caloTopology, const EcalSeverityLevelAlgo *sevlv, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
double eECALmatrix (const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, const EcalTrigTowerConstituentsMap &ttMap, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
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)
 
template<typename T >
double eECALmatrix (const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ietaE, int ietaW, int iphiN, int iphiS, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
std::pair< double, bool > eECALmatrix (const HcalDetId &detId, edm::Handle< EcalRecHitCollection > &hitsEB, edm::Handle< EcalRecHitCollection > &hitsEE, const CaloGeometry *geo, const CaloTowerConstituentsMap *ctmap, const EcalSeverityLevelAlgo *sevlv, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
std::vector< std::pair< DetId, double > > eECALmatrixCell (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, bool debug=false)
 
template<typename T >
std::pair< double, int > eECALmatrixTotal (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, bool debug=false)
 
template<typename T >
std::map< std::string, double > eECALSimInfo (const edm::Event &, CaloNavigator< DetId > &navigator, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool debug=false)
 
template<typename T >
void eECALSimInfo (const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, caloSimInfo &info, double timeCut=150, bool debug=false)
 
template<typename T >
std::map< std::string, double > eECALSimInfo (const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool debug=false)
 
template<typename T >
void eECALSimInfo (const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ietaE, int ietaW, int iphiN, int iphiS, caloSimInfo &info, double timeCut=150, bool debug=false)
 
template<typename T >
energyMap eECALSimInfoMatrix (const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool debug=false)
 
template<typename T >
std::map< std::string, double > eECALSimInfoTotal (const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, int itry=-1, double timeCut=150, bool debug=false)
 
void eGenSimInfo (const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, double dR, const GlobalVector &trackMom, spr::genSimInfo &info, bool debug=false)
 
void eGenSimInfo (const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, spr::genSimInfo &info, bool debug=false)
 
void eGenSimInfo (const DetId &coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector< spr::propagatedGenParticleID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, double dR, const GlobalVector &trackMom, spr::genSimInfo &info, bool debug=false)
 
void eGenSimInfo (const DetId &coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector< spr::propagatedGenParticleID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, spr::genSimInfo &info, bool debug=false)
 
template<typename T >
double eHCALmatrix (const CaloGeometry *geo, const HcalTopology *topology, const DetId &det0, edm::Handle< T > &hits, int ieta, int iphi, HcalDetId &hotCell, bool includeHO=false, int useRaw=0, bool debug=false)
 
template<typename T >
double eHCALmatrix (const CaloGeometry *geo, const HcalTopology *topology, const DetId &det0, edm::Handle< T > &hits, int ieta, int iphi, int &nRecHits, std::vector< int > &RH_ieta, std::vector< int > &RH_iphi, std::vector< double > &RH_ene, GlobalPoint &gPosHotCell, int useRaw=0)
 
double eHCALmatrix (const CaloGeometry *geo, const HcalTopology *topology, const DetId &det0, std::vector< PCaloHit > &hits, int ieta, int iphi, HcalDetId &hotCell, bool includeHO=false, bool debug=false)
 
template<typename T >
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)
 
template<typename T >
double eHCALmatrix (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ietaE, int ietaW, int iphiN, int iphiS, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
 
double eHCALmatrix (const HcalTopology *topology, const DetId &det, std::vector< PCaloHit > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
double eHCALmatrix (const HcalTopology *topology, const DetId &det0, edm::Handle< T > &hits, int ieta, int iphi, int &nRecHits, std::vector< int > &RH_ieta, std::vector< int > &RH_iphi, std::vector< double > &RH_ene, std::set< int > &uniqueIdset, int useRaw=0)
 
template<typename T >
std::vector< std::pair< DetId, double > > eHCALmatrixCell (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
 
template<typename T >
std::pair< double, int > eHCALmatrixTotal (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
 
template<typename T >
void eHCALSimInfo (const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, caloSimInfo &info, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
std::map< std::string, double > eHCALSimInfo (const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
void eHCALSimInfo (const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ietaE, int ietaW, int iphiN, int iphiS, caloSimInfo &info, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
std::map< std::string, double > eHCALSimInfo (const edm::Event &iEvent, const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, std::vector< int > &multiplicityVector, bool debug=false)
 
template<typename T >
energyMap eHCALSimInfoMatrix (const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool includeHO=false, bool debug=false)
 
template<typename T >
std::map< std::string, double > eHCALSimInfoTotal (const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, int itry=-1, double timeCut=150, bool includeHO=false, bool debug=false)
 
double eHCALThreshold (int subdet, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100)
 
template<typename T >
std::vector< std::pair< DetId, double > > energyDetIdHCAL (std::vector< DetId > &vdets, edm::Handle< T > &hits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
 
std::pair< double, bool > energyECAL (const DetId &id, edm::Handle< EcalRecHitCollection > &hitsEC, const EcalSeverityLevelAlgo *sevlv, bool testSpike, double tMin, double tMax, bool debug)
 
std::pair< double, bool > energyECAL (const std::vector< DetId > &vdets, edm::Handle< EcalRecHitCollection > &hitsEC, const EcalSeverityLevelAlgo *sevlv, bool noThrCut, bool testSpike, double eThr, double tMin, double tMax, bool debug)
 
template<typename T >
double energyECAL (std::vector< DetId > &vdets, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const EcalTrigTowerConstituentsMap &ttMap, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
double energyECAL (std::vector< DetId > &vdets, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
std::vector< std::pair< DetId, double > > energyECALCell (std::vector< DetId > &vdets, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, double ebThr=-100, double eeThr=-100, bool debug=false)
 
template<typename T >
double energyECALTower (const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const EcalTrigTowerConstituentsMap &ttMap, bool debug=false)
 
template<typename T >
double energyHCAL (std::vector< DetId > &vdets, edm::Handle< T > &hits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
 
template<typename T >
double energyHCAL (std::vector< DetId > &vNeighboursDetId, std::vector< DetId > &dets, const HcalTopology *topology, edm::Handle< T > &hits, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
 
template<typename T >
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)
 
void energyHCALCell (HcalDetId detId, std::vector< PCaloHit > &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 depthHE=3, bool debug=false)
 
template<typename T >
double energyHCALmatrix (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
 
template<typename T >
double energyHCALmatrixNew (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
 
template<typename T >
double energyHCALmatrixTotal (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ietaE, int ietaW, int iphiN, int iphiS, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
 
void extraIds (const DetId &det, std::vector< DetId > &dets, int ietaE, int ietaW, int iphiN, int iphiS, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, std::vector< DetId > &cells, bool debug=false)
 
void find (edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
 
void find (edm::Handle< edm::PCaloHitContainer > &hits, DetId thisDet, std::vector< edm::PCaloHitContainer::const_iterator > &hit, bool debug=false)
 
void find (edm::Handle< HBHERecHitCollection > &hits, DetId thisDet, std::vector< HBHERecHitCollection::const_iterator > &hit, bool debug=false)
 
std::vector< EcalRecHitCollection::const_iteratorfindCone (const CaloGeometry *geo, edm::Handle< EcalRecHitCollection > &barrelhits, edm::Handle< EcalRecHitCollection > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug=false)
 
std::vector< EcalRecHitCollection::const_iteratorfindCone (const CaloGeometry *geo, edm::Handle< EcalRecHitCollection > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, bool debug=false)
 
std::vector< EcalRecHitCollection::const_iteratorfindCone (const CaloGeometry *geo, edm::Handle< EcalRecHitCollection > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug)
 
std::vector< edm::PCaloHitContainer::const_iterator > findCone (const CaloGeometry *geo, edm::Handle< edm::PCaloHitContainer > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug=false)
 
std::vector< HBHERecHitCollection::const_iteratorfindCone (const CaloGeometry *geo, edm::Handle< HBHERecHitCollection > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug=false)
 
const DetId findDetIdCalo (const CaloSubdetectorGeometry *geo, double theta, double phi, double radius, bool debug=false)
 
const DetId findDetIdECAL (const CaloGeometry *geo, double eta, double phi, bool debug=false)
 
const DetId findDetIdHCAL (const CaloGeometry *geo, double eta, double phi, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > findHit (edm::Handle< T > &hits, DetId thisDet, bool debug=false)
 
template<typename T >
void findHit (edm::Handle< T > &hits, DetId thisDet, std::vector< typename T::const_iterator > &hit, bool debug=false)
 
std::vector< std::vector< PCaloHit >::const_iterator > findHit (std::vector< PCaloHit > &hits, DetId thisDet, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > findHitCone (const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > findHitCone (const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, bool debug=false)
 
double getDistInCMatEcal (double eta1, double phi1, double eta2, double phi2, bool debug=false)
 
double getDistInCMatHcal (double eta1, double phi1, double eta2, double phi2, bool debug=false)
 
double getDistInPlaneTrackDir (const GlobalPoint &caloPoint, const GlobalVector &caloVector, const GlobalPoint &rechitPoint, bool debug=false)
 
double getEnergy (edm::PCaloHitContainer::const_iterator hit, int useRaw=0, bool debug=false)
 
double getEnergy (HBHERecHitCollection::const_iterator hit, int useRaw=0, bool debug=false)
 
void getEtaPhi (edm::PCaloHitContainer::const_iterator hit, int &ieta, int &iphi, bool debug=false)
 
void getEtaPhi (edm::PCaloHitContainer::const_iterator hit, std::vector< int > &RH_ieta, std::vector< int > &RH_iphi, std::vector< double > &RH_ene, bool debug=false)
 
void getEtaPhi (HBHERecHitCollection::const_iterator hit, int &ieta, int &iphi, bool debug=false)
 
void getEtaPhi (HBHERecHitCollection::const_iterator hit, std::vector< int > &RH_ieta, std::vector< int > &RH_iphi, std::vector< double > &RH_ene, bool debug=false)
 
EtaPhi getEtaPhi (int ieta, int iphi, bool debug=false)
 
GlobalPoint getGpos (const CaloGeometry *geo, edm::PCaloHitContainer::const_iterator hit, bool debug=false)
 
GlobalPoint getGpos (const CaloGeometry *geo, HBHERecHitCollection::const_iterator hit, bool debug=false)
 
HcalDetId getHotCell (std::vector< HBHERecHitCollection::const_iterator > &hit, bool includeHO, int useRaw=0, bool debug=false)
 
HcalDetId getHotCell (std::vector< std::vector< PCaloHit >::const_iterator > &hit, bool includeHO, int useRaw=0, bool debug=false)
 
double getRawEnergy (edm::PCaloHitContainer::const_iterator hit, int useRaw=0)
 
double getRawEnergy (HBHERecHitCollection::const_iterator hit, int useRaw=0)
 
bool goodTrack (const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
 
void hGenSimInfo (const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const CaloGeometry *geo, const HcalTopology *topology, double dR, const GlobalVector &trackMom, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
 
void hGenSimInfo (const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const HcalTopology *topology, int ieta, int iphi, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
 
void hGenSimInfo (const DetId &coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector< spr::propagatedGenParticleID > &trackIds, const CaloGeometry *geo, const HcalTopology *topology, double dR, const GlobalVector &trackMom, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
 
void hGenSimInfo (const DetId &coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector< spr::propagatedGenParticleID > &trackIds, const HcalTopology *topology, int ieta, int iphi, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
 
template<typename T >
void hitECALmatrix (CaloNavigator< DetId > &navigator, edm::Handle< T > &hits, int ieta, int iphi, std::vector< typename T::const_iterator > &hitlist, bool debug=false)
 
template<typename T >
void hitHCALmatrix (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, std::vector< typename T::const_iterator > &hitlist, bool includeHO=false, bool debug=false)
 
template<typename T >
void hitHCALmatrixTotal (const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ietaE, int ietaW, int iphiN, int iphiS, std::vector< typename T::const_iterator > &hitlist, bool includeHO=false, bool debug=false)
 
template<typename T >
void hitsHCAL (std::vector< DetId > &vdets, edm::Handle< T > &hits, std::vector< typename T::const_iterator > &hitlist, bool debug=false)
 
template<typename T >
DetId hotCrystal (const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double tMin=-500, double tMax=500, bool debug=false)
 
template<typename T >
DetId hotCrystal (std::vector< DetId > &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, double tMin=-500, double tMax=500, bool debug=false)
 
edm::SimTrackContainer::const_iterator matchedSimTrack (const edm::Event &iEvent, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
 
std::vector< int > matchedSimTrackId (const edm::Event &, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
 
simTkInfo matchedSimTrackInfo (unsigned int simTkId, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
 
std::vector< DetIdmatrixECALIds (const DetId &det, double dR, const GlobalVector &trackMom, const CaloGeometry *geo, const CaloTopology *caloTopology, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdmatrixECALIds (const DetId &det, int ieta, int iphi, const CaloGeometry *geo, const CaloTopology *caloTopology, bool debug=false, bool igNoreTransition=true)
 
void matrixECALIds (const DetId &det, int ieta, int iphi, const CaloGeometry *geo, const CaloTopology *caloTopology, std::vector< DetId > &vdets, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdmatrixECALIds (const DetId &det, int ietaE, int ietaW, int iphiN, int iphiS, const CaloGeometry *geo, const CaloTopology *caloTopology, bool debug=false, bool igNoreTransition=true)
 
void matrixECALIds (const DetId &det, int ietaE, int ietaW, int iphiN, int iphiS, const CaloGeometry *geo, const CaloTopology *caloTopology, std::vector< DetId > &vdets, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdmatrixHCALIds (const DetId &det, const CaloGeometry *geo, const HcalTopology *topology, double dR, const GlobalVector &trackMom, bool includeHO=false, bool debug=false)
 
std::vector< DetIdmatrixHCALIds (std::vector< DetId > &dets, const HcalTopology *topology, int ieta, int iphi, bool includeHO=false, bool debug=false)
 
std::vector< DetIdmatrixHCALIds (std::vector< DetId > &dets, const HcalTopology *topology, int ietaE, int ietaW, int iphiN, int iphiS, bool includeHO=false, bool debug=false)
 
std::vector< DetIdmatrixHCALIdsDepth (std::vector< DetId > &dets, const HcalTopology *topology, bool includeHO=false, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > missedCaloHits (edm::Handle< T > &hits, std::vector< int > matchedId, std::vector< typename T::const_iterator > caloHits, bool flag, bool includeHO=false, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > missedECALHits (const edm::Event &, CaloNavigator< DetId > &navigator, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, bool flag, bool debug=false)
 
template<typename T >
std::vector< typename T::const_iterator > missedHCALHits (const edm::Event &, const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, bool flag, bool includeHO=false, bool debug=false)
 
std::vector< DetIdnewECALIdEW (std::vector< DetId > &dets, unsigned int last, int ieta, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdnewECALIdEW (std::vector< DetId > &dets, unsigned int last, std::vector< int > &ietaE, std::vector< int > &ietaW, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdnewECALIdNS (std::vector< DetId > &dets, unsigned int last, int ieta, int iphi, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdnewECALIdNS (std::vector< DetId > &dets, unsigned int last, std::vector< int > &ietaE, std::vector< int > &ietaW, std::vector< int > &iphiN, std::vector< int > &iphiS, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
 
std::vector< DetIdnewHCALIdEW (std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftEast, int ieta, bool debug=false)
 
std::vector< DetIdnewHCALIdEW (std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftEast, int ietaE, int ietaW, bool debug=false)
 
std::vector< DetIdnewHCALIdNS (std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftNorth, int ieta, int iphi, bool debug=false)
 
std::vector< DetIdnewHCALIdNS (std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftNorth, int ietaE, int ietaW, int iphiN, int iphiS, bool debug=false)
 
edm::SimTrackContainer::const_iterator parentSimTrack (edm::SimTrackContainer::const_iterator thisTrkItr, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
 
spr::propagatedTrack propagateCalo (const GlobalPoint &vertex, const GlobalVector &momentum, int charge, const MagneticField *, float zdist, float radius, float corner, bool debug=false)
 
std::vector< spr::propagatedGenTrackIDpropagateCALO (const HepMC::GenEvent *genEvent, edm::ESHandle< ParticleDataTable > &pdt, const CaloGeometry *geo, const MagneticField *bField, double etaMax=3.0, bool debug=false)
 
spr::propagatedTrackID propagateCALO (const reco::Track *, const CaloGeometry *geo, const MagneticField *bField, bool debug=false)
 
std::vector< spr::propagatedGenParticleIDpropagateCALO (edm::Handle< reco::GenParticleCollection > &genParticles, edm::ESHandle< ParticleDataTable > &pdt, const CaloGeometry *geo, const MagneticField *bField, double etaMax=3.0, bool debug=false)
 
std::vector< spr::propagatedTrackIDpropagateCALO (edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
 
void propagateCALO (edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, std::vector< spr::propagatedTrackDirection > &trkDir, bool debug=false)
 
void propagateCALO (edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, std::vector< spr::propagatedTrackID > &vdets, bool debug=false)
 
spr::propagatedTrackDirection propagateCALO (unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const CaloGeometry *geo, const MagneticField *bField, bool debug=false)
 
std::vector< spr::propagatedTrackIDpropagateCosmicCALO (edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
 
std::pair< math::XYZPoint, bool > propagateECAL (const GlobalPoint &vertex, const GlobalVector &momentum, int charge, const MagneticField *, bool debug=false)
 
std::pair< math::XYZPoint, bool > propagateECAL (const reco::Track *, const MagneticField *, bool debug=false)
 
std::pair< HcalDetId, HcalDetIdpropagateHCAL (const CaloGeometry *geo, const MagneticField *bField, const GlobalPoint &vertex, const GlobalVector &momentum, int charge, bool typeRZ, const std::pair< double, double > rz, bool debug)
 
std::pair< math::XYZPoint, bool > propagateHCAL (const GlobalPoint &vertex, const GlobalVector &momentum, int charge, const MagneticField *, bool debug=false)
 
std::pair< math::XYZPoint, bool > propagateHCAL (const reco::Track *, const MagneticField *, bool debug=false)
 
bool propagateHCAL (const reco::Track *track, const CaloGeometry *geo, const MagneticField *bField, bool typeRZ, const std::pair< double, double > rz, bool debug)
 
bool propagateHCAL (unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const CaloGeometry *geo, const MagneticField *bField, bool typeRZ, const std::pair< double, double > rz, bool debug)
 
std::pair< bool, HcalDetIdpropagateHCALBack (const reco::Track *, const CaloGeometry *geo, const MagneticField *bField, bool debug=false)
 
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)
 
std::pair< DetId, bool > propagateIdECAL (const HcalDetId &id, const CaloGeometry *geo, const MagneticField *, bool debug=false)
 
std::pair< math::XYZPoint, bool > propagateTracker (const reco::Track *, const MagneticField *, bool debug=false)
 
std::pair< math::XYZPoint, double > propagateTrackerEnd (const reco::Track *, const MagneticField *, bool debug=false)
 
spr::propagatedTrack propagateTrackToECAL (const reco::Track *, const MagneticField *, bool debug=false)
 
spr::propagatedTrack propagateTrackToECAL (unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const MagneticField *, bool debug=false)
 
spr::propagatedTrack propagateTrackToHCAL (const reco::Track *, const MagneticField *, bool debug=false)
 
spr::propagatedTrack propagateTrackToHCAL (unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const MagneticField *, bool debug=false)
 
void simpleMove (DetId &det, const CaloDirection &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, std::vector< DetId > &cells, int &flag, bool debug=false, bool igNoreTransition=true)
 
spr::trackAtOrigin simTrackAtOrigin (unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
 
double timeOfFlight (DetId id, const CaloGeometry *geo, bool debug=false)
 
bool validSimTrack (unsigned int simTkId, edm::SimTrackContainer::const_iterator thisTrkItr, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
 

Variables

static const double deltaEta = 0.087
 
static const double etaBEEcal = 1.479
 
static const double etaBEHcal = 1.392
 
static const double etaBETrak = 1.705
 
static const double rBackHB = 288.8
 
static const double rBackTB = 109.0
 
static const double rFrontEB = 129.4
 
static const double rFrontHB = 180.7
 
static const double rFrontHO = 384.8
 
static const double zBackHE = 549.3
 
static const double zBackTE = 290.0
 
static const double zFrontEE = 319.2
 
static const double zFrontES = 303.2
 
static const double zFrontHE = 402.7
 
static const double zFrontHF = 1115.
 
static const double zFrontTE = 110.0
 

Function Documentation

◆ caloSimInfoMatrix()

template<typename T >
energyMap spr::caloSimInfoMatrix ( const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
std::vector< typename T::const_iterator >  hit,
edm::SimTrackContainer::const_iterator  trkInfo,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ cGenSimInfo() [1/3]

void spr::cGenSimInfo ( int  charge,
int  pdgid,
double  p,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 276 of file GenSimInfo.cc.

276  {
277  if (pdgid == 22)
278  info.photonEne += p;
279  else if (pdgid == 11)
280  info.eleEne += p;
281  else if (pdgid == 13)
282  info.muEne += p;
283  else if (std::abs(charge) > 0) {
284  info.isChargedIso = false;
285  info.cHadronEne += p;
286  if (p > 1.0)
287  info.cHadronEne_[0] += p;
288  if (p > 2.0)
289  info.cHadronEne_[1] += p;
290  if (p > 3.0)
291  info.cHadronEne_[2] += p;
292  if (info.maxNearP < p)
293  info.maxNearP = p;
294  } else if (std::abs(charge) == 0) {
295  info.nHadronEne += p;
296  }
297  }

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, info(), AlCaHLTBitMon_ParallelJobs::p, and EgammaValidation_cff::pdgid.

◆ cGenSimInfo() [2/3]

void spr::cGenSimInfo ( std::vector< DetId > &  vdets,
HepMC::GenEvent::particle_const_iterator  trkItr,
std::vector< spr::propagatedGenTrackID > &  trackIds,
bool  ifECAL,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 195 of file GenSimInfo.cc.

200  {
201  info.maxNearP = -1.0;
202  info.cHadronEne = info.nHadronEne = info.eleEne = info.muEne = info.photonEne = 0.0;
203  info.isChargedIso = true;
204  for (int i = 0; i < 3; ++i)
205  info.cHadronEne_[i] = 0.0;
206  for (unsigned int i = 0; i < trackIds.size(); ++i) {
207  HepMC::GenEvent::particle_const_iterator trkItr2 = trackIds[i].trkItr;
208  // avoid the track under consideration
209  if ((trkItr2 != trkItr) && trackIds[i].ok) {
210  int charge = trackIds[i].charge;
211  int pdgid = trackIds[i].pdgId;
212  double p = (*trkItr2)->momentum().rho();
213  bool isolat = false;
214  if (ifECAL) {
215  const DetId anyCell = trackIds[i].detIdECAL;
216  isolat = spr::chargeIsolation(anyCell, vdets);
217  } else {
218  const DetId anyCell = trackIds[i].detIdHCAL;
219  isolat = spr::chargeIsolation(anyCell, vdets);
220  }
221  if (!isolat)
223  }
224  }
225 #ifdef EDM_ML_DEBUG
226  if (debug) {
227  std::cout << "Isolation variables: isChargedIso :" << info.isChargedIso << " maxNearP " << info.maxNearP
228  << " Energy e/mu/g/ch/nh " << info.eleEne << "," << info.muEne << "," << info.photonEne << ","
229  << info.cHadronEne << "," << info.nHadronEne << " charge " << info.cHadronEne_[0] << ","
230  << info.cHadronEne_[1] << "," << info.cHadronEne_[2] << std::endl;
231  }
232 #endif
233  }

References ALCARECOTkAlJpsiMuMu_cff::charge, chargeIsolation(), gather_cfg::cout, debug, cms::cuda::for(), mps_fire::i, info(), AlCaHLTBitMon_ParallelJobs::p, and EgammaValidation_cff::pdgid.

Referenced by cGenSimInfo(), eGenSimInfo(), and hGenSimInfo().

◆ cGenSimInfo() [3/3]

void spr::cGenSimInfo ( std::vector< DetId > &  vdets,
reco::GenParticleCollection::const_iterator  trkItr,
std::vector< spr::propagatedGenParticleID > &  trackIds,
bool  ifECAL,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 235 of file GenSimInfo.cc.

240  {
241  info.maxNearP = -1.0;
242  info.cHadronEne = info.nHadronEne = info.eleEne = info.muEne = info.photonEne = 0.0;
243  info.isChargedIso = true;
244  for (int i = 0; i < 3; ++i)
245  info.cHadronEne_[i] = 0.0;
246  for (unsigned int i = 0; i < trackIds.size(); ++i) {
247  reco::GenParticleCollection::const_iterator trkItr2 = trackIds[i].trkItr;
248  // avoid the track under consideration
249  if ((trkItr2 != trkItr) && trackIds[i].ok) {
250  int charge = trackIds[i].charge;
251  int pdgid = trackIds[i].pdgId;
252  double p = trkItr2->momentum().R();
253  bool isolat = false;
254  if (ifECAL) {
255  const DetId anyCell = trackIds[i].detIdECAL;
256  isolat = spr::chargeIsolation(anyCell, vdets);
257  } else {
258  const DetId anyCell = trackIds[i].detIdHCAL;
259  isolat = spr::chargeIsolation(anyCell, vdets);
260  }
261  if (!isolat)
263  }
264  }
265 
266 #ifdef EDM_ML_DEBUG
267  if (debug) {
268  std::cout << "Isolation variables: isChargedIso :" << info.isChargedIso << " maxNearP " << info.maxNearP
269  << " Energy e/mu/g/ch/nh " << info.eleEne << "," << info.muEne << "," << info.photonEne << ","
270  << info.cHadronEne << "," << info.nHadronEne << " charge " << info.cHadronEne_[0] << ","
271  << info.cHadronEne_[1] << "," << info.cHadronEne_[2] << std::endl;
272  }
273 #endif
274  }

References cGenSimInfo(), ALCARECOTkAlJpsiMuMu_cff::charge, chargeIsolation(), gather_cfg::cout, debug, cms::cuda::for(), mps_fire::i, info(), AlCaHLTBitMon_ParallelJobs::p, and EgammaValidation_cff::pdgid.

◆ chargeIsolation() [1/3]

bool spr::chargeIsolation ( const DetId  anyCell,
CaloNavigator< DetId > &  navigator,
int  deta,
int  dphi 
)

Definition at line 80 of file ChargeIsolationExtra.cc.

80  {
81  bool isIsolated = false;
82 
83  DetId thisDet;
84 
85  for (int dx = -ieta; dx < ieta + 1; ++dx) {
86  for (int dy = -iphi; dy < iphi + 1; ++dy) {
87  thisDet = navigator.offsetBy(dx, dy);
88  navigator.home();
89 
90  if (thisDet != DetId(0)) {
91  if (thisDet == anyCell) {
92  isIsolated = false;
93  return isIsolated;
94  }
95  }
96  }
97  }
98  return isIsolated;
99  }

References PVValHelper::dx, PVValHelper::dy, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, and HLT_2018_cff::navigator.

◆ chargeIsolation() [2/3]

bool spr::chargeIsolation ( const DetId  anyCell,
std::vector< DetId > &  vdets 
)

Definition at line 213 of file ChargeIsolation.cc.

213  {
214  bool isIsolated = true;
215  for (unsigned int i = 0; i < vdets.size(); i++) {
216  if (anyCell == vdets[i]) {
217  isIsolated = false;
218  break;
219  }
220  }
221  return isIsolated;
222  }

References mps_fire::i.

Referenced by cGenSimInfo(), chargeIsolation(), chargeIsolationEcal(), and chargeIsolationHcal().

◆ chargeIsolation() [3/3]

double spr::chargeIsolation ( const edm::Event iEvent,
const edm::EventSetup iSetup,
CaloNavigator< DetId > &  navigator,
reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
const CaloSubdetectorGeometry gEB,
const CaloSubdetectorGeometry gEE,
TrackDetectorAssociator associator,
TrackAssociatorParameters parameters_,
int  ieta,
int  iphi,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 16 of file ChargeIsolationExtra.cc.

32  {
33 
34  double maxNearP = -1.0;
35  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
36 
37  // const DetId anyCell,
38  reco::TrackCollection::const_iterator trkItr2;
39  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
40  const reco::Track* pTrack2 = &(*trkItr2);
41 
42  bool trkQuality = pTrack2->quality(trackQuality_);
43  if ((trkItr2 != trkItr) && trkQuality) {
44  const FreeTrajectoryState fts2 = associator.getFreeTrajectoryState(iSetup, *pTrack2);
45  TrackDetMatchInfo info2 = associator.associate(iEvent, iSetup, fts2, parameters_);
46  const GlobalPoint point2(info2.trkGlobPosAtEcal.x(), info2.trkGlobPosAtEcal.y(), info2.trkGlobPosAtEcal.z());
47 
48  if (info2.isGoodEcal) {
49  if (std::abs(point2.eta()) < spr::etaBEEcal) {
50  const DetId anyCell = gEB->getClosestCell(point2);
51 #ifdef EDM_ML_DEBUG
52  if (debug)
53  std::cout << "chargeIsolation:: EB cell " << (EBDetId)(anyCell) << " for pt " << pTrack2->p()
54  << std::endl;
55 #endif
56  if (!spr::chargeIsolation(anyCell, theNavigator, ieta, iphi)) {
57  if (maxNearP < pTrack2->p())
58  maxNearP = pTrack2->p();
59  }
60  } else {
61  const DetId anyCell = gEE->getClosestCell(point2);
62 #ifdef EDM_ML_DEBUG
63  if (debug)
64  std::cout << "chargeIsolation:: EE cell " << (EEDetId)(anyCell) << " for pt " << pTrack2->p()
65  << std::endl;
66 #endif
67  if (!spr::chargeIsolation(anyCell, theNavigator, ieta, iphi)) {
68  if (maxNearP < pTrack2->p())
69  maxNearP = pTrack2->p();
70  }
71  }
72  } //info2.isGoodEcal
73  }
74  }
75  return maxNearP;
76  }

References funct::abs(), ctfWithMaterialTrackMCMatch_cfi::associator, chargeIsolation(), gather_cfg::cout, debug, etaBEEcal, CaloSubdetectorGeometry::getClosestCell(), LEDCalibrationChannels::ieta, iEvent, LEDCalibrationChannels::iphi, TrackDetMatchInfo::isGoodEcal, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), and TrackDetMatchInfo::trkGlobPosAtEcal.

◆ chargeIsolationCone() [1/2]

std::pair<double, double> spr::chargeIsolationCone ( unsigned int  trkIndex,
std::vector< spr::propagatedTrackDirection > &  trkDirs,
double  dR,
bool  debug = false 
)

Definition at line 319 of file ChargeIsolation.cc.

322  {
323  double maxNearP = -1.0;
324  double sumP = 0;
325  if (trkDirs[trkIndex].okHCAL) {
326 #ifdef EDM_ML_DEBUG
327  if (debug)
328  std::cout << "chargeIsolationCone with " << trkDirs.size() << " tracks " << std::endl;
329 #endif
330  for (unsigned int indx = 0; indx < trkDirs.size(); ++indx) {
331  if (indx != trkIndex && trkDirs[indx].ok && trkDirs[indx].okHCAL) {
332  int isConeChargedIso = spr::coneChargeIsolation(
333  trkDirs[trkIndex].pointHCAL, trkDirs[indx].pointHCAL, trkDirs[trkIndex].directionHCAL, dR);
334  if (isConeChargedIso == 0) {
335  const reco::Track* pTrack = &(*(trkDirs[indx].trkItr));
336  sumP += (pTrack->p());
337  if (maxNearP < pTrack->p())
338  maxNearP = pTrack->p();
339  }
340  }
341  }
342  }
343 #ifdef EDM_ML_DEBUG
344  if (debug)
345  std::cout << "chargeIsolationCone Track " << trkDirs[trkIndex].okHCAL << " maxNearP " << maxNearP << ":" << sumP
346  << std::endl;
347 #endif
348  return std::pair<double, double>(maxNearP, sumP);
349  }

References coneChargeIsolation(), gather_cfg::cout, debug, HGC3DClusterGenMatchSelector_cfi::dR, convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, and reco::TrackBase::p().

◆ chargeIsolationCone() [2/2]

double spr::chargeIsolationCone ( unsigned int  trkIndex,
std::vector< spr::propagatedTrackDirection > &  trkDirs,
double  dR,
int &  nNearTRKs,
bool  debug = false 
)

Definition at line 287 of file ChargeIsolation.cc.

291  {
292  double maxNearP = -1.0;
293  nNearTRKs = 0;
294  if (trkDirs[trkIndex].okHCAL) {
295 #ifdef EDM_ML_DEBUG
296  if (debug)
297  std::cout << "chargeIsolationCone with " << trkDirs.size() << " tracks " << std::endl;
298 #endif
299  for (unsigned int indx = 0; indx < trkDirs.size(); ++indx) {
300  if (indx != trkIndex && trkDirs[indx].ok && trkDirs[indx].okHCAL) {
301  int isConeChargedIso = spr::coneChargeIsolation(
302  trkDirs[trkIndex].pointHCAL, trkDirs[indx].pointHCAL, trkDirs[trkIndex].directionHCAL, dR);
303  if (isConeChargedIso == 0) {
304  nNearTRKs++;
305  const reco::Track* pTrack = &(*(trkDirs[indx].trkItr));
306  if (maxNearP < pTrack->p())
307  maxNearP = pTrack->p();
308  }
309  }
310  }
311  }
312 #ifdef EDM_ML_DEBUG
313  if (debug)
314  std::cout << "chargeIsolationCone Track " << trkDirs[trkIndex].okHCAL << " maxNearP " << maxNearP << std::endl;
315 #endif
316  return maxNearP;
317  }

References coneChargeIsolation(), gather_cfg::cout, debug, HGC3DClusterGenMatchSelector_cfi::dR, convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, and reco::TrackBase::p().

Referenced by IsoTrackCalibration::analyze(), IsoTrackCalib::analyze(), IsolatedTracksHcalScale::analyze(), IsoTrig::chgIsolation(), HcalIsoTrkAnalyzer::fillTree(), AlCaIsoTracksFilter::filter(), IsoTrig::getGoodTracks(), AlCaIsoTracksProducer::select(), IsoTrig::studyIsolation(), IsoTrig::studyMipCut(), and IsoTrig::StudyTrkEbyP().

◆ chargeIsolationEcal() [1/3]

double spr::chargeIsolationEcal ( const DetId coreDet,
reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
const CaloGeometry geo,
const CaloTopology caloTopology,
const MagneticField bField,
int  ieta,
int  iphi,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 53 of file ChargeIsolation.cc.

62  {
65 
66  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, debug);
67 #ifdef EDM_ML_DEBUG
68  if (debug)
69  std::cout << "chargeIsolation:: eta/phi/dets " << ieta << " " << iphi << " " << vdets.size() << std::endl;
70 #endif
71  double maxNearP = -1.0;
72  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
73 
74  // const DetId anyCell,
75  reco::TrackCollection::const_iterator trkItr2;
76  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
77  const reco::Track* pTrack2 = &(*trkItr2);
78 
79  bool trkQuality = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack2->quality(trackQuality_)) : true;
80  if ((trkItr2 != trkItr) && trkQuality) {
81  std::pair<math::XYZPoint, bool> info = spr::propagateECAL(pTrack2, bField);
82  const GlobalPoint point2(info.first.x(), info.first.y(), info.first.z());
83 
84  if (info.second) {
85  if (std::abs(point2.eta()) < spr::etaBEEcal) {
86  const DetId anyCell = barrelGeom->getClosestCell(point2);
87  if (!spr::chargeIsolation(anyCell, vdets)) {
88 #ifdef EDM_ML_DEBUG
89  if (debug)
90  std::cout << "chargeIsolationEcal Cell " << (EBDetId)(anyCell) << " pt " << pTrack2->p() << std::endl;
91 #endif
92  if (maxNearP < pTrack2->p())
93  maxNearP = pTrack2->p();
94  }
95  } else {
96  if (endcapGeom) {
97  const DetId anyCell = endcapGeom->getClosestCell(point2);
98  if (!spr::chargeIsolation(anyCell, vdets)) {
99 #ifdef EDM_ML_DEBUG
100  if (debug)
101  std::cout << "chargeIsolationEcal Cell " << (EEDetId)(anyCell) << " pt " << pTrack2->p() << std::endl;
102 #endif
103  if (maxNearP < pTrack2->p())
104  maxNearP = pTrack2->p();
105  }
106  }
107  }
108  } //info.second
109  }
110  }
111  return maxNearP;
112  }

References funct::abs(), Calorimetry_cff::bField, chargeIsolation(), gather_cfg::cout, debug, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, matrixECALIds(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), propagateECAL(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), and reco::TrackBase::undefQuality.

◆ chargeIsolationEcal() [2/3]

double spr::chargeIsolationEcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const DetId coreDet,
reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
const CaloGeometry geo,
const CaloTopology caloTopology,
TrackDetectorAssociator associator,
TrackAssociatorParameters parameters_,
int  ieta,
int  iphi,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 103 of file ChargeIsolationExtra.cc.

115  {
118 
119  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, debug);
120 #ifdef EDM_ML_DEBUG
121  if (debug)
122  std::cout << "chargeIsolation:: eta/phi/dets " << ieta << " " << iphi << " " << vdets.size() << std::endl;
123 #endif
124  double maxNearP = -1.0;
125  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
126 
127  // const DetId anyCell,
128  reco::TrackCollection::const_iterator trkItr2;
129  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
130  const reco::Track* pTrack2 = &(*trkItr2);
131 
132  bool trkQuality = pTrack2->quality(trackQuality_);
133  if ((trkItr2 != trkItr) && trkQuality) {
134  const FreeTrajectoryState fts2 = associator.getFreeTrajectoryState(iSetup, *pTrack2);
135  TrackDetMatchInfo info2 = associator.associate(iEvent, iSetup, fts2, parameters_);
136  const GlobalPoint point2(info2.trkGlobPosAtEcal.x(), info2.trkGlobPosAtEcal.y(), info2.trkGlobPosAtEcal.z());
137 
138  if (info2.isGoodEcal) {
139  if (std::abs(point2.eta()) < spr::etaBEEcal) {
140  const DetId anyCell = barrelGeom->getClosestCell(point2);
141 #ifdef EDM_ML_DEBUG
142  if (debug)
143  std::cout << "chargeIsolation:: EB cell " << (EBDetId)(anyCell) << " for pt " << pTrack2->p()
144  << std::endl;
145 #endif
146  if (!spr::chargeIsolation(anyCell, vdets)) {
147  if (maxNearP < pTrack2->p())
148  maxNearP = pTrack2->p();
149  }
150  } else {
151  const DetId anyCell = endcapGeom->getClosestCell(point2);
152 #ifdef EDM_ML_DEBUG
153  if (debug)
154  std::cout << "chargeIsolation:: EE cell " << (EEDetId)(anyCell) << " for pt " << pTrack2->p()
155  << std::endl;
156 #endif
157  if (!spr::chargeIsolation(anyCell, vdets)) {
158  if (maxNearP < pTrack2->p())
159  maxNearP = pTrack2->p();
160  }
161  }
162  } //info2.isGoodEcal
163  }
164  }
165  return maxNearP;
166  }

References funct::abs(), ctfWithMaterialTrackMCMatch_cfi::associator, chargeIsolation(), gather_cfg::cout, debug, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), LEDCalibrationChannels::ieta, iEvent, LEDCalibrationChannels::iphi, TrackDetMatchInfo::isGoodEcal, matrixECALIds(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), and TrackDetMatchInfo::trkGlobPosAtEcal.

◆ chargeIsolationEcal() [3/3]

double spr::chargeIsolationEcal ( unsigned int  trkIndex,
std::vector< spr::propagatedTrackID > &  vdetIds,
const CaloGeometry geo,
const CaloTopology caloTopology,
int  ieta,
int  iphi,
bool  debug = false 
)

Definition at line 15 of file ChargeIsolation.cc.

21  {
22  const DetId coreDet = vdetIds[trkIndex].detIdECAL;
23 #ifdef EDM_ML_DEBUG
24  if (debug) {
25  if (coreDet.subdetId() == EcalBarrel)
26  std::cout << "DetId " << (EBDetId)(coreDet) << " Flag " << vdetIds[trkIndex].okECAL << std::endl;
27  else
28  std::cout << "DetId " << (EEDetId)(coreDet) << " Flag " << vdetIds[trkIndex].okECAL << std::endl;
29  }
30 #endif
31  double maxNearP = -1.0;
32  if (vdetIds[trkIndex].okECAL) {
33  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, debug);
34 #ifdef EDM_ML_DEBUG
35  if (debug)
36  std::cout << "chargeIsolationEcal:: eta/phi/dets " << ieta << " " << iphi << " " << vdets.size() << std::endl;
37 #endif
38 
39  for (unsigned int indx = 0; indx < vdetIds.size(); ++indx) {
40  if (indx != trkIndex && vdetIds[indx].ok && vdetIds[indx].okECAL) {
41  const DetId anyCell = vdetIds[indx].detIdECAL;
42  if (!spr::chargeIsolation(anyCell, vdets)) {
43  const reco::Track* pTrack = &(*(vdetIds[indx].trkItr));
44  if (maxNearP < pTrack->p())
45  maxNearP = pTrack->p();
46  }
47  }
48  }
49  }
50  return maxNearP;
51  }

References chargeIsolation(), gather_cfg::cout, debug, EcalBarrel, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, matrixECALIds(), convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), and DetId::subdetId().

Referenced by StudyCaloResponse::analyze(), IsolatedTracksNxN::analyze(), HcalHBHEMuonHighEtaAnalyzer::analyzeTracks(), and HcalIsoTrkAnalyzer::fillTree().

◆ chargeIsolationHcal() [1/3]

double spr::chargeIsolationHcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
const DetId  ClosestCell,
const HcalTopology topology,
const CaloSubdetectorGeometry gHB,
TrackDetectorAssociator associator,
TrackAssociatorParameters parameters_,
int  ieta,
int  iphi,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 170 of file ChargeIsolationExtra.cc.

182  {
183  std::vector<DetId> dets(1, ClosestCell);
184 
185 #ifdef EDM_ML_DEBUG
186  if (debug)
187  std::cout << (HcalDetId)ClosestCell << std::endl;
188 #endif
189  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, false, debug);
190 
191 #ifdef EDM_ML_DEBUG
192  if (debug) {
193  for (unsigned int i = 0; i < vdets.size(); i++) {
194  std::cout << "HcalDetId in " << 2 * ieta + 1 << "x" << 2 * iphi + 1 << " " << (HcalDetId)vdets[i] << std::endl;
195  }
196  }
197 #endif
198  double maxNearP = -1.0;
199  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
200 
201  reco::TrackCollection::const_iterator trkItr2;
202  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
203  const reco::Track* pTrack2 = &(*trkItr2);
204 
205  bool trkQuality = pTrack2->quality(trackQuality_);
206  if ((trkItr2 != trkItr) && trkQuality) {
207  const FreeTrajectoryState fts2 = associator.getFreeTrajectoryState(iSetup, *pTrack2);
208  TrackDetMatchInfo info2 = associator.associate(iEvent, iSetup, fts2, parameters_);
209  const GlobalPoint point2(info2.trkGlobPosAtHcal.x(), info2.trkGlobPosAtHcal.y(), info2.trkGlobPosAtHcal.z());
210 
211 #ifdef EDM_ML_DEBUG
212  if (debug) {
213  std::cout << "Track2 (p,eta,phi) " << pTrack2->p() << " " << pTrack2->eta() << " " << pTrack2->phi()
214  << std::endl;
215  }
216 #endif
217  if (info2.isGoodHcal) {
218  const DetId anyCell = gHB->getClosestCell(point2);
219 #ifdef EDM_ML_DEBUG
220  if (debug)
221  std::cout << "chargeIsolation:: HCAL cell " << (HcalDetId)(anyCell) << " for pt " << pTrack2->p()
222  << std::endl;
223 #endif
224  if (!spr::chargeIsolation(anyCell, vdets)) {
225  if (maxNearP < pTrack2->p())
226  maxNearP = pTrack2->p();
227  }
228 #ifdef EDM_ML_DEBUG
229  if (debug) {
230  std::cout << "maxNearP " << maxNearP << " thisCell " << (HcalDetId)anyCell << " ("
231  << info2.trkGlobPosAtHcal.x() << "," << info2.trkGlobPosAtHcal.y() << ","
232  << info2.trkGlobPosAtHcal.z() << ")" << std::endl;
233  }
234 #endif
235  }
236  }
237  }
238  return maxNearP;
239  }

References ctfWithMaterialTrackMCMatch_cfi::associator, chargeIsolation(), gather_cfg::cout, debug, reco::TrackBase::eta(), CaloSubdetectorGeometry::getClosestCell(), mps_fire::i, LEDCalibrationChannels::ieta, iEvent, LEDCalibrationChannels::iphi, TrackDetMatchInfo::isGoodHcal, matrixHCALIds(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::TrackBase::phi(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), ecaldqm::topology(), and TrackDetMatchInfo::trkGlobPosAtHcal.

◆ chargeIsolationHcal() [2/3]

double spr::chargeIsolationHcal ( reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
const DetId  ClosestCell,
const HcalTopology topology,
const CaloSubdetectorGeometry gHB,
const MagneticField bField,
int  ieta,
int  iphi,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 153 of file ChargeIsolation.cc.

162  {
163  std::vector<DetId> dets(1, ClosestCell);
164 #ifdef EDM_ML_DEBUG
165  if (debug)
166  std::cout << (HcalDetId)ClosestCell << std::endl;
167 #endif
168  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, false, debug);
169 
170 #ifdef EDM_ML_DEBUG
171  if (debug) {
172  for (unsigned int i = 0; i < vdets.size(); i++) {
173  std::cout << "HcalDetId in " << 2 * ieta + 1 << "x" << 2 * iphi + 1 << " " << (HcalDetId)vdets[i] << std::endl;
174  }
175  }
176 #endif
177  double maxNearP = -1.0;
178  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
179 
180  reco::TrackCollection::const_iterator trkItr2;
181  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
182  const reco::Track* pTrack2 = &(*trkItr2);
183 
184  bool trkQuality = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack2->quality(trackQuality_)) : true;
185  if ((trkItr2 != trkItr) && trkQuality) {
186  std::pair<math::XYZPoint, bool> info = spr::propagateHCAL(pTrack2, bField);
187  const GlobalPoint point2(info.first.x(), info.first.y(), info.first.z());
188 
189 #ifdef EDM_ML_DEBUG
190  if (debug) {
191  std::cout << "Track2 (p,eta,phi) " << pTrack2->p() << " " << pTrack2->eta() << " " << pTrack2->phi()
192  << std::endl;
193  }
194 #endif
195  if (info.second) {
196  const DetId anyCell = gHB->getClosestCell(point2);
197  if (!spr::chargeIsolation(anyCell, vdets)) {
198  if (maxNearP < pTrack2->p())
199  maxNearP = pTrack2->p();
200  }
201 #ifdef EDM_ML_DEBUG
202  if (debug) {
203  std::cout << "maxNearP " << maxNearP << " thisCell " << (HcalDetId)anyCell << " (" << info.first.x() << ","
204  << info.first.y() << "," << info.first.z() << ")" << std::endl;
205  }
206 #endif
207  }
208  }
209  }
210  return maxNearP;
211  }

References Calorimetry_cff::bField, chargeIsolation(), gather_cfg::cout, debug, reco::TrackBase::eta(), CaloSubdetectorGeometry::getClosestCell(), mps_fire::i, LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, matrixHCALIds(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::TrackBase::phi(), propagateHCAL(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), ecaldqm::topology(), and reco::TrackBase::undefQuality.

◆ chargeIsolationHcal() [3/3]

double spr::chargeIsolationHcal ( unsigned int  trkIndex,
std::vector< spr::propagatedTrackID > &  vdetIds,
const HcalTopology topology,
int  ieta,
int  iphi,
bool  debug = false 
)

Definition at line 114 of file ChargeIsolation.cc.

119  {
120  std::vector<DetId> dets(1, vdetIds[trkIndex].detIdHCAL);
121 #ifdef EDM_ML_DEBUG
122  if (debug) {
123  std::cout << "DetId " << (HcalDetId)(dets[0]) << " Flag " << vdetIds[trkIndex].okHCAL << std::endl;
124  }
125 #endif
126  double maxNearP = -1.0;
127  if (vdetIds[trkIndex].okHCAL) {
128  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, false, debug);
129 #ifdef EDM_ML_DEBUG
130  if (debug)
131  std::cout << "chargeIsolationHcal:: eta/phi/dets " << ieta << " " << iphi << " " << vdets.size() << std::endl;
132 #endif
133  for (unsigned indx = 0; indx < vdetIds.size(); ++indx) {
134  if (indx != trkIndex && vdetIds[indx].ok && vdetIds[indx].okHCAL) {
135  const DetId anyCell = vdetIds[indx].detIdHCAL;
136  if (!spr::chargeIsolation(anyCell, vdets)) {
137  const reco::Track* pTrack = &(*(vdetIds[indx].trkItr));
138 #ifdef EDM_ML_DEBUG
139  if (debug)
140  std::cout << "chargeIsolationHcal Cell " << (HcalDetId)(anyCell) << " pt " << pTrack->p() << std::endl;
141 #endif
142  if (maxNearP < pTrack->p())
143  maxNearP = pTrack->p();
144  }
145  }
146  }
147  }
148  return maxNearP;
149  }

References chargeIsolation(), gather_cfg::cout, debug, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, matrixHCALIds(), convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), and ecaldqm::topology().

Referenced by StudyCaloResponse::analyze(), and IsolatedTracksNxN::analyze().

◆ coneChargeIsolation() [1/2]

double spr::coneChargeIsolation ( const edm::Event iEvent,
const edm::EventSetup iSetup,
reco::TrackCollection::const_iterator  trkItr,
edm::Handle< reco::TrackCollection trkCollection,
TrackDetectorAssociator associator,
TrackAssociatorParameters parameters_,
const std::string &  theTrackQuality,
int &  nNearTRKs,
int &  nLayers_maxNearP,
int &  trkQual_maxNearP,
double &  maxNearP_goodTrk,
const GlobalPoint hpoint1,
const GlobalVector trackMom,
double  dR 
)

Definition at line 224 of file ChargeIsolation.cc.

237  {
238  nNearTRKs = 0;
239  nLayers_maxNearP = 0;
240  trkQual_maxNearP = -1;
241  maxNearP_goodTrk = -999.0;
242  double maxNearP = -999.0;
243  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
244 
245  // Iterate over tracks
246  reco::TrackCollection::const_iterator trkItr2;
247  for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
248  // Get track
249  const reco::Track* pTrack2 = &(*trkItr2);
250 
251  // Get track qual, nlayers, and hit pattern
252  bool trkQuality = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack2->quality(trackQuality_)) : true;
253  if (trkQuality)
254  trkQual_maxNearP = 1;
255  const reco::HitPattern& hitp = pTrack2->hitPattern();
256  nLayers_maxNearP = hitp.trackerLayersWithMeasurement();
257 
258  // Skip if the neighboring track candidate is the iso-track
259  // candidate
260  if (trkItr2 != trkItr) {
261  // Get propagator
262  const FreeTrajectoryState fts2 = associator.getFreeTrajectoryState(iSetup, *pTrack2);
263  TrackDetMatchInfo info2 = associator.associate(iEvent, iSetup, fts2, parameters_);
264 
265  // Make sure it reaches Hcal
266  if (info2.isGoodHcal) {
267  const GlobalPoint point2(info2.trkGlobPosAtHcal.x(), info2.trkGlobPosAtHcal.y(), info2.trkGlobPosAtHcal.z());
268 
269  int isConeChargedIso = spr::coneChargeIsolation(hpoint1, point2, trackMom, dR);
270 
271  if (isConeChargedIso == 0) {
272  nNearTRKs++;
273  if (maxNearP < pTrack2->p()) {
274  maxNearP = pTrack2->p();
275  if (trkQual_maxNearP > 0 && nLayers_maxNearP > 7 && maxNearP_goodTrk < pTrack2->p()) {
276  maxNearP_goodTrk = pTrack2->p();
277  }
278  }
279  }
280  }
281  }
282  } // Iterate over track loop
283 
284  return maxNearP;
285  }

References ctfWithMaterialTrackMCMatch_cfi::associator, HGC3DClusterGenMatchSelector_cfi::dR, reco::TrackBase::hitPattern(), iEvent, TrackDetMatchInfo::isGoodHcal, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), reco::HitPattern::trackerLayersWithMeasurement(), TrackDetMatchInfo::trkGlobPosAtHcal, and reco::TrackBase::undefQuality.

Referenced by IsolatedTracksCone::analyze(), and chargeIsolationCone().

◆ coneChargeIsolation() [2/2]

int spr::coneChargeIsolation ( const GlobalPoint hpoint1,
const GlobalPoint point2,
const GlobalVector trackMom,
double  dR 
)

Definition at line 351 of file ChargeIsolation.cc.

354  {
355  int isIsolated = 1;
356  if (spr::getDistInPlaneTrackDir(hpoint1, trackMom, point2) > dR)
357  isIsolated = 1;
358  else
359  isIsolated = 0;
360  return isIsolated;
361  }

References HGC3DClusterGenMatchSelector_cfi::dR, and getDistInPlaneTrackDir().

◆ debugEcalDets() [1/3]

void spr::debugEcalDets ( unsigned int  i,
const DetId det,
bool  flag 
)

Definition at line 11 of file DebugInfo.cc.

11  {
12  std::cout << "Cell [" << i << "] 0x";
13  if (det.subdetId() == EcalBarrel) {
14  EBDetId id = det;
15  std::cout << std::hex << det() << std::dec << " " << id;
16  } else if (det.subdetId() == EcalEndcap) {
17  EEDetId id = det;
18  std::cout << std::hex << det() << std::dec << " " << id;
19  } else {
20  std::cout << std::hex << det() << std::dec << " Unknown Type";
21  }
22  if (flag)
23  std::cout << std::endl;
24  }

References gather_cfg::cout, TauDecayModes::dec, EcalBarrel, EcalEndcap, RemoveAddSevLevel::flag, mps_fire::i, triggerObjects_cff::id, and DetId::subdetId().

Referenced by debugEcalDets(), eGenSimInfo(), extraIds(), matrixECALIds(), newECALIdEW(), and newECALIdNS().

◆ debugEcalDets() [2/3]

void spr::debugEcalDets ( unsigned int  last,
std::vector< DetId > &  vdets 
)

Definition at line 26 of file DebugInfo.cc.

26  {
27  for (unsigned int i = last; i < vdets.size(); ++i) {
28  debugEcalDets(i, vdets[i], true);
29  }
30  }

References debugEcalDets(), mps_fire::i, and dqmdumpme::last.

◆ debugEcalDets() [3/3]

void spr::debugEcalDets ( unsigned int  last,
std::vector< DetId > &  vdets,
std::vector< CaloDirection > &  dirs 
)

Definition at line 32 of file DebugInfo.cc.

32  {
33  for (unsigned int i = last; i < vdets.size(); ++i) {
34  debugEcalDets(i, vdets[i], false);
35  std::cout << " along " << dirs[i] << std::endl;
36  }
37  }

References gather_cfg::cout, debugEcalDets(), heppy_check::dirs, mps_fire::i, and dqmdumpme::last.

◆ debugHcalDets()

void spr::debugHcalDets ( unsigned int  last,
std::vector< DetId > &  vdets 
)

Definition at line 39 of file DebugInfo.cc.

39  {
40  for (unsigned int i = last; i < vdets.size(); ++i) {
41  HcalDetId id = vdets[i]();
42  std::cout << "Cell [" << i << "] 0x" << std::hex << vdets[i]() << std::dec << " " << id << std::endl;
43  }
44  }

References gather_cfg::cout, TauDecayModes::dec, mps_fire::i, and dqmdumpme::last.

Referenced by eHCALmatrix(), hGenSimInfo(), matrixHCALIds(), matrixHCALIdsDepth(), newHCALIdEW(), and newHCALIdNS().

◆ eCaloSimInfo() [1/6]

std::map<std::string, double> spr::eCaloSimInfo ( caloSimInfo info)

◆ eCaloSimInfo() [2/6]

template<typename T >
void spr::eCaloSimInfo ( const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
std::vector< typename T::const_iterator >  hit,
edm::SimTrackContainer::const_iterator  trkInfo,
caloSimInfo info,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eCaloSimInfo() [3/6]

template<typename T >
double spr::eCaloSimInfo ( const edm::Event ,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eCaloSimInfo() [4/6]

template<typename T >
double spr::eCaloSimInfo ( const edm::Event ,
const CaloGeometry geo,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
double  timeCut = 150,
bool  debug = false 
)

◆ eCaloSimInfo() [5/6]

template<typename T >
std::map<std::string, double> spr::eCaloSimInfo ( edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
std::vector< typename T::const_iterator >  hit,
edm::SimTrackContainer::const_iterator  trkInfo,
std::vector< int > &  multiplicityVector,
bool  debug = false 
)

◆ eCaloSimInfo() [6/6]

template<typename T >
void spr::eCaloSimInfo ( std::vector< DetId vdets,
const CaloGeometry geo,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
edm::SimTrackContainer::const_iterator  trkInfo,
caloSimInfo info,
double  timeCut = 150,
bool  debug = false 
)

◆ eCone_ecal() [1/2]

template<typename T >
double spr::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 
)

◆ eCone_ecal() [2/2]

template<typename T >
double spr::eCone_ecal ( const CaloGeometry geo,
edm::Handle< T > &  barrelhits,
edm::Handle< T > &  endcaphits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
std::vector< DetId > &  coneRecHitDetIds,
std::vector< double > &  eHit,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ eCone_hcal() [1/4]

template<typename T >
double spr::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 
)

◆ eCone_hcal() [2/4]

template<typename T >
double spr::eCone_hcal ( const CaloGeometry geo,
edm::Handle< T > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
int &  nRecHits,
std::vector< DetId > &  coneRecHitDetIds,
double &  distFromHotCell,
int &  ietaHotCell,
int &  iphiHotCell,
GlobalPoint gposHotCell,
int  detOnly = -1,
int  useRaw = 0,
bool  debug = false 
)

◆ eCone_hcal() [3/4]

template<typename T >
double spr::eCone_hcal ( const CaloGeometry geo,
edm::Handle< T > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
int &  nRecHits,
std::vector< DetId > &  coneRecHitDetIds,
std::vector< double > &  eHit,
int  useRaw = 0,
bool  debug = false 
)

◆ eCone_hcal() [4/4]

template<typename T >
double spr::eCone_hcal ( const CaloGeometry geo,
edm::Handle< T > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
int &  nRecHits,
std::vector< int > &  RH_ieta,
std::vector< int > &  RH_iphi,
std::vector< double > &  RH_ene,
std::vector< DetId > &  coneRecHitDetIds,
double &  distFromHotCell,
int &  ietaHotCell,
int &  iphiHotCell,
GlobalPoint gposHotCell,
int  detOnly = -1,
int  useRaw = 0,
bool  debug = false 
)

◆ eECALmatrix() [1/7]

template<typename T >
double spr::eECALmatrix ( CaloNavigator< DetId > &  navigator,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
bool  debug = false 
)

◆ eECALmatrix() [2/7]

std::pair< double, bool > spr::eECALmatrix ( const DetId detId,
edm::Handle< EcalRecHitCollection > &  hitsEB,
edm::Handle< EcalRecHitCollection > &  hitsEE,
const EcalChannelStatus chStatus,
const CaloGeometry geo,
const CaloTopology caloTopology,
const EcalSeverityLevelAlgo sevlv,
const EcalTrigTowerConstituentsMap ttMap,
int  ieta,
int  iphi,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

Definition at line 115 of file eECALMatrix.cc.

129  {
130  std::vector<DetId> vdets;
131  spr::matrixECALIds(detId, ieta, iphi, geo, caloTopology, vdets, debug);
132 #ifdef EDM_ML_DEBUG
133  if (debug) {
134  std::cout << "Inside eECALmatrix " << 2 * ieta + 1 << "X" << 2 * iphi + 1 << " nXtals " << vdets.size()
135  << std::endl;
136  }
137 #endif
138 
139  bool flag(true);
140  double energySum = 0.0;
141  for (const auto& id : vdets) {
142  if ((id != DetId(0)) && (id.det() == DetId::Ecal) &&
143  ((id.subdetId() == EcalBarrel) || (id.subdetId() == EcalEndcap))) {
144  double eTower = spr::energyECALTower(id, hitsEB, hitsEE, ttMap, debug);
145  bool ok = (id.subdetId() == EcalBarrel) ? (eTower > ebThr) : (eTower > eeThr);
146 #ifdef EDM_ML_DEBUG
147  if (debug && (!ok))
148  std::cout << "Crystal 0x" << std::hex << id() << std::dec << " Flag " << ok << std::endl;
149 #endif
150  if (ok) {
151  std::pair<double, bool> ecalEn = (id.subdetId() == EcalBarrel)
152  ? spr::energyECAL(id, hitsEB, sevlv, true, tMin, tMax, debug)
153  : spr::energyECAL(id, hitsEE, sevlv, false, tMin, tMax, debug);
154  if (!ecalEn.second)
155  flag = false;
156  energySum += ecalEn.first;
157  }
158  }
159  }
160 #ifdef EDM_ML_DEBUG
161  if (debug)
162  std::cout << "energyECAL: energySum = " << energySum << " flag = " << flag << std::endl;
163 #endif
164  return std::pair<double, bool>(energySum, flag);
165  }

References gather_cfg::cout, debug, TauDecayModes::dec, DetId::Ecal, EcalBarrel, EcalEndcap, energyECAL(), energyECALTower(), CastorDataFrameFilter_impl::energySum(), RemoveAddSevLevel::flag, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, matrixECALIds(), and convertSQLiteXML::ok.

◆ eECALmatrix() [3/7]

std::pair< double, bool > spr::eECALmatrix ( const DetId detId,
edm::Handle< EcalRecHitCollection > &  hitsEB,
edm::Handle< EcalRecHitCollection > &  hitsEE,
const EcalChannelStatus chStatus,
const CaloGeometry geo,
const CaloTopology caloTopology,
const EcalSeverityLevelAlgo sevlv,
int  ieta,
int  iphi,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

Definition at line 80 of file eECALMatrix.cc.

93  {
94  std::vector<DetId> vdets;
95  spr::matrixECALIds(detId, ieta, iphi, geo, caloTopology, vdets, debug);
96 #ifdef EDM_ML_DEBUG
97  if (debug) {
98  std::cout << "Inside eECALmatrix " << 2 * ieta + 1 << "X" << 2 * iphi + 1 << " nXtals " << vdets.size()
99  << std::endl;
100  }
101 #endif
102  bool flag(true);
103  for (const auto& id : vdets) {
104  if ((id.det() == DetId::Ecal) && (id.subdetId() == EcalBarrel)) {
105  if (sevlv->severityLevel(id, (*hitsEB)) == EcalSeverityLevel::kWeird)
106  flag = false;
107  } else if ((id.det() == DetId::Ecal) && (id.subdetId() == EcalEndcap)) {
108  if (sevlv->severityLevel(id, (*hitsEE)) == EcalSeverityLevel::kWeird)
109  flag = false;
110  }
111  }
112  return std::pair<double, bool>(spr::energyECAL(vdets, hitsEB, hitsEE, ebThr, eeThr, tMin, tMax, debug), flag);
113  }

References gather_cfg::cout, debug, DetId::Ecal, EcalBarrel, EcalEndcap, energyECAL(), RemoveAddSevLevel::flag, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, EcalSeverityLevel::kWeird, matrixECALIds(), and EcalSeverityLevelAlgo::severityLevel().

◆ eECALmatrix() [4/7]

template<typename T >
double spr::eECALmatrix ( const DetId detId,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
const CaloGeometry geo,
const CaloTopology caloTopology,
const EcalTrigTowerConstituentsMap ttMap,
int  ieta,
int  iphi,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ eECALmatrix() [5/7]

template<typename T >
double spr::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 
)

◆ eECALmatrix() [6/7]

template<typename T >
double spr::eECALmatrix ( const DetId detId,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
const CaloGeometry geo,
const CaloTopology caloTopology,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ eECALmatrix() [7/7]

std::pair< double, bool > spr::eECALmatrix ( const HcalDetId detId,
edm::Handle< EcalRecHitCollection > &  hitsEB,
edm::Handle< EcalRecHitCollection > &  hitsEE,
const CaloGeometry geo,
const CaloTowerConstituentsMap ctmap,
const EcalSeverityLevelAlgo sevlv,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

Definition at line 167 of file eECALMatrix.cc.

177  {
178  CaloTowerDetId tower = ctmap->towerOf(detId);
179  std::vector<DetId> ids = ctmap->constituentsOf(tower);
180 #ifdef EDM_ML_DEBUG
181  if (debug) {
182  std::cout << "eECALmatrix: " << detId << " belongs to " << tower << " which has " << ids.size() << " constituents"
183  << std::endl;
184  for (unsigned int i = 0; i < ids.size(); ++i) {
185  std::cout << "[" << i << "] " << std::hex << ids[i].rawId() << std::dec;
186  if (ids[i].det() == DetId::Ecal && ids[i].subdetId() == EcalBarrel) {
187  std::cout << " " << EBDetId(ids[i]) << std::endl;
188  } else if (ids[i].det() == DetId::Ecal && ids[i].subdetId() == EcalEndcap) {
189  std::cout << " " << EEDetId(ids[i]) << std::endl;
190  } else if (ids[i].det() == DetId::Ecal && ids[i].subdetId() == EcalPreshower) {
191  std::cout << " " << ESDetId(ids[i]) << std::endl;
192  } else if (ids[i].det() == DetId::Hcal) {
193  std::cout << " " << HcalDetId(ids[i]) << std::endl;
194  } else {
195  std::cout << std::endl;
196  }
197  }
198  }
199 #endif
200  std::vector<DetId> idEBEE;
201  bool flag(true);
202  for (const auto& id : ids) {
203  if ((id.det() == DetId::Ecal) && (id.subdetId() == EcalBarrel)) {
204  idEBEE.emplace_back(id);
205  if (sevlv->severityLevel(id, (*hitsEB)) == EcalSeverityLevel::kWeird)
206  flag = false;
207  } else if ((id.det() == DetId::Ecal) && (id.subdetId() == EcalEndcap)) {
208  idEBEE.emplace_back(id);
209  if (sevlv->severityLevel(id, (*hitsEE)) == EcalSeverityLevel::kWeird)
210  flag = false;
211  }
212  }
213 #ifdef EDM_ML_DEBUG
214  if (debug)
215  std::cout << "eECALmatrix: with " << idEBEE.size() << " EB+EE hits and "
216  << "spike flag " << flag << std::endl;
217 #endif
218  double etot = (!idEBEE.empty()) ? spr::energyECAL(idEBEE, hitsEB, hitsEE, ebThr, eeThr, tMin, tMax, debug) : 0;
219  return std::pair<double, bool>(etot, flag);
220  }

References CaloTowerConstituentsMap::constituentsOf(), gather_cfg::cout, debug, TauDecayModes::dec, DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, energyECAL(), RemoveAddSevLevel::flag, DetId::Hcal, mps_fire::i, EcalSeverityLevel::kWeird, EcalSeverityLevelAlgo::severityLevel(), hgcalTowerProducer_cfi::tower, and CaloTowerConstituentsMap::towerOf().

◆ eECALmatrixCell()

template<typename T >
std::vector<std::pair<DetId,double> > spr::eECALmatrixCell ( 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,
bool  debug = false 
)

◆ eECALmatrixTotal()

template<typename T >
std::pair<double,int> spr::eECALmatrixTotal ( 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,
bool  debug = false 
)

◆ eECALSimInfo() [1/4]

template<typename T >
std::map<std::string,double> spr::eECALSimInfo ( const edm::Event ,
CaloNavigator< DetId > &  navigator,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
double  timeCut = 150,
bool  debug = false 
)

◆ eECALSimInfo() [2/4]

template<typename T >
void spr::eECALSimInfo ( const edm::Event ,
const DetId det,
const CaloGeometry geo,
const CaloTopology caloTopology,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
caloSimInfo info,
double  timeCut = 150,
bool  debug = false 
)

◆ eECALSimInfo() [3/4]

template<typename T >
std::map<std::string, double> spr::eECALSimInfo ( const edm::Event ,
const DetId det,
const CaloGeometry geo,
const CaloTopology caloTopology,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
double  timeCut = 150,
bool  debug = false 
)

◆ eECALSimInfo() [4/4]

template<typename T >
void spr::eECALSimInfo ( const edm::Event ,
const DetId det,
const CaloGeometry geo,
const CaloTopology caloTopology,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
caloSimInfo info,
double  timeCut = 150,
bool  debug = false 
)

◆ eECALSimInfoMatrix()

template<typename T >
energyMap spr::eECALSimInfoMatrix ( const edm::Event ,
const DetId det,
const CaloGeometry geo,
const CaloTopology caloTopology,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
double  timeCut = 150,
bool  debug = false 
)

◆ eECALSimInfoTotal()

template<typename T >
std::map<std::string,double> spr::eECALSimInfoTotal ( const edm::Event ,
const DetId det,
const CaloGeometry geo,
const CaloTopology caloTopology,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
int  itry = -1,
double  timeCut = 150,
bool  debug = false 
)

◆ eGenSimInfo() [1/4]

void spr::eGenSimInfo ( const DetId coreDet,
HepMC::GenEvent::particle_const_iterator  trkItr,
std::vector< spr::propagatedGenTrackID > &  trackIds,
const CaloGeometry geo,
const CaloTopology caloTopology,
double  dR,
const GlobalVector trackMom,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 35 of file GenSimInfo.cc.

43  {
44 #ifdef EDM_ML_DEBUG
45  if (debug)
46  std::cout << "eGenSimInfo:: For track " << (*trkItr)->momentum().rho() << "/" << (*trkItr)->momentum().eta()
47  << "/" << (*trkItr)->momentum().phi() << " with dR,tMom " << dR << " " << trackMom << std::endl;
48 #endif
49  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, dR, trackMom, geo, caloTopology, false);
50 #ifdef EDM_ML_DEBUG
51  if (debug)
52  spr::debugEcalDets(0, vdets);
53 #endif
54  spr::cGenSimInfo(vdets, trkItr, trackIds, true, info, debug);
55  }

References cGenSimInfo(), gather_cfg::cout, debug, debugEcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, info(), and matrixECALIds().

◆ eGenSimInfo() [2/4]

void spr::eGenSimInfo ( const DetId coreDet,
HepMC::GenEvent::particle_const_iterator  trkItr,
std::vector< spr::propagatedGenTrackID > &  trackIds,
const CaloGeometry geo,
const CaloTopology caloTopology,
int  ieta,
int  iphi,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 13 of file GenSimInfo.cc.

21  {
22 #ifdef EDM_ML_DEBUG
23  if (debug)
24  std::cout << "eGenSimInfo:: For track " << (*trkItr)->momentum().rho() << "/" << (*trkItr)->momentum().eta()
25  << "/" << (*trkItr)->momentum().phi() << " with ieta:iphi " << ieta << ":" << iphi << std::endl;
26 #endif
27  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, false);
28 #ifdef EDM_ML_DEBUG
29  if (debug)
30  spr::debugEcalDets(0, vdets);
31 #endif
32  spr::cGenSimInfo(vdets, trkItr, trackIds, true, info, debug);
33  }

References cGenSimInfo(), gather_cfg::cout, debug, debugEcalDets(), LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, and matrixECALIds().

Referenced by IsolatedGenParticles::analyze().

◆ eGenSimInfo() [3/4]

void spr::eGenSimInfo ( const DetId coreDet,
reco::GenParticleCollection::const_iterator  trkItr,
std::vector< spr::propagatedGenParticleID > &  trackIds,
const CaloGeometry geo,
const CaloTopology caloTopology,
double  dR,
const GlobalVector trackMom,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 79 of file GenSimInfo.cc.

87  {
88 #ifdef EDM_ML_DEBUG
89  if (debug)
90  std::cout << "eGenSimInfo:: For track " << trkItr->momentum().R() << "/" << trkItr->momentum().eta() << "/"
91  << trkItr->momentum().phi() << " with dR,tMom " << dR << " " << trackMom << std::endl;
92 #endif
93  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, dR, trackMom, geo, caloTopology, false);
94 #ifdef EDM_ML_DEBUG
95  if (debug)
96  spr::debugEcalDets(0, vdets);
97 #endif
98  spr::cGenSimInfo(vdets, trkItr, trackIds, true, info, debug);
99  }

References cGenSimInfo(), gather_cfg::cout, debug, debugEcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, info(), and matrixECALIds().

◆ eGenSimInfo() [4/4]

void spr::eGenSimInfo ( const DetId coreDet,
reco::GenParticleCollection::const_iterator  trkItr,
std::vector< spr::propagatedGenParticleID > &  trackIds,
const CaloGeometry geo,
const CaloTopology caloTopology,
int  ieta,
int  iphi,
spr::genSimInfo info,
bool  debug = false 
)

Definition at line 57 of file GenSimInfo.cc.

65  {
66 #ifdef EDM_ML_DEBUG
67  if (debug)
68  std::cout << "eGenSimInfo:: For track " << trkItr->momentum().R() << "/" << trkItr->momentum().eta() << "/"
69  << trkItr->momentum().phi() << " with ieta:iphi " << ieta << ":" << iphi << std::endl;
70 #endif
71  std::vector<DetId> vdets = spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, false);
72 #ifdef EDM_ML_DEBUG
73  if (debug)
74  spr::debugEcalDets(0, vdets);
75 #endif
76  spr::cGenSimInfo(vdets, trkItr, trackIds, true, info, debug);
77  }

References cGenSimInfo(), gather_cfg::cout, debug, debugEcalDets(), LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, and matrixECALIds().

◆ eHCALmatrix() [1/7]

template<typename T >
double spr::eHCALmatrix ( const CaloGeometry geo,
const HcalTopology topology,
const DetId det0,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
HcalDetId hotCell,
bool  includeHO = false,
int  useRaw = 0,
bool  debug = false 
)

◆ eHCALmatrix() [2/7]

template<typename T >
double spr::eHCALmatrix ( const CaloGeometry geo,
const HcalTopology topology,
const DetId det0,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
int &  nRecHits,
std::vector< int > &  RH_ieta,
std::vector< int > &  RH_iphi,
std::vector< double > &  RH_ene,
GlobalPoint gPosHotCell,
int  useRaw = 0 
)

◆ eHCALmatrix() [3/7]

double spr::eHCALmatrix ( const CaloGeometry geo,
const HcalTopology topology,
const DetId det0,
std::vector< PCaloHit > &  hits,
int  ieta,
int  iphi,
HcalDetId hotCell,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 76 of file eHCALMatrix.cc.

84  {
85  HcalDetId hcid0(det0.rawId());
86  HcalDetId hcid(hcid0.subdet(), hcid0.ieta(), hcid0.iphi(), 1);
87  DetId det(hcid.rawId());
88  std::vector<DetId> dets(1, det);
89  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, includeHO, debug);
90  hotCell = hcid0;
91 
92  std::vector<std::vector<PCaloHit>::const_iterator> hitlist;
93  for (unsigned int i = 0; i < vdets.size(); i++) {
94  std::vector<std::vector<PCaloHit>::const_iterator> hit = spr::findHit(hits, vdets[i]);
95  hitlist.insert(hitlist.end(), hit.begin(), hit.end());
96  }
97 
98  double energySum(0);
99  for (unsigned int ihit = 0; ihit < hitlist.size(); ihit++)
100  energySum += hitlist[ihit]->energy();
101 
102  // Get hotCell ID
103  dets.clear();
104  std::vector<double> energies;
105  for (unsigned int ihit = 0; ihit < hitlist.size(); ihit++) {
106  double energy = hitlist[ihit]->energy();
107  HcalDetId id0 = HcalDetId(hitlist[ihit]->id());
108  if ((id0.subdet() != HcalOuter) || includeHO) {
109  HcalDetId id1(id0.subdet(), id0.ieta(), id0.iphi(), 1);
110  bool found(false);
111  for (unsigned int idet = 0; idet < dets.size(); ++idet) {
112  if (id1 == HcalDetId(dets[idet])) {
113  energies[idet] += energy;
114  found = true;
115  break;
116  }
117  }
118  if (!found) {
119  dets.push_back(DetId(id1));
120  energies.push_back(energy);
121  }
122  }
123  }
124  double energyMax(-99.);
125  for (unsigned int ihit = 0; ihit < dets.size(); ihit++) {
126  if (energies[ihit] > energyMax) {
127  energyMax = energies[ihit];
128  hotCell = HcalDetId(dets[ihit]);
129  }
130  }
131  return energySum;
132  }

References debug, HCALHighEnergyHPDFilter_cfi::energy, CastorDataFrameFilter_impl::energySum(), findHit(), newFWLiteAna::found, HcalOuter, hfClusterShapes_cfi::hits, mps_fire::i, globals_cff::id1, LEDCalibrationChannels::ieta, HcalDetId::ieta(), LEDCalibrationChannels::iphi, HcalDetId::iphi(), matrixHCALIds(), DetId::rawId(), HcalDetId::subdet(), and ecaldqm::topology().

◆ eHCALmatrix() [4/7]

template<typename T >
double spr::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 
)

◆ eHCALmatrix() [5/7]

template<typename T >
double spr::eHCALmatrix ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
double  tMin = -500,
double  tMax = 500,
int  useRaw = 0,
bool  debug = false 
)

◆ eHCALmatrix() [6/7]

double spr::eHCALmatrix ( const HcalTopology topology,
const DetId det,
std::vector< PCaloHit > &  hits,
int  ieta,
int  iphi,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

Definition at line 11 of file eHCALMatrix.cc.

27  {
28 
29  HcalDetId hcid0(det0.rawId());
30  HcalDetId hcid(hcid0.subdet(), hcid0.ieta(), hcid0.iphi(), 1);
31  DetId det(hcid.rawId());
32 #ifdef EDM_ML_DEBUG
33  if (debug)
34  std::cout << "Inside eHCALmatrix " << 2 * ieta + 1 << "X" << 2 * iphi + 1 << " Inclusion of HO Flag " << includeHO
35  << std::endl;
36 #endif
37  double energySum(0);
38  std::vector<DetId> dets(1, det);
39  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, includeHO, false);
40 #ifdef EDM_ML_DEBUG
41  if (debug) {
42  std::cout << "matrixHCALIds::Total number of cells found is " << vdets.size() << std::endl;
43  spr::debugHcalDets(0, vdets);
44  }
45 #endif
46  int khit(0);
47  for (unsigned int i = 0; i < vdets.size(); i++) {
48  std::vector<std::vector<PCaloHit>::const_iterator> hit = spr::findHit(hits, vdets[i]);
49  double energy = 0;
50  int subdet = ((HcalDetId)(vdets[i].rawId())).subdet();
51  double eThr = spr::eHCALThreshold(subdet, hbThr, heThr, hfThr, hoThr);
52  for (unsigned int ihit = 0; ihit < hit.size(); ihit++) {
53  if (hit[ihit] != hits.end()) {
54  khit++;
55 #ifdef EDM_ML_DEBUG
56  if (debug)
57  std::cout << "energyHCAL:: Hit " << khit << " " << (HcalDetId)vdets[i] << " E " << hit[ihit]->energy()
58  << " t " << hit[ihit]->time() << std::endl;
59 #endif
60  if (hit[ihit]->time() > tMin && hit[ihit]->time() < tMax) {
61  energy += hit[ihit]->energy();
62  }
63  }
64  }
65  if (energy > eThr)
66  energySum += energy;
67  }
68 
69 #ifdef EDM_ML_DEBUG
70  if (debug)
71  std::cout << "eHCALmatrix::Total energy " << energySum << std::endl;
72 #endif
73  return energySum;
74  }

References gather_cfg::cout, debug, debugHcalDets(), eHCALThreshold(), HCALHighEnergyHPDFilter_cfi::energy, CastorDataFrameFilter_impl::energySum(), findHit(), hfClusterShapes_cfi::hits, mps_fire::i, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, matrixHCALIds(), DetId::rawId(), ntuplemaker::time, and ecaldqm::topology().

◆ eHCALmatrix() [7/7]

template<typename T >
double spr::eHCALmatrix ( const HcalTopology topology,
const DetId det0,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
int &  nRecHits,
std::vector< int > &  RH_ieta,
std::vector< int > &  RH_iphi,
std::vector< double > &  RH_ene,
std::set< int > &  uniqueIdset,
int  useRaw = 0 
)

◆ eHCALmatrixCell()

template<typename T >
std::vector<std::pair<DetId, double> > spr::eHCALmatrixCell ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
bool  debug = false 
)

◆ eHCALmatrixTotal()

template<typename T >
std::pair<double, int> spr::eHCALmatrixTotal ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
bool  debug = false 
)

◆ eHCALSimInfo() [1/4]

template<typename T >
void spr::eHCALSimInfo ( const edm::Event ,
const HcalTopology topology,
const DetId det,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
caloSimInfo info,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eHCALSimInfo() [2/4]

template<typename T >
std::map<std::string, double> spr::eHCALSimInfo ( const edm::Event ,
const HcalTopology topology,
const DetId det,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eHCALSimInfo() [3/4]

template<typename T >
void spr::eHCALSimInfo ( const edm::Event ,
const HcalTopology topology,
const DetId det,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
caloSimInfo info,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eHCALSimInfo() [4/4]

template<typename T >
std::map<std::string, double> spr::eHCALSimInfo ( const edm::Event iEvent,
const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
std::vector< int > &  multiplicityVector,
bool  debug = false 
)

◆ eHCALSimInfoMatrix()

template<typename T >
energyMap spr::eHCALSimInfoMatrix ( const edm::Event ,
const HcalTopology topology,
const DetId det,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eHCALSimInfoTotal()

template<typename T >
std::map<std::string,double> spr::eHCALSimInfoTotal ( const edm::Event ,
const HcalTopology topology,
const DetId det,
const CaloGeometry geo,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
int  itry = -1,
double  timeCut = 150,
bool  includeHO = false,
bool  debug = false 
)

◆ eHCALThreshold()

double spr::eHCALThreshold ( int  subdet,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100 
)

Definition at line 261 of file eHCALMatrix.cc.

261  {
262  double eThr = hbThr;
263  if (subdet == (int)(HcalEndcap))
264  eThr = heThr;
265  else if (subdet == (int)(HcalForward))
266  eThr = hfThr;
267  else if (subdet == (int)(HcalOuter))
268  eThr = hoThr;
269  return eThr;
270  }

References HcalEndcap, HcalForward, and HcalOuter.

Referenced by eHCALmatrix(), and energyHCALCell().

◆ energyDetIdHCAL()

template<typename T >
std::vector<std::pair<DetId, double> > spr::energyDetIdHCAL ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hits,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
bool  debug = false 
)

◆ energyECAL() [1/4]

std::pair<double, bool> spr::energyECAL ( const DetId id,
edm::Handle< EcalRecHitCollection > &  hitsEC,
const EcalSeverityLevelAlgo sevlv,
bool  testSpike,
double  tMin,
double  tMax,
bool  debug 
)

Definition at line 15 of file eECALMatrix.cc.

21  {
22  std::vector<EcalRecHitCollection::const_iterator> hits;
23  spr::findHit(hitsEC, id, hits, debug);
24 #ifdef EDM_ML_DEBUG
25  if (debug)
26  std::cout << "Xtal 0x" << std::hex << id() << std::dec;
27 #endif
28  const EcalRecHitCollection* recHitsEC = (hitsEC.isValid()) ? hitsEC.product() : nullptr;
29  bool flag = (!testSpike) ? true : (sevlv->severityLevel(id, (*recHitsEC)) != EcalSeverityLevel::kWeird);
30  double ener(0);
31  for (const auto& hit : hits) {
32  double en(0), tt(0);
33  if (hit != hitsEC->end()) {
34  en = hit->energy();
35  tt = hit->time();
36  }
37 #ifdef EDM_ML_DEBUG
38  if (debug)
39  std::cout << " " << tt << " " << en;
40 #endif
41  if (tt > tMin && tt < tMax)
42  ener += en;
43  }
44 #ifdef EDM_ML_DEBUG
45  if (!flag && debug)
46  std::cout << " detected to be a spike";
47  if (debug)
48  std::cout << std::endl;
49 #endif
50  return std::pair<double, bool>(ener, flag);
51  }

References gather_cfg::cout, debug, TauDecayModes::dec, edm::SortedCollection< T, SORT >::end(), findHit(), RemoveAddSevLevel::flag, hfClusterShapes_cfi::hits, triggerObjects_cff::id, edm::HandleBase::isValid(), EcalSeverityLevel::kWeird, edm::Handle< T >::product(), EcalSeverityLevelAlgo::severityLevel(), and groupFilesInBlocks::tt.

◆ energyECAL() [2/4]

std::pair<double, bool> spr::energyECAL ( const std::vector< DetId > &  vdets,
edm::Handle< EcalRecHitCollection > &  hitsEC,
const EcalSeverityLevelAlgo sevlv,
bool  noThrCut,
bool  testSpike,
double  eThr,
double  tMin,
double  tMax,
bool  debug 
)

Definition at line 53 of file eECALMatrix.cc.

61  {
62  bool flag(true);
63  double energySum(0.0);
64  for (const auto& id : vdets) {
65  if (id != DetId(0)) {
66  std::pair<double, bool> ecalEn = spr::energyECAL(id, hitsEC, sevlv, testSpike, tMin, tMax, debug);
67  if (!ecalEn.second)
68  flag = false;
69  if ((ecalEn.first > eThr) || noThrCut)
70  energySum += ecalEn.first;
71  }
72  }
73 #ifdef EDM_ML_DEBUG
74  if (debug)
75  std::cout << "energyECAL: energySum = " << energySum << " flag = " << flag << std::endl;
76 #endif
77  return std::pair<double, bool>(energySum, flag);
78  }

References gather_cfg::cout, debug, energyECAL(), CastorDataFrameFilter_impl::energySum(), and RemoveAddSevLevel::flag.

◆ energyECAL() [3/4]

template<typename T >
double spr::energyECAL ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
const EcalTrigTowerConstituentsMap ttMap,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ energyECAL() [4/4]

template<typename T >
double spr::energyECAL ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
double  ebThr = -100,
double  eeThr = -100,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ energyECALCell()

template<typename T >
std::vector<std::pair<DetId,double> > spr::energyECALCell ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
double  ebThr = -100,
double  eeThr = -100,
bool  debug = false 
)

◆ energyECALTower()

template<typename T >
double spr::energyECALTower ( const DetId detId,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
const EcalTrigTowerConstituentsMap ttMap,
bool  debug = false 
)

Referenced by eECALmatrix().

◆ energyHCAL() [1/2]

template<typename T >
double spr::energyHCAL ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hits,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
double  tMin = -500,
double  tMax = 500,
int  useRaw = 0,
bool  debug = false 
)

◆ energyHCAL() [2/2]

template<typename T >
double spr::energyHCAL ( std::vector< DetId > &  vNeighboursDetId,
std::vector< DetId > &  dets,
const HcalTopology topology,
edm::Handle< T > &  hits,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
bool  debug = false 
)

◆ energyHCALCell() [1/2]

template<typename T >
void spr::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 
)

◆ energyHCALCell() [2/2]

void spr::energyHCALCell ( HcalDetId  detId,
std::vector< PCaloHit > &  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  depthHE = 3,
bool  debug = false 
)

Definition at line 134 of file eHCALMatrix.cc.

149  {
150 
151  energyCell.clear();
152  int subdet = detId.subdet();
153  double eThr = spr::eHCALThreshold(subdet, hbThr, heThr, hfThr, hoThr);
154  bool hbhe = (detId.ietaAbs() == 16);
155 #ifdef EDM_ML_DEBUG
156  if (debug)
157  std::cout << "energyHCALCell: input ID " << detId << " MaxDepth " << maxDepth << " Threshold (E) " << eThr
158  << " (T) " << tMin << ":" << tMax << std::endl;
159 #endif
160  for (int i = 0; i < maxDepth; i++) {
161  HcalSubdetector subdet0 = (hbhe) ? ((i + 1 >= depthHE) ? HcalEndcap : HcalBarrel) : detId.subdet();
162  HcalDetId hcid(subdet0, detId.ieta(), detId.iphi(), i + 1);
163  DetId det(hcid.rawId());
164  std::vector<std::vector<PCaloHit>::const_iterator> hit = spr::findHit(hits, det);
165  double energy(0);
166  for (unsigned int ihit = 0; ihit < hit.size(); ++ihit) {
167  if (hit[ihit]->time() > tMin && hit[ihit]->time() < tMax)
168  energy += hit[ihit]->energy();
169 #ifdef EDM_ML_DEBUG
170  if (debug)
171  std::cout << "energyHCALCell:: Hit[" << ihit << "] " << hcid << " E " << hit[ihit]->energy() << " t "
172  << hit[ihit]->time() << std::endl;
173 #endif
174  }
175 #ifdef EDM_ML_DEBUG
176  if (debug)
177  std::cout << "energyHCALCell:: Cell " << hcid << " E " << energy << " from " << hit.size() << " threshold "
178  << eThr << std::endl;
179 #endif
180  if (energy > eThr && !hit.empty()) {
181  energyCell.push_back(std::pair<double, int>(energy, i + 1));
182  }
183  }
184 #ifdef EDM_ML_DEBUG
185  if (debug) {
186  std::cout << "energyHCALCell:: " << energyCell.size() << " entries from " << maxDepth << " depths:";
187  for (unsigned int i = 0; i < energyCell.size(); ++i) {
188  std::cout << " [" << i << "] (" << energyCell[i].first << ":" << energyCell[i].second << ")";
189  }
190  std::cout << std::endl;
191  }
192 #endif
193  }

References gather_cfg::cout, debug, eHCALThreshold(), HCALHighEnergyHPDFilter_cfi::energy, findHit(), photonIsolationHIProducer_cfi::hbhe, HcalBarrel, HcalEndcap, hfClusterShapes_cfi::hits, mps_fire::i, HcalDetId::ieta(), HcalDetId::ietaAbs(), HcalDetId::iphi(), HLT_2018_cff::maxDepth, HcalDetId::subdet(), and ntuplemaker::time.

◆ energyHCALmatrix()

template<typename T >
double spr::energyHCALmatrix ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
bool  debug = false 
)

◆ energyHCALmatrixNew()

template<typename T >
double spr::energyHCALmatrixNew ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
double  tMin = -500,
double  tMax = 500,
int  useRaw = 0,
bool  debug = false 
)

◆ energyHCALmatrixTotal()

template<typename T >
double spr::energyHCALmatrixTotal ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
bool  includeHO = false,
double  hbThr = -100,
double  heThr = -100,
double  hfThr = -100,
double  hoThr = -100,
double  tMin = -500,
double  tMax = 500,
int  useRaw = 0,
bool  debug = false 
)

◆ extraIds()

void spr::extraIds ( const DetId det,
std::vector< DetId > &  dets,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
std::vector< DetId > &  cells,
bool  debug = false 
)

Definition at line 774 of file MatrixECALDetIds.cc.

787  {
788 
789  if (det.subdetId() == EcalBarrel) {
790  EBDetId id = det;
791 #ifdef EDM_ML_DEBUG
792  if (debug)
793  std::cout << "extraIds::Cell " << id << " rows " << ietaW << "|" << ietaE << " columns " << iphiS << "|"
794  << iphiN << std::endl;
795 #endif
796  int etaC = id.ietaAbs();
797  int phiC = id.iphi();
798  int zsid = id.zside();
799  for (int eta = -ietaW; eta <= ietaE; ++eta) {
800  for (int phi = -iphiS; phi <= iphiN; ++phi) {
801  int iphi = phiC + phi;
802  if (iphi < 0)
803  iphi += 360;
804  else if (iphi > 360)
805  iphi -= 360;
806  int ieta = zsid * (etaC + eta);
807  if (EBDetId::validDetId(ieta, iphi)) {
808  id = EBDetId(ieta, iphi);
809  if (barrelGeom->present(id)) {
810  if (std::count(dets.begin(), dets.end(), (DetId)id) == 0) {
811  cells.push_back((DetId)id);
812  }
813  }
814  }
815  }
816  }
817  } else if (det.subdetId() == EcalEndcap && endcapGeom) {
818  EEDetId id = det;
819 #ifdef EDM_ML_DEBUG
820  if (debug)
821  std::cout << "extraIds::Cell " << id << " rows " << ietaW << "|" << ietaE << " columns " << iphiS << "|"
822  << iphiN << std::endl;
823 #endif
824  int ixC = id.ix();
825  int iyC = id.iy();
826  int zsid = id.zside();
827  for (int kx = -ietaW; kx <= ietaE; ++kx) {
828  for (int ky = -iphiS; ky <= iphiN; ++ky) {
829  int ix = ixC + kx;
830  int iy = iyC + ky;
831  if (EEDetId::validDetId(ix, iy, zsid)) {
832  id = EEDetId(ix, iy, zsid);
833  if (endcapGeom->present(id)) {
834  if (std::count(dets.begin(), dets.end(), (DetId)id) == 0) {
835  cells.push_back((DetId)id);
836  }
837  }
838  }
839  }
840  }
841  }
842 
843 #ifdef EDM_ML_DEBUG
844  if (debug) {
845  std::cout << "extraIds:: finds " << cells.size() << " new cells" << std::endl;
847  }
848 #endif
849  }

References postprocess-scan-build::cells, KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), EcalBarrel, EcalEndcap, PVValHelper::eta, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, EcalEndcapGeometry::present(), EcalBarrelGeometry::present(), DetId::subdetId(), EBDetId::validDetId(), and EEDetId::validDetId().

Referenced by matrixECALIds().

◆ find() [1/3]

void spr::find ( edm::Handle< EcalRecHitCollection > &  hits,
DetId  thisDet,
std::vector< EcalRecHitCollection::const_iterator > &  hit,
bool  debug = false 
)

Definition at line 19 of file FindCaloHit.cc.

22  {
23  if (hits->find(thisDet) != hits->end())
24  hit.push_back(hits->find(thisDet));
25  }

References hfClusterShapes_cfi::hits.

Referenced by tier0.ResponseError::__str__(), PedestalTask::_dump(), LaserTask::_dump(), LEDTask::_process(), DigiTask::_process(), ParticleDecayDrawer::accept(), ParticleTreeDrawer::accept(), HcalHBHEMuonAnalyzer::activeLength(), HcalHBHEMuonHighEtaAnalyzer::activeLength(), DTVDriftCalibration::cellInfo::add(), Measurement::addAffectingEntriesFromOptO(), reco::NamedCompositeCandidate::addDaughter(), reco::CompositeCandidate::addDaughter(), tmtt::StubKiller::addDeadLayerModulesToDeadModuleList(), reco::PFDisplacedVertexSeed::addElement(), CRackTrajectoryBuilder::AddHit(), CSCNeutronReader::addHits(), ClusterTPAssociation::addKeyID(), pat::TriggerEvent::addObjectMatchResult(), SiStripQualityHotStripIdentifier::algoAnalyze(), reco::Conversion::algoByName(), reco::TrackBase::algoByName(), CreateIdealTkAlRecords::alignToGT(), HcalFrontEndMap::allRBXs(), HcalFrontEndMap::allRMs(), ME0RecHitsValidation::analyze(), EcalMatacqAnalyzer::analyze(), EcalPnGraphs::analyze(), FCDTask::analyze(), SiStripDetVOffPrinter::analyze(), DQMHcalIsolatedBunchAlCaReco::analyze(), DQMSourcePi0::analyze(), DTT0CalibrationRMS::analyze(), EcalPerEvtLaserAnalyzer::analyze(), EcalDumpRaw::analyze(), DTNoiseCalibration::analyze(), EcalABAnalyzer::analyze(), SiStripApvGainBuilderFromTag::analyze(), HcalQIEDataCheck::analyze(), ParticleListDrawer::analyze(), HcalAutoPedestalValidator::analyze(), DTT0Calibration::analyze(), edmtest::HcalDumpConditions::analyze(), EcalLaserAnalyzer2::analyze(), HcalPedestalsCheck::analyze(), HcalPedestalWidthsCheck::analyze(), RecAnalyzerHF::analyze(), AlignPCLThresholdsWriter::analyze(), HLTBTagPerformanceAnalyzer::analyze(), DQMHcalIsoTrackAlCaReco::analyze(), EcalLaserAnalyzer::analyze(), HcalCollapseAnalyzer::analyze(), TestPythiaDecays::analyze(), HcalGainsCheck::analyze(), SiStripChannelGainFromDBMiscalibrator::analyze(), SiStripNoisesFromDBMiscalibrator::analyze(), PixelLumiDQM::analyze(), TestOutliers::analyze(), TestTrackHits::analyze(), EcalURecHitHists::analyze(), HeavyFlavorValidation::analyze(), L1TGT::analyze(), HGCalHitValidation::analyze(), HLTMuonPlotter::analyze(), ListIds::analyze(), CommonModeAnalyzer::analyze(), DTDigiTask::analyze(), EcalCosmicsHists::analyze(), RecAnalyzerMinbias::analyze(), IsoTrackCalibration::analyze(), HcalIsoTrkAnalyzer::analyze(), IsoTrig::analyze(), PrimaryVertexAnalyzer4PUSlimmed::analyze(), any(), CaloTowersCreationAlgo::assignHitEcal(), CSCHitAssociator::associateCSCHitId(), CSCHitAssociator::associateHitId(), TrackerHitAssociator::associateMatchedRecHit(), TrackerHitAssociator::associatePhase2TrackerRecHit(), TrackerHitAssociator::associatePixelRecHit(), RPCHitAssociator::associateRecHit(), GEMHitAssociator::associateRecHit(), TrackerHitAssociator::associateSimpleRecHitCluster(), AlignmentParameterStore::attachCorrelations(), ClusterProducerFP420::badChannel(), ProfilerService::beginPath(), HLTHiggsSubAnalysis::beginRun(), MillePedeAlignmentAlgorithm::beginRun(), GctFormatTranslateV35::blockToGctInternEmCand(), HLTFiltersDQMonitor::bookHistograms(), EcalSimParametersFromDD::build(), HcalSimParametersFromDD::build(), SiStripFedCabling::buildFedCabling(), SiStripDetVOffBuilder::buildPSUdetIdMap(), PFEGammaAlgo::buildRefinedSuperCluster(), VirtualJetProducer::JetType::byName(), HLTEcalResonanceFilter::calcShowerShape(), HLTRegionalEcalResonanceFilter::calcShowerShape(), PtAssignmentEngine2016::calculate_pt_xml(), PtAssignmentEngine2017::calculate_pt_xml(), JetPlusTrackProducerAA::calculateBGtracksJet(), PileUpSubtractor::calculateOrphanInput(), ValidationOptions_cff::calledBycmsRun(), BestTrackSelection::cancel_multi_bx(), BestTrackSelection::cancel_one_bx(), reco::modules::CandCombinerBase::CandCombinerBase(), RunLumiEventChecker::check(), CSCDCCExaminer::check(), trackerDTC::Setup::checkGeometry(), Config::checkImportPermission(), ClusterTPAssociation::checkKeyProductID(), Multi5x5ClusterAlgo::checkMaxima(), GlobalTag.GlobalTag::checkPrefix(), ECALpedestalPCLHarvester::checkStatusCode(), MaterialBudgetAction::CheckTouchableInSelectedVolumes(), L1TMuon::DTBunchCrossingCleaner::clean(), BlockFormatter::CleanUp(), LowPtGsfElectronSCProducer::closestCluster(), cmsswRelease::cmsswIs44X(), cmsswRelease::cmsswIs52X(), edm::Exception::codeToString(), egammaisolation::EgammaRecHitExtractor::collect(), CSCComparatorDigiFitter::comparatorInLCTPattern(), HltDiff::compare(), EgammaTowerIsolationNew< NC >::compute(), MVAJetPuId::computeIdVariables(), vertexTools::computeSharedTracks(), L1TMuonBarrelParamsHelper::configFromDB(), FastFedCablingHistosUsingDb::connections(), CaloTowerConstituentsMap::constituentsOf(), ConstrainedFitCandProducer< Fitter, InputCollection, OutputCollection, Init >::ConstrainedFitCandProducer(), PedeSteererWeakModeConstraints::constructConstraints(), helpers::contains(), Model::copyMeasurements(), createPayload::copyToWorkflowdir(), SiStripFecCabling::countDevices(), hcaldqm::utilities::crate2fed(), DefaultFFTJetObjectFactory< AbsFFTSpecificScaleCalculator >::create(), cmsHarvester::create_and_check_castor_dir(), cmsHarvester::create_crab_config(), cmsHarvester::create_harvesting_output_file_name(), edm::SharedResourcesRegistry::createAcquirer(), ESDigitizer::createNoisyList(), HcalDbASCIIIO::createObject< HcalDcsMap >(), LaunchOnCondor::CreateTheCmdFile(), logErrorHarvester_cff::customiseLogErrorHarvesterUsingOutputCommands(), DDfetch(), ParticleDecayDrawer::decay(), gen::Py8InterfaceBase::declareSpecialSettings(), gen::Pythia6Hadronizer::declareSpecialSettings(), Model::deleteOptO(), muonisolation::CaloExtractor::deposit(), SiStripFineDelayHit::detId(), HcalTopology::detId2denseIdCALIB(), PixelInactiveAreaFinder::detWorks(), SiPixelGainCalibrationAnalysis::doFits(), HLTEcalResonanceFilter::doSelection(), HLTRegionalEcalResonanceFilter::doSelection(), SUSY_HLT_DoubleMuon_Hadronic::dqmBeginRun(), SUSY_HLT_Muon_BJet::dqmBeginRun(), SUSY_HLT_DoubleEle_Hadronic::dqmBeginRun(), SUSY_HLT_Electron_BJet::dqmBeginRun(), SUSY_HLT_DiJet_MET::dqmBeginRun(), SUSY_HLT_ElecFakes::dqmBeginRun(), SUSY_HLT_Muon_Hadronic::dqmBeginRun(), SUSY_HLT_MuonFakes::dqmBeginRun(), SUSY_HLT_VBF_Mu::dqmBeginRun(), SUSY_HLT_MuEle_Hadronic::dqmBeginRun(), SUSY_HLT_alphaT::dqmBeginRun(), DTDCSByLumiTask::dqmBeginRun(), HGCGeometryValidation::dqmBeginRun(), HGCalHitValidation::dqmBeginRun(), SusyPostProcessor::dqmEndJob(), OffsetDQMPostProcessor::dqmEndJob(), PFJetDQMPostProcessor::dqmEndJob(), SiStripGainsPCLHarvester::dqmEndJob(), JetMETHLTOfflineClient::dqmEndJob(), SiPixelStatusHarvester::dqmEndRun(), DTSegtoRPC::DTSegtoRPC(), RPCLinkSynchroStat::dumpDelays(), edmtest::HcalDumpConditions::dumpIt(), CastorDumpConditions::dumpIt(), CaloTowersCreationAlgo::ecalChanStatusForCaloTower(), EcalPreshowerMonitorClient::EcalPreshowerMonitorClient(), EmbeddingLHEProducer::EmbeddingLHEProducer(), hcaldqm::RawRunSummary::endLuminosityBlock(), L1ScalersClient::endLuminosityBlock(), GsfVertexTrackCompatibilityEstimator::estimate(), KalmanVertexTrackCompatibilityEstimator< N >::estimate(), lowptgsfeleseed::HeavyObjectCache::eval(), LowPtGsfElectronIDProducer::eval(), L1GtAlgorithmEvaluation::evaluateAlgorithm(), l1t::AlgorithmEvaluation::evaluateAlgorithm(), JetPlusTrackCorrector::excludeJta(), trklet::PurgeDuplicate::execute(), edm::ParameterSet::existsAs(), CompositeAlignmentParameters::extractAlignables(), CompositeAlignmentParameters::extractPositionAndLength(), CompositeAlignmentDerivativesExtractor::extractWithMultipleHits(), SiPixelFedCablingMap::fedIds(), DaqScopeModeTask::fill(), VertexFitterResult::fill(), tnp::ProbeFlag::fill(), EmbeddingLHEProducer::fill_lhe_with_particle(), JetPartonMatcher::fillAlgoritDefinition(), SiPixelActionExecutor::fillFEDErrorSummary(), Py8toJetInput::fillJetAlgoInput(), GenWeightsTableProducer::fillLHEWeightTables(), PrintGeomSummary::fillLV(), MuonMesh::fillMesh(), JetPartonMatcher::fillPhysicsDefinition(), edm::Principal::fillPrincipal(), PrintGeomSummary::fillPV(), TrackingNtuple::fillSeeds(), CastorShowerLibraryMaker::FillShowerEvent(), SiPixelActionExecutor::fillSummary(), SiStripCommissioningRunTypeFilter::filter(), HltComparator::filter(), LogErrorFilter::filter(), ErrorSummaryFilter::filter(), HTXSFilter::filter(), AlCaIsolatedBunchFilter::filter(), AlCaIsolatedBunchSelector::filter(), AlCaIsoTracksProducerFilter::filter(), EcalSimpleUncalibRecHitFilter::filter(), AlCaHBHEMuonFilter::filter(), AlCaHEMuonFilter::filter(), AlCaLowPUHBHEMuonFilter::filter(), EcalMIPRecHitFilter::filter(), AlCaIsoTracksFilter::filter(), HLTEcalResonanceFilter::filter(), HLTRegionalEcalResonanceFilter::filter(), TTUTrackingAlg::filter(), commentSkipper.buildFileCommentSkipper::filterMultilineComment(), commentSkipper.buildFileCommentSkipper::filterOneLineComment(), MuonSeedOrcaPatternRecognition::filterOverlappingChambers(), FourVectorHLT::PathInfoCollection::find(), BTVHLTOfflineSource::PathInfoCollection::find(), edm::Trie< T >::find(), HLTInclusiveVBFSource::PathInfoCollection::find(), JetMETHLTOfflineSource::PathInfoCollection::find(), edm::find_in_all(), DTCombinatorialExtendedPatternReco::findCompatibleHits(), SiStripPsuDetIdMap::findDcuIdFromDeviceAddress(), GenHFHadronMatcher::findHadronJets(), GenHFHadronMatcher::findInMothers(), JetCorrectorParametersCollection::findKey(), MSLayersAtAngle::findLayer(), HLTPerformanceInfo::findModule(), HLTPerformanceInfo::findPath(), JetPlusTrackCorrector::findTrack(), RPixPlaneCombinatoryTracking::findTracks(), EcalTBReadout::findTTlist(), edm::IndexIntoFile::fixIndexes(), cmsHarvester.CMSHarvester::format_conditions_string(), ecaldqm::DependencySet::formSequence(), ecaldqm::DependencySet::formSequenceFragment_(), getRunInfo::Func_FillInfoDBS(), getRunInfo::Func_FillInfoRunRegistry(), pkg.AbstractPkg::generate(), SubsystemNeutronReader::generateChamberNoise(), pat::PATGenCandsFromSimTracksProducer::generatorRef_(), GenJetParticleSelector::GenJetParticleSelector(), VertexClassifier::genPrimaryVertices(), TrackClassifier::genPrimaryVertices(), harvestRelVal::get_cond_from_dsetpath(), egHLT::trigTools::getActiveFilters(), hcaldqm::quantity::CrateQuantity::getBin(), EcalSelectiveReadoutProducer::getBinOfMax(), ComponentFactoryByName< B >::getBuilder(), CastorCalibrationsSet::getCalibrations(), CastorCalibrationWidthsSet::getCalibrationWidths(), egHLT::ComCodes::getCode(), egHLT::TrigCodes::getCode(), hcalCalib::GetCoefFromMtrxInvOfAve(), L1GtVhdlWriterCore::getCondChipVhdContentFromTriggerMenu(), HLTScalersClient::CountLSFifo_t::getCount(), hcaldqm::utilities::getCrateList(), GenParticlePruner::getDaughterKeys(), EgammaHadTower::getDepth1HcalESum(), EgammaHadTower::getDepth2HcalESum(), TrackAssociatorByHitsImpl::getDoubleCount(), QuickTrackAssociatorByHitsImpl::getDoubleCount(), MuonGEMBaseHarvestor::getElement(), edm::eventsetup::EventSetupsController::getESProducerPSet(), HcalDDDRecConstants::getEtaBins(), SiPixelActionExecutor::getFEDSummaryME(), SiPixelActionExecutor::getGrandSummaryME(), JetCorrectorParametersCollection::getL5Bin(), JetCorrectorParametersCollection::getL7Bin(), BeamSpotWorkflow::getLastUploadedIOV(), BeamSpotWorkflow::getListOfRunsAndLumiFromDBS(), METCorrectorParametersCollection::getMiniAodBin(), CastorShowerLibraryMaker::GetMissingEnergy(), GenParticlePruner::getMotherKeys(), HcalSimParametersFromDD::getNames(), HcalTB06BeamParametersFromDD::getNames(), popcon::EcalPulseShapesHandler::getNewObjects(), popcon::EcalPulseSymmCovariancesHandler::getNewObjects(), UMNioTask::getOrbitGapIndex(), LMFCorrCoefDat::getParameters(), HDQMSummary::getPosition(), SiStripSummary::getPosition(), JME::JetResolutionScaleFactor::getScaleFactor(), TrackAssociatorByHitsImpl::getShared(), MEtXYcorrectParametersCollection::getShiftDataFlavBin(), MEtXYcorrectParametersCollection::getShiftDyFlavBin(), MEtXYcorrectParametersCollection::getShiftMcFlavBin(), MEtXYcorrectParametersCollection::getShiftTTJetsFlavBin(), MEtXYcorrectParametersCollection::getShiftWJetsFlavBin(), SiPixelFEDChannelContainer::getSiPixelBadFedChannelsInDetId(), EgammaRecHitIsolation::getSum_(), SiPixelActionExecutor::getSummaryME(), fwlite::MultiChainEvent::getThinnedProducts(), LCTContainer::getTimeMatched(), HGCalWaferType::getType(), HGCalWaferMask::getTypeMode(), checkPayloads::getUploadedIOVs(), hcaldqm::quantity::getValue_Crate(), hcaldqm::quantity::getValue_CrateuTCA(), hcaldqm::quantity::getValue_CrateVME(), hcaldqm::quantity::getValue_FED(), hcaldqm::quantity::getValue_FEDuTCA(), hcaldqm::quantity::getValue_FEDVME(), CSCDBL1TPParametersExtended::getValueBool(), CSCDBL1TPParametersExtended::getValueInt(), CastorRawGains::getValues(), HcalRawGains::getValues(), GenWeightsTableProducer::globalBeginRun(), TPTask::globalEndLuminosityBlock(), RawTask::globalEndLuminosityBlock(), RecHitTask::globalEndLuminosityBlock(), DigiTask::globalEndLuminosityBlock(), RawPCCProducer::globalEndLuminosityBlockProduce(), SiStripMonitorTrack::handleBookMEs(), hitfit::Constraint_Intermed_Labels::has_label(), pat::TriggerObjectStandAlone::hasFilterOrCondition(), SiStripHashedDetId::hashedIndex(), pat::PATSingleVertexSelector::hasMode_(), MisalignmentScenarioBuilder::hasParameter_(), cms::DDSpecPar::hasPath(), pat::TriggerObjectStandAlone::hasPathOrAlgorithm(), pat::Jet::hasSubjets(), HcalDigisClient::HcalDigisEndjob(), HcalOfflineHarvesting::HcalOfflineHarvesting(), HcalRawToDigi::HcalRawToDigi(), HcalRecHitsDQMClient::HcalRecHitsEndjob(), HGCalConcentratorProcessorSelection::HGCalConcentratorProcessorSelection(), HLTMuonL1TFilter::hltFilter(), HLTPixelActivityFilter::hltFilter(), HLTMuonL1RegionalFilter::hltFilter(), HLTMuonTrackMassFilter::hltFilter(), HLTMuonL1TRegionalFilter::hltFilter(), HLTMuonL2FromL1TPreFilter::hltFilter(), HLTMuonL2PreFilter::hltFilter(), HLTMuonL1Filter::hltFilter(), HLTHcalSimpleRecHitFilter::hltFilter(), GenHFHadronMatcher::idInList(), PixelInactiveAreaFinder::inactiveAreas(), include(), reco::PixelClusterCountsInEvent::increment(), reco::PixelClusterCounts::increment(), pat::TriggerPath::indexModule(), MSLayersKeeperX0Averaged::init(), JetCorrectorParametersHelper::init(), SiPixelDigitizerAlgorithm::init(), SiStripDetKey::initFromPath(), SiStripFecKey::initFromPath(), SiStripFedKey::initFromPath(), XrdAdaptor::RequestManager::initialize(), GenericTriggerEventFlag::initRun(), trackerDTC::Stub::inRegion(), HBHEHitMap::insert(), edm::eventsetup::EventSetupsController::isFirstMatch(), TTTrackAssociationMap< T >::isGenuine(), EcalElectronicsMapper::isGhost(), cms::MuonTCMETValueMapProducer::isGoodTrack(), TCMETAlgo::isGoodTrack(), CSCBadChambers::isInBadChamber(), HcalSimParametersFromDD::isItHF(), edm::eventsetup::EventSetupsController::isLastMatch(), edm::eventsetup::EventSetupsController::isMatchingESProducer(), edm::eventsetup::EventSetupsController::isMatchingESSource(), AlignmentParameterSelector::isMemberOfVector(), SiPixelDisabledModules::isModuleDisabled(), GenHFHadronMatcher::isNeutralPdg(), EBDetId::isNextToEtaBoundary(), heppy::IsolationComputer::isoSumNeutralsWeighted(), heppy::IsolationComputer::isoSumRaw(), TrackingMaterialProducer::isSelectedFast(), reco::PFDisplacedVertex::isThereKindTracks(), HLTMuonL2ToL1Map::isTriggeredByL1(), HLTMuonL2ToL1TMap::isTriggeredByL1(), HcalLayerDepthMap::isValid(), JetCorrectionESChain::JetCorrectionESChain(), pat::JetCorrFactorsProducer::JetCorrFactorsProducer(), tmtt::StubKiller::killStub(), L1MuGMTHWFileReader::L1MuGMTHWFileReader(), L1TCaloLayer1FetchLUTs(), JsonOutputProducer::labelId(), HGVHistoProducerAlgo::layerClusters_to_CaloParticles(), reco::PFTrajectoryPoint::layerTypeByName(), PerformancePayloadFromBinnedTFormula::limitPos(), PerformancePayloadFromTFormula::limitPos(), CSCGasCollisions::lnEnergyLoss(), DefaultFFTJetRcdMapper< FFTPFJetCorrectorSequence >::load(), L1MuGMTLUT::Load(), HcalGeomParameters::loadGeometry(), HGCalGeomParameters::loadGeometryHexagon(), HGCalGeomParameters::loadGeometryHexagon8(), confdb.HLTProcess::loadSetupCff(), edm::service::MessageServicePSetValidation::lookForMatch(), edm::eventsetup::EventSetupsController::lookForMatches(), CommonMethods::ls(), das_client::main(), reco::modules::ParameterAdapter< helpers::MCTruthPairSelector< T > >::make(), HybridClusterAlgo::makeClusters(), CaloTowersCreationAlgo::makeEcalBadChs(), HSCPValidator::makeGenPlots(), HiBremRecoveryClusterAlgo::makeIslandSuperClusters(), EgammaHLTNxNClusterProducer::makeNxNClusters(), HSCPValidator::makeRecoPlots(), HSCPValidator::makeSimDigiPlotsECAL(), HSCPValidator::makeSimDigiPlotsRPC(), HSCPValidator::makeSimTrackPlots(), CSCHitFromStripOnly::makeStripData(), egammaObjectModifications_tools::makeVIDBitsModifier(), TemplatedSecondaryVertexProducer< IPTI, VTX >::markUsedTracks(), TemplatedSecondaryVertexProducer< IPTI, VTX >::matchGroomedJets(), JetFlavourClustering::matchGroomedJets(), JetPlusTrackCorrector::matchTracks(), PerformancePayloadFromTable::maxPos(), ecaldqm::memDCCIndex(), merge(), CaloTowersMerger::mergedTower(), reco::PFDisplacedVertexSeed::mergeWith(), l1t::Stage2Layer2TauAlgorithmFirmwareImp1::merging(), PerformancePayloadFromTable::minPos(), HGVHistoProducerAlgo::multiClusters_to_CaloParticles(), MultiTrackValidator::MultiTrackValidator(), TFileAdaptor::native(), ObjectPairFilter< C, S >::ObjectPairFilter(), ObjectSelector< SingleElementCollectionSelector< InputCollection, Selector, reco::CandidateCollection, StoreContainer, RefAdder >, reco::CandidateCollection, NonNullNumberSelector >::ObjectSelector(), PdgIdExcluder::operator()(), PdgIdSelector::operator()(), StatusSelector::operator()(), rpcrawtodigi::DebugDigisPrintout::operator()(), pat::HLTL1MuonMatcher::operator()(), VarRangeCutColl< trigger::TriggerObject >::operator()(), RecoTrackSelectorBase::operator()(), FFTJetDict< Key, T, Compare, Allocator >::operator[](), ReadMapType< std::map< std::string, double > >::operator[](), edm::DetSetVector< TotemRPLocalTrack::FittedRecHit >::operator[](), cmsHarvester.CMSHarvester::option_handler_input_spec(), TransientVertex::originalTrack(), JetMatchingTools::overlapEnergyFraction(), AlpgenHeader::parameterName(), RPCLBLinkNameParser::parse(), Args::parse(), edmTracerLogToSimpleConfig.ConsumesParser::parse(), AlpgenHeader::parse(), Page1Parser.Page1Parser::ParseRunSummaryPage(), SiStripDbParams::partitionNames(), pat::PATLostTracks::PATLostTracks(), SelectedElectronFEDListProducer< TEle, TCand >::pixelFedDump(), MatrixInjector.MatrixInjector::prepare(), ConfigBuilder.ConfigBuilder::prepare(), CaloSubdetectorGeometry::present(), edm::Principal::Principal(), print_trigger_collection(), SiStripConfigDb::printAnalysisDescriptions(), SiStripConfigDb::printDeviceDescriptions(), SiStripConfigDb::printFedConnections(), SiStripConfigDb::printFedDescriptions(), ParticleTreeDrawer::printInfo(), DDLString::processElement(), DDLNumeric::processElement(), LaserTask::processLaserMon(), HIMultiTrackSelector::processMVA(), TTTrackAssociator< T >::produce(), TtSemiLepJetCombMaxSumPtWMass::produce(), InterestingEcalDetIdProducer::produce(), PileupSummaryInfoSlimmer::produce(), JetTracksAssociationDRVertexAssigned::produce(), TtDilepEvtSolutionMaker::produce(), QuarkoniaTrackSelector::produce(), EcalTPSkimmer::produce(), GenTrackMatcher::produce(), StripCompactDigiSimLinksProducer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), GenParticles2HepMCConverter::produce(), TrackListMerger::produce(), SiPixelRawToDigi::produce(), pat::PATJetUpdater::produce(), ReducedRecHitCollectionProducer::produce(), EleIsoDetIdCollectionProducer::produce(), JetSubstructurePacker::produce(), MuonDetCleaner< T1, T2 >::produce(), LaserAlignmentT0Producer::produce(), ConversionSeedFilterCharge::produce(), pat::PATPackedCandidateProducer::produce(), CTPPSPixelLocalTrackProducer::produce(), GamIsoDetIdCollectionProducer::produce(), pat::GenPlusSimParticleProducer::produce(), HLTJetCollectionsForBoostedLeptonPlusJets< jetType >::produce(), pat::PATJetProducer::produce(), EcalRawToDigi::produce(), CaloTowersMerger::produce(), ConvBremSeedProducer::produce(), InterestingTrackEcalDetIdProducer::produce(), pat::PATTauProducer::produce(), HighPtTrackEcalDetIdProducer::produce(), FlavorHistoryProducer::produce(), MuonMCClassifier::produce(), LaserAlignment::produce(), SelectedElectronFEDListProducer< TEle, TCand >::produce(), GenPUProtonProducer::produce(), ProfilerService::ProfilerService(), LowPtGsfElectronSeedProducer::propagateTrackToCalo(), SiStripDbParams::pset(), reco::TrackBase::qualityByName(), SurveyPxbImageReader< T >::read(), l1t::LUT::read(), SiStripTFile::readDQMFormat(), EcalDigiDisplay::readEBDigis(), EcalPedHists::readEBdigis(), EcalDigiDisplay::readEEDigis(), EcalPedHists::readEEdigis(), BeamFitter::readEvent(), L1TdeRCT::readFEDVector(), EcalTBReadout::readOut(), EcalDigiDisplay::readPNDigis(), SiStripDcsInfo::readStatus(), Model::readSystemDescription(), CalorimetryManager::reconstruct(), GenParticlePruner::recursiveFlagDaughters(), GenParticlePruner::recursiveFlagMothers(), reco::Vertex::refittedTrack(), TransientVertex::refittedTrack(), SiPixelDisabledModules::removeDisabledModule(), lhef::LHEEvent::removeResonances(), DDI::LogicalPart::removeSpecifics(), XrdAdaptor::RequestManager::requestFailure(), BtoCharmDecayVertexMergerT< VTX >::resolveBtoDchain(), PerformancePayloadFromBinnedTFormula::resultPos(), PerformancePayloadFromTable::resultPos(), PerformancePayloadFromTFormula::resultPos(), EcalRecHitWorkerSimple::run(), cms::Ort::ONNXRuntime::run(), ecaldqm::IntegrityWriter::run(), ecaldqm::LaserWriter::run(), ecaldqm::PedestalWriter::run(), ecaldqm::PresampleWriter::run(), ecaldqm::TestPulseWriter::run(), ecaldqm::TimingWriter::run(), ecaldqm::LedWriter::run(), ecaldqm::OccupancyWriter::run(), ecaldqm::SummaryWriter::run(), DTLocalTriggerTest::runClientDiagnostic(), DTLocalTriggerTPTest::runClientDiagnostic(), DTLocalTriggerLutTest::runClientDiagnostic(), DTLocalTriggerEfficiencyTest::runClientDiagnostic(), DTTriggerEfficiencyTest::runClientDiagnostic(), L1MuDTEtaProcessor::runEtaMatchingUnit(), L1MuBMEtaProcessor::runEtaMatchingUnit(), edm::search_all(), tmtt::TrkRZfilter::seedFilter(), SeedingLayerSetsBuilder::SeedingLayerSetsBuilder(), ME0TriggerPseudoBuilder::segmentConversion(), reco::FlavorHistorySelectorUtil::select(), AlCaIsoTracksProducer::select(), SiStripBadModuleConfigurableFakeESSource::selectDetectors(), EcalMipGraphs::selectHits(), EcalDisplaysByEvent::selectHits(), AlignmentParameterStore::selectParameters(), trackerDTC::SensorModule::SensorModule(), CastorCalibrationsSet::setCalibrations(), CastorCalibrationWidthsSet::setCalibrationWidths(), RBCProcessRPCSimDigis::setDigiAt(), RBCProcessRPCDigis::setDigiAt(), EcalDeadCellTriggerPrimitiveFilter::setEvtRecHitstatus(), EcalRecHitWorkerSimple::setFlagBits(), GlobalOptionMgr::setGlobalOption(), EcalFenixFgvbEB::setParameters(), ecaldqm::CalibrationSummaryClient::setParams(), ecaldqm::SummaryClient::setParams(), DDLSolid::setReference(), TtSemiLepKinFitter::setupConstraints(), HcalDbProducer::ServiceTokenImpl< ProductType, RecordType, LABEL, EffectiveType >::setupHcalDbService(), CastorDbProducer::setupItem(), egHLT::OffHelper::setupTriggers(), vid_id_tools::setupVIDElectronSelection(), CSCDBL1TPParametersExtended::setValue(), SiStripCondObjBuilderFromDb::setValuesApvTiming(), HcalSimParameterMap::simParameters(), SiStripFedIdListReader::SiStripFedIdListReader(), CRackTrajectoryBuilder::SortHits(), HLTMuonValidator::stepLabels(), trackerDTC::Stub::Stub(), IsoTrig::studyIsolation(), sumSmallDepths(), MillePedeAlignmentAlgorithm::terminate(), PasswordReader::tokenize(), EcalSRCondTools::tokenize(), EgammaHadTower::towersOf(), HistoryBase::traceSimHistory(), TrackingMaterialProducer::TrackingMaterialProducer(), QcdUeDQM::trackSelection(), trackWeight(), TransientVertex::trackWeight(), pat::TriggerEvent::triggerObjectMatchResult(), JsonOutputProducer::typeId(), PFEGammaAlgo::unwrapSuperCluster(), SaveSimTrack::update(), DaqScopeModeHistosUsingDb::update(), PedsFullNoiseHistosUsingDb::update(), PedestalsHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), MSLayersAtAngle::update(), LatencyHistosUsingDb::update(), FineDelayHistosUsingDb::update(), KalmanVertexUpdator< 5 >::update(), CaloSteppingAction::update(), SimG4HGCalValidation::update(), HLTScalersClient::CountLSFifo_t::update(), L1RCTProducer::updateFedVector(), SiStripConfigDb::uploadAnalysisDescriptions(), EcalCondDB::usage(), HcalTopology::validCalib(), HGCalGeomTools::waferCorner(), reco::btag::weight(), NanoAODOutputModule::write(), CSCValHists::writeHists(), DQMRootOutputModule::writeLuminosityBlock(), L1GtPatternWriter::writePatterns(), DQMRootOutputModule::writeRun(), and CSCGasCollisions::writeSummary().

◆ find() [2/3]

void spr::find ( edm::Handle< edm::PCaloHitContainer > &  hits,
DetId  thisDet,
std::vector< edm::PCaloHitContainer::const_iterator > &  hit,
bool  debug = false 
)

Definition at line 35 of file FindCaloHit.cc.

38  {
39  edm::PCaloHitContainer::const_iterator ihit;
40  for (ihit = hits->begin(); ihit != hits->end(); ihit++) {
41  DetId detId(ihit->id());
42  if (detId == thisDet) {
43  hit.push_back(ihit);
44  }
45  }
46  }

References hfClusterShapes_cfi::hits.

◆ find() [3/3]

void spr::find ( edm::Handle< HBHERecHitCollection > &  hits,
DetId  thisDet,
std::vector< HBHERecHitCollection::const_iterator > &  hit,
bool  debug = false 
)

Definition at line 27 of file FindCaloHit.cc.

30  {
31  if (hits->find(thisDet) != hits->end())
32  hit.push_back(hits->find(thisDet));
33  }

References hfClusterShapes_cfi::hits.

◆ findCone() [1/5]

std::vector< EcalRecHitCollection::const_iterator > spr::findCone ( const CaloGeometry geo,
edm::Handle< EcalRecHitCollection > &  barrelhits,
edm::Handle< EcalRecHitCollection > &  endcaphits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug = false 
)

Definition at line 42 of file FindCaloHitCone.cc.

49  {
50  std::vector<EcalRecHitCollection::const_iterator> hit;
51 
52  // Only check both barrel and endcap when track is near transition
53  // region: 1.479-2*0.087 < trkEta < 1.479+2*0.087
54 
55  bool doBarrel = false, doEndcap = false;
56  if (std::abs(point1.eta()) < (spr::etaBEEcal + 2 * spr::deltaEta))
57  doBarrel = true; // 1.479+2*0.087
58  if (std::abs(point1.eta()) > (spr::etaBEEcal - 2 * spr::deltaEta))
59  doEndcap = true; // 1.479-2*0.087
60 
61  if (doBarrel) {
62  for (EcalRecHitCollection::const_iterator j = barrelhits->begin(); j != barrelhits->end(); j++) {
63  bool keepHit = false;
64  if (j->id().subdetId() == EcalBarrel) {
65  EBDetId EBid = EBDetId(j->id());
66  const GlobalPoint& rechitPoint = geo->getPosition(EBid);
67  if (spr::getDistInPlaneTrackDir(point1, trackMom, rechitPoint, debug) < dR)
68  keepHit = true;
69  } else {
70  std::cout << "PROBLEM : Endcap RecHits in Barrel Collection!?" << std::endl;
71  }
72  if (keepHit)
73  hit.push_back(j);
74  }
75  } // doBarrel
76 
77  if (doEndcap) {
78  for (EcalRecHitCollection::const_iterator j = endcaphits->begin(); j != endcaphits->end(); j++) {
79  bool keepHit = false;
80 
81  if (j->id().subdetId() == EcalEndcap) {
82  EEDetId EEid = EEDetId(j->id());
83  const GlobalPoint& rechitPoint = geo->getPosition(EEid);
84  if (spr::getDistInPlaneTrackDir(point1, trackMom, rechitPoint, debug) < dR)
85  keepHit = true;
86  } else {
87  std::cout << "PROBLEM : Barrel RecHits in Endcap Collection!?" << std::endl;
88  }
89  if (keepHit)
90  hit.push_back(j);
91  }
92  } // doEndcap
93 
94  return hit;
95  }

References funct::abs(), edm::SortedCollection< T, SORT >::begin(), gather_cfg::cout, debug, deltaEta, HLT_2018_cff::doBarrel, multi5x5BasicClusters_cfi::doEndcap, HGC3DClusterGenMatchSelector_cfi::dR, EcalBarrel, EcalEndcap, edm::SortedCollection< T, SORT >::end(), PV3DBase< T, PVType, FrameType >::eta(), etaBEEcal, getDistInPlaneTrackDir(), CaloGeometry::getPosition(), and dqmiolumiharvest::j.

◆ findCone() [2/5]

std::vector<EcalRecHitCollection::const_iterator> spr::findCone ( const CaloGeometry geo,
edm::Handle< EcalRecHitCollection > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
bool  debug = false 
)

◆ findCone() [3/5]

std::vector<EcalRecHitCollection::const_iterator> spr::findCone ( const CaloGeometry geo,
edm::Handle< EcalRecHitCollection > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug 
)

Definition at line 11 of file FindCaloHitCone.cc.

17  {
18  std::vector<EcalRecHitCollection::const_iterator> hit;
19 
20  for (EcalRecHitCollection::const_iterator j = hits->begin(); j != hits->end(); j++) {
21  bool keepHit = false;
22 
23  if (j->id().subdetId() == EcalEndcap) {
24  EEDetId EEid = EEDetId(j->id());
25  const GlobalPoint& rechitPoint = geo->getPosition(EEid);
26  if (spr::getDistInPlaneTrackDir(point1, trackMom, rechitPoint, debug) < dR)
27  keepHit = true;
28  } else if (j->id().subdetId() == EcalBarrel) {
29  EBDetId EBid = EBDetId(j->id());
30  const GlobalPoint& rechitPoint = geo->getPosition(EBid);
31  if (spr::getDistInPlaneTrackDir(point1, trackMom, rechitPoint, debug) < dR)
32  keepHit = true;
33  }
34 
35  if (keepHit)
36  hit.push_back(j);
37  }
38  return hit;
39  }

References debug, HGC3DClusterGenMatchSelector_cfi::dR, EcalBarrel, EcalEndcap, getDistInPlaneTrackDir(), CaloGeometry::getPosition(), hfClusterShapes_cfi::hits, and dqmiolumiharvest::j.

◆ findCone() [4/5]

std::vector< edm::PCaloHitContainer::const_iterator > spr::findCone ( const CaloGeometry geo,
edm::Handle< edm::PCaloHitContainer > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug = false 
)

Definition at line 118 of file FindCaloHitCone.cc.

124  {
125  std::vector<edm::PCaloHitContainer::const_iterator> hit;
126  edm::PCaloHitContainer::const_iterator ihit;
127  for (ihit = hits->begin(); ihit != hits->end(); ihit++) {
128  DetId detId(ihit->id());
129  const GlobalPoint rechitPoint =
130  (detId.det() == DetId::Hcal)
131  ? (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(detId)))->getPosition(detId)
132  : geo->getPosition(detId);
133  if (spr::getDistInPlaneTrackDir(hpoint1, trackMom, rechitPoint, debug) < dR) {
134  hit.push_back(ihit);
135  }
136  }
137  return hit;
138  }

References debug, HGC3DClusterGenMatchSelector_cfi::dR, getDistInPlaneTrackDir(), CaloGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, and hfClusterShapes_cfi::hits.

◆ findCone() [5/5]

std::vector<HBHERecHitCollection::const_iterator> spr::findCone ( const CaloGeometry geo,
edm::Handle< HBHERecHitCollection > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug = false 
)

Definition at line 98 of file FindCaloHitCone.cc.

104  {
105  std::vector<HBHERecHitCollection::const_iterator> hit;
106  // Loop over Hcal RecHits
107  for (HBHERecHitCollection::const_iterator j = hits->begin(); j != hits->end(); j++) {
108  DetId detId(j->id());
109  const GlobalPoint rechitPoint =
110  (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(detId)))->getPosition(detId);
111  if (spr::getDistInPlaneTrackDir(hpoint1, trackMom, rechitPoint, debug) < dR)
112  hit.push_back(j);
113  }
114  return hit;
115  }

References debug, HGC3DClusterGenMatchSelector_cfi::dR, getDistInPlaneTrackDir(), CaloGeometry::getSubdetectorGeometry(), hfClusterShapes_cfi::hits, and dqmiolumiharvest::j.

◆ findDetIdCalo()

const DetId spr::findDetIdCalo ( const CaloSubdetectorGeometry geo,
double  theta,
double  phi,
double  radius,
bool  debug = false 
)

Definition at line 50 of file DetIdFromEtaPhi.cc.

58  {
59 
60  double rcyl = radius * std::sin(theta);
61  double z = radius * std::cos(theta);
62  GlobalPoint point(rcyl * std::cos(phi), rcyl * std::sin(phi), z);
63  const DetId cell = geo->getClosestCell(point);
64 #ifdef EDM_ML_DEBUG
65  if (debug) {
66  std::cout << "findDetIdCalo: rcyl " << rcyl << " z " << z << " Point " << point << " DetId ";
67  if (cell.det() == DetId::Ecal) {
68  if (cell.subdetId() == EcalBarrel)
69  std::cout << (EBDetId)(cell);
70  else
71  std::cout << (EEDetId)(cell);
72  } else {
73  std::cout << (HcalDetId)(cell);
74  }
75  std::cout << std::endl;
76  }
77 #endif
78  return cell;
79  }

References funct::cos(), gather_cfg::cout, debug, DetId::det(), DetId::Ecal, EcalBarrel, CaloSubdetectorGeometry::getClosestCell(), point, CosmicsPD_Skims::radius, funct::sin(), DetId::subdetId(), and theta().

Referenced by findDetIdECAL(), and findDetIdHCAL().

◆ findDetIdECAL()

const DetId spr::findDetIdECAL ( const CaloGeometry geo,
double  eta,
double  phi,
bool  debug = false 
)

Definition at line 14 of file DetIdFromEtaPhi.cc.

14  {
15  double radius = 0;
16  int subdet = 0;
17  double theta = 2.0 * std::atan(exp(-eta));
18  if (std::abs(eta) > spr::etaBEEcal) {
20  subdet = EcalEndcap;
21  } else {
23  subdet = EcalBarrel;
24  }
25  const CaloSubdetectorGeometry* gECAL = geo->getSubdetectorGeometry(DetId::Ecal, subdet);
26 #ifdef EDM_ML_DEBUG
27  if (debug)
28  std::cout << "findDetIdECAL: eta " << eta << " theta " << theta << " phi " << phi << " radius " << radius
29  << " subdet " << subdet << std::endl;
30 #endif
31  return spr::findDetIdCalo(gECAL, theta, phi, radius, debug);
32  }

References funct::abs(), funct::cos(), gather_cfg::cout, debug, DetId::Ecal, EcalBarrel, EcalEndcap, PVValHelper::eta, etaBEEcal, JetChargeProducer_cfi::exp, findDetIdCalo(), CaloGeometry::getSubdetectorGeometry(), CosmicsPD_Skims::radius, rFrontEB, funct::sin(), theta(), and zFrontEE.

◆ findDetIdHCAL()

const DetId spr::findDetIdHCAL ( const CaloGeometry geo,
double  eta,
double  phi,
bool  debug = false 
)

Definition at line 34 of file DetIdFromEtaPhi.cc.

34  {
35  double radius = 0;
36  double theta = 2.0 * std::atan(exp(-eta));
39  else
42 #ifdef EDM_ML_DEBUG
43  if (debug)
44  std::cout << "findDetIdHCAL: eta " << eta << " theta " << theta << " phi " << phi << " radius " << radius
45  << std::endl;
46 #endif
47  return spr::findDetIdCalo(gHCAL, theta, phi, radius, debug);
48  }

References funct::abs(), funct::cos(), gather_cfg::cout, debug, PVValHelper::eta, etaBEHcal, JetChargeProducer_cfi::exp, findDetIdCalo(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, CosmicsPD_Skims::radius, rFrontHB, funct::sin(), theta(), and zFrontHE.

◆ findHit() [1/3]

template<typename T >
std::vector<typename T::const_iterator> spr::findHit ( edm::Handle< T > &  hits,
DetId  thisDet,
bool  debug = false 
)

◆ findHit() [2/3]

template<typename T >
void spr::findHit ( edm::Handle< T > &  hits,
DetId  thisDet,
std::vector< typename T::const_iterator > &  hit,
bool  debug = false 
)

◆ findHit() [3/3]

std::vector<std::vector<PCaloHit>::const_iterator> spr::findHit ( std::vector< PCaloHit > &  hits,
DetId  thisDet,
bool  debug = false 
)

Definition at line 7 of file FindCaloHit.cc.

7  {
8  std::vector<std::vector<PCaloHit>::const_iterator> hit;
9  std::vector<PCaloHit>::const_iterator ihit;
10  for (ihit = hits.begin(); ihit != hits.end(); ihit++) {
11  DetId detId(ihit->id());
12  if (detId == thisDet) {
13  hit.push_back(ihit);
14  }
15  }
16  return hit;
17  }

References hfClusterShapes_cfi::hits.

◆ findHitCone() [1/2]

template<typename T >
std::vector<typename T::const_iterator> spr::findHitCone ( const CaloGeometry geo,
edm::Handle< T > &  barrelhits,
edm::Handle< T > &  endcaphits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug = false 
)

◆ findHitCone() [2/2]

template<typename T >
std::vector<typename T::const_iterator> spr::findHitCone ( const CaloGeometry geo,
edm::Handle< T > &  hits,
const GlobalPoint hpoint1,
const GlobalPoint point1,
double  dR,
const GlobalVector trackMom,
bool  debug = false 
)

◆ getDistInCMatEcal()

double spr::getDistInCMatEcal ( double  eta1,
double  phi1,
double  eta2,
double  phi2,
bool  debug = false 
)

Definition at line 49 of file FindDistCone.cc.

57  {
58 
59  double dR, Rec;
60  if (fabs(eta1) < spr::etaBEEcal)
61  Rec = spr::rFrontEB;
62  else
63  Rec = spr::zFrontEE;
64  double ce1 = cosh(eta1);
65  double ce2 = cosh(eta2);
66  double te1 = tanh(eta1);
67  double te2 = tanh(eta2);
68 
69  double z = cos(phi1 - phi2) / ce1 / ce2 + te1 * te2;
70  if (z != 0)
71  dR = fabs(Rec * ce1 * sqrt(1. / z / z - 1.));
72  else
73  dR = 999999.;
74 #ifdef EDM_ML_DEBUG
75  if (debug)
76  std::cout << "getDistInCMatEcal: between (" << eta1 << ", " << phi1 << ") and (" << eta2 << ", " << phi2 << " is "
77  << dR << std::endl;
78 #endif
79  return dR;
80  }

References funct::cos(), gather_cfg::cout, debug, HGC3DClusterGenMatchSelector_cfi::dR, HLT_2018_cff::eta1, HLT_2018_cff::eta2, etaBEEcal, rFrontEB, mathSSE::sqrt(), and zFrontEE.

◆ getDistInCMatHcal()

double spr::getDistInCMatHcal ( double  eta1,
double  phi1,
double  eta2,
double  phi2,
bool  debug = false 
)

Definition at line 83 of file FindDistCone.cc.

91  {
92 
93  // Radii and eta from Geometry/HcalCommonData/data/hcalendcapalgo.xml
94  // and Geometry/HcalCommonData/data/hcalbarrelalgo.xml
95 
96  double dR, Rec;
97  if (fabs(eta1) < spr::etaBEHcal)
98  Rec = spr::rFrontHB;
99  else
100  Rec = spr::zFrontHE;
101  double ce1 = cosh(eta1);
102  double ce2 = cosh(eta2);
103  double te1 = tanh(eta1);
104  double te2 = tanh(eta2);
105 
106  double z = cos(phi1 - phi2) / ce1 / ce2 + te1 * te2;
107  if (z != 0)
108  dR = fabs(Rec * ce1 * sqrt(1. / z / z - 1.));
109  else
110  dR = 999999.;
111  return dR;
112 #ifdef EDM_ML_DEBUG
113  if (debug)
114  std::cout << "getDistInCMatHcal: between (" << eta1 << ", " << phi1 << ") and (" << eta2 << ", " << phi2 << " is "
115  << dR << std::endl;
116 #endif
117  }

References funct::cos(), gather_cfg::cout, debug, HGC3DClusterGenMatchSelector_cfi::dR, HLT_2018_cff::eta1, HLT_2018_cff::eta2, etaBEHcal, rFrontHB, mathSSE::sqrt(), and zFrontHE.

◆ getDistInPlaneTrackDir()

double spr::getDistInPlaneTrackDir ( const GlobalPoint caloPoint,
const GlobalVector caloVector,
const GlobalPoint rechitPoint,
bool  debug = false 
)

Definition at line 12 of file FindDistCone.cc.

19  {
20 
21  const GlobalVector caloIntersectVector(caloPoint.x(), caloPoint.y(),
22  caloPoint.z()); //p
23 
24  const GlobalVector caloUnitVector = caloVector.unit();
25  const GlobalVector rechitVector(rechitPoint.x(), rechitPoint.y(), rechitPoint.z());
26  const GlobalVector rechitUnitVector = rechitVector.unit();
27  double dotprod_denominator = caloUnitVector.dot(rechitUnitVector);
28  double dotprod_numerator = caloUnitVector.dot(caloIntersectVector);
29  double rechitdist = dotprod_numerator / dotprod_denominator;
30  const GlobalVector effectiveRechitVector = rechitdist * rechitUnitVector;
31  const GlobalPoint effectiveRechitPoint(
32  effectiveRechitVector.x(), effectiveRechitVector.y(), effectiveRechitVector.z());
33  GlobalVector distance_vector = effectiveRechitPoint - caloPoint;
34 #ifdef EDM_ML_DEBUG
35  if (debug) {
36  std::cout << "getDistInPlaneTrackDir: point " << caloPoint << " dirn " << caloVector << " numerator "
37  << dotprod_numerator << " denominator " << dotprod_denominator << " distance " << distance_vector.mag()
38  << std::endl;
39  }
40 #endif
41  if (dotprod_denominator > 0. && dotprod_numerator > 0.) {
42  return distance_vector.mag();
43  } else {
44  return 999999.;
45  }
46  }

References gather_cfg::cout, debug, Vector3DBase< T, FrameTag >::dot(), PV3DBase< T, PVType, FrameType >::mag(), Vector3DBase< T, FrameTag >::unit(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by IsolatedTracksCone::analyze(), coneChargeIsolation(), findCone(), matrixECALIds(), and matrixHCALIds().

◆ getEnergy() [1/2]

double spr::getEnergy ( edm::PCaloHitContainer::const_iterator  hit,
int  useRaw = 0,
bool  debug = false 
)

Definition at line 188 of file FindDistCone.cc.

188  {
189  // This will not yet handle Ecal CaloHits!!
190  double samplingWeight = 1.;
191  // Hard coded sampling weights from JFH analysis of iso tracks
192  // Sept 2009.
193  DetId id = hit->id();
194  if (id.det() == DetId::Hcal) {
195  HcalDetId detId(id);
196  if (detId.subdet() == HcalBarrel)
197  samplingWeight = 114.1;
198  else if (detId.subdet() == HcalEndcap)
199  samplingWeight = 167.3;
200  else {
201  // ONLY protection against summing HO, HF simhits
202  return 0.;
203  }
204  }
205 
206  return samplingWeight * hit->energy();
207  }

References DetId::Hcal, HcalBarrel, HcalEndcap, hit::id, and HcalDetId::subdet().

◆ getEnergy() [2/2]

double spr::getEnergy ( HBHERecHitCollection::const_iterator  hit,
int  useRaw = 0,
bool  debug = false 
)

Definition at line 181 of file FindDistCone.cc.

181  {
182  double energy = ((useRaw == 1) ? hit->eraw() : ((useRaw == 2) ? hit->eaux() : hit->energy()));
183  return energy;
184  }

References HCALHighEnergyHPDFilter_cfi::energy.

Referenced by RealisticSimClusterMapper::buildClusters(), and HLTGenericFilter< T1 >::hltFilter().

◆ getEtaPhi() [1/5]

void spr::getEtaPhi ( edm::PCaloHitContainer::const_iterator  hit,
int &  ieta,
int &  iphi,
bool  debug = false 
)

Definition at line 156 of file FindDistCone.cc.

156  {
157  DetId id = DetId(hit->id());
158  if (id.det() == DetId::Hcal) {
159  ieta = ((HcalDetId)(hit->id())).ieta();
160  iphi = ((HcalDetId)(hit->id())).iphi();
161  } else if (id.det() == DetId::Ecal && id.subdetId() == EcalBarrel) {
162  ieta = ((EBDetId)(id)).ieta();
163  iphi = ((EBDetId)(id)).iphi();
164  } else {
165  ieta = 999;
166  iphi = 999;
167  }
168  }

References DetId::Ecal, EcalBarrel, DetId::Hcal, hit::id, LEDCalibrationChannels::ieta, and LEDCalibrationChannels::iphi.

◆ getEtaPhi() [2/5]

void spr::getEtaPhi ( edm::PCaloHitContainer::const_iterator  hit,
std::vector< int > &  RH_ieta,
std::vector< int > &  RH_iphi,
std::vector< double > &  RH_ene,
bool  debug = false 
)

Definition at line 129 of file FindDistCone.cc.

133  {
134  // SimHit function not yet implemented.
135  RH_ieta.push_back(-9);
136  RH_iphi.push_back(-9);
137  RH_ene.push_back(-9.);
138  }

◆ getEtaPhi() [3/5]

void spr::getEtaPhi ( HBHERecHitCollection::const_iterator  hit,
int &  ieta,
int &  iphi,
bool  debug = false 
)

Definition at line 151 of file FindDistCone.cc.

151  {
152  ieta = hit->id().ieta();
153  iphi = hit->id().iphi();
154  }

References hit::id, LEDCalibrationChannels::ieta, and LEDCalibrationChannels::iphi.

◆ getEtaPhi() [4/5]

void spr::getEtaPhi ( HBHERecHitCollection::const_iterator  hit,
std::vector< int > &  RH_ieta,
std::vector< int > &  RH_iphi,
std::vector< double > &  RH_ene,
bool  debug = false 
)

Definition at line 119 of file FindDistCone.cc.

123  {
124  RH_ieta.push_back(hit->id().ieta());
125  RH_iphi.push_back(hit->id().iphi());
126  RH_ene.push_back(hit->energy());
127  }

References hit::id.

◆ getEtaPhi() [5/5]

spr::EtaPhi spr::getEtaPhi ( int  ieta,
int  iphi,
bool  debug = false 
)

Definition at line 8 of file FindEtaPhi.cc.

14  {
15 
16  int ietal = (ieta - 1) / 2;
17  int ietar = ieta - ietal - 1;
18  int iphil = (iphi - 1) / 2;
19  int iphir = iphi - iphil - 1;
21  etaphi.ietaE[0] = ietal;
22  etaphi.ietaW[0] = ietar;
23  etaphi.iphiN[0] = iphil;
24  etaphi.iphiS[0] = iphir;
25  if (ietal == ietar && iphil == iphir) {
26  etaphi.ntrys = 1;
27  } else if (ietal == ietar || iphil == iphir) {
28  etaphi.ntrys = 2;
29  etaphi.ietaE[1] = ietar;
30  etaphi.ietaW[1] = ietal;
31  etaphi.iphiN[1] = iphir;
32  etaphi.iphiS[1] = iphil;
33  } else {
34  etaphi.ntrys = 4;
35  etaphi.ietaE[1] = ietar;
36  etaphi.ietaW[1] = ietal;
37  etaphi.iphiN[1] = iphil;
38  etaphi.iphiS[1] = iphir;
39  etaphi.ietaE[2] = ietal;
40  etaphi.ietaW[1] = ietar;
41  etaphi.iphiN[2] = iphir;
42  etaphi.iphiS[1] = iphil;
43  etaphi.ietaE[3] = ietar;
44  etaphi.ietaW[1] = ietal;
45  etaphi.iphiN[3] = iphir;
46  etaphi.iphiS[1] = iphil;
47  }
48 
49 #ifdef EDM_ML_DEBUG
50  if (debug) {
51  std::cout << "getEtaPhi:: Has " << etaphi.ntrys << " possibilites for " << ieta << "X" << iphi << " matrix"
52  << std::endl;
53  for (int itry = 0; itry < etaphi.ntrys; itry++) {
54  std::cout << "Trial " << itry << " with etaE|etaW " << etaphi.ietaE[itry] << "|" << etaphi.ietaW[itry]
55  << " and phiN|PhiS " << etaphi.iphiN[itry] << "|" << etaphi.iphiS[itry] << std::endl;
56  }
57  }
58 #endif
59  return etaphi;
60  }

References gather_cfg::cout, debug, fastmath::etaphi(), LEDCalibrationChannels::ieta, and LEDCalibrationChannels::iphi.

◆ getGpos() [1/2]

GlobalPoint spr::getGpos ( const CaloGeometry geo,
edm::PCaloHitContainer::const_iterator  hit,
bool  debug = false 
)

Definition at line 214 of file FindDistCone.cc.

214  {
215  DetId detId(hit->id());
216  GlobalPoint point = (detId.det() == DetId::Hcal)
217  ? (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(detId)))->getPosition(detId)
218  : geo->getPosition(detId);
219  return point;
220  }

References CaloGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, hit::id, and point.

◆ getGpos() [2/2]

GlobalPoint spr::getGpos ( const CaloGeometry geo,
HBHERecHitCollection::const_iterator  hit,
bool  debug = false 
)

Definition at line 209 of file FindDistCone.cc.

209  {
210  DetId detId(hit->id());
211  return (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(detId)))->getPosition(detId);
212  }

References CaloGeometry::getSubdetectorGeometry(), and hit::id.

◆ getHotCell() [1/2]

HcalDetId spr::getHotCell ( std::vector< HBHERecHitCollection::const_iterator > &  hit,
bool  includeHO,
int  useRaw = 0,
bool  debug = false 
)

Definition at line 195 of file eHCALMatrix.cc.

195  {
196  std::vector<HcalDetId> dets;
197  std::vector<double> energies;
198  for (unsigned int ihit = 0; ihit < hit.size(); ihit++) {
199  double energy = getRawEnergy(hit.at(ihit), useRaw);
200  HcalDetId id0 = hit.at(ihit)->id();
201  if ((id0.subdet() != HcalOuter) || includeHO) {
202  HcalDetId id1(id0.subdet(), id0.ieta(), id0.iphi(), 1);
203  bool found(false);
204  for (unsigned int idet = 0; idet < dets.size(); ++idet) {
205  if (id1 == dets[idet]) {
206  energies[idet] += energy;
207  found = true;
208  break;
209  }
210  }
211  if (!found) {
212  dets.push_back(id1);
213  energies.push_back(energy);
214  }
215  }
216  }
217  double energyMax(-99.);
218  HcalDetId hotCell;
219  for (unsigned int ihit = 0; ihit < dets.size(); ihit++) {
220  if (energies[ihit] > energyMax) {
221  energyMax = energies[ihit];
222  hotCell = dets[ihit];
223  }
224  }
225  return hotCell;
226  }

References HCALHighEnergyHPDFilter_cfi::energy, newFWLiteAna::found, getRawEnergy(), HcalOuter, hit::id, and globals_cff::id1.

◆ getHotCell() [2/2]

HcalDetId spr::getHotCell ( std::vector< std::vector< PCaloHit >::const_iterator > &  hit,
bool  includeHO,
int  useRaw = 0,
bool  debug = false 
)

Definition at line 228 of file eHCALMatrix.cc.

228  {
229  std::vector<HcalDetId> dets;
230  std::vector<double> energies;
231  for (unsigned int ihit = 0; ihit < hit.size(); ihit++) {
232  double energy = hit.at(ihit)->energy();
233  HcalDetId id0 = getRawEnergy(hit.at(ihit), useRaw);
234  if ((id0.subdet() != HcalOuter) || includeHO) {
235  HcalDetId id1(id0.subdet(), id0.ieta(), id0.iphi(), 1);
236  bool found(false);
237  for (unsigned int idet = 0; idet < dets.size(); ++idet) {
238  if (id1 == dets[idet]) {
239  energies[idet] += energy;
240  found = true;
241  break;
242  }
243  }
244  if (!found) {
245  dets.push_back(id1);
246  energies.push_back(energy);
247  }
248  }
249  }
250  double energyMax(-99.);
251  HcalDetId hotCell;
252  for (unsigned int ihit = 0; ihit < dets.size(); ihit++) {
253  if (energies[ihit] > energyMax) {
254  energyMax = energies[ihit];
255  hotCell = dets[ihit];
256  }
257  }
258  return hotCell;
259  }

References HCALHighEnergyHPDFilter_cfi::energy, newFWLiteAna::found, getRawEnergy(), HcalOuter, globals_cff::id1, HcalDetId::ieta(), HcalDetId::iphi(), and HcalDetId::subdet().

◆ getRawEnergy() [1/2]

double spr::getRawEnergy ( edm::PCaloHitContainer::const_iterator  hit,
int  useRaw = 0 
)

Definition at line 240 of file FindDistCone.cc.

240 { return hit->energy(); }

◆ getRawEnergy() [2/2]

double spr::getRawEnergy ( HBHERecHitCollection::const_iterator  hit,
int  useRaw = 0 
)

Definition at line 233 of file FindDistCone.cc.

233  {
234  double energy = ((useRaw == 1) ? hit->eraw() : ((useRaw == 2) ? hit->eaux() : hit->energy()));
235  return energy;
236  }

References HCALHighEnergyHPDFilter_cfi::energy.

Referenced by getHotCell().

◆ goodTrack()

bool spr::goodTrack ( const reco::Track pTrack,
math::XYZPoint  leadPV,
spr::trackSelectionParameters  parameters,
bool  debug = false 
)

Definition at line 10 of file TrackSelection.cc.

17  {
18 
19  bool select = pTrack->quality(parameters.minQuality);
20  double dxy = pTrack->dxy(leadPV);
21  double dz = pTrack->dz(leadPV);
22  double dpbyp = 999;
23  if (std::abs(pTrack->qoverp()) > 0.0000001)
24  dpbyp = std::abs(pTrack->qoverpError() / pTrack->qoverp());
25 
26 #ifdef EDM_ML_DEBUG
27  if (debug)
28  std::cout << "Track:: Pt " << pTrack->pt() << " dxy " << dxy << " dz " << dz << " Chi2 "
29  << pTrack->normalizedChi2() << " dpbyp " << dpbyp << " Quality " << select << std::endl;
30 #endif
31  if (pTrack->pt() < parameters.minPt)
32  select = false;
33  if (dxy > parameters.maxDxyPV || dz > parameters.maxDzPV)
34  select = false;
35  if (pTrack->normalizedChi2() > parameters.maxChi2)
36  select = false;
37  if (dpbyp > parameters.maxDpOverP)
38  select = false;
39 
40  if (parameters.minLayerCrossed > 0 || parameters.minOuterHit > 0) {
41  const reco::HitPattern& hitp = pTrack->hitPattern();
42  if (parameters.minLayerCrossed > 0 && hitp.trackerLayersWithMeasurement() < parameters.minLayerCrossed)
43  select = false;
44  if (parameters.minOuterHit > 0 &&
46  select = false;
47 #ifdef EDM_ML_DEBUG
48  if (debug) {
49  std::cout << "Default Hit Pattern with " << hitp.numberOfAllHits(reco::HitPattern::TRACK_HITS) << " hits"
50  << std::endl;
51  for (int i = 0; i < hitp.numberOfAllHits(reco::HitPattern::TRACK_HITS); i++)
53  }
54 #endif
55  }
56  if (parameters.maxInMiss >= 0) {
57  const reco::HitPattern& hitp = pTrack->hitPattern();
59  select = false;
60 #ifdef EDM_ML_DEBUG
61  if (debug) {
62  std::cout << "Inner Hit Pattern with " << hitp.numberOfAllHits(reco::HitPattern::MISSING_INNER_HITS) << " hits"
63  << std::endl;
64  for (int i = 0; i < hitp.numberOfAllHits(reco::HitPattern::MISSING_INNER_HITS); i++)
66  }
67 #endif
68  }
69  if (parameters.maxOutMiss >= 0) {
70  const reco::HitPattern& hitp = pTrack->hitPattern();
72  select = false;
73 #ifdef EDM_ML_DEBUG
74  if (debug) {
75  std::cout << "Outer Hit Pattern with " << hitp.numberOfAllHits(reco::HitPattern::MISSING_OUTER_HITS) << " hits"
76  << std::endl;
77  for (int i = 0; i < hitp.numberOfAllHits(reco::HitPattern::MISSING_OUTER_HITS); i++)
79  }
80 #endif
81  }
82 #ifdef EDM_ML_DEBUG
83  if (debug)
84  std::cout << "Final Selection Result " << select << std::endl;
85 #endif
86  return select;
87  }

References funct::abs(), gather_cfg::cout, debug, PVValHelper::dxy, reco::TrackBase::dxy(), PVValHelper::dz, reco::TrackBase::dz(), reco::TrackBase::hitPattern(), mps_fire::i, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfAllHits(), reco::HitPattern::printHitPattern(), reco::TrackBase::pt(), reco::TrackBase::qoverp(), reco::TrackBase::qoverpError(), reco::TrackBase::quality(), singleTopDQM_cfi::select, reco::HitPattern::stripTECLayersWithMeasurement(), reco::HitPattern::stripTOBLayersWithMeasurement(), reco::HitPattern::TRACK_HITS, reco::HitPattern::trackerLayersWithMeasurement(), and reco::HitPattern::trackerLayersWithoutMeasurement().

Referenced by IsoTrackCalibration::analyze(), IsoTrackCalib::analyze(), IsolatedTracksHcalScale::analyze(), HcalHBHEMuonHighEtaAnalyzer::analyzeTracks(), IsoTrig::chgIsolation(), CSCSkim::doBFieldStudySelection(), HcalIsoTrkAnalyzer::fillTree(), AlCaIsoTracksFilter::filter(), tmtt::KFbase::fit(), RPixPlaneCombinatoryTracking::fitTrack(), IsoTrig::getGoodTracks(), PFEGammaFilters::isElectronSafeForJetMET(), JetTracksAssociationDRCalo::produce(), AlCaIsoTracksProducer::select(), IsoTrig::studyIsolation(), IsoTrig::studyMipCut(), IsoTrig::StudyTrkEbyP(), and PFEGammaAlgo::unlinkRefinableObjectKFandECALMatchedToHCAL().

◆ hGenSimInfo() [1/4]

void spr::hGenSimInfo ( const DetId coreDet,
HepMC::GenEvent::particle_const_iterator  trkItr,
std::vector< spr::propagatedGenTrackID > &  trackIds,
const CaloGeometry geo,
const HcalTopology topology,
double  dR,
const GlobalVector trackMom,
spr::genSimInfo info,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 125 of file GenSimInfo.cc.

134  {
135 #ifdef EDM_ML_DEBUG
136  if (debug)
137  std::cout << "hGenSimInfo:: For track " << (*trkItr)->momentum().rho() << "/" << (*trkItr)->momentum().eta()
138  << "/" << (*trkItr)->momentum().phi() << " with dR,tMom " << dR << " " << trackMom << std::endl;
139 #endif
140  std::vector<DetId> vdets = spr::matrixHCALIds(coreDet, geo, topology, dR, trackMom, includeHO, false);
141 #ifdef EDM_ML_DEBUG
142  if (debug)
143  spr::debugHcalDets(0, vdets);
144 #endif
145  spr::cGenSimInfo(vdets, trkItr, trackIds, false, info, debug);
146  }

References cGenSimInfo(), gather_cfg::cout, debug, debugHcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, info(), matrixHCALIds(), and ecaldqm::topology().

◆ hGenSimInfo() [2/4]

void spr::hGenSimInfo ( const DetId coreDet,
HepMC::GenEvent::particle_const_iterator  trkItr,
std::vector< spr::propagatedGenTrackID > &  trackIds,
const HcalTopology topology,
int  ieta,
int  iphi,
spr::genSimInfo info,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 101 of file GenSimInfo.cc.

109  {
110 #ifdef EDM_ML_DEBUG
111  if (debug)
112  std::cout << "hGenSimInfo:: For track " << (*trkItr)->momentum().rho() << "/" << (*trkItr)->momentum().eta()
113  << "/" << (*trkItr)->momentum().phi() << " with ieta:iphi " << ieta << ":" << iphi << std::endl;
114 #endif
115  std::vector<DetId> dets;
116  dets.push_back(coreDet);
117  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, includeHO, false);
118 #ifdef EDM_ML_DEBUG
119  if (debug)
120  spr::debugHcalDets(0, vdets);
121 #endif
122  spr::cGenSimInfo(vdets, trkItr, trackIds, false, info, debug);
123  }

References cGenSimInfo(), gather_cfg::cout, debug, debugHcalDets(), LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, matrixHCALIds(), and ecaldqm::topology().

Referenced by IsolatedGenParticles::analyze().

◆ hGenSimInfo() [3/4]

void spr::hGenSimInfo ( const DetId coreDet,
reco::GenParticleCollection::const_iterator  trkItr,
std::vector< spr::propagatedGenParticleID > &  trackIds,
const CaloGeometry geo,
const HcalTopology topology,
double  dR,
const GlobalVector trackMom,
spr::genSimInfo info,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 172 of file GenSimInfo.cc.

181  {
182 #ifdef EDM_ML_DEBUG
183  if (debug)
184  std::cout << "hGenSimInfo:: For track " << trkItr->momentum().R() << "/" << trkItr->momentum().eta() << "/"
185  << trkItr->momentum().phi() << " with dR,tMom " << dR << " " << trackMom << std::endl;
186 #endif
187  std::vector<DetId> vdets = spr::matrixHCALIds(coreDet, geo, topology, dR, trackMom, includeHO, false);
188 #ifdef EDM_ML_DEBUG
189  if (debug)
190  spr::debugHcalDets(0, vdets);
191 #endif
192  spr::cGenSimInfo(vdets, trkItr, trackIds, false, info, debug);
193  }

References cGenSimInfo(), gather_cfg::cout, debug, debugHcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, info(), matrixHCALIds(), and ecaldqm::topology().

◆ hGenSimInfo() [4/4]

void spr::hGenSimInfo ( const DetId coreDet,
reco::GenParticleCollection::const_iterator  trkItr,
std::vector< spr::propagatedGenParticleID > &  trackIds,
const HcalTopology topology,
int  ieta,
int  iphi,
spr::genSimInfo info,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 148 of file GenSimInfo.cc.

156  {
157 #ifdef EDM_ML_DEBUG
158  if (debug)
159  std::cout << "hGenSimInfo:: For track " << trkItr->momentum().R() << "/" << trkItr->momentum().eta() << "/"
160  << trkItr->momentum().phi() << " with ieta:iphi " << ieta << ":" << iphi << std::endl;
161 #endif
162  std::vector<DetId> dets;
163  dets.push_back(coreDet);
164  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ieta, iphi, includeHO, false);
165 #ifdef EDM_ML_DEBUG
166  if (debug)
167  spr::debugHcalDets(0, vdets);
168 #endif
169  spr::cGenSimInfo(vdets, trkItr, trackIds, false, info, debug);
170  }

References cGenSimInfo(), gather_cfg::cout, debug, debugHcalDets(), LEDCalibrationChannels::ieta, info(), LEDCalibrationChannels::iphi, matrixHCALIds(), and ecaldqm::topology().

◆ hitECALmatrix()

template<typename T >
void spr::hitECALmatrix ( CaloNavigator< DetId > &  navigator,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
std::vector< typename T::const_iterator > &  hitlist,
bool  debug = false 
)

◆ hitHCALmatrix()

template<typename T >
void spr::hitHCALmatrix ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ieta,
int  iphi,
std::vector< typename T::const_iterator > &  hitlist,
bool  includeHO = false,
bool  debug = false 
)

◆ hitHCALmatrixTotal()

template<typename T >
void spr::hitHCALmatrixTotal ( const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
std::vector< typename T::const_iterator > &  hitlist,
bool  includeHO = false,
bool  debug = false 
)

◆ hitsHCAL()

template<typename T >
void spr::hitsHCAL ( std::vector< DetId > &  vdets,
edm::Handle< T > &  hits,
std::vector< typename T::const_iterator > &  hitlist,
bool  debug = false 
)

◆ hotCrystal() [1/2]

template<typename T >
DetId spr::hotCrystal ( const DetId detId,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
const CaloGeometry geo,
const CaloTopology caloTopology,
int  ieta,
int  iphi,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

Referenced by ElectronStudy::analyze().

◆ hotCrystal() [2/2]

template<typename T >
DetId spr::hotCrystal ( std::vector< DetId > &  detId,
edm::Handle< T > &  hitsEB,
edm::Handle< T > &  hitsEE,
double  tMin = -500,
double  tMax = 500,
bool  debug = false 
)

◆ matchedSimTrack()

edm::SimTrackContainer::const_iterator spr::matchedSimTrack ( const edm::Event iEvent,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
bool  debug = false 
)

Definition at line 12 of file MatchingSimTrack.cc.

21  {
22 
23  edm::SimTrackContainer::const_iterator itr = SimTk->end();
24  ;
25 
26  //Get the vector of PsimHits associated to TrackerRecHits and select the
27  //matching SimTrack on the basis of maximum occurance of trackIds
28  std::vector<unsigned int> trkId, trkOcc;
29  for (auto const& trkHit : pTrack->recHits()) {
30  std::vector<PSimHit> matchedSimIds = associate.associateHit(*trkHit);
31  for (unsigned int isim = 0; isim < matchedSimIds.size(); isim++) {
32  unsigned tkId = matchedSimIds[isim].trackId();
33  bool found = false;
34  for (unsigned int j = 0; j < trkId.size(); j++) {
35  if (tkId == trkId[j]) {
36  trkOcc[j]++;
37  found = true;
38  break;
39  }
40  }
41  if (!found) {
42  trkId.push_back(tkId);
43  trkOcc.push_back(1);
44  }
45  }
46  }
47 
48 #ifdef EDM_ML_DEBUG
49  if (debug) {
50  for (unsigned int isim = 0; isim < trkId.size(); isim++) {
51  std::cout << "\n trkId " << trkId[isim] << " Occurance " << trkOcc[isim] << ", ";
52  }
53  std::cout << std::endl;
54  }
55  int matchedId = 0;
56 #endif
57 
58  unsigned int matchSimTrk = 0;
59  if (!trkOcc.empty()) {
60  unsigned int maxTrkOcc = 0, idxMax = 0;
61  for (unsigned int j = 0; j < trkOcc.size(); j++) {
62  if (trkOcc[j] > maxTrkOcc) {
63  maxTrkOcc = trkOcc[j];
64  idxMax = j;
65  }
66  }
67  matchSimTrk = trkId[idxMax];
68  for (auto simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
69  if (simTrkItr->trackId() == matchSimTrk) {
70 #ifdef EDM_ML_DEBUG
71  matchedId = simTrkItr->type();
72  if (debug)
73  std::cout << "matched trackId (maximum occurance) " << matchSimTrk << " type " << matchedId << std::endl;
74 #endif
75  itr = simTrkItr;
76  break;
77  }
78  }
79  }
80 
81 #ifdef EDM_ML_DEBUG
82  if (matchedId == 0 && debug) {
83  std::cout << "Could not find matched SimTrk and track history now " << std::endl;
84  }
85 #endif
86  return itr;
87  }

References TrackerHitAssociator::associateHit(), gather_cfg::cout, debug, newFWLiteAna::found, dqmiolumiharvest::j, and reco::Track::recHits().

Referenced by IsolatedTracksCone::analyze(), IsolatedTracksNxN::analyze(), and matchedSimTrackId().

◆ matchedSimTrackId()

std::vector< int > spr::matchedSimTrackId ( const edm::Event iEvent,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
bool  debug = false 
)

Definition at line 90 of file MatchingSimTrack.cc.

95  {
96  // get the matching SimTrack
97  edm::SimTrackContainer::const_iterator trkInfo =
98  spr::matchedSimTrack(iEvent, SimTk, SimVtx, pTrack, associate, debug);
99  unsigned int matchSimTrk = trkInfo->trackId();
100 #ifdef EDM_ML_DEBUG
101  if (debug)
102  std::cout << "matchedSimTrackId finds the SimTrk ID of the current track to be " << matchSimTrk << std::endl;
103 #endif
104  std::vector<int> matchTkid;
105  if (trkInfo->type() != 0) {
106  for (auto simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
107  if (validSimTrack(matchSimTrk, simTrkItr, SimTk, SimVtx, false))
108  matchTkid.push_back((int)simTrkItr->trackId());
109  }
110  }
111  return matchTkid;
112  }

References gather_cfg::cout, debug, iEvent, matchedSimTrack(), and validSimTrack().

◆ matchedSimTrackInfo()

spr::simTkInfo spr::matchedSimTrackInfo ( unsigned int  simTkId,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
bool  debug = false 
)

Definition at line 114 of file MatchingSimTrack.cc.

117  {
119  for (edm::SimTrackContainer::const_iterator simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
120  if (simTkId == simTrkItr->trackId()) {
121  if (spr::validSimTrack(simTkId, simTrkItr, SimTk, SimVtx, debug)) {
122  info.found = true;
123  info.pdgId = simTrkItr->type();
124  info.charge = simTrkItr->charge();
125  } else {
126  edm::SimTrackContainer::const_iterator parentItr = spr::parentSimTrack(simTrkItr, SimTk, SimVtx, debug);
127 #ifdef EDM_ML_DEBUG
128  if (debug) {
129  if (parentItr != SimTk->end())
130  std::cout << "original parent of " << simTrkItr->trackId() << " " << parentItr->trackId() << ", "
131  << parentItr->type() << std::endl;
132  else
133  std::cout << "original parent of " << simTrkItr->trackId() << " not found" << std::endl;
134  }
135 #endif
136  if (parentItr != SimTk->end()) {
137  info.found = true;
138  info.pdgId = parentItr->type();
139  info.charge = parentItr->charge();
140  }
141  }
142  break;
143  }
144  }
145  return info;
146  }

References gather_cfg::cout, debug, info(), parentSimTrack(), and validSimTrack().

◆ matrixECALIds() [1/5]

std::vector< DetId > spr::matrixECALIds ( const DetId det,
double  dR,
const GlobalVector trackMom,
const CaloGeometry geo,
const CaloTopology caloTopology,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 76 of file MatrixECALDetIds.cc.

82  {
84  if (det.subdetId() == EcalEndcap) {
85  EEDetId EEid = EEDetId(det);
86  core = geo->getPosition(EEid);
87  } else {
88  EBDetId EBid = EBDetId(det);
89  core = geo->getPosition(EBid);
90  }
91  int ietaphi = (int)(dR / 2.0) + 1;
92  std::vector<DetId> vdets, vdetx;
93  spr::matrixECALIds(det, ietaphi, ietaphi, geo, caloTopology, vdets, debug, ignoreTransition);
94  for (unsigned int i = 0; i < vdets.size(); ++i) {
95  GlobalPoint rpoint;
96  if (vdets[i].subdetId() == EcalEndcap) {
97  EEDetId EEid = EEDetId(vdets[i]);
98  rpoint = geo->getPosition(EEid);
99  } else {
100  EBDetId EBid = EBDetId(vdets[i]);
101  rpoint = geo->getPosition(EBid);
102  }
103  if (spr::getDistInPlaneTrackDir(core, trackMom, rpoint) < dR) {
104  vdetx.push_back(vdets[i]);
105  }
106  }
107 
108 #ifdef EDM_ML_DEBUG
109  if (debug) {
110  std::cout << "matrixECALIds::Final List of cells for dR " << dR << " is with " << vdetx.size()
111  << " from original list of " << vdets.size() << std::endl;
112  spr::debugEcalDets(0, vdetx);
113  }
114 #endif
115  return vdetx;
116  }

References gather_cfg::cout, debug, debugEcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, EcalEndcap, getDistInPlaneTrackDir(), CaloGeometry::getPosition(), mps_fire::i, createfilelist::int, matrixECALIds(), and DetId::subdetId().

◆ matrixECALIds() [2/5]

std::vector< DetId > spr::matrixECALIds ( const DetId det,
int  ieta,
int  iphi,
const CaloGeometry geo,
const CaloTopology caloTopology,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 64 of file MatrixECALDetIds.cc.

70  {
71  std::vector<DetId> vdets;
72  spr::matrixECALIds(det, ieta, iphi, geo, caloTopology, vdets, debug, ignoreTransition);
73  return vdets;
74  }

References debug, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, and matrixECALIds().

◆ matrixECALIds() [3/5]

void spr::matrixECALIds ( const DetId det,
int  ieta,
int  iphi,
const CaloGeometry geo,
const CaloTopology caloTopology,
std::vector< DetId > &  vdets,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 16 of file MatrixECALDetIds.cc.

23  {
24  const CaloSubdetectorTopology* barrelTopo = (caloTopology->getSubdetectorTopology(DetId::Ecal, EcalBarrel));
25  const CaloSubdetectorTopology* endcapTopo = (caloTopology->getSubdetectorTopology(DetId::Ecal, EcalEndcap));
26  const EcalBarrelGeometry* barrelGeom =
27  (dynamic_cast<const EcalBarrelGeometry*>(geo->getSubdetectorGeometry(DetId::Ecal, EcalBarrel)));
28  const EcalEndcapGeometry* endcapGeom =
29  (dynamic_cast<const EcalEndcapGeometry*>(geo->getSubdetectorGeometry(DetId::Ecal, EcalEndcap)));
30 
31 #ifdef EDM_ML_DEBUG
32  if (debug) {
33  std::cout << "matrixECALIds::Add " << ieta << " rows and " << iphi << " columns of cells for 1 cell" << std::endl;
34  spr::debugEcalDets(0, det, true);
35  }
36 #endif
37  std::vector<DetId> dets(1, det);
38  std::vector<CaloDirection> dirs(1, NORTH);
39  vdets = spr::newECALIdNS(
40  dets, 0, ieta, iphi, dirs, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
41  dirs[0] = SOUTH;
42  std::vector<DetId> vdetS = spr::newECALIdNS(
43  dets, 0, ieta, iphi, dirs, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
44  for (unsigned int i1 = 0; i1 < vdetS.size(); i1++) {
45  if (std::count(vdets.begin(), vdets.end(), vdetS[i1]) == 0)
46  vdets.push_back(vdetS[i1]);
47  }
48  unsigned int ndet = (2 * ieta + 1) * (2 * iphi + 1);
49  if (vdets.size() != ndet) {
50  std::vector<DetId> vdetExtra;
51  spr::extraIds(det, vdets, ieta, ieta, iphi, iphi, barrelGeom, endcapGeom, vdetExtra, debug);
52  if (!vdetExtra.empty())
53  vdets.insert(vdets.end(), vdetExtra.begin(), vdetExtra.end());
54  }
55 
56 #ifdef EDM_ML_DEBUG
57  if (debug) {
58  std::cout << "matrixECALIds::Total number of cells found is " << vdets.size() << std::endl;
59  spr::debugEcalDets(0, vdets);
60  }
61 #endif
62  }

References KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), heppy_check::dirs, DetId::Ecal, EcalBarrel, EcalEndcap, extraIds(), CaloGeometry::getSubdetectorGeometry(), CaloTopology::getSubdetectorTopology(), testProducerWithPsetDescEmpty_cfi::i1, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, newECALIdNS(), NORTH, and SOUTH.

Referenced by chargeIsolationEcal(), eECALmatrix(), eGenSimInfo(), and matrixECALIds().

◆ matrixECALIds() [4/5]

std::vector< DetId > spr::matrixECALIds ( const DetId det,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
const CaloGeometry geo,
const CaloTopology caloTopology,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 194 of file MatrixECALDetIds.cc.

202  {
203  std::vector<DetId> vdets;
204  spr::matrixECALIds(det, ietaE, ietaW, iphiN, iphiS, geo, caloTopology, vdets, debug, ignoreTransition);
205  return vdets;
206  }

References debug, and matrixECALIds().

◆ matrixECALIds() [5/5]

void spr::matrixECALIds ( const DetId det,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
const CaloGeometry geo,
const CaloTopology caloTopology,
std::vector< DetId > &  vdets,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 118 of file MatrixECALDetIds.cc.

127  {
128  const CaloSubdetectorTopology* barrelTopo = (caloTopology->getSubdetectorTopology(DetId::Ecal, EcalBarrel));
129  const CaloSubdetectorTopology* endcapTopo = (caloTopology->getSubdetectorTopology(DetId::Ecal, EcalEndcap));
130  const EcalBarrelGeometry* barrelGeom =
131  (dynamic_cast<const EcalBarrelGeometry*>(geo->getSubdetectorGeometry(DetId::Ecal, EcalBarrel)));
132  const EcalEndcapGeometry* endcapGeom =
133  (dynamic_cast<const EcalEndcapGeometry*>(geo->getSubdetectorGeometry(DetId::Ecal, EcalEndcap)));
134 
135 #ifdef EDM_ML_DEBUG
136  if (debug) {
137  std::cout << "matrixECALIds::Add " << ietaE << "|" << ietaW << " rows and " << iphiN << "|" << iphiS
138  << " columns of cells for 1 cell" << std::endl;
139  debugEcalDets(0, det, true);
140  }
141 #endif
142  std::vector<DetId> dets(1, det);
143  std::vector<CaloDirection> dirs(1, NORTH);
144  std::vector<int> jetaE(1, ietaE), jetaW(1, ietaW);
145  std::vector<int> jphiN(1, iphiN), jphiS(1, iphiS);
146  vdets = spr::newECALIdNS(dets,
147  0,
148  jetaE,
149  jetaW,
150  jphiN,
151  jphiS,
152  dirs,
153  barrelTopo,
154  endcapTopo,
155  barrelGeom,
156  endcapGeom,
157  debug,
158  ignoreTransition);
159  dirs[0] = SOUTH;
160  std::vector<DetId> vdetS = spr::newECALIdNS(dets,
161  0,
162  jetaE,
163  jetaW,
164  jphiN,
165  jphiS,
166  dirs,
167  barrelTopo,
168  endcapTopo,
169  barrelGeom,
170  endcapGeom,
171  debug,
172  ignoreTransition);
173  for (unsigned int i1 = 0; i1 < vdetS.size(); i1++) {
174  if (std::count(vdets.begin(), vdets.end(), vdetS[i1]) == 0)
175  vdets.push_back(vdetS[i1]);
176  }
177 
178  unsigned int ndet = (ietaE + ietaW + 1) * (iphiN + iphiS + 1);
179  if (vdets.size() != ndet) {
180  std::vector<DetId> vdetExtra;
181  spr::extraIds(det, vdets, ietaE, ietaW, iphiN, iphiS, barrelGeom, endcapGeom, vdetExtra, debug);
182  if (!vdetExtra.empty())
183  vdets.insert(vdets.end(), vdetExtra.begin(), vdetExtra.end());
184  }
185 
186 #ifdef EDM_ML_DEBUG
187  if (debug) {
188  std::cout << "matrixECALIds::Total number of cells found is " << vdets.size() << std::endl;
189  spr::debugEcalDets(0, vdets);
190  }
191 #endif
192  }

References KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), heppy_check::dirs, DetId::Ecal, EcalBarrel, EcalEndcap, extraIds(), CaloGeometry::getSubdetectorGeometry(), CaloTopology::getSubdetectorTopology(), testProducerWithPsetDescEmpty_cfi::i1, newECALIdNS(), NORTH, and SOUTH.

◆ matrixHCALIds() [1/3]

std::vector< DetId > spr::matrixHCALIds ( const DetId det,
const CaloGeometry geo,
const HcalTopology topology,
double  dR,
const GlobalVector trackMom,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 42 of file MatrixHCALDetIds.cc.

48  {
49  HcalDetId hcdet = HcalDetId(det);
50  GlobalPoint core = (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(hcdet)))->getPosition(hcdet);
51  std::vector<DetId> dets, vdetx;
52  dets.push_back(det);
53  int ietaphi = (int)(dR / 15.0) + 1;
54  std::vector<DetId> vdets = spr::matrixHCALIds(dets, topology, ietaphi, ietaphi, includeHO, debug);
55  for (unsigned int i = 0; i < vdets.size(); ++i) {
56  HcalDetId hcdet = HcalDetId(vdets[i]);
57  GlobalPoint rpoint = (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(hcdet)))->getPosition(hcdet);
58  if (spr::getDistInPlaneTrackDir(core, trackMom, rpoint) < dR) {
59  vdetx.push_back(vdets[i]);
60  }
61  }
62 
63 #ifdef EDM_ML_DEBUG
64  if (debug) {
65  std::cout << "matrixHCALIds::Final List of cells for dR " << dR << " is with " << vdetx.size()
66  << " from original list of " << vdets.size() << " cells" << std::endl;
67  spr::debugHcalDets(0, vdetx);
68  }
69 #endif
70  return vdetx;
71  }

References gather_cfg::cout, debug, debugHcalDets(), HGC3DClusterGenMatchSelector_cfi::dR, getDistInPlaneTrackDir(), CaloGeometry::getSubdetectorGeometry(), mps_fire::i, createfilelist::int, matrixHCALIds(), and ecaldqm::topology().

◆ matrixHCALIds() [2/3]

std::vector<DetId> spr::matrixHCALIds ( std::vector< DetId > &  dets,
const HcalTopology topology,
int  ieta,
int  iphi,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 15 of file MatrixHCALDetIds.cc.

16  {
17 #ifdef EDM_ML_DEBUG
18  if (debug) {
19  std::cout << "matrixHCALIds::Add " << ieta << " rows and " << iphi << " columns of cells for " << dets.size()
20  << " cells" << std::endl;
21  spr::debugHcalDets(0, dets);
22  }
23 #endif
24  std::vector<DetId> vdetN = spr::newHCALIdNS(dets, 0, topology, true, ieta, iphi, debug);
25  std::vector<DetId> vdetS = spr::newHCALIdNS(dets, 0, topology, false, ieta, iphi, debug);
26  for (unsigned int i1 = 0; i1 < vdetS.size(); i1++) {
27  if (std::count(vdetN.begin(), vdetN.end(), vdetS[i1]) == 0)
28  vdetN.push_back(vdetS[i1]);
29  }
30 
31  vdetS = spr::matrixHCALIdsDepth(vdetN, topology, includeHO, debug);
32 
33 #ifdef EDM_ML_DEBUG
34  if (debug) {
35  std::cout << "matrixHCALIds::Total number of cells found is " << vdetS.size() << std::endl;
36  spr::debugHcalDets(0, vdetS);
37  }
38 #endif
39  return vdetS;
40  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), testProducerWithPsetDescEmpty_cfi::i1, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, matrixHCALIdsDepth(), newHCALIdNS(), and ecaldqm::topology().

Referenced by chargeIsolationHcal(), eHCALmatrix(), hGenSimInfo(), and matrixHCALIds().

◆ matrixHCALIds() [3/3]

std::vector<DetId> spr::matrixHCALIds ( std::vector< DetId > &  dets,
const HcalTopology topology,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 73 of file MatrixHCALDetIds.cc.

80  {
81 #ifdef EDM_ML_DEBUG
82  if (debug) {
83  std::cout << "matrixHCALIds::Add " << ietaE << "|" << ietaW << " rows and " << iphiN << "|" << iphiS
84  << " columns of cells for " << dets.size() << " cells" << std::endl;
85  spr::debugHcalDets(0, dets);
86  }
87 #endif
88  std::vector<DetId> vdetN = spr::newHCALIdNS(dets, 0, topology, true, ietaE, ietaW, iphiN, iphiS, debug);
89  std::vector<DetId> vdetS = spr::newHCALIdNS(dets, 0, topology, false, ietaE, ietaW, iphiN, iphiS, debug);
90  for (unsigned int i1 = 0; i1 < vdetS.size(); i1++) {
91  if (std::count(vdetN.begin(), vdetN.end(), vdetS[i1]) == 0)
92  vdetN.push_back(vdetS[i1]);
93  }
94 
95  vdetS = spr::matrixHCALIdsDepth(vdetN, topology, includeHO, debug);
96 
97 #ifdef EDM_ML_DEBUG
98  if (debug) {
99  std::cout << "matrixHCALIds::Total number of cells found is " << vdetS.size() << std::endl;
100  spr::debugHcalDets(0, vdetS);
101  }
102 #endif
103  return vdetS;
104  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), testProducerWithPsetDescEmpty_cfi::i1, matrixHCALIdsDepth(), newHCALIdNS(), and ecaldqm::topology().

◆ matrixHCALIdsDepth()

std::vector<DetId> spr::matrixHCALIdsDepth ( std::vector< DetId > &  dets,
const HcalTopology topology,
bool  includeHO = false,
bool  debug = false 
)

Definition at line 397 of file MatrixHCALDetIds.cc.

404  {
405 
406 #ifdef EDM_ML_DEBUG
407  if (debug) {
408  std::cout << "matrixHCALIdsDepth::Add cells with higher depths with HO"
409  << "Flag set to " << includeHO << " to existing " << dets.size() << " cells" << std::endl;
410  spr::debugHcalDets(0, dets);
411  }
412 #endif
413  std::vector<DetId> vdets(dets);
414  for (unsigned int i1 = 0; i1 < dets.size(); i1++) {
415  HcalDetId vdet = dets[i1];
416  for (int idepth = 0; idepth < 3; idepth++) {
417  std::vector<DetId> vUpDetId = topology->up(vdet);
418  if (!vUpDetId.empty()) {
419  if (includeHO || vUpDetId[0].subdetId() != (int)(HcalOuter)) {
420  int n = std::count(vdets.begin(), vdets.end(), vUpDetId[0]);
421  if (n == 0) {
422 #ifdef EDM_ML_DEBUG
423  if (debug)
424  std::cout << "matrixHCALIdsDepth:: Depth " << idepth << " " << vdet << " " << (HcalDetId)vUpDetId[0]
425  << std::endl;
426 #endif
427  vdets.push_back(vUpDetId[0]);
428  }
429  }
430  vdet = vUpDetId[0];
431  }
432  }
433  }
434 
435 #ifdef EDM_ML_DEBUG
436  if (debug) {
437  std::cout << "matrixHCALIdsDepth::Final list contains " << vdets.size() << " cells" << std::endl;
438  spr::debugHcalDets(0, vdets);
439  }
440 #endif
441  return vdets;
442  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), HcalOuter, testProducerWithPsetDescEmpty_cfi::i1, createfilelist::int, dqmiodumpmetadata::n, ecaldqm::topology(), and CaloTopology::up().

Referenced by matrixHCALIds().

◆ missedCaloHits()

template<typename T >
std::vector<typename T::const_iterator> spr::missedCaloHits ( edm::Handle< T > &  hits,
std::vector< int >  matchedId,
std::vector< typename T::const_iterator >  caloHits,
bool  flag,
bool  includeHO = false,
bool  debug = false 
)

◆ missedECALHits()

template<typename T >
std::vector<typename T::const_iterator> spr::missedECALHits ( const edm::Event ,
CaloNavigator< DetId > &  navigator,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
bool  flag,
bool  debug = false 
)

◆ missedHCALHits()

template<typename T >
std::vector<typename T::const_iterator> spr::missedHCALHits ( const edm::Event ,
const HcalTopology topology,
const DetId det,
edm::Handle< T > &  hits,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const reco::Track pTrack,
TrackerHitAssociator associate,
int  ieta,
int  iphi,
bool  flag,
bool  includeHO = false,
bool  debug = false 
)

◆ newECALIdEW() [1/2]

std::vector<DetId> spr::newECALIdEW ( std::vector< DetId > &  dets,
unsigned int  last,
int  ieta,
std::vector< CaloDirection > &  dir,
const CaloSubdetectorTopology barrelTopo,
const CaloSubdetectorTopology endcapTopo,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 537 of file MatrixECALDetIds.cc.

546  {
547 #ifdef EDM_ML_DEBUG
548  if (debug) {
549  std::cout << "newECALIdEW::Add " << ieta << " rows of cells for " << last << ":" << dets.size() << ":"
550  << (dets.size() - last) << " cells" << std::endl;
551  spr::debugEcalDets(last, dets, dir);
552  }
553 #endif
554  std::vector<DetId> vdets;
555  vdets.clear();
556  std::vector<CaloDirection> dirs;
557  dirs.clear();
558  vdets.insert(vdets.end(), dets.begin(), dets.end());
559  dirs.insert(dirs.end(), dir.begin(), dir.end());
560 
561  if (ieta > 0) {
562  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
563  int flag = 0;
564  std::vector<DetId> cells;
566  dets[i1], dir[i1], barrelTopo, endcapTopo, barrelGeom, endcapGeom, cells, flag, debug, ignoreTransition);
567  if (flag != 0) {
568  if (std::count(vdets.begin(), vdets.end(), cells[0]) == 0) {
569  CaloDirection dirn = dir[i1];
570  if (flag < 0) {
571  if (dirn == EAST)
572  dirn = WEST;
573  else
574  dirn = EAST;
575  }
576  vdets.push_back(cells[0]);
577  dirs.push_back(dirn);
578  }
579  }
580  }
581  ieta--;
582  }
583 
584 #ifdef EDM_ML_DEBUG
585  if (debug) {
586  std::cout << "newECALIdEW::Addition results a set of " << (vdets.size() - dets.size()) << " new cells"
587  << std::endl;
588  spr::debugEcalDets(dets.size(), vdets, dirs);
589  }
590 #endif
591  if (ieta > 0) {
592  last = dets.size();
593  return spr::newECALIdEW(
594  vdets, last, ieta, dirs, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
595  } else {
596 #ifdef EDM_ML_DEBUG
597  if (debug) {
598  std::cout << "newECALIdEW::Final list (EW) consists of " << vdets.size() << " cells" << std::endl;
599  spr::debugEcalDets(0, vdets);
600  }
601 #endif
602  return vdets;
603  }
604  }

References postprocess-scan-build::cells, KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), DeadROC_duringRun::dir, heppy_check::dirs, EAST, RemoveAddSevLevel::flag, testProducerWithPsetDescEmpty_cfi::i1, LEDCalibrationChannels::ieta, dqmdumpme::last, simpleMove(), and WEST.

Referenced by newECALIdEW(), and newECALIdNS().

◆ newECALIdEW() [2/2]

std::vector<DetId> spr::newECALIdEW ( std::vector< DetId > &  dets,
unsigned int  last,
std::vector< int > &  ietaE,
std::vector< int > &  ietaW,
std::vector< CaloDirection > &  dir,
const CaloSubdetectorTopology barrelTopo,
const CaloSubdetectorTopology endcapTopo,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 606 of file MatrixECALDetIds.cc.

616  {
617 #ifdef EDM_ML_DEBUG
618  if (debug) {
619  std::cout << "newECALIdEW::Add " << ietaE[0] << "|" << ietaW[0] << " rows of cells for " << (dets.size() - last)
620  << " cells (last " << last << ")" << std::endl;
621  spr::debugEcalDets(last, dets, dir);
622  }
623 #endif
624  std::vector<DetId> vdets;
625  vdets.insert(vdets.end(), dets.begin(), dets.end());
626  std::vector<CaloDirection> dirs;
627  dirs.insert(dirs.end(), dir.begin(), dir.end());
628  std::vector<int> jetaE, jetaW;
629  jetaE.insert(jetaE.end(), ietaE.begin(), ietaE.end());
630  jetaW.insert(jetaW.end(), ietaW.begin(), ietaW.end());
631  int keta = 0;
632  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
633  int ieta = ietaW[i1];
634  if (dir[i1] == EAST)
635  ieta = ietaE[i1];
636  if (ieta > 0) {
637  int flag = 0;
638  std::vector<DetId> cells;
640  dets[i1], dir[i1], barrelTopo, endcapTopo, barrelGeom, endcapGeom, cells, flag, debug, ignoreTransition);
641  ieta--;
642  if (ieta > keta)
643  keta = ieta;
644  if (dir[i1] == EAST)
645  jetaE[i1] = ieta;
646  else
647  jetaW[i1] = ieta;
648  if (flag != 0) {
649  if (std::count(vdets.begin(), vdets.end(), cells[0]) == 0) {
650  vdets.push_back(cells[0]);
651  CaloDirection dirn = dir[i1];
652  int ketaE = ietaE[i1];
653  int ketaW = ietaW[i1];
654  if (dirn == EAST)
655  ketaE = ieta;
656  else
657  ketaW = ieta;
658  if (flag < 0) {
659  int ktmp = ketaW;
660  ketaW = ketaE;
661  ketaE = ktmp;
662  if (dirn == EAST)
663  dirn = WEST;
664  else
665  dirn = EAST;
666  }
667  dirs.push_back(dirn);
668  jetaE.push_back(ketaE);
669  jetaW.push_back(ketaW);
670  }
671  }
672  }
673  }
674 
675 #ifdef EDM_ML_DEBUG
676  if (debug) {
677  std::cout << "newECALIdEW::Addition results a set of " << (vdets.size() - dets.size()) << " new cells (last "
678  << dets.size() << ", ieta " << keta << ")" << std::endl;
679  spr::debugEcalDets(dets.size(), vdets);
680  }
681 #endif
682  if (keta > 0) {
683  last = dets.size();
684  return spr::newECALIdEW(
685  vdets, last, jetaE, jetaW, dirs, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
686  } else {
687 #ifdef EDM_ML_DEBUG
688  if (debug) {
689  std::cout << "newECALIdEW::Final list (EW) consists of " << vdets.size() << " cells" << std::endl;
690  spr::debugEcalDets(0, vdets);
691  }
692 #endif
693  return vdets;
694  }
695  }

References postprocess-scan-build::cells, KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), DeadROC_duringRun::dir, heppy_check::dirs, EAST, RemoveAddSevLevel::flag, testProducerWithPsetDescEmpty_cfi::i1, LEDCalibrationChannels::ieta, dqmdumpme::last, newECALIdEW(), simpleMove(), and WEST.

◆ newECALIdNS() [1/2]

std::vector<DetId> spr::newECALIdNS ( std::vector< DetId > &  dets,
unsigned int  last,
int  ieta,
int  iphi,
std::vector< CaloDirection > &  dir,
const CaloSubdetectorTopology barrelTopo,
const CaloSubdetectorTopology endcapTopo,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 208 of file MatrixECALDetIds.cc.

218  {
219 #ifdef EDM_ML_DEBUG
220  if (debug) {
221  std::cout << "newECALIdNS::Add " << iphi << " columns of cells for " << (dets.size() - last) << " cells (last "
222  << last << ")" << std::endl;
223  spr::debugEcalDets(last, dets, dir);
224  }
225 #endif
226  std::vector<DetId> vdets;
227  std::vector<CaloDirection> dirs;
228  vdets.insert(vdets.end(), dets.begin(), dets.end());
229  dirs.insert(dirs.end(), dir.begin(), dir.end());
230 
231  std::vector<DetId> vdetE, vdetW;
232  if (last == 0) {
233  unsigned int ndet = vdets.size();
234  std::vector<CaloDirection> dirE(ndet, EAST), dirW(ndet, WEST);
235  vdetE = spr::newECALIdEW(
236  dets, last, ieta, dirE, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
237  vdetW = spr::newECALIdEW(
238  dets, last, ieta, dirW, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
239  for (unsigned int i1 = 0; i1 < vdetW.size(); i1++) {
240  if (std::count(vdets.begin(), vdets.end(), vdetW[i1]) == 0) {
241  vdets.push_back(vdetW[i1]);
242  dirs.push_back(dir[0]);
243  }
244  }
245  for (unsigned int i1 = 0; i1 < vdetE.size(); i1++) {
246  if (std::count(vdets.begin(), vdets.end(), vdetE[i1]) == 0) {
247  vdets.push_back(vdetE[i1]);
248  dirs.push_back(dir[0]);
249  }
250  }
251 #ifdef EDM_ML_DEBUG
252  if (debug) {
253  std::cout << "newECALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
254  << " new cells" << std::endl;
255  spr::debugEcalDets(dets.size(), vdets, dirs);
256  }
257 #endif
258  }
259 
260  unsigned int last0 = vdets.size();
261  std::vector<DetId> vdetnew;
262  std::vector<CaloDirection> dirnew;
263  if (iphi > 0) {
264  std::vector<DetId> vdetn(1);
265  std::vector<CaloDirection> dirn(1);
266  std::vector<CaloDirection> dirnE(1, EAST), dirnW(1, WEST);
267  int flag = 0;
268  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
269  std::vector<DetId> cells;
271  dets[i1], dir[i1], barrelTopo, endcapTopo, barrelGeom, endcapGeom, cells, flag, debug, ignoreTransition);
272  if (flag != 0) {
273  if (std::count(vdets.begin(), vdets.end(), cells[0]) == 0) {
274  vdetn[0] = cells[0];
275  vdetnew.push_back(vdetn[0]);
276  dirn[0] = dir[i1];
277  if (flag < 0) {
278  if (dirn[0] == NORTH)
279  dirn[0] = SOUTH;
280  else
281  dirn[0] = NORTH;
282  }
283  dirnew.push_back(dirn[0]);
284  vdetE = spr::newECALIdEW(
285  vdetn, 0, ieta, dirnE, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
286  vdetW = spr::newECALIdEW(
287  vdetn, 0, ieta, dirnW, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
288  for (unsigned int i2 = 0; i2 < vdetW.size(); i2++) {
289  if (std::count(vdets.begin(), vdets.end(), vdetW[i2]) == 0 &&
290  std::count(vdetnew.begin(), vdetnew.end(), vdetW[i2]) == 0) {
291  vdets.push_back(vdetW[i2]);
292  dirs.push_back(dirn[0]);
293  }
294  }
295  for (unsigned int i2 = 0; i2 < vdetE.size(); i2++) {
296  if (std::count(vdets.begin(), vdets.end(), vdetE[i2]) == 0 &&
297  std::count(vdetnew.begin(), vdetnew.end(), vdetE[i2]) == 0) {
298  vdets.push_back(vdetE[i2]);
299  dirs.push_back(dirn[0]);
300  }
301  }
302  }
303  }
304  }
305  iphi--;
306  last = vdets.size();
307  for (unsigned int i2 = 0; i2 < vdetnew.size(); i2++) {
308  if (std::count(vdets.begin(), vdets.end(), vdetnew[i2]) == 0) {
309  vdets.push_back(vdetnew[i2]);
310  dirs.push_back(dirnew[i2]);
311  }
312  }
313 #ifdef EDM_ML_DEBUG
314  if (debug) {
315  std::cout << "newECALIdNS::Addition results a set of " << (vdets.size() - last0) << " new cells (last "
316  << last0 << ", iphi " << iphi << ")" << std::endl;
317  spr::debugEcalDets(last0, vdets, dirs);
318  }
319 #endif
320  last0 = last;
321  }
322 
323  if (iphi > 0) {
324  last = last0;
325  return spr::newECALIdNS(
326  vdets, last, ieta, iphi, dirs, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
327  } else {
328 #ifdef EDM_ML_DEBUG
329  if (debug) {
330  std::cout << "newECALIdNS::Final list consists of " << vdets.size() << " cells" << std::endl;
331  spr::debugEcalDets(0, vdets);
332  }
333 #endif
334  return vdets;
335  }
336  }

References postprocess-scan-build::cells, KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), DeadROC_duringRun::dir, heppy_check::dirs, EAST, RemoveAddSevLevel::flag, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, dqmdumpme::last, newECALIdEW(), NORTH, simpleMove(), SOUTH, and WEST.

Referenced by matrixECALIds(), and newECALIdNS().

◆ newECALIdNS() [2/2]

std::vector<DetId> spr::newECALIdNS ( std::vector< DetId > &  dets,
unsigned int  last,
std::vector< int > &  ietaE,
std::vector< int > &  ietaW,
std::vector< int > &  iphiN,
std::vector< int > &  iphiS,
std::vector< CaloDirection > &  dir,
const CaloSubdetectorTopology barrelTopo,
const CaloSubdetectorTopology endcapTopo,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 338 of file MatrixECALDetIds.cc.

350  {
351 #ifdef EDM_ML_DEBUG
352  if (debug) {
353  std::cout << "newECALIdNS::Add columns of cells for " << (dets.size() - last) << " cells (last) " << last
354  << std::endl;
355  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
356  spr::debugEcalDets(i1, dets[i1], false);
357  std::cout << " along " << dir[i1] << " # " << iphiN[i1] << "|" << iphiS[i1] << std::endl;
358  }
359  }
360 #endif
361  std::vector<DetId> vdets;
362  std::vector<CaloDirection> dirs;
363  std::vector<int> jetaE, jetaW, jphiN, jphiS;
364  vdets.insert(vdets.end(), dets.begin(), dets.end());
365  dirs.insert(dirs.end(), dir.begin(), dir.end());
366  jetaE.insert(jetaE.end(), ietaE.begin(), ietaE.end());
367  jetaW.insert(jetaW.end(), ietaW.begin(), ietaW.end());
368  jphiN.insert(jphiN.end(), iphiN.begin(), iphiN.end());
369  jphiS.insert(jphiS.end(), iphiS.begin(), iphiS.end());
370  std::vector<DetId> vdetE, vdetW;
371  if (last == 0) {
372  unsigned int ndet = vdets.size();
373  std::vector<CaloDirection> dirE(ndet, EAST), dirW(ndet, WEST);
374  vdetE = spr::newECALIdEW(
375  dets, last, ietaE, ietaW, dirE, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
376  vdetW = spr::newECALIdEW(
377  dets, last, ietaE, ietaW, dirW, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
378  for (unsigned int i1 = 0; i1 < vdetW.size(); i1++) {
379  if (std::count(vdets.begin(), vdets.end(), vdetW[i1]) == 0) {
380  vdets.push_back(vdetW[i1]);
381  dirs.push_back(dir[0]);
382  jetaE.push_back(0);
383  jetaW.push_back(0);
384  jphiN.push_back(iphiN[0]);
385  jphiS.push_back(iphiS[0]);
386  }
387  }
388  for (unsigned int i1 = 0; i1 < vdetE.size(); i1++) {
389  if (std::count(vdets.begin(), vdets.end(), vdetE[i1]) == 0) {
390  vdets.push_back(vdetE[i1]);
391  dirs.push_back(dir[0]);
392  jetaE.push_back(0);
393  jetaW.push_back(0);
394  jphiN.push_back(iphiN[0]);
395  jphiS.push_back(iphiS[0]);
396  }
397  }
398 #ifdef EDM_ML_DEBUG
399  if (debug) {
400  std::cout << "newECALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
401  << " new cells" << std::endl;
402  spr::debugEcalDets(dets.size(), vdets, dirs);
403  }
404 #endif
405  }
406 
407  unsigned int last0 = vdets.size();
408  std::vector<DetId> vdetnew;
409  std::vector<CaloDirection> dirnew;
410  std::vector<int> kphiN, kphiS, ketaE, ketaW;
411  int kphi = 0;
412  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
413  int iphi = iphiS[i1];
414  if (dir[i1] == NORTH)
415  iphi = iphiN[i1];
416  if (iphi > 0) {
417  std::vector<DetId> vdetn(1);
418  std::vector<CaloDirection> dirn(1);
419  std::vector<CaloDirection> dirnE(1, EAST), dirnW(1, WEST);
420  int flag = 0;
421  std::vector<DetId> cells;
423  dets[i1], dir[i1], barrelTopo, endcapTopo, barrelGeom, endcapGeom, cells, flag, debug, ignoreTransition);
424  iphi--;
425  if (iphi > kphi)
426  kphi = iphi;
427  if (dir[i1] == NORTH)
428  jphiN[i1] = iphi;
429  else
430  jphiS[i1] = iphi;
431  if (flag != 0) {
432  if (std::count(vdets.begin(), vdets.end(), cells[0]) == 0) {
433  int kfiN = iphiN[i1];
434  int kfiS = iphiS[i1];
435  vdetn[0] = cells[0];
436  vdetnew.push_back(vdetn[0]);
437  dirn[0] = dir[i1];
438  if (dir[i1] == NORTH)
439  kfiN = iphi;
440  else
441  kfiS = iphi;
442  if (flag < 0) {
443  int ktmp = kfiS;
444  kfiS = kfiN;
445  kfiN = ktmp;
446  if (dirn[0] == NORTH)
447  dirn[0] = SOUTH;
448  else
449  dirn[0] = NORTH;
450  }
451  dirnew.push_back(dirn[0]);
452  kphiN.push_back(kfiN);
453  ketaE.push_back(ietaE[i1]);
454  kphiS.push_back(kfiS);
455  ketaW.push_back(ietaW[i1]);
456  std::vector<int> ietE(1, ietaE[i1]), ietW(1, ietaW[i1]);
457  vdetE = spr::newECALIdEW(
458  vdetn, 0, ietE, ietW, dirnE, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
459  vdetW = spr::newECALIdEW(
460  vdetn, 0, ietE, ietW, dirnW, barrelTopo, endcapTopo, barrelGeom, endcapGeom, debug, ignoreTransition);
461  for (unsigned int i2 = 0; i2 < vdetW.size(); i2++) {
462  if (std::count(vdets.begin(), vdets.end(), vdetW[i2]) == 0 &&
463  std::count(vdetnew.begin(), vdetnew.end(), vdetW[i2]) == 0) {
464  vdets.push_back(vdetW[i2]);
465  dirs.push_back(dirn[0]);
466  jetaE.push_back(0);
467  jphiN.push_back(kfiN);
468  jetaW.push_back(0);
469  jphiS.push_back(kfiS);
470  }
471  }
472  for (unsigned int i2 = 0; i2 < vdetE.size(); i2++) {
473  if (std::count(vdets.begin(), vdets.end(), vdetE[i2]) == 0 &&
474  std::count(vdetnew.begin(), vdetnew.end(), vdetE[i2]) == 0) {
475  vdets.push_back(vdetE[i2]);
476  dirs.push_back(dirn[0]);
477  jetaE.push_back(0);
478  jphiN.push_back(kfiN);
479  jetaW.push_back(0);
480  jphiS.push_back(kfiS);
481  }
482  }
483  }
484  }
485  }
486  }
487  last = vdets.size();
488  for (unsigned int i2 = 0; i2 < vdetnew.size(); i2++) {
489  if (std::count(vdets.begin(), vdets.end(), vdetnew[i2]) == 0) {
490  vdets.push_back(vdetnew[i2]);
491  dirs.push_back(dirnew[i2]);
492  jetaE.push_back(ketaE[i2]);
493  jetaW.push_back(ketaW[i2]);
494  jphiN.push_back(kphiN[i2]);
495  jphiS.push_back(kphiS[i2]);
496  }
497  }
498 #ifdef EDM_ML_DEBUG
499  if (debug) {
500  std::cout << "newECALIdNS::Addition results a set of " << (vdets.size() - last0) << " new cells (last " << last0
501  << ", iphi " << kphi << ")" << std::endl;
502  for (unsigned int i1 = last0; i1 < vdets.size(); i1++) {
503  spr::debugEcalDets(i1, vdets[i1], false);
504  std::cout << " along " << dirs[i1] << " iphi " << jphiN[i1] << "|" << jphiS[i1] << " ieta " << jetaE[i1] << "|"
505  << jetaW[i1] << std::endl;
506  }
507  }
508 #endif
509  last0 = last;
510 
511  if (kphi > 0) {
512  last = last0;
513  return spr::newECALIdNS(vdets,
514  last,
515  jetaE,
516  jetaW,
517  jphiN,
518  jphiS,
519  dirs,
520  barrelTopo,
521  endcapTopo,
522  barrelGeom,
523  endcapGeom,
524  debug,
525  ignoreTransition);
526  } else {
527 #ifdef EDM_ML_DEBUG
528  if (debug) {
529  std::cout << "newECALIdNS::Final list consists of " << vdets.size() << " cells" << std::endl;
530  spr::debugEcalDets(0, vdets);
531  }
532 #endif
533  return vdets;
534  }
535  }

References postprocess-scan-build::cells, KineDebug3::count(), gather_cfg::cout, debug, debugEcalDets(), DeadROC_duringRun::dir, heppy_check::dirs, EAST, RemoveAddSevLevel::flag, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::iphi, dqmdumpme::last, newECALIdEW(), newECALIdNS(), NORTH, simpleMove(), SOUTH, and WEST.

◆ newHCALIdEW() [1/2]

std::vector<DetId> spr::newHCALIdEW ( std::vector< DetId > &  dets,
unsigned int  last,
const HcalTopology topology,
bool  shiftEast,
int  ieta,
bool  debug = false 
)

Definition at line 291 of file MatrixHCALDetIds.cc.

292  {
293 #ifdef EDM_ML_DEBUG
294  if (debug) {
295  std::cout << "newHCALIdEW::Add " << ieta << " rows of cells along " << shiftEast << " for "
296  << (dets.size() - last) << " cells" << std::endl;
297  spr::debugHcalDets(last, dets);
298  }
299 #endif
300  std::vector<DetId> vdets;
301  vdets.insert(vdets.end(), dets.begin(), dets.end());
302  if (ieta > 0) {
303  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
304  std::vector<DetId> vdet;
305  if (shiftEast)
306  vdet = topology->east(dets[i1]);
307  else
308  vdet = topology->west(dets[i1]);
309  for (unsigned int i2 = 0; i2 < vdet.size(); i2++) {
310  if (std::count(vdets.begin(), vdets.end(), vdet[i2]) == 0)
311  vdets.push_back(vdet[i2]);
312  }
313  }
314  ieta--;
315  }
316 
317 #ifdef EDM_ML_DEBUG
318  if (debug) {
319  std::cout << "newHCALIdEW::Addition results a set of " << (vdets.size() - dets.size()) << " new cells"
320  << std::endl;
321  spr::debugHcalDets(dets.size(), vdets);
322  }
323 #endif
324  if (ieta > 0) {
325  last = dets.size();
326  return spr::newHCALIdEW(vdets, last, topology, shiftEast, ieta, debug);
327  } else {
328 #ifdef EDM_ML_DEBUG
329  if (debug) {
330  std::cout << "newHCALIdEW::Final list (EW) consists of " << vdets.size() << " cells" << std::endl;
331  spr::debugHcalDets(0, vdets);
332  }
333 #endif
334  return vdets;
335  }
336  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), CaloTopology::east(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::ieta, dqmdumpme::last, ecaldqm::topology(), and CaloTopology::west().

Referenced by newHCALIdEW(), and newHCALIdNS().

◆ newHCALIdEW() [2/2]

std::vector<DetId> spr::newHCALIdEW ( std::vector< DetId > &  dets,
unsigned int  last,
const HcalTopology topology,
bool  shiftEast,
int  ietaE,
int  ietaW,
bool  debug = false 
)

Definition at line 338 of file MatrixHCALDetIds.cc.

344  {
345 #ifdef EDM_ML_DEBUG
346  if (debug) {
347  std::cout << "newHCALIdEW::Add " << ietaE << "|" << ietaW << " rows of cells along " << shiftEast << " for "
348  << (dets.size() - last) << " cells" << std::endl;
349  spr::debugHcalDets(last, dets);
350  }
351 #endif
352  int ieta = ietaW;
353  if (shiftEast)
354  ieta = ietaE;
355  std::vector<DetId> vdets;
356  vdets.insert(vdets.end(), dets.begin(), dets.end());
357  if (ieta > 0) {
358  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
359  std::vector<DetId> vdet;
360  if (shiftEast)
361  vdet = topology->east(dets[i1]);
362  else
363  vdet = topology->west(dets[i1]);
364  for (unsigned int i2 = 0; i2 < vdet.size(); i2++) {
365  if (std::count(vdets.begin(), vdets.end(), vdet[i2]) == 0)
366  vdets.push_back(vdet[i2]);
367  }
368  }
369  ieta--;
370  }
371  if (shiftEast)
372  ietaE = ieta;
373  else
374  ietaW = ieta;
375 
376 #ifdef EDM_ML_DEBUG
377  if (debug) {
378  std::cout << "newHCALIdEW::Addition results a set of " << (vdets.size() - dets.size()) << " new cells"
379  << std::endl;
380  spr::debugHcalDets(dets.size(), vdets);
381  }
382 #endif
383  if (ieta > 0) {
384  last = dets.size();
385  return spr::newHCALIdEW(vdets, last, topology, shiftEast, ietaE, ietaW, debug);
386  } else {
387 #ifdef EDM_ML_DEBUG
388  if (debug) {
389  std::cout << "newHCALIdEW::Final list (EW) consists of " << vdets.size() << " cells" << std::endl;
390  spr::debugHcalDets(0, vdets);
391  }
392 #endif
393  return vdets;
394  }
395  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), CaloTopology::east(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::ieta, dqmdumpme::last, newHCALIdEW(), ecaldqm::topology(), and CaloTopology::west().

◆ newHCALIdNS() [1/2]

std::vector<DetId> spr::newHCALIdNS ( std::vector< DetId > &  dets,
unsigned int  last,
const HcalTopology topology,
bool  shiftNorth,
int  ieta,
int  iphi,
bool  debug = false 
)

Definition at line 106 of file MatrixHCALDetIds.cc.

112  {
113 #ifdef EDM_ML_DEBUG
114  if (debug) {
115  std::cout << "newHCALIdNS::Add " << iphi << " columns of cells along " << shiftNorth << " for "
116  << (dets.size() - last) << " cells" << std::endl;
117  spr::debugHcalDets(last, dets);
118  }
119 #endif
120  std::vector<DetId> vdets;
121  vdets.insert(vdets.end(), dets.begin(), dets.end());
122  std::vector<DetId> vdetE, vdetW;
123  if (last == 0) {
124  vdetE = spr::newHCALIdEW(dets, last, topology, true, ieta, debug);
125  vdetW = spr::newHCALIdEW(dets, last, topology, false, ieta, debug);
126  for (unsigned int i1 = 0; i1 < vdetW.size(); i1++) {
127  if (std::count(vdets.begin(), vdets.end(), vdetW[i1]) == 0)
128  vdets.push_back(vdetW[i1]);
129  }
130  for (unsigned int i1 = 0; i1 < vdetE.size(); i1++) {
131  if (std::count(vdets.begin(), vdets.end(), vdetE[i1]) == 0)
132  vdets.push_back(vdetE[i1]);
133  }
134 #ifdef EDM_ML_DEBUG
135  if (debug) {
136  std::cout << "newHCALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
137  << " new cells" << std::endl;
138  spr::debugHcalDets(dets.size(), vdets);
139  }
140 #endif
141  }
142  unsigned int last0 = vdets.size();
143  if (iphi > 0) {
144  std::vector<DetId> vdetnew;
145  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
146  std::vector<DetId> vdet;
147  if (shiftNorth)
148  vdet = topology->north(dets[i1]);
149  else
150  vdet = topology->south(dets[i1]);
151  for (unsigned int i2 = 0; i2 < vdet.size(); i2++) {
152  if (std::count(vdets.begin(), vdets.end(), vdet[i2]) == 0)
153  vdetnew.push_back(vdet[i2]);
154  }
155  }
156  iphi--;
157  vdetE = spr::newHCALIdEW(vdetnew, 0, topology, true, ieta, debug);
158  vdetW = spr::newHCALIdEW(vdetnew, 0, topology, false, ieta, debug);
159  for (unsigned int i2 = 0; i2 < vdetW.size(); i2++) {
160  if (std::count(vdets.begin(), vdets.end(), vdetW[i2]) == 0 &&
161  std::count(vdetnew.begin(), vdetnew.end(), vdetW[i2]) == 0)
162  vdets.push_back(vdetW[i2]);
163  }
164  for (unsigned int i2 = 0; i2 < vdetE.size(); i2++) {
165  if (std::count(vdets.begin(), vdets.end(), vdetE[i2]) == 0 &&
166  std::count(vdetnew.begin(), vdetnew.end(), vdetE[i2]) == 0)
167  vdets.push_back(vdetE[i2]);
168  }
169  last = vdets.size();
170  vdets.insert(vdets.end(), vdetnew.begin(), vdetnew.end());
171 #ifdef EDM_ML_DEBUG
172  if (debug) {
173  std::cout << "newHCALIdNS::Addition results a set of " << (vdets.size() - last0) << " new cells" << std::endl;
174  spr::debugHcalDets(last0, vdets);
175  }
176 #endif
177  last0 = last;
178  }
179 
180  if (iphi > 0) {
181  last = last0;
182  return spr::newHCALIdNS(vdets, last, topology, shiftNorth, ieta, iphi, debug);
183  } else {
184 #ifdef EDM_ML_DEBUG
185  if (debug) {
186  std::cout << "newHCALIdNS::Final list consists of " << vdets.size() << " cells" << std::endl;
187  spr::debugHcalDets(0, vdets);
188  }
189 #endif
190  return vdets;
191  }
192  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, dqmdumpme::last, newHCALIdEW(), CaloTopology::north(), CaloTopology::south(), and ecaldqm::topology().

Referenced by matrixHCALIds(), and newHCALIdNS().

◆ newHCALIdNS() [2/2]

std::vector<DetId> spr::newHCALIdNS ( std::vector< DetId > &  dets,
unsigned int  last,
const HcalTopology topology,
bool  shiftNorth,
int  ietaE,
int  ietaW,
int  iphiN,
int  iphiS,
bool  debug = false 
)

Definition at line 194 of file MatrixHCALDetIds.cc.

202  {
203 #ifdef EDM_ML_DEBUG
204  if (debug) {
205  std::cout << "newHCALIdNS::Add " << iphiN << "|" << iphiS << " columns of cells along " << shiftNorth << " for "
206  << (dets.size() - last) << " cells" << std::endl;
207  spr::debugHcalDets(last, dets);
208  }
209 #endif
210  std::vector<DetId> vdets;
211  vdets.insert(vdets.end(), dets.begin(), dets.end());
212  std::vector<DetId> vdetE, vdetW;
213  if (last == 0) {
214  vdetE = spr::newHCALIdEW(dets, last, topology, true, ietaE, ietaW, debug);
215  vdetW = spr::newHCALIdEW(dets, last, topology, false, ietaE, ietaW, debug);
216  for (unsigned int i1 = 0; i1 < vdetW.size(); i1++) {
217  if (std::count(vdets.begin(), vdets.end(), vdetW[i1]) == 0)
218  vdets.push_back(vdetW[i1]);
219  }
220  for (unsigned int i1 = 0; i1 < vdetE.size(); i1++) {
221  if (std::count(vdets.begin(), vdets.end(), vdetE[i1]) == 0)
222  vdets.push_back(vdetE[i1]);
223  }
224 #ifdef EDM_ML_DEBUG
225  if (debug) {
226  std::cout << "newHCALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
227  << " new cells" << std::endl;
228  spr::debugHcalDets(dets.size(), vdets);
229  }
230 #endif
231  }
232  unsigned int last0 = vdets.size();
233  int iphi = iphiS;
234  if (shiftNorth)
235  iphi = iphiN;
236  if (iphi > 0) {
237  std::vector<DetId> vdetnew;
238  for (unsigned int i1 = last; i1 < dets.size(); i1++) {
239  std::vector<DetId> vdet;
240  if (shiftNorth)
241  vdet = topology->north(dets[i1]);
242  else
243  vdet = topology->south(dets[i1]);
244  for (unsigned int i2 = 0; i2 < vdet.size(); i2++) {
245  if (std::count(vdets.begin(), vdets.end(), vdet[i2]) == 0)
246  vdetnew.push_back(vdet[i2]);
247  }
248  }
249  iphi--;
250  vdetE = spr::newHCALIdEW(vdetnew, 0, topology, true, ietaE, ietaW, debug);
251  vdetW = spr::newHCALIdEW(vdetnew, 0, topology, false, ietaE, ietaW, debug);
252  for (unsigned int i2 = 0; i2 < vdetW.size(); i2++) {
253  if (std::count(vdets.begin(), vdets.end(), vdetW[i2]) == 0 &&
254  std::count(vdetnew.begin(), vdetnew.end(), vdetW[i2]) == 0)
255  vdets.push_back(vdetW[i2]);
256  }
257  for (unsigned int i2 = 0; i2 < vdetE.size(); i2++) {
258  if (std::count(vdets.begin(), vdets.end(), vdetE[i2]) == 0 &&
259  std::count(vdetnew.begin(), vdetnew.end(), vdetE[i2]) == 0)
260  vdets.push_back(vdetE[i2]);
261  }
262  last = vdets.size();
263  vdets.insert(vdets.end(), vdetnew.begin(), vdetnew.end());
264 #ifdef EDM_ML_DEBUG
265  if (debug) {
266  std::cout << "newHCALIdNS::Addition results a set of " << (vdets.size() - last0) << " new cells" << std::endl;
267  spr::debugHcalDets(last0, vdets);
268  }
269 #endif
270  last0 = last;
271  }
272  if (shiftNorth)
273  iphiN = iphi;
274  else
275  iphiS = iphi;
276 
277  if (iphi > 0) {
278  last = last0;
279  return spr::newHCALIdNS(vdets, last, topology, shiftNorth, ietaE, ietaW, iphiN, iphiS, debug);
280  } else {
281 #ifdef EDM_ML_DEBUG
282  if (debug) {
283  std::cout << "newHCALIdNS::Final list consists of " << vdets.size() << " cells" << std::endl;
284  spr::debugHcalDets(0, vdets);
285  }
286 #endif
287  return vdets;
288  }
289  }

References KineDebug3::count(), gather_cfg::cout, debug, debugHcalDets(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, LEDCalibrationChannels::iphi, dqmdumpme::last, newHCALIdEW(), newHCALIdNS(), CaloTopology::north(), CaloTopology::south(), and ecaldqm::topology().

◆ parentSimTrack()

edm::SimTrackContainer::const_iterator spr::parentSimTrack ( edm::SimTrackContainer::const_iterator  thisTrkItr,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
bool  debug = false 
)

Definition at line 203 of file MatchingSimTrack.cc.

206  {
207  edm::SimTrackContainer::const_iterator itr = SimTk->end();
208 
209  int vertIndex = thisTrkItr->vertIndex();
210 #ifdef EDM_ML_DEBUG
211  if (debug)
212  std::cout << "SimTrackParent " << thisTrkItr->trackId() << " Vertex " << vertIndex << " Type "
213  << thisTrkItr->type() << " Charge " << (int)thisTrkItr->charge() << std::endl;
214 #endif
215  if (vertIndex == -1)
216  return thisTrkItr;
217  else if (vertIndex >= (int)SimVtx->size())
218  return itr;
219 
220  edm::SimVertexContainer::const_iterator simVtxItr = SimVtx->begin();
221  for (int iv = 0; iv < vertIndex; iv++)
222  simVtxItr++;
223  int parent = simVtxItr->parentIndex();
224 
225  if (parent < 0 && simVtxItr != SimVtx->begin()) {
226  const math::XYZTLorentzVectorD pos1 = simVtxItr->position();
227  for (simVtxItr = SimVtx->begin(); simVtxItr != SimVtx->end(); ++simVtxItr) {
228  if (simVtxItr->parentIndex() > 0) {
229  const math::XYZTLorentzVectorD pos2 = pos1 - simVtxItr->position();
230  double dist = pos2.P();
231  if (dist < 0.001) {
232  parent = simVtxItr->parentIndex();
233  break;
234  }
235  }
236  }
237  }
238  for (edm::SimTrackContainer::const_iterator simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
239  if ((int)simTrkItr->trackId() == parent && simTrkItr != thisTrkItr)
240  return parentSimTrack(simTrkItr, SimTk, SimVtx, debug);
241  }
242 
243  return thisTrkItr;
244  }

References begin, gather_cfg::cout, debug, createfilelist::int, and class-composition::parent.

Referenced by matchedSimTrackInfo().

◆ propagateCalo()

spr::propagatedTrack spr::propagateCalo ( const GlobalPoint vertex,
const GlobalVector momentum,
int  charge,
const MagneticField bField,
float  zdist,
float  radius,
float  corner,
bool  debug = false 
)

Definition at line 844 of file CaloPropagateTrack.cc.

855  {
856 
858 #ifdef EDM_ML_DEBUG
859  if (debug)
860  std::cout << "propagateCalo:: Vertex " << tpVertex << " Momentum " << tpMomentum << " Charge " << tpCharge
861  << " Radius " << radius << " Z " << zdist << " Corner " << corner << std::endl;
862 #endif
863  FreeTrajectoryState fts(tpVertex, tpMomentum, tpCharge, bField);
864 
867 
870 
872 
874  if (tpMomentum.eta() < 0) {
875  tsose = myAP.propagate(fts, *lendcap);
876  } else {
877  tsose = myAP.propagate(fts, *rendcap);
878  }
879 
880  TrajectoryStateOnSurface tsosb = myAP.propagate(fts, *barrel);
881 
882  track.ok = true;
883  if (tsose.isValid() && tsosb.isValid()) {
884  float absEta = std::abs(tsosb.globalPosition().eta());
885  if (absEta < corner) {
886  track.point.SetXYZ(tsosb.globalPosition().x(), tsosb.globalPosition().y(), tsosb.globalPosition().z());
887  track.direction = tsosb.globalDirection();
888  } else {
889  track.point.SetXYZ(tsose.globalPosition().x(), tsose.globalPosition().y(), tsose.globalPosition().z());
890  track.direction = tsose.globalDirection();
891  }
892  } else if (tsose.isValid()) {
893  track.point.SetXYZ(tsose.globalPosition().x(), tsose.globalPosition().y(), tsose.globalPosition().z());
894  track.direction = tsose.globalDirection();
895  } else if (tsosb.isValid()) {
896  track.point.SetXYZ(tsosb.globalPosition().x(), tsosb.globalPosition().y(), tsosb.globalPosition().z());
897  track.direction = tsosb.globalDirection();
898  } else {
899  track.point.SetXYZ(-999., -999., -999.);
900  track.direction = GlobalVector(0, 0, 1);
901  track.ok = false;
902  }
903 #ifdef EDM_ML_DEBUG
904  if (debug) {
905  std::cout << "propagateCalo:: Barrel " << tsosb.isValid() << " Endcap " << tsose.isValid() << " OverAll "
906  << track.ok << " Point " << track.point << " Direction " << track.direction << std::endl;
907  if (track.ok) {
908  math::XYZPoint vDiff(
909  track.point.x() - tpVertex.x(), track.point.y() - tpVertex.y(), track.point.z() - tpVertex.z());
910  double dphi = track.direction.phi() - tpMomentum.phi();
911  double rdist = std::sqrt(vDiff.x() * vDiff.x() + vDiff.y() * vDiff.y());
912  double pt = tpMomentum.perp();
913  double rat = 0.5 * dphi / std::sin(0.5 * dphi);
914  std::cout << "RDist " << rdist << " pt " << pt << " r/pt " << rdist * rat / pt << " zdist " << vDiff.z()
915  << " pz " << tpMomentum.z() << " z/pz " << vDiff.z() / tpMomentum.z() << std::endl;
916  }
917  }
918 #endif
919  return track;
920  }

References funct::abs(), alongMomentum, Reference_intrackfit_cff::barrel, Calorimetry_cff::bField, Plane::build(), Cylinder::build(), distTCMET_cfi::corner, gather_cfg::cout, debug, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), M_PI, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), AnalyticalPropagator::propagate(), DiDispStaMuonMonitor_cfi::pt, CosmicsPD_Skims::radius, funct::sin(), mathSSE::sqrt(), HLT_2018_cff::track, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and distTCMET_cfi::zdist.

Referenced by propagateCALO(), propagateECAL(), propagateHCAL(), propagateHCALBack(), propagateTracker(), propagateTrackToECAL(), and propagateTrackToHCAL().

◆ propagateCALO() [1/7]

std::vector< spr::propagatedGenTrackID > spr::propagateCALO ( const HepMC::GenEvent genEvent,
edm::ESHandle< ParticleDataTable > &  pdt,
const CaloGeometry geo,
const MagneticField bField,
double  etaMax = 3.0,
bool  debug = false 
)

Definition at line 365 of file CaloPropagateTrack.cc.

370  {
374 
375  std::vector<spr::propagatedGenTrackID> trkDir;
376  unsigned int indx;
377  HepMC::GenEvent::particle_const_iterator p;
378  for (p = genEvent->particles_begin(), indx = 0; p != genEvent->particles_end(); ++p, ++indx) {
380  trkD.trkItr = p;
381  trkD.detIdECAL = DetId(0);
382  trkD.detIdHCAL = DetId(0);
383  trkD.detIdEHCAL = DetId(0);
384  trkD.pdgId = ((*p)->pdg_id());
385  trkD.charge = ((pdt->particle(trkD.pdgId))->ID().threeCharge()) / 3;
386  const GlobalVector momentum = GlobalVector((*p)->momentum().px(), (*p)->momentum().py(), (*p)->momentum().pz());
387 #ifdef EDM_ML_DEBUG
388  if (debug)
389  std::cout << "Propagate track " << indx << " pdg " << trkD.pdgId << " charge " << trkD.charge << " p "
390  << momentum << std::endl;
391 #endif
392  // consider stable particles
393  if ((*p)->status() == 1 && std::abs((*p)->momentum().eta()) < etaMax) {
394  const GlobalPoint vertex = GlobalPoint(0.1 * (*p)->production_vertex()->position().x(),
395  0.1 * (*p)->production_vertex()->position().y(),
396  0.1 * (*p)->production_vertex()->position().z());
397  trkD.ok = true;
400  GlobalPoint point(info.point.x(), info.point.y(), info.point.z());
401  trkD.okECAL = info.ok;
402  trkD.pointECAL = point;
403  trkD.directionECAL = info.direction;
404  if (trkD.okECAL) {
405  if (std::abs(info.point.eta()) < spr::etaBEEcal) {
406  trkD.detIdECAL = barrelGeom->getClosestCell(point);
407  } else {
408  if (endcapGeom)
409  trkD.detIdECAL = endcapGeom->getClosestCell(point);
410  else
411  trkD.okECAL = false;
412  }
413  trkD.detIdEHCAL = gHB->getClosestCell(point);
414  }
415 
418  point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
419  trkD.okHCAL = info.ok;
420  trkD.pointHCAL = point;
421  trkD.directionHCAL = info.direction;
422  if (trkD.okHCAL) {
423  trkD.detIdHCAL = gHB->getClosestCell(point);
424  }
425  }
426  trkDir.push_back(trkD);
427  }
428 #ifdef EDM_ML_DEBUG
429  if (debug) {
430  std::cout << "propagateCALO:: for " << trkDir.size() << " tracks" << std::endl;
431  for (unsigned int i = 0; i < trkDir.size(); ++i) {
432  if (trkDir[i].okECAL)
433  std::cout << "Track [" << i << "] Flag: " << trkDir[i].ok << " ECAL (" << trkDir[i].okECAL << ")";
434  if (trkDir[i].okECAL) {
435  std::cout << " point " << trkDir[i].pointECAL << " direction " << trkDir[i].directionECAL << " ";
436  if (trkDir[i].detIdECAL.subdetId() == EcalBarrel) {
437  std::cout << (EBDetId)(trkDir[i].detIdECAL);
438  } else {
439  std::cout << (EEDetId)(trkDir[i].detIdECAL);
440  }
441  }
442  if (trkDir[i].okECAL)
443  std::cout << " HCAL (" << trkDir[i].okHCAL << ")";
444  if (trkDir[i].okHCAL) {
445  std::cout << " point " << trkDir[i].pointHCAL << " direction " << trkDir[i].directionHCAL << " "
446  << (HcalDetId)(trkDir[i].detIdHCAL);
447  }
448  if (trkDir[i].okECAL)
449  std::cout << " Or " << (HcalDetId)(trkDir[i].detIdEHCAL) << std::endl;
450  }
451  }
452 #endif
453  return trkDir;
454  }

References funct::abs(), Calorimetry_cff::bField, spr::propagatedGenTrackID::charge, gather_cfg::cout, debug, spr::propagatedGenTrackID::detIdECAL, spr::propagatedGenTrackID::detIdEHCAL, spr::propagatedGenTrackID::detIdHCAL, spr::propagatedGenTrackID::directionECAL, spr::propagatedGenTrackID::directionHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, etaBEHcal, ALCARECOTkAlBeamHalo_cff::etaMax, nano_cff::genEvent, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, mps_fire::i, info(), spr::propagatedGenTrackID::ok, spr::propagatedGenTrackID::okECAL, spr::propagatedGenTrackID::okHCAL, AlCaHLTBitMon_ParallelJobs::p, spr::propagatedGenTrackID::pdgId, point, spr::propagatedGenTrackID::pointECAL, spr::propagatedGenTrackID::pointHCAL, propagateCalo(), rFrontEB, rFrontHB, spr::propagatedGenTrackID::trkItr, bphysicsOniaDQM_cfi::vertex, zFrontEE, and zFrontHE.

◆ propagateCALO() [2/7]

spr::propagatedTrackID spr::propagateCALO ( const reco::Track pTrack,
const CaloGeometry geo,
const MagneticField bField,
bool  debug = false 
)

Definition at line 307 of file CaloPropagateTrack.cc.

310  {
314 
316  vdet.ok = true;
317  vdet.detIdECAL = DetId(0);
318  vdet.detIdHCAL = DetId(0);
319  vdet.detIdEHCAL = DetId(0);
320 #ifdef EDM_ML_DEBUG
321  if (debug)
322  std::cout << "Propagate track: p " << pTrack->p() << " eta " << pTrack->eta() << " phi " << pTrack->phi()
323  << " Flag " << vdet.ok << std::endl;
324 #endif
325  std::pair<math::XYZPoint, bool> info = spr::propagateECAL(pTrack, bField, debug);
326  vdet.okECAL = info.second;
327  if (vdet.okECAL) {
328  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
329  vdet.etaECAL = point.eta();
330  vdet.phiECAL = point.phi();
331  if (std::abs(point.eta()) < spr::etaBEEcal) {
332  vdet.detIdECAL = barrelGeom->getClosestCell(point);
333  } else {
334  if (endcapGeom)
335  vdet.detIdECAL = endcapGeom->getClosestCell(point);
336  else
337  vdet.okECAL = false;
338  }
339  vdet.detIdEHCAL = gHB->getClosestCell(point);
340  }
341  info = spr::propagateHCAL(pTrack, bField, debug);
342  vdet.okHCAL = info.second;
343  if (vdet.okHCAL) {
344  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
345  vdet.etaHCAL = point.eta();
346  vdet.phiHCAL = point.phi();
347  vdet.detIdHCAL = gHB->getClosestCell(point);
348  }
349 #ifdef EDM_ML_DEBUG
350  if (debug) {
351  std::cout << "propagateCALO:: for 1 track" << std::endl;
352  std::cout << "Track [0] Flag: " << vdet.ok << " ECAL (" << vdet.okECAL << ") ";
353  if (vdet.detIdECAL.subdetId() == EcalBarrel) {
354  std::cout << (EBDetId)(vdet.detIdECAL);
355  } else {
356  std::cout << (EEDetId)(vdet.detIdECAL);
357  }
358  std::cout << " HCAL (" << vdet.okHCAL << ") " << (HcalDetId)(vdet.detIdHCAL) << " Or "
359  << (HcalDetId)(vdet.detIdEHCAL) << std::endl;
360  }
361 #endif
362  return vdet;
363  }

References funct::abs(), Calorimetry_cff::bField, gather_cfg::cout, debug, spr::propagatedTrackID::detIdECAL, spr::propagatedTrackID::detIdEHCAL, spr::propagatedTrackID::detIdHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, reco::TrackBase::eta(), etaBEEcal, spr::propagatedTrackID::etaECAL, spr::propagatedTrackID::etaHCAL, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, info(), spr::propagatedTrackID::ok, spr::propagatedTrackID::okECAL, spr::propagatedTrackID::okHCAL, reco::TrackBase::p(), reco::TrackBase::phi(), spr::propagatedTrackID::phiECAL, spr::propagatedTrackID::phiHCAL, point, propagateECAL(), propagateHCAL(), and DetId::subdetId().

◆ propagateCALO() [3/7]

std::vector< spr::propagatedGenParticleID > spr::propagateCALO ( edm::Handle< reco::GenParticleCollection > &  genParticles,
edm::ESHandle< ParticleDataTable > &  pdt,
const CaloGeometry geo,
const MagneticField bField,
double  etaMax = 3.0,
bool  debug = false 
)

Definition at line 456 of file CaloPropagateTrack.cc.

461  {
465 
466  std::vector<spr::propagatedGenParticleID> trkDir;
467  unsigned int indx;
468  reco::GenParticleCollection::const_iterator p;
469  for (p = genParticles->begin(), indx = 0; p != genParticles->end(); ++p, ++indx) {
471  trkD.trkItr = p;
472  trkD.detIdECAL = DetId(0);
473  trkD.detIdHCAL = DetId(0);
474  trkD.detIdEHCAL = DetId(0);
475  trkD.pdgId = (p->pdgId());
476  trkD.charge = p->charge();
477  const GlobalVector momentum = GlobalVector(p->momentum().x(), p->momentum().y(), p->momentum().z());
478 #ifdef EDM_ML_DEBUG
479  if (debug)
480  std::cout << "Propagate track " << indx << " pdg " << trkD.pdgId << " charge " << trkD.charge << " p "
481  << momentum << std::endl;
482 #endif
483  // consider stable particles
484  if (p->status() == 1 && std::abs(momentum.eta()) < etaMax) {
485  const GlobalPoint vertex = GlobalPoint(p->vertex().x(), p->vertex().y(), p->vertex().z());
486  trkD.ok = true;
489  GlobalPoint point(info.point.x(), info.point.y(), info.point.z());
490  trkD.okECAL = info.ok;
491  trkD.pointECAL = point;
492  trkD.directionECAL = info.direction;
493  if (trkD.okECAL) {
494  if (std::abs(info.point.eta()) < spr::etaBEEcal) {
495  trkD.detIdECAL = barrelGeom->getClosestCell(point);
496  } else {
497  if (endcapGeom)
498  trkD.detIdECAL = endcapGeom->getClosestCell(point);
499  else
500  trkD.okECAL = false;
501  }
502  trkD.detIdEHCAL = gHB->getClosestCell(point);
503  }
504 
507  point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
508  trkD.okHCAL = info.ok;
509  trkD.pointHCAL = point;
510  trkD.directionHCAL = info.direction;
511  if (trkD.okHCAL) {
512  trkD.detIdHCAL = gHB->getClosestCell(point);
513  }
514  }
515  trkDir.push_back(trkD);
516  }
517 #ifdef EDM_ML_DEBUG
518  if (debug) {
519  std::cout << "propagateCALO:: for " << trkDir.size() << " tracks" << std::endl;
520  for (unsigned int i = 0; i < trkDir.size(); ++i) {
521  if (trkDir[i].okECAL)
522  std::cout << "Track [" << i << "] Flag: " << trkDir[i].ok << " ECAL (" << trkDir[i].okECAL << ")";
523  if (trkDir[i].okECAL) {
524  std::cout << " point " << trkDir[i].pointECAL << " direction " << trkDir[i].directionECAL << " ";
525  if (trkDir[i].detIdECAL.subdetId() == EcalBarrel) {
526  std::cout << (EBDetId)(trkDir[i].detIdECAL);
527  } else {
528  std::cout << (EEDetId)(trkDir[i].detIdECAL);
529  }
530  }
531  if (trkDir[i].okECAL)
532  std::cout << " HCAL (" << trkDir[i].okHCAL << ")";
533  if (trkDir[i].okHCAL) {
534  std::cout << " point " << trkDir[i].pointHCAL << " direction " << trkDir[i].directionHCAL << " "
535  << (HcalDetId)(trkDir[i].detIdHCAL);
536  }
537  if (trkDir[i].okECAL)
538  std::cout << " Or " << (HcalDetId)(trkDir[i].detIdEHCAL) << std::endl;
539  }
540  }
541 #endif
542  return trkDir;
543  }

References funct::abs(), Calorimetry_cff::bField, spr::propagatedGenParticleID::charge, gather_cfg::cout, debug, spr::propagatedGenParticleID::detIdECAL, spr::propagatedGenParticleID::detIdEHCAL, spr::propagatedGenParticleID::detIdHCAL, spr::propagatedGenParticleID::directionECAL, spr::propagatedGenParticleID::directionHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, PV3DBase< T, PVType, FrameType >::eta(), etaBEEcal, etaBEHcal, ALCARECOTkAlBeamHalo_cff::etaMax, genParticles2HepMC_cfi::genParticles, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, mps_fire::i, info(), spr::propagatedGenParticleID::ok, spr::propagatedGenParticleID::okECAL, spr::propagatedGenParticleID::okHCAL, AlCaHLTBitMon_ParallelJobs::p, spr::propagatedGenParticleID::pdgId, point, spr::propagatedGenParticleID::pointECAL, spr::propagatedGenParticleID::pointHCAL, propagateCalo(), rFrontEB, rFrontHB, spr::propagatedGenParticleID::trkItr, bphysicsOniaDQM_cfi::vertex, zFrontEE, and zFrontHE.

◆ propagateCALO() [4/7]

std::vector< spr::propagatedTrackID > spr::propagateCALO ( edm::Handle< reco::TrackCollection > &  trkCollection,
const CaloGeometry geo,
const MagneticField bField,
const std::string &  theTrackQuality,
bool  debug = false 
)

◆ propagateCALO() [5/7]

void spr::propagateCALO ( edm::Handle< reco::TrackCollection > &  trkCollection,
const CaloGeometry geo,
const MagneticField bField,
const std::string &  theTrackQuality,
std::vector< spr::propagatedTrackDirection > &  trkDir,
bool  debug = false 
)

Definition at line 231 of file CaloPropagateTrack.cc.

236  {
240  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
241 
242  unsigned int indx;
243  reco::TrackCollection::const_iterator trkItr;
244  for (trkItr = trkCollection->begin(), indx = 0; trkItr != trkCollection->end(); ++trkItr, indx++) {
245  const reco::Track* pTrack = &(*trkItr);
247  trkD.trkItr = trkItr;
248  trkD.ok = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack->quality(trackQuality_)) : true;
249  trkD.detIdECAL = DetId(0);
250  trkD.detIdHCAL = DetId(0);
251  trkD.detIdEHCAL = DetId(0);
252 #ifdef EDM_ML_DEBUG
253  if (debug)
254  std::cout << "Propagate track " << indx << " p " << trkItr->p() << " eta " << trkItr->eta() << " phi "
255  << trkItr->phi() << " Flag " << trkD.ok << std::endl;
256 #endif
258  GlobalPoint point(info.point.x(), info.point.y(), info.point.z());
259  trkD.okECAL = info.ok;
260  trkD.pointECAL = point;
261  trkD.directionECAL = info.direction;
262  if (trkD.okECAL) {
263  if (std::abs(info.point.eta()) < spr::etaBEEcal) {
264  trkD.detIdECAL = barrelGeom->getClosestCell(point);
265  } else {
266  if (endcapGeom)
267  trkD.detIdECAL = endcapGeom->getClosestCell(point);
268  else
269  trkD.okECAL = false;
270  }
271  trkD.detIdEHCAL = gHB->getClosestCell(point);
272  }
274  point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
275  trkD.okHCAL = info.ok;
276  trkD.pointHCAL = point;
277  trkD.directionHCAL = info.direction;
278  if (trkD.okHCAL) {
279  trkD.detIdHCAL = gHB->getClosestCell(point);
280  }
281  trkDir.push_back(trkD);
282  }
283 #ifdef EDM_ML_DEBUG
284  if (debug) {
285  std::cout << "propagateCALO:: for " << trkDir.size() << " tracks" << std::endl;
286  for (unsigned int i = 0; i < trkDir.size(); ++i) {
287  std::cout << "Track [" << i << "] Flag: " << trkDir[i].ok << " ECAL (" << trkDir[i].okECAL << ")";
288  if (trkDir[i].okECAL) {
289  std::cout << " point " << trkDir[i].pointECAL << " direction " << trkDir[i].directionECAL << " ";
290  if (trkDir[i].detIdECAL.subdetId() == EcalBarrel) {
291  std::cout << (EBDetId)(trkDir[i].detIdECAL);
292  } else {
293  std::cout << (EEDetId)(trkDir[i].detIdECAL);
294  }
295  }
296  std::cout << " HCAL (" << trkDir[i].okHCAL << ")";
297  if (trkDir[i].okHCAL) {
298  std::cout << " point " << trkDir[i].pointHCAL << " direction " << trkDir[i].directionHCAL << " "
299  << (HcalDetId)(trkDir[i].detIdHCAL);
300  }
301  std::cout << " Or " << (HcalDetId)(trkDir[i].detIdEHCAL) << std::endl;
302  }
303  }
304 #endif
305  }

References funct::abs(), Calorimetry_cff::bField, gather_cfg::cout, debug, spr::propagatedTrackDirection::detIdECAL, spr::propagatedTrackDirection::detIdEHCAL, spr::propagatedTrackDirection::detIdHCAL, spr::propagatedTrackDirection::directionECAL, spr::propagatedTrackDirection::directionHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, mps_fire::i, info(), spr::propagatedTrackDirection::ok, spr::propagatedTrackDirection::okECAL, spr::propagatedTrackDirection::okHCAL, point, spr::propagatedTrackDirection::pointECAL, spr::propagatedTrackDirection::pointHCAL, propagateTrackToECAL(), propagateTrackToHCAL(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), spr::propagatedTrackDirection::trkItr, and reco::TrackBase::undefQuality.

◆ propagateCALO() [6/7]

void spr::propagateCALO ( edm::Handle< reco::TrackCollection > &  trkCollection,
const CaloGeometry geo,
const MagneticField bField,
const std::string &  theTrackQuality,
std::vector< spr::propagatedTrackID > &  vdets,
bool  debug = false 
)

Definition at line 151 of file CaloPropagateTrack.cc.

156  {
160  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
161 
162  unsigned int indx;
163  reco::TrackCollection::const_iterator trkItr;
164  for (trkItr = trkCollection->begin(), indx = 0; trkItr != trkCollection->end(); ++trkItr, indx++) {
165  const reco::Track* pTrack = &(*trkItr);
167  vdet.trkItr = trkItr;
168  vdet.ok = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack->quality(trackQuality_)) : true;
169  vdet.detIdECAL = DetId(0);
170  vdet.detIdHCAL = DetId(0);
171  vdet.detIdEHCAL = DetId(0);
172 #ifdef EDM_ML_DEBUG
173  if (debug)
174  std::cout << "Propagate track " << indx << " p " << trkItr->p() << " eta " << trkItr->eta() << " phi "
175  << trkItr->phi() << " Flag " << vdet.ok << std::endl;
176 #endif
177  std::pair<math::XYZPoint, bool> info = spr::propagateECAL(pTrack, bField, debug);
178  vdet.okECAL = info.second;
179  if (vdet.okECAL) {
180  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
181  vdet.etaECAL = point.eta();
182  vdet.phiECAL = point.phi();
183  if (std::abs(point.eta()) < spr::etaBEEcal) {
184  vdet.detIdECAL = barrelGeom->getClosestCell(point);
185  } else {
186  if (endcapGeom)
187  vdet.detIdECAL = endcapGeom->getClosestCell(point);
188  else
189  vdet.okECAL = false;
190  }
191  vdet.detIdEHCAL = gHB->getClosestCell(point);
192  }
193  info = spr::propagateHCAL(pTrack, bField, debug);
194  vdet.okHCAL = info.second;
195  if (vdet.okHCAL) {
196  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
197  vdet.etaHCAL = point.eta();
198  vdet.phiHCAL = point.phi();
199  vdet.detIdHCAL = gHB->getClosestCell(point);
200  }
201 #ifdef EDM_ML_DEBUG
202  if (debug) {
203  std::cout << "Track [" << indx << "] Flag: " << vdet.ok << " ECAL (" << vdet.okECAL << ") ";
204  if (vdet.detIdECAL.subdetId() == EcalBarrel)
205  std::cout << (EBDetId)(vdet.detIdECAL);
206  else
207  std::cout << (EEDetId)(vdet.detIdECAL);
208  std::cout << " HCAL (" << vdet.okHCAL << ") " << (HcalDetId)(vdet.detIdHCAL) << " Or "
209  << (HcalDetId)(vdet.detIdEHCAL) << std::endl;
210  }
211 #endif
212  vdets.push_back(vdet);
213  }
214 #ifdef EDM_ML_DEBUG
215  if (debug) {
216  std::cout << "propagateCALO:: for " << vdets.size() << " tracks" << std::endl;
217  for (unsigned int i = 0; i < vdets.size(); ++i) {
218  std::cout << "Track [" << i << "] Flag: " << vdets[i].ok << " ECAL (" << vdets[i].okECAL << ") ";
219  if (vdets[i].detIdECAL.subdetId() == EcalBarrel) {
220  std::cout << (EBDetId)(vdets[i].detIdECAL);
221  } else {
222  std::cout << (EEDetId)(vdets[i].detIdECAL);
223  }
224  std::cout << " HCAL (" << vdets[i].okHCAL << ") " << (HcalDetId)(vdets[i].detIdHCAL) << " Or "
225  << (HcalDetId)(vdets[i].detIdEHCAL) << std::endl;
226  }
227  }
228 #endif
229  }

References funct::abs(), Calorimetry_cff::bField, gather_cfg::cout, debug, spr::propagatedTrackID::detIdECAL, spr::propagatedTrackID::detIdEHCAL, spr::propagatedTrackID::detIdHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, spr::propagatedTrackID::etaECAL, spr::propagatedTrackID::etaHCAL, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, mps_fire::i, info(), spr::propagatedTrackID::ok, spr::propagatedTrackID::okECAL, spr::propagatedTrackID::okHCAL, spr::propagatedTrackID::phiECAL, spr::propagatedTrackID::phiHCAL, point, propagateECAL(), propagateHCAL(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), DetId::subdetId(), spr::propagatedTrackID::trkItr, and reco::TrackBase::undefQuality.

◆ propagateCALO() [7/7]

spr::propagatedTrackDirection spr::propagateCALO ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const CaloGeometry geo,
const MagneticField bField,
bool  debug = false 
)

Definition at line 545 of file CaloPropagateTrack.cc.

550  {
554 
555  spr::trackAtOrigin trk = spr::simTrackAtOrigin(thisTrk, SimTk, SimVtx, debug);
557  trkD.ok = trk.ok;
558  trkD.detIdECAL = DetId(0);
559  trkD.detIdHCAL = DetId(0);
560  trkD.detIdEHCAL = DetId(0);
561 #ifdef EDM_ML_DEBUG
562  if (debug)
563  std::cout << "Propagate track " << thisTrk << " charge " << trk.charge << " position " << trk.position << " p "
564  << trk.momentum << " Flag " << trkD.ok << std::endl;
565 #endif
566  if (trkD.ok) {
569  GlobalPoint point(info.point.x(), info.point.y(), info.point.z());
570  trkD.okECAL = info.ok;
571  trkD.pointECAL = point;
572  trkD.directionECAL = info.direction;
573  if (trkD.okECAL) {
574  if (std::abs(info.point.eta()) < spr::etaBEEcal) {
575  trkD.detIdECAL = barrelGeom->getClosestCell(point);
576  } else {
577  if (endcapGeom)
578  trkD.detIdECAL = endcapGeom->getClosestCell(point);
579  else
580  trkD.okECAL = false;
581  }
582  trkD.detIdEHCAL = gHB->getClosestCell(point);
583  }
584 
587  point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
588  trkD.okHCAL = info.ok;
589  trkD.pointHCAL = point;
590  trkD.directionHCAL = info.direction;
591  if (trkD.okHCAL) {
592  trkD.detIdHCAL = gHB->getClosestCell(point);
593  }
594  }
595 #ifdef EDM_ML_DEBUG
596  if (debug) {
597  std::cout << "propagateCALO:: for track [" << thisTrk << "] Flag: " << trkD.ok << " ECAL (" << trkD.okECAL
598  << ") HCAL (" << trkD.okHCAL << ")" << std::endl;
599  if (trkD.okECAL) {
600  std::cout << "ECAL point " << trkD.pointECAL << " direction " << trkD.directionECAL << " ";
601  if (trkD.detIdECAL.subdetId() == EcalBarrel) {
602  std::cout << (EBDetId)(trkD.detIdECAL);
603  } else {
604  std::cout << (EEDetId)(trkD.detIdECAL);
605  }
606  }
607  if (trkD.okHCAL) {
608  std::cout << " HCAL point " << trkD.pointHCAL << " direction " << trkD.directionHCAL << " "
609  << (HcalDetId)(trkD.detIdHCAL);
610  }
611  if (trkD.okECAL)
612  std::cout << " Or " << (HcalDetId)(trkD.detIdEHCAL);
613  std::cout << std::endl;
614  }
615 #endif
616  return trkD;
617  }

References funct::abs(), Calorimetry_cff::bField, spr::trackAtOrigin::charge, gather_cfg::cout, debug, spr::propagatedTrackDirection::detIdECAL, spr::propagatedTrackDirection::detIdEHCAL, spr::propagatedTrackDirection::detIdHCAL, spr::propagatedTrackDirection::directionECAL, spr::propagatedTrackDirection::directionHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, etaBEHcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, info(), spr::trackAtOrigin::momentum, spr::propagatedTrackDirection::ok, spr::trackAtOrigin::ok, spr::propagatedTrackDirection::okECAL, spr::propagatedTrackDirection::okHCAL, point, spr::propagatedTrackDirection::pointECAL, spr::propagatedTrackDirection::pointHCAL, spr::trackAtOrigin::position, propagateCalo(), rFrontEB, rFrontHB, simTrackAtOrigin(), DetId::subdetId(), zFrontEE, and zFrontHE.

◆ propagateCosmicCALO()

std::vector< spr::propagatedTrackID > spr::propagateCosmicCALO ( edm::Handle< reco::TrackCollection > &  trkCollection,
const CaloGeometry geo,
const MagneticField bField,
const std::string &  theTrackQuality,
bool  debug = false 
)

Definition at line 20 of file CaloPropagateTrack.cc.

24  {
28  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
29  std::vector<spr::propagatedTrackID> vdets;
30 
31  unsigned int indx;
32  reco::TrackCollection::const_iterator trkItr;
33  for (trkItr = trkCollection->begin(), indx = 0; trkItr != trkCollection->end(); ++trkItr, indx++) {
34  const reco::Track* pTrack = &(*trkItr);
36  vdet.trkItr = trkItr;
37  vdet.ok = (trackQuality_ != reco::TrackBase::undefQuality) ? (pTrack->quality(trackQuality_)) : true;
38  vdet.detIdECAL = DetId(0);
39  vdet.detIdHCAL = DetId(0);
40  vdet.detIdEHCAL = DetId(0);
41 #ifdef EDM_ML_DEBUG
42  if (debug)
43  std::cout << "Propagate track " << indx << " p " << trkItr->p() << " eta " << trkItr->eta() << " phi "
44  << trkItr->phi() << " Flag " << vdet.ok << std::endl;
45 #endif
47  GlobalVector momentum;
48  int charge(pTrack->charge());
49  if (((pTrack->innerPosition()).Perp2()) < ((pTrack->outerPosition()).Perp2())) {
51  ((pTrack->innerPosition()).X()), ((pTrack->innerPosition()).Y()), ((pTrack->innerPosition()).Z()));
52  momentum = GlobalVector(
53  ((pTrack->innerMomentum()).X()), ((pTrack->innerMomentum()).Y()), ((pTrack->innerMomentum()).Z()));
54  } else {
56  ((pTrack->outerPosition()).X()), ((pTrack->outerPosition()).Y()), ((pTrack->outerPosition()).Z()));
57  momentum = GlobalVector(
58  ((pTrack->outerMomentum()).X()), ((pTrack->outerMomentum()).Y()), ((pTrack->outerMomentum()).Z()));
59  }
60 #ifdef EDM_ML_DEBUG
61  if (debug)
62  std::cout << "Track charge " << charge << " p " << momentum << " position " << vertex << std::endl;
63 #endif
64  std::pair<math::XYZPoint, bool> info = spr::propagateECAL(vertex, momentum, charge, bField, debug);
65 #ifdef EDM_ML_DEBUG
66  if (debug)
67  std::cout << "Propagate to ECAL " << info.second << " at (" << info.first.x() << ", " << info.first.y() << ", "
68  << info.first.z() << ")\n";
69 #endif
70 
71  vdet.okECAL = info.second;
72  if (vdet.okECAL) {
73  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
74  vdet.etaECAL = point.eta();
75  vdet.phiECAL = point.phi();
76  if (std::abs(point.eta()) < spr::etaBEEcal) {
77  vdet.detIdECAL = barrelGeom->getClosestCell(point);
78  } else {
79  if (endcapGeom)
80  vdet.detIdECAL = endcapGeom->getClosestCell(point);
81  else
82  vdet.okECAL = false;
83  }
84  vdet.detIdEHCAL = gHB->getClosestCell(point);
85 #ifdef EDM_ML_DEBUG
86  if (debug) {
87  std::cout << "Point at ECAL (" << vdet.etaECAL << ", " << vdet.phiECAL << " ";
88  if (std::abs(point.eta()) < spr::etaBEEcal)
89  std::cout << EBDetId(vdet.detIdECAL);
90  else
91  std::cout << EEDetId(vdet.detIdECAL);
92  std::cout << " " << HcalDetId(vdet.detIdEHCAL) << std::endl;
93  }
94 #endif
95  }
97 #ifdef EDM_ML_DEBUG
98  if (debug)
99  std::cout << "Propagate to HCAL " << info.second << " at (" << info.first.x() << ", " << info.first.y() << ", "
100  << info.first.z() << ")\n";
101 #endif
102  vdet.okHCAL = info.second;
103  if (vdet.okHCAL) {
104  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
105  vdet.etaHCAL = point.eta();
106  vdet.phiHCAL = point.phi();
107  vdet.detIdHCAL = gHB->getClosestCell(point);
108  }
109 #ifdef EDM_ML_DEBUG
110  if (debug) {
111  std::cout << "Track [" << indx << "] Flag: " << vdet.ok << " ECAL (" << vdet.okECAL << ") ";
112  if (vdet.detIdECAL.subdetId() == EcalBarrel)
113  std::cout << (EBDetId)(vdet.detIdECAL);
114  else
115  std::cout << (EEDetId)(vdet.detIdECAL);
116  std::cout << " HCAL (" << vdet.okHCAL << ") " << (HcalDetId)(vdet.detIdHCAL) << " Or "
117  << (HcalDetId)(vdet.detIdEHCAL) << std::endl;
118  }
119 #endif
120  vdets.push_back(vdet);
121  }
122 
123 #ifdef EDM_ML_DEBUG
124  if (debug) {
125  std::cout << "propagateCALO:: for " << vdets.size() << " tracks" << std::endl;
126  for (unsigned int i = 0; i < vdets.size(); ++i) {
127  std::cout << "Track [" << i << "] Flag: " << vdets[i].ok << " ECAL (" << vdets[i].okECAL << ") ";
128  if (vdets[i].detIdECAL.subdetId() == EcalBarrel) {
129  std::cout << (EBDetId)(vdets[i].detIdECAL);
130  } else {
131  std::cout << (EEDetId)(vdets[i].detIdECAL);
132  }
133  std::cout << " HCAL (" << vdets[i].okHCAL << ") " << (HcalDetId)(vdets[i].detIdHCAL) << " Or "
134  << (HcalDetId)(vdets[i].detIdEHCAL) << std::endl;
135  }
136  }
137 #endif
138  return vdets;
139  }

References funct::abs(), Calorimetry_cff::bField, ALCARECOTkAlJpsiMuMu_cff::charge, reco::TrackBase::charge(), gather_cfg::cout, debug, spr::propagatedTrackID::detIdECAL, spr::propagatedTrackID::detIdEHCAL, spr::propagatedTrackID::detIdHCAL, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, spr::propagatedTrackID::etaECAL, spr::propagatedTrackID::etaHCAL, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, mps_fire::i, info(), reco::Track::innerMomentum(), reco::Track::innerPosition(), spr::propagatedTrackID::ok, spr::propagatedTrackID::okECAL, spr::propagatedTrackID::okHCAL, reco::Track::outerMomentum(), reco::Track::outerPosition(), spr::propagatedTrackID::phiECAL, spr::propagatedTrackID::phiHCAL, point, propagateECAL(), propagateHCAL(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), DetId::subdetId(), spr::propagatedTrackID::trkItr, reco::TrackBase::undefQuality, bphysicsOniaDQM_cfi::vertex, X, DOFs::Y, and DOFs::Z.

◆ propagateECAL() [1/2]

std::pair< math::XYZPoint, bool > spr::propagateECAL ( const GlobalPoint vertex,
const GlobalVector momentum,
int  charge,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 732 of file CaloPropagateTrack.cc.

733  {
736  return std::pair<math::XYZPoint, bool>(track.point, track.ok);
737  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBEEcal, propagateCalo(), rFrontEB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zFrontEE.

◆ propagateECAL() [2/2]

std::pair< math::XYZPoint, bool > spr::propagateECAL ( const reco::Track track,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 699 of file CaloPropagateTrack.cc.

699  {
700  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
701  const GlobalVector momentum(track->px(), track->py(), track->pz());
702  int charge(track->charge());
703  return spr::propagateECAL(vertex, momentum, charge, bfield, debug);
704  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, HLT_2018_cff::track, and bphysicsOniaDQM_cfi::vertex.

Referenced by chargeIsolationEcal(), propagateCALO(), propagateCosmicCALO(), and propagateIdECAL().

◆ propagateHCAL() [1/5]

std::pair<HcalDetId, HcalDetId> spr::propagateHCAL ( const CaloGeometry geo,
const MagneticField bField,
const GlobalPoint vertex,
const GlobalVector momentum,
int  charge,
bool  typeRZ,
const std::pair< double, double >  rz,
bool  debug 
)

Definition at line 1006 of file CaloPropagateTrack.cc.

1017  {
1018 
1019 #ifdef EDM_ML_DEBUG
1020  if (debug)
1021  std::cout << "propagateCalo:: Vertex " << vertex << " Momentum " << momentum << " Charge " << charge << " R/Z "
1022  << rz.first << " : " << rz.second << " Type " << typeRZ << std::endl;
1023 #endif
1025  FreeTrajectoryState fts(vertex, momentum, charge, bField);
1027 
1028  HcalDetId id1, id2;
1029  for (int k = 0; k < 2; ++k) {
1031  double rzv = (k == 0) ? rz.first : rz.second;
1032  if (typeRZ) {
1035  tsos = myAP.propagate(fts, *barrel);
1036  } else {
1038  tsos = myAP.propagate(fts, *endcap);
1039  }
1040 
1041  if (tsos.isValid()) {
1042  GlobalPoint point = tsos.globalPosition();
1043  if (k == 0)
1044  id1 = gHB->getClosestCell(point);
1045  else
1046  id2 = gHB->getClosestCell(point);
1047 #ifdef EDM_ML_DEBUG
1048  if (debug) {
1049  std::cout << "Iteration " << k << " Point " << point << " ID ";
1050  if (k == 0)
1051  std::cout << id1;
1052  else
1053  std::cout << id2;
1054  std::cout << std::endl;
1055  }
1056 #endif
1057  }
1058  }
1059 #ifdef EDM_ML_DEBUG
1060  if (debug)
1061  std::cout << "propagateCalo:: Front " << id1 << " Back " << id2 << std::endl;
1062 #endif
1063  return std::pair<HcalDetId, HcalDetId>(id1, id2);
1064  }

References alongMomentum, Reference_intrackfit_cff::barrel, Calorimetry_cff::bField, Plane::build(), Cylinder::build(), ALCARECOTkAlJpsiMuMu_cff::charge, gather_cfg::cout, debug, makeMuonMisalignmentScenario::endcap, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), TrajectoryStateOnSurface::globalPosition(), DetId::Hcal, HcalBarrel, globals_cff::id1, globals_cff::id2, TrajectoryStateOnSurface::isValid(), dqmdumpme::k, M_PI, point, AnalyticalPropagator::propagate(), and bphysicsOniaDQM_cfi::vertex.

◆ propagateHCAL() [2/5]

std::pair< math::XYZPoint, bool > spr::propagateHCAL ( const GlobalPoint vertex,
const GlobalVector momentum,
int  charge,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 766 of file CaloPropagateTrack.cc.

767  {
770  return std::pair<math::XYZPoint, bool>(track.point, track.ok);
771  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBEHcal, propagateCalo(), rFrontHB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zFrontHE.

◆ propagateHCAL() [3/5]

std::pair< math::XYZPoint, bool > spr::propagateHCAL ( const reco::Track track,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 759 of file CaloPropagateTrack.cc.

759  {
760  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
761  const GlobalVector momentum(track->px(), track->py(), track->pz());
762  int charge(track->charge());
763  return spr::propagateHCAL(vertex, momentum, charge, bfield, debug);
764  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, HLT_2018_cff::track, and bphysicsOniaDQM_cfi::vertex.

Referenced by chargeIsolationHcal(), HcalHBHEMuonAnalyzer::goodCell(), HcalHBHEMuonHighEtaAnalyzer::goodCell(), propagateCALO(), propagateCosmicCALO(), and propagateHCAL().

◆ propagateHCAL() [4/5]

bool spr::propagateHCAL ( const reco::Track track,
const CaloGeometry geo,
const MagneticField bField,
bool  typeRZ,
const std::pair< double, double >  rz,
bool  debug 
)

Definition at line 966 of file CaloPropagateTrack.cc.

971  {
972  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
973  const GlobalVector momentum(track->px(), track->py(), track->pz());
974  int charge(track->charge());
975 #ifdef EDM_ML_DEBUG
976  if (debug)
977  std::cout << "Propagate track with charge " << charge << " position " << vertex << " p " << momentum << std::endl;
978 #endif
979  std::pair<HcalDetId, HcalDetId> ids = propagateHCAL(geo, bField, vertex, momentum, charge, typeRZ, rz, debug);
980  bool ok = ((ids.first != HcalDetId()) && (ids.first.ieta() == ids.second.ieta()) &&
981  (ids.first.iphi() == ids.second.iphi()));
982  return ok;
983  }

References Calorimetry_cff::bField, ALCARECOTkAlJpsiMuMu_cff::charge, gather_cfg::cout, debug, convertSQLiteXML::ok, propagateHCAL(), HLT_2018_cff::track, and bphysicsOniaDQM_cfi::vertex.

◆ propagateHCAL() [5/5]

bool spr::propagateHCAL ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const CaloGeometry geo,
const MagneticField bField,
bool  typeRZ,
const std::pair< double, double >  rz,
bool  debug 
)

Definition at line 985 of file CaloPropagateTrack.cc.

992  {
993  spr::trackAtOrigin trk = spr::simTrackAtOrigin(thisTrk, SimTk, SimVtx, debug);
994 #ifdef EDM_ML_DEBUG
995  if (debug)
996  std::cout << "Propagate track " << thisTrk << " charge " << trk.charge << " position " << trk.position << " p "
997  << trk.momentum << std::endl;
998 #endif
999  std::pair<HcalDetId, HcalDetId> ids =
1000  propagateHCAL(geo, bField, trk.position, trk.momentum, trk.charge, typeRZ, rz, debug);
1001  bool ok = ((ids.first != HcalDetId()) && (ids.first.ieta() == ids.second.ieta()) &&
1002  (ids.first.iphi() == ids.second.iphi()));
1003  return ok;
1004  }

References Calorimetry_cff::bField, spr::trackAtOrigin::charge, gather_cfg::cout, debug, spr::trackAtOrigin::momentum, convertSQLiteXML::ok, spr::trackAtOrigin::position, propagateHCAL(), and simTrackAtOrigin().

◆ propagateHCALBack() [1/2]

std::pair< bool, HcalDetId > spr::propagateHCALBack ( const reco::Track track,
const CaloGeometry geo,
const MagneticField bField,
bool  debug = false 
)

Definition at line 661 of file CaloPropagateTrack.cc.

664  {
666  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
667  const GlobalVector momentum(track->px(), track->py(), track->pz());
668  int charge(track->charge());
671  if (info.ok) {
672  const GlobalPoint point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
673  return std::pair<bool, HcalDetId>(true, HcalDetId(gHB->getClosestCell(point)));
674  } else {
675  return std::pair<bool, HcalDetId>(false, HcalDetId());
676  }
677  }

References Calorimetry_cff::bField, ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBEHcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, info(), point, propagateCalo(), rBackHB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zBackHE.

◆ propagateHCALBack() [2/2]

spr::propagatedTrackDirection spr::propagateHCALBack ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const CaloGeometry geo,
const MagneticField bField,
bool  debug = false 
)

Definition at line 619 of file CaloPropagateTrack.cc.

624  {
626  spr::trackAtOrigin trk = spr::simTrackAtOrigin(thisTrk, SimTk, SimVtx, debug);
628  trkD.ok = trk.ok;
629  trkD.detIdECAL = DetId(0);
630  trkD.detIdHCAL = DetId(0);
631  trkD.detIdEHCAL = DetId(0);
632 #ifdef EDM_ML_DEBUG
633  if (debug)
634  std::cout << "Propagate track " << thisTrk << " charge " << trk.charge << " position " << trk.position << " p "
635  << trk.momentum << " Flag " << trkD.ok << std::endl;
636 #endif
637  if (trkD.ok) {
640  const GlobalPoint point = GlobalPoint(info.point.x(), info.point.y(), info.point.z());
641  trkD.okHCAL = info.ok;
642  trkD.pointHCAL = point;
643  trkD.directionHCAL = info.direction;
644  if (trkD.okHCAL) {
645  trkD.detIdHCAL = gHB->getClosestCell(point);
646  }
647  }
648 #ifdef EDM_ML_DEBUG
649  if (debug) {
650  std::cout << "propagateCALO:: for track [" << thisTrk << "] Flag: " << trkD.ok << " ECAL (" << trkD.okECAL
651  << ") HCAL (" << trkD.okHCAL << ")" << std::endl;
652  if (trkD.okHCAL) {
653  std::cout << " HCAL point " << trkD.pointHCAL << " direction " << trkD.directionHCAL << " "
654  << (HcalDetId)(trkD.detIdHCAL);
655  }
656  }
657 #endif
658  return trkD;
659  }

References Calorimetry_cff::bField, spr::trackAtOrigin::charge, gather_cfg::cout, debug, spr::propagatedTrackDirection::detIdECAL, spr::propagatedTrackDirection::detIdEHCAL, spr::propagatedTrackDirection::detIdHCAL, spr::propagatedTrackDirection::directionHCAL, etaBEHcal, CaloSubdetectorGeometry::getClosestCell(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, info(), spr::trackAtOrigin::momentum, spr::propagatedTrackDirection::ok, spr::trackAtOrigin::ok, spr::propagatedTrackDirection::okECAL, spr::propagatedTrackDirection::okHCAL, point, spr::propagatedTrackDirection::pointHCAL, spr::trackAtOrigin::position, propagateCalo(), rBackHB, simTrackAtOrigin(), and zBackHE.

Referenced by HcalHBHEMuonSimAnalyzer::analyze(), HcalHBHEMuonAnalyzer::analyze(), and HcalHBHEMuonHighEtaAnalyzer::analyzeTracks().

◆ propagateIdECAL()

std::pair< DetId, bool > spr::propagateIdECAL ( const HcalDetId id,
const CaloGeometry geo,
const MagneticField bField,
bool  debug = false 
)

Definition at line 706 of file CaloPropagateTrack.cc.

709  {
710  const HcalGeometry* gHB = static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, HcalBarrel));
711  const GlobalPoint vertex(0, 0, 0);
712  const GlobalPoint hit(gHB->getPosition(id));
713  const GlobalVector momentum = GlobalVector(hit.x(), hit.y(), hit.z());
714  std::pair<math::XYZPoint, bool> info = propagateECAL(vertex, momentum, 0, bField, debug);
715  DetId eId(0);
716  if (info.second) {
717  const GlobalPoint point(info.first.x(), info.first.y(), info.first.z());
718  if (std::abs(point.eta()) < spr::etaBEEcal) {
720  eId = barrelGeom->getClosestCell(point);
721  } else {
723  if (endcapGeom)
724  eId = endcapGeom->getClosestCell(point);
725  else
726  info.second = false;
727  }
728  }
729  return std::pair<DetId, bool>(eId, info.second);
730  }

References funct::abs(), Calorimetry_cff::bField, debug, DetId::Ecal, EcalBarrel, EcalEndcap, etaBEEcal, CaloSubdetectorGeometry::getClosestCell(), HcalGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, info(), point, propagateECAL(), bphysicsOniaDQM_cfi::vertex, hit::x, hit::y, and hit::z.

◆ propagateTracker()

std::pair< math::XYZPoint, bool > spr::propagateTracker ( const reco::Track track,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 773 of file CaloPropagateTrack.cc.

773  {
774  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
775  const GlobalVector momentum(track->px(), track->py(), track->pz());
776  int charge(track->charge());
777  spr::propagatedTrack track1 =
779  return std::pair<math::XYZPoint, bool>(track1.point, track1.ok);
780  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBETrak, propagateCalo(), rBackTB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zBackTE.

◆ propagateTrackerEnd()

std::pair< math::XYZPoint, double > spr::propagateTrackerEnd ( const reco::Track track,
const MagneticField bField,
bool  debug = false 
)

Definition at line 782 of file CaloPropagateTrack.cc.

788  {
789 
790  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
791  const GlobalVector momentum(track->px(), track->py(), track->pz());
792  int charge(track->charge());
793  float radius = track->outerPosition().Rho();
794  float zdist = track->outerPosition().Z();
795 #ifdef EDM_ML_DEBUG
796  if (debug)
797  std::cout << "propagateTrackerEnd:: Vertex " << vertex << " Momentum " << momentum << " Charge " << charge
798  << " Radius " << radius << " Z " << zdist << std::endl;
799 #endif
800  FreeTrajectoryState fts(vertex, momentum, charge, bField);
804 
806 
807  TrajectoryStateOnSurface tsose = myAP.propagate(fts, *endcap);
808  TrajectoryStateOnSurface tsosb = myAP.propagate(fts, *barrel);
809 
810  math::XYZPoint point(-999., -999., -999.);
811  bool ok = false;
812  GlobalVector direction(0, 0, 1);
813  if (tsosb.isValid() && std::abs(zdist) < spr::zFrontTE) {
814  point.SetXYZ(tsosb.globalPosition().x(), tsosb.globalPosition().y(), tsosb.globalPosition().z());
815  direction = tsosb.globalDirection();
816  ok = true;
817  } else if (tsose.isValid()) {
818  point.SetXYZ(tsose.globalPosition().x(), tsose.globalPosition().y(), tsose.globalPosition().z());
819  direction = tsose.globalDirection();
820  ok = true;
821  }
822 
823  double length = -1;
824  if (ok) {
825  math::XYZPoint vDiff(point.x() - vertex.x(), point.y() - vertex.y(), point.z() - vertex.z());
826  double dphi = direction.phi() - momentum.phi();
827  double rdist = std::sqrt(vDiff.x() * vDiff.x() + vDiff.y() * vDiff.y());
828  double rat = 0.5 * dphi / std::sin(0.5 * dphi);
829  double dZ = vDiff.z();
830  double dS = rdist * rat; //dZ*momentum.z()/momentum.perp();
831  length = std::sqrt(dS * dS + dZ * dZ);
832 #ifdef EDM_ML_DEBUG
833  if (debug)
834  std::cout << "propagateTracker:: Barrel " << tsosb.isValid() << " Endcap " << tsose.isValid() << " OverAll "
835  << ok << " Point " << point << " RDist " << rdist << " dS " << dS << " dS/pt "
836  << rdist * rat / momentum.perp() << " zdist " << dZ << " dz/pz " << dZ / momentum.z() << " Length "
837  << length << std::endl;
838 #endif
839  }
840 
841  return std::pair<math::XYZPoint, double>(point, length);
842  }

References funct::abs(), alongMomentum, Reference_intrackfit_cff::barrel, Calorimetry_cff::bField, Plane::build(), Cylinder::build(), ALCARECOTkAlJpsiMuMu_cff::charge, gather_cfg::cout, debug, makeMuonMisalignmentScenario::endcap, TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), M_PI, convertSQLiteXML::ok, PV3DBase< T, PVType, FrameType >::phi(), point, AnalyticalPropagator::propagate(), CosmicsPD_Skims::radius, funct::sin(), mathSSE::sqrt(), HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), distTCMET_cfi::zdist, and zFrontTE.

Referenced by IsolatedTracksNxN::analyze().

◆ propagateTrackToECAL() [1/2]

propagatedTrack spr::propagateTrackToECAL ( const reco::Track track,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 679 of file CaloPropagateTrack.cc.

679  {
680  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
681  const GlobalVector momentum(track->px(), track->py(), track->pz());
682  int charge(track->charge());
684  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBEEcal, propagateCalo(), rFrontEB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zFrontEE.

Referenced by propagateCALO().

◆ propagateTrackToECAL() [2/2]

propagatedTrack spr::propagateTrackToECAL ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const MagneticField bfield,
bool  debug = false 
)

◆ propagateTrackToHCAL() [1/2]

spr::propagatedTrack spr::propagateTrackToHCAL ( const reco::Track track,
const MagneticField bfield,
bool  debug = false 
)

Definition at line 739 of file CaloPropagateTrack.cc.

739  {
740  const GlobalPoint vertex(track->vx(), track->vy(), track->vz());
741  const GlobalVector momentum(track->px(), track->py(), track->pz());
742  int charge(track->charge());
744  }

References ALCARECOTkAlJpsiMuMu_cff::charge, debug, etaBEHcal, propagateCalo(), rFrontHB, HLT_2018_cff::track, bphysicsOniaDQM_cfi::vertex, and zFrontHE.

Referenced by propagateCALO().

◆ propagateTrackToHCAL() [2/2]

spr::propagatedTrack spr::propagateTrackToHCAL ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
const MagneticField bfield,
bool  debug = false 
)

◆ simpleMove()

void spr::simpleMove ( DetId det,
const CaloDirection dir,
const CaloSubdetectorTopology barrelTopo,
const CaloSubdetectorTopology endcapTopo,
const EcalBarrelGeometry barrelGeom,
const EcalEndcapGeometry endcapGeom,
std::vector< DetId > &  cells,
int &  flag,
bool  debug = false,
bool  igNoreTransition = true 
)

Definition at line 697 of file MatrixECALDetIds.cc.

710  {
711 
712  DetId cell;
713  ok = 0;
714  if (det.subdetId() == EcalBarrel) {
715  EBDetId detId = det;
716  std::vector<DetId> neighbours = barrelTopo->getNeighbours(detId, dir);
717  if (!neighbours.empty() && !neighbours[0].null()) {
718  cells.push_back(neighbours[0]);
719  cell = neighbours[0];
720  ok = 1;
721  } else {
722  const int ietaAbs(detId.ietaAbs()); // abs value of ieta
723  if (EBDetId::MAX_IETA == ietaAbs && (!ignoreTransition) && endcapGeom) {
724  // get ee nbrs for for end of barrel crystals
726  // take closest neighbour on the other side, that is in the endcap
727  cell = *(ol.begin());
728  neighbours = endcapTopo->getNeighbours(cell, dir);
729  if (!neighbours.empty() && !neighbours[0].null())
730  ok = 1;
731  else
732  ok = -1;
733  for (EcalBarrelGeometry::OrderedListOfEEDetId::const_iterator iptr = ol.begin(); iptr != ol.end(); ++iptr)
734  cells.push_back(*iptr);
735  }
736  }
737  } else if (det.subdetId() == EcalEndcap && endcapGeom) {
738  EEDetId detId = det;
739  std::vector<DetId> neighbours = endcapTopo->getNeighbours(detId, dir);
740  if (!neighbours.empty() && !neighbours[0].null()) {
741  cells.push_back(neighbours[0]);
742  cell = neighbours[0];
743  ok = 1;
744  } else {
745  // are we on the outer ring ?
746  const int iphi(detId.iPhiOuterRing());
747  // int isc = detId.isc();
748  if (iphi != 0 && (!ignoreTransition)) {
749  // get eb nbrs for for end of endcap crystals
751  // take closest neighbour on the other side, that is in the barrel.
752  cell = *(ol.begin());
753  neighbours = barrelTopo->getNeighbours(cell, dir);
754  if (!neighbours.empty() && !neighbours[0].null())
755  ok = 1;
756  else
757  ok = -1;
758  for (EcalEndcapGeometry::OrderedListOfEBDetId::const_iterator iptr = ol.begin(); iptr != ol.end(); ++iptr)
759  cells.push_back(*iptr);
760  }
761  }
762  }
763 #ifdef EDM_ML_DEBUG
764  if (debug) {
765  std::cout << "simpleMove:: Move DetId 0x" << std::hex << det() << std::dec << " along " << dir << " to get 0x"
766  << std::hex << cell() << std::dec << " with flag " << ok << " # " << cells.size();
767  for (unsigned int i1 = 0; i1 < cells.size(); ++i1)
768  std::cout << " " << std::hex << cells[0]() << std::dec;
769  std::cout << std::endl;
770  }
771 #endif
772  }

References postprocess-scan-build::cells, gather_cfg::cout, debug, TauDecayModes::dec, DeadROC_duringRun::dir, EcalBarrel, EcalEndcap, EcalEndcapGeometry::getClosestBarrelCells(), EcalBarrelGeometry::getClosestEndcapCells(), CaloSubdetectorTopology::getNeighbours(), testProducerWithPsetDescEmpty_cfi::i1, EBDetId::ietaAbs(), LEDCalibrationChannels::iphi, EEDetId::iPhiOuterRing(), EBDetId::MAX_IETA, convertSQLiteXML::ok, and DetId::subdetId().

Referenced by newECALIdEW(), and newECALIdNS().

◆ simTrackAtOrigin()

spr::trackAtOrigin spr::simTrackAtOrigin ( unsigned int  thisTrk,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
bool  debug = false 
)

Definition at line 922 of file CaloPropagateTrack.cc.

929  {
930 
931  spr::trackAtOrigin trk;
932 
933  edm::SimTrackContainer::const_iterator itr = SimTk->end();
934  for (edm::SimTrackContainer::const_iterator simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
935  if (simTrkItr->trackId() == thisTrk) {
936 #ifdef EDM_ML_DEBUG
937  if (debug)
938  std::cout << "matched trackId (maximum occurance) " << thisTrk << " type " << simTrkItr->type() << std::endl;
939 #endif
940  itr = simTrkItr;
941  break;
942  }
943  }
944 
945  if (itr != SimTk->end()) {
946  int vertIndex = itr->vertIndex();
947  if (vertIndex != -1 && vertIndex < (int)SimVtx->size()) {
948  edm::SimVertexContainer::const_iterator simVtxItr = SimVtx->begin();
949  for (int iv = 0; iv < vertIndex; iv++)
950  simVtxItr++;
951  const math::XYZTLorentzVectorD pos = simVtxItr->position();
952  const math::XYZTLorentzVectorD mom = itr->momentum();
953  trk.ok = true;
954  trk.charge = (int)(itr->charge());
955  trk.position = GlobalPoint(pos.x(), pos.y(), pos.z());
956  trk.momentum = GlobalVector(mom.x(), mom.y(), mom.z());
957  }
958  }
959 #ifdef EDM_ML_DEBUG
960  if (debug)
961  std::cout << "Track flag " << trk.ok << " Position " << trk.position << " Momentum " << trk.momentum << std::endl;
962 #endif
963  return trk;
964  }

References spr::trackAtOrigin::charge, gather_cfg::cout, debug, createfilelist::int, spr::trackAtOrigin::momentum, spr::trackAtOrigin::ok, and spr::trackAtOrigin::position.

Referenced by HcalHBHEMuonSimAnalyzer::analyze(), propagateCALO(), propagateHCAL(), propagateHCALBack(), propagateTrackToECAL(), and propagateTrackToHCAL().

◆ timeOfFlight()

double spr::timeOfFlight ( DetId  id,
const CaloGeometry geo,
bool  debug = false 
)

Definition at line 17 of file CaloSimInfo.cc.

17  {
18  GlobalPoint point = (id.det() == DetId::Hcal)
19  ? (static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(id)))->getPosition(id)
20  : geo->getPosition(id);
21  double R = point.mag();
22  double tmp = R / CLHEP::c_light / CLHEP::ns;
23 #ifdef EDM_ML_DEBUG
24  if (debug) {
25  DetId::Detector det = id.det();
26  int subdet = id.subdetId();
27  double eta = point.eta();
28  double theta = 2.0 * atan(exp(-std::abs(eta)));
29  double dist = 0;
30  if (det == DetId::Ecal) {
31  if (subdet == static_cast<int>(EcalBarrel)) {
32  const double rEB = spr::rFrontEB * CLHEP::cm;
33  dist = rEB / sin(theta);
34  } else if (subdet == static_cast<int>(EcalEndcap)) {
35  const double zEE = spr::zFrontEE * CLHEP::cm;
36  dist = zEE / cos(theta);
37  } else {
38  const double zES = spr::zFrontES * CLHEP::cm;
39  dist = zES / cos(theta);
40  }
41  } else if (det == DetId::Hcal) {
42  if (subdet == static_cast<int>(HcalBarrel)) {
43  const double rHB = spr::rFrontHB * CLHEP::cm;
44  dist = rHB / sin(theta);
45  } else if (subdet == static_cast<int>(HcalEndcap)) {
46  const double zHE = spr::zFrontHE * CLHEP::cm;
47  dist = zHE / cos(theta);
48  } else if (subdet == static_cast<int>(HcalOuter)) {
49  const double rHO = spr::rFrontHO * CLHEP::cm;
50  dist = rHO / sin(theta);
51  } else {
52  const double zHF = spr::zFrontHF * CLHEP::cm;
53  dist = zHF / cos(theta);
54  }
55  }
56  double tmp1 = dist / CLHEP::c_light / CLHEP::ns;
57 
58  std::cout << "Detector " << det << "/" << subdet << " Eta/Theta " << eta << "/" << theta / CLHEP::deg << " Dist "
59  << dist / CLHEP::cm << " R " << R << " TOF " << tmp << ":" << tmp1 << std::endl;
60  }
61 #endif
62  return tmp;
63  }

References funct::abs(), funct::cos(), gather_cfg::cout, debug, DetId::Ecal, EcalBarrel, EcalEndcap, PVValHelper::eta, JetChargeProducer_cfi::exp, CaloGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, HcalEndcap, HcalOuter, point, dttmaxenums::R, rFrontEB, rFrontHB, rFrontHO, funct::sin(), theta(), createJobs::tmp, zFrontEE, zFrontES, zFrontHE, and zFrontHF.

Referenced by ME0HitsValidation::analyze(), ME0DigisValidation::analyze(), GEMDigiSimLink::GEMDigiSimLink(), and RPCDigiSimLink::RPCDigiSimLink().

◆ validSimTrack()

bool spr::validSimTrack ( unsigned int  simTkId,
edm::SimTrackContainer::const_iterator  thisTrkItr,
edm::Handle< edm::SimTrackContainer > &  SimTk,
edm::Handle< edm::SimVertexContainer > &  SimVtx,
bool  debug = false 
)

Definition at line 149 of file MatchingSimTrack.cc.

153  {
154 #ifdef EDM_ML_DEBUG
155  if (debug)
156  std::cout << "Inside validSimTrack: trackId " << thisTrkItr->trackId() << " vtxIndex " << thisTrkItr->vertIndex()
157  << " to be matched to " << simTkId << std::endl;
158 #endif
159  //This track originates from simTkId
160  if (thisTrkItr->trackId() == simTkId)
161  return true;
162 
163  //Otherwise trace back the history using SimTracks and SimVertices
164  int vertIndex = thisTrkItr->vertIndex();
165  if (vertIndex == -1 || vertIndex >= (int)SimVtx->size())
166  return false;
167 
168  edm::SimVertexContainer::const_iterator simVtxItr = SimVtx->begin();
169  for (int iv = 0; iv < vertIndex; iv++)
170  simVtxItr++;
171  int parent = simVtxItr->parentIndex();
172 #ifdef EDM_ML_DEBUG
173  if (debug)
174  std::cout << "validSimTrack:: parent index " << parent << " ";
175 #endif
176  if (parent < 0 && simVtxItr != SimVtx->begin()) {
177  const math::XYZTLorentzVectorD pos1 = simVtxItr->position();
178  for (simVtxItr = SimVtx->begin(); simVtxItr != SimVtx->end(); ++simVtxItr) {
179  if (simVtxItr->parentIndex() > 0) {
180  const math::XYZTLorentzVectorD pos2 = pos1 - simVtxItr->position();
181  double dist = pos2.P();
182  if (dist < 0.001) {
183  parent = simVtxItr->parentIndex();
184  break;
185  }
186  }
187  }
188  }
189 #ifdef EDM_ML_DEBUG
190  if (debug)
191  std::cout << "final index " << parent << std::endl;
192  ;
193 #endif
194  for (edm::SimTrackContainer::const_iterator simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
195  if ((int)simTrkItr->trackId() == parent && simTrkItr != thisTrkItr)
196  return validSimTrack(simTkId, simTrkItr, SimTk, SimVtx, debug);
197  }
198 
199  return false;
200  }

References begin, gather_cfg::cout, debug, and class-composition::parent.

Referenced by matchedSimTrackId(), and matchedSimTrackInfo().

Variable Documentation

◆ deltaEta

const double spr::deltaEta = 0.087
static

◆ etaBEEcal

const double spr::etaBEEcal = 1.479
static

◆ etaBEHcal

const double spr::etaBEHcal = 1.392
static

◆ etaBETrak

const double spr::etaBETrak = 1.705
static

Definition at line 23 of file CaloConstants.h.

Referenced by propagateTracker().

◆ rBackHB

const double spr::rBackHB = 288.8
static

Definition at line 17 of file CaloConstants.h.

Referenced by propagateHCALBack().

◆ rBackTB

const double spr::rBackTB = 109.0
static

Definition at line 22 of file CaloConstants.h.

Referenced by propagateTracker().

◆ rFrontEB

const double spr::rFrontEB = 129.4
static

◆ rFrontHB

const double spr::rFrontHB = 180.7
static

◆ rFrontHO

const double spr::rFrontHO = 384.8
static

Definition at line 18 of file CaloConstants.h.

Referenced by timeOfFlight().

◆ zBackHE

const double spr::zBackHE = 549.3
static

Definition at line 16 of file CaloConstants.h.

Referenced by propagateHCALBack().

◆ zBackTE

const double spr::zBackTE = 290.0
static

Definition at line 21 of file CaloConstants.h.

Referenced by propagateTracker().

◆ zFrontEE

const double spr::zFrontEE = 319.2
static

◆ zFrontES

const double spr::zFrontES = 303.2
static

Definition at line 11 of file CaloConstants.h.

Referenced by timeOfFlight().

◆ zFrontHE

const double spr::zFrontHE = 402.7
static

◆ zFrontHF

const double spr::zFrontHF = 1115.
static

Definition at line 19 of file CaloConstants.h.

Referenced by timeOfFlight().

◆ zFrontTE

const double spr::zFrontTE = 110.0
static

Definition at line 20 of file CaloConstants.h.

Referenced by propagateTrackerEnd().

reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
Vector3DBase
Definition: Vector3DBase.h:8
reco::Track::outerMomentum
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:65
spr::propagatedTrackID::phiECAL
double phiECAL
Definition: CaloPropagateTrack.h:49
TrajectoryStateOnSurface::globalDirection
GlobalVector globalDirection() const
Definition: TrajectoryStateOnSurface.h:67
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
TkRotation< float >
spr::zFrontHF
static const double zFrontHF
Definition: CaloConstants.h:19
spr::propagatedGenParticleID::pdgId
int pdgId
Definition: CaloPropagateTrack.h:88
CaloDirection
CaloDirection
Codes the local directions in the cell lattice.
Definition: CaloDirection.h:9
testProducerWithPsetDescEmpty_cfi.i2
i2
Definition: testProducerWithPsetDescEmpty_cfi.py:46
spr::matrixHCALIdsDepth
std::vector< DetId > matrixHCALIdsDepth(std::vector< DetId > &dets, const HcalTopology *topology, bool includeHO=false, bool debug=false)
Definition: MatrixHCALDetIds.cc:397
mps_fire.i
i
Definition: mps_fire.py:355
reco::TrackBase::qoverpError
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:699
spr::propagatedGenTrackID::charge
int charge
Definition: CaloPropagateTrack.h:75
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
EcalBarrelGeometry::getClosestEndcapCells
const OrderedListOfEEDetId * getClosestEndcapCells(EBDetId id) const
Definition: EcalBarrelGeometry.cc:338
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
edm::Handle::product
T const * product() const
Definition: Handle.h:70
spr::propagatedTrack
Definition: CaloPropagateTrack.h:33
reco::HitPattern::stripTOBLayersWithMeasurement
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:597
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
EcalSeverityLevelAlgo::severityLevel
EcalSeverityLevel::SeverityLevel severityLevel(const DetId &id) const
Evaluate status from id use channelStatus from DB.
Definition: EcalSeverityLevelAlgo.cc:85
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
spr::propagatedTrackID::detIdEHCAL
DetId detIdEHCAL
Definition: CaloPropagateTrack.h:47
reco::HitPattern::trackerLayersWithoutMeasurement
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:532
spr::rFrontEB
static const double rFrontEB
Definition: CaloConstants.h:10
EcalEndcapGeometry
Definition: EcalEndcapGeometry.h:20
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
CaloTowerConstituentsMap::constituentsOf
std::vector< DetId > constituentsOf(const CaloTowerDetId &id) const
Get the constituent detids for this tower id ( not yet implemented )
Definition: CaloTowerConstituentsMap.cc:69
detailsBasic3DVector::z
float float float z
Definition: extBasic3DVector.h:14
spr::zFrontES
static const double zFrontES
Definition: CaloConstants.h:11
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:605
X
#define X(str)
Definition: MuonsGrabber.cc:38
CaloGeometry::getPosition
GlobalPoint getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:50
spr::propagatedGenTrackID::directionHCAL
GlobalVector directionHCAL
Definition: CaloPropagateTrack.h:74
heppy_check.dirs
dirs
Definition: heppy_check.py:26
EBDetId
Definition: EBDetId.h:17
CaloTopology::south
std::vector< DetId > south(const DetId &id) const
Get the neighbors of the given cell in south direction.
Definition: CaloTopology.cc:44
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
reco::TrackBase::undefQuality
Definition: TrackBase.h:151
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
globals_cff.id1
id1
Definition: globals_cff.py:32
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
gather_cfg.cout
cout
Definition: gather_cfg.py:144
pos
Definition: PixelAliasList.h:18
singleTopDQM_cfi.select
select
Definition: singleTopDQM_cfi.py:50
HLT_2018_cff.eta1
eta1
Definition: HLT_2018_cff.py:8220
DetId::Hcal
Definition: DetId.h:28
testProducerWithPsetDescEmpty_cfi.i1
i1
Definition: testProducerWithPsetDescEmpty_cfi.py:45
TrackerHitAssociator::associateHit
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
Definition: TrackerHitAssociator.cc:212
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:3
distTCMET_cfi.corner
corner
Definition: distTCMET_cfi.py:38
spr::newHCALIdEW
std::vector< DetId > newHCALIdEW(std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftEast, int ieta, bool debug=false)
Definition: MatrixHCALDetIds.cc:291
spr::propagatedGenParticleID::pointECAL
GlobalPoint pointECAL
Definition: CaloPropagateTrack.h:86
spr::zBackHE
static const double zBackHE
Definition: CaloConstants.h:16
TrackDetMatchInfo::trkGlobPosAtHcal
math::XYZPoint trkGlobPosAtHcal
Definition: TrackDetMatchInfo.h:40
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
spr::debugEcalDets
void debugEcalDets(unsigned int, const DetId &, bool)
Definition: DebugInfo.cc:11
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
edm::SortedCollection< EcalRecHit >
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:152
spr::propagateTrackToECAL
spr::propagatedTrack propagateTrackToECAL(const reco::Track *, const MagneticField *, bool debug=false)
Definition: CaloPropagateTrack.cc:679
ReferenceCountingPointer< Plane >
ESDetId
Definition: ESDetId.h:15
spr::propagatedGenTrackID::pdgId
int pdgId
Definition: CaloPropagateTrack.h:75
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
HcalBarrel
Definition: HcalAssistant.h:33
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
EZArrayFL
Definition: EZArrayFL.h:20
spr::matrixECALIds
void matrixECALIds(const DetId &det, int ieta, int iphi, const CaloGeometry *geo, const CaloTopology *caloTopology, std::vector< DetId > &vdets, bool debug=false, bool igNoreTransition=true)
Definition: MatrixECALDetIds.cc:16
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
EcalEndcapGeometry::present
bool present(const DetId &id) const override
is this detid present in the geometry?
Definition: EcalEndcapGeometry.cc:450
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
spr::propagatedGenParticleID::trkItr
reco::GenParticleCollection::const_iterator trkItr
Definition: CaloPropagateTrack.h:89
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
spr::getDistInPlaneTrackDir
double getDistInPlaneTrackDir(const GlobalPoint &caloPoint, const GlobalVector &caloVector, const GlobalPoint &rechitPoint, bool debug=false)
Definition: FindDistCone.cc:12
TrackDetMatchInfo::isGoodHcal
bool isGoodHcal
Definition: TrackDetMatchInfo.h:48
spr::rFrontHO
static const double rFrontHO
Definition: CaloConstants.h:18
getRawEnergy
float getRawEnergy(const HcalRecHit &h, float valueIfNoSuchMember=-1.0e20)
Definition: rawEnergy.h:227
EcalBarrel
Definition: EcalSubdetector.h:10
distTCMET_cfi.zdist
zdist
Definition: distTCMET_cfi.py:37
EcalSeverityLevel::kWeird
Definition: EcalSeverityLevel.h:23
HLT_2018_cff.maxDepth
maxDepth
Definition: HLT_2018_cff.py:7356
parameters
parameters
Definition: BeamSpot_PayloadInspector.cc:14
CaloTopology::north
std::vector< DetId > north(const DetId &id) const
Get the neighbors of the given cell in north direction.
Definition: CaloTopology.cc:39
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
CastorDataFrameFilter_impl::energySum
double energySum(const DataFrame &df, int fs, int ls)
Definition: CastorDataFrameFilter.cc:22
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
spr::propagateCalo
spr::propagatedTrack propagateCalo(const GlobalPoint &vertex, const GlobalVector &momentum, int charge, const MagneticField *, float zdist, float radius, float corner, bool debug=false)
Definition: CaloPropagateTrack.cc:844
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
spr::findDetIdCalo
const DetId findDetIdCalo(const CaloSubdetectorGeometry *geo, double theta, double phi, double radius, bool debug=false)
Definition: DetIdFromEtaPhi.cc:50
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
CaloTopology::up
std::vector< DetId > up(const DetId &id) const
Get the neighbors of the given cell in up direction (outward)
Definition: CaloTopology.cc:49
DetId
Definition: DetId.h:17
spr::propagatedTrackID::ok
bool ok
Definition: CaloPropagateTrack.h:46
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
reco::HitPattern
Definition: HitPattern.h:147
dqmdumpme.last
last
Definition: dqmdumpme.py:56
reco::Track::innerMomentum
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:59
debug
#define debug
Definition: HDRShower.cc:19
Vector3DBase::unit
Vector3DBase unit() const
Definition: Vector3DBase.h:54
spr::propagatedGenTrackID::detIdEHCAL
DetId detIdEHCAL
Definition: CaloPropagateTrack.h:72
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
spr::matrixHCALIds
std::vector< DetId > matrixHCALIds(std::vector< DetId > &dets, const HcalTopology *topology, int ieta, int iphi, bool includeHO=false, bool debug=false)
Definition: MatrixHCALDetIds.cc:15
spr::deltaEta
static const double deltaEta
Definition: CaloConstants.h:8
reco::HitPattern::trackerLayersWithMeasurement
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:513
EAST
Definition: CaloDirection.h:14
spr::propagatedGenParticleID::directionECAL
GlobalVector directionECAL
Definition: CaloPropagateTrack.h:87
NORTH
Definition: CaloDirection.h:18
ecaldqm::topology
const CaloTopology * topology(nullptr)
spr::propagatedGenParticleID::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:84
spr::propagatedTrackDirection::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:59
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
PVValHelper::eta
Definition: PVValidationHelpers.h:69
HLT_2018_cff.navigator
navigator
Definition: HLT_2018_cff.py:11734
spr::propagatedTrackID::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:46
spr::propagatedGenTrackID
Definition: CaloPropagateTrack.h:66
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
reco::Track
Definition: Track.h:27
spr::coneChargeIsolation
double coneChargeIsolation(const edm::Event &iEvent, const edm::EventSetup &iSetup, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, const std::string &theTrackQuality, int &nNearTRKs, int &nLayers_maxNearP, int &trkQual_maxNearP, double &maxNearP_goodTrk, const GlobalPoint &hpoint1, const GlobalVector &trackMom, double dR)
Definition: ChargeIsolation.cc:224
spr::zFrontEE
static const double zFrontEE
Definition: CaloConstants.h:9
spr::newHCALIdNS
std::vector< DetId > newHCALIdNS(std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftNorth, int ieta, int iphi, bool debug=false)
Definition: MatrixHCALDetIds.cc:106
spr::trackAtOrigin
Definition: CaloPropagateTrack.h:92
HcalOuter
Definition: HcalAssistant.h:35
spr::propagatedGenParticleID::directionHCAL
GlobalVector directionHCAL
Definition: CaloPropagateTrack.h:87
reco::Track::recHits
auto recHits() const
Access to reconstructed hits on the track.
Definition: Track.h:85
spr::propagatedTrackID::etaECAL
double etaECAL
Definition: CaloPropagateTrack.h:48
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
reco::TrackBase::charge
int charge() const
track electric charge
Definition: TrackBase.h:581
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
spr::etaBEEcal
static const double etaBEEcal
Definition: CaloConstants.h:12
spr::energyECALTower
double energyECALTower(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const EcalTrigTowerConstituentsMap &ttMap, bool debug=false)
reco::TrackBase::dz
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:602
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
dqmdumpme.k
k
Definition: dqmdumpme.py:60
ctfWithMaterialTrackMCMatch_cfi.associator
associator
Definition: ctfWithMaterialTrackMCMatch_cfi.py:7
EZArrayFL::const_iterator
MgrType::const_iterator const_iterator
Definition: EZArrayFL.h:24
Point3DBase< float, GlobalTag >
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:620
spr::energyECAL
double energyECAL(std::vector< DetId > &vdets, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
HLT_2018_cff.eta2
eta2
Definition: HLT_2018_cff.py:8221
hit::z
double z
Definition: SiStripHitEffFromCalibTree.cc:91
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
spr::propagateECAL
std::pair< math::XYZPoint, bool > propagateECAL(const reco::Track *, const MagneticField *, bool debug=false)
Definition: CaloPropagateTrack.cc:699
EEDetId
Definition: EEDetId.h:14
spr::extraIds
void extraIds(const DetId &det, std::vector< DetId > &dets, int ietaE, int ietaW, int iphiN, int iphiS, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, std::vector< DetId > &cells, bool debug=false)
Definition: MatrixECALDetIds.cc:774
spr::eHCALThreshold
double eHCALThreshold(int subdet, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100)
Definition: eHCALMatrix.cc:261
spr::propagatedGenParticleID::charge
int charge
Definition: CaloPropagateTrack.h:88
EcalEndcap
Definition: EcalSubdetector.h:10
Plane::build
static PlanePointer build(Args &&... args)
Definition: Plane.h:33
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
CaloSubdetectorTopology::getNeighbours
virtual std::vector< DetId > getNeighbours(const DetId &id, const CaloDirection &dir) const
Definition: CaloSubdetectorTopology.h:77
reco::HitPattern::printHitPattern
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
Definition: HitPattern.cc:803
HLT_2018_cff.doBarrel
doBarrel
Definition: HLT_2018_cff.py:78799
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
multi5x5BasicClusters_cfi.doEndcap
doEndcap
Definition: multi5x5BasicClusters_cfi.py:8
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
spr::propagatedTrackID::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:47
spr::propagatedTrackDirection::pointHCAL
GlobalPoint pointHCAL
Definition: CaloPropagateTrack.h:61
spr::newECALIdEW
std::vector< DetId > newECALIdEW(std::vector< DetId > &dets, unsigned int last, int ieta, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
Definition: MatrixECALDetIds.cc:537
core
Definition: __init__.py:1
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
spr::chargeIsolation
bool chargeIsolation(const DetId anyCell, std::vector< DetId > &vdets)
Definition: ChargeIsolation.cc:213
align::ID
uint32_t ID
Definition: Definitions.h:24
spr::propagatedTrackID::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:47
HcalGeometry::getPosition
GlobalPoint getPosition(const DetId &id) const
Definition: HcalGeometry.cc:178
PVValHelper::phi
Definition: PVValidationHelpers.h:68
CaloTopology::east
std::vector< DetId > east(const DetId &id) const
Get the neighbors of the given cell in east direction.
Definition: CaloTopology.cc:29
EcalBarrelGeometry
Definition: EcalBarrelGeometry.h:19
spr::zFrontTE
static const double zFrontTE
Definition: CaloConstants.h:20
spr::propagatedTrackDirection::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:60
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
spr::trackAtOrigin::ok
bool ok
Definition: CaloPropagateTrack.h:94
spr::propagatedGenParticleID::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:85
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
spr::propagatedTrackID::etaHCAL
double etaHCAL
Definition: CaloPropagateTrack.h:48
CaloTopology::getSubdetectorTopology
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:17
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
spr::cGenSimInfo
void cGenSimInfo(std::vector< DetId > &vdets, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, bool ifECAL, spr::genSimInfo &info, bool debug=false)
Definition: GenSimInfo.cc:195
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
Cylinder::build
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, Bounds *bounds=nullptr)
Definition: Cylinder.h:45
spr::propagatedTrackID::trkItr
reco::TrackCollection::const_iterator trkItr
Definition: CaloPropagateTrack.h:50
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
DOFs::Z
Definition: AlignPCLThresholdsWriter.cc:37
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
EcalBarrelGeometry::present
bool present(const DetId &id) const override
is this detid present in the geometry?
Definition: EcalBarrelGeometry.cc:441
spr::findHit
std::vector< typename T::const_iterator > findHit(edm::Handle< T > &hits, DetId thisDet, bool debug=false)
spr::rFrontHB
static const double rFrontHB
Definition: CaloConstants.h:14
spr::EtaPhi
Definition: FindEtaPhi.h:14
PVValHelper::dy
Definition: PVValidationHelpers.h:49
DetId::Detector
Detector
Definition: DetId.h:24
CaloTowerConstituentsMap::towerOf
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
Definition: CaloTowerConstituentsMap.cc:26
spr::propagatedGenParticleID::ok
bool ok
Definition: CaloPropagateTrack.h:84
CaloSubdetectorTopology
Definition: CaloSubdetectorTopology.h:17
CaloSubdetectorGeometry::getClosestCell
virtual DetId getClosestCell(const GlobalPoint &r) const
Definition: CaloSubdetectorGeometry.cc:44
reco::TrackBase::normalizedChi2
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:578
spr::simTrackAtOrigin
spr::trackAtOrigin simTrackAtOrigin(unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
Definition: CaloPropagateTrack.cc:922
DetId::Ecal
Definition: DetId.h:27
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
cms::cuda::for
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
Definition: HistoContainer.h:27
nano_cff.genEvent
genEvent
Definition: nano_cff.py:97
spr::propagatedTrackDirection::directionECAL
GlobalVector directionECAL
Definition: CaloPropagateTrack.h:62
Vector3DBase::dot
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:99
spr::propagatedTrackID::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:46
spr::propagatedGenTrackID::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:71
spr::propagatedTrackDirection::directionHCAL
GlobalVector directionHCAL
Definition: CaloPropagateTrack.h:62
spr::propagatedGenParticleID::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:84
TrackDetMatchInfo::trkGlobPosAtEcal
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
Definition: TrackDetMatchInfo.h:39
reco::HitPattern::TRACK_HITS
Definition: HitPattern.h:155
spr::propagatedGenTrackID::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:72
EBDetId::validDetId
static bool validDetId(int i, int j)
check if a valid index combination
Definition: EBDetId.h:118
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
spr::propagateCALO
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
Definition: CaloPropagateTrack.cc:141
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
spr::propagatedTrackDirection::ok
bool ok
Definition: CaloPropagateTrack.h:59
HcalForward
Definition: HcalAssistant.h:36
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
EcalPreshower
Definition: EcalSubdetector.h:10
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:489
spr::etaBETrak
static const double etaBETrak
Definition: CaloConstants.h:23
spr::trackAtOrigin::position
GlobalPoint position
Definition: CaloPropagateTrack.h:96
TrackDetMatchInfo
Definition: TrackDetMatchInfo.h:14
AnalyticalPropagator
Definition: AnalyticalPropagator.h:22
spr::propagatedGenTrackID::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:71
spr::propagatedGenParticleID
Definition: CaloPropagateTrack.h:79
EcalEndcapGeometry::getClosestBarrelCells
const OrderedListOfEBDetId * getClosestBarrelCells(EEDetId id) const
Definition: EcalEndcapGeometry.cc:372
reco::HitPattern::numberOfAllHits
int numberOfAllHits(HitCategory category) const
Definition: HitPattern.h:773
spr::propagatedTrackDirection::pointECAL
GlobalPoint pointECAL
Definition: CaloPropagateTrack.h:61
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
DOFs::Y
Definition: AlignPCLThresholdsWriter.cc:37
WEST
Definition: CaloDirection.h:15
spr::rBackTB
static const double rBackTB
Definition: CaloConstants.h:22
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
HcalEndcap
Definition: HcalAssistant.h:34
spr::simpleMove
void simpleMove(DetId &det, const CaloDirection &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, std::vector< DetId > &cells, int &flag, bool debug=false, bool igNoreTransition=true)
Definition: MatrixECALDetIds.cc:697
PVValHelper::dz
Definition: PVValidationHelpers.h:50
spr::trackAtOrigin::charge
int charge
Definition: CaloPropagateTrack.h:95
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
spr::zFrontHE
static const double zFrontHE
Definition: CaloConstants.h:13
spr::matchedSimTrack
edm::SimTrackContainer::const_iterator matchedSimTrack(const edm::Event &iEvent, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
Definition: MatchingSimTrack.cc:12
postprocess-scan-build.cells
cells
Definition: postprocess-scan-build.py:13
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
EBDetId::ietaAbs
int ietaAbs() const
get the absolute value of the crystal ieta
Definition: EBDetId.h:47
spr::trackAtOrigin::momentum
GlobalVector momentum
Definition: CaloPropagateTrack.h:97
spr::propagatedTrackID
Definition: CaloPropagateTrack.h:40
spr::propagatedTrackDirection::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:60
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
spr::propagatedTrackDirection::detIdEHCAL
DetId detIdEHCAL
Definition: CaloPropagateTrack.h:60
ALCARECOTkAlBeamHalo_cff.etaMax
etaMax
Definition: ALCARECOTkAlBeamHalo_cff.py:33
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
spr::propagateHCAL
std::pair< math::XYZPoint, bool > propagateHCAL(const reco::Track *, const MagneticField *, bool debug=false)
Definition: CaloPropagateTrack.cc:759
spr::propagatedGenTrackID::pointHCAL
GlobalPoint pointHCAL
Definition: CaloPropagateTrack.h:73
spr::debugHcalDets
void debugHcalDets(unsigned int, std::vector< DetId > &)
Definition: DebugInfo.cc:39
spr::propagatedTrackID::phiHCAL
double phiHCAL
Definition: CaloPropagateTrack.h:49
spr::validSimTrack
bool validSimTrack(unsigned int simTkId, edm::SimTrackContainer::const_iterator thisTrkItr, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
Definition: MatchingSimTrack.cc:149
EEDetId::validDetId
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
EEDetId::iPhiOuterRing
int iPhiOuterRing() const
Definition: EEDetId.cc:295
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
SOUTH
Definition: CaloDirection.h:11
TrackDetMatchInfo::isGoodEcal
bool isGoodEcal
Definition: TrackDetMatchInfo.h:47
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
spr::etaBEHcal
static const double etaBEHcal
Definition: CaloConstants.h:15
HcalDetId::ietaAbs
constexpr int ietaAbs() const
get the absolute value of the cell ieta
Definition: HcalDetId.h:148
reco::HitPattern::stripTECLayersWithMeasurement
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:607
spr::newECALIdNS
std::vector< DetId > newECALIdNS(std::vector< DetId > &dets, unsigned int last, int ieta, int iphi, std::vector< CaloDirection > &dir, const CaloSubdetectorTopology *barrelTopo, const CaloSubdetectorTopology *endcapTopo, const EcalBarrelGeometry *barrelGeom, const EcalEndcapGeometry *endcapGeom, bool debug=false, bool igNoreTransition=true)
Definition: MatrixECALDetIds.cc:208
spr::propagatedGenParticleID::detIdEHCAL
DetId detIdEHCAL
Definition: CaloPropagateTrack.h:85
globals_cff.id2
id2
Definition: globals_cff.py:33
spr::zBackTE
static const double zBackTE
Definition: CaloConstants.h:21
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
spr::simTkInfo
Definition: MatchingSimTrack.h:29
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
ntuplemaker.time
time
Definition: ntuplemaker.py:310
spr::propagatedGenTrackID::trkItr
HepMC::GenEvent::particle_const_iterator trkItr
Definition: CaloPropagateTrack.h:76
EgammaValidation_cff.pdgid
pdgid
Definition: EgammaValidation_cff.py:30
spr::parentSimTrack
edm::SimTrackContainer::const_iterator parentSimTrack(edm::SimTrackContainer::const_iterator thisTrkItr, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
Definition: MatchingSimTrack.cc:203
CaloTopology::west
std::vector< DetId > west(const DetId &id) const
Get the neighbors of the given cell in west direction.
Definition: CaloTopology.cc:34
spr::propagatedGenParticleID::pointHCAL
GlobalPoint pointHCAL
Definition: CaloPropagateTrack.h:86
HcalGeometry
Definition: HcalGeometry.h:17
dttmaxenums::R
Definition: DTTMax.h:29
reco::TrackBase::dxy
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:593
fastmath::etaphi
std::pair< T, T > etaphi(T x, T y, T z)
Definition: FastMath.h:162
class-composition.parent
parent
Definition: class-composition.py:88
spr::propagatedTrackDirection::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:59
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:537
begin
#define begin
Definition: vmac.h:32
PVValHelper::dx
Definition: PVValidationHelpers.h:48
spr::propagatedGenTrackID::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:72
spr::propagatedTrackDirection
Definition: CaloPropagateTrack.h:53
alongMomentum
Definition: PropagationDirection.h:4
spr::propagatedGenTrackID::pointECAL
GlobalPoint pointECAL
Definition: CaloPropagateTrack.h:73
spr::propagatedTrackDirection::trkItr
reco::TrackCollection::const_iterator trkItr
Definition: CaloPropagateTrack.h:63
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
EBDetId::MAX_IETA
static const int MAX_IETA
Definition: EBDetId.h:136
hit
Definition: SiStripHitEffFromCalibTree.cc:88
spr::propagatedGenTrackID::ok
bool ok
Definition: CaloPropagateTrack.h:71
reco::TrackBase::qoverp
double qoverp() const
q / p
Definition: TrackBase.h:584
spr::rBackHB
static const double rBackHB
Definition: CaloConstants.h:17
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
spr::propagatedGenTrackID::directionECAL
GlobalVector directionECAL
Definition: CaloPropagateTrack.h:74
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
CaloTowerDetId
Definition: CaloTowerDetId.h:12
spr::propagateTrackToHCAL
spr::propagatedTrack propagateTrackToHCAL(const reco::Track *, const MagneticField *, bool debug=false)
Definition: CaloPropagateTrack.cc:739
spr::propagatedGenParticleID::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:85