|
|
Go to the documentation of this file.
89 const uint32_t recHitFlag =
hit.flags();
157 const edm::Handle<std::vector<reco::TrackExtrapolation> >& trackextrapcoll_h,
201 for (std::vector<reco::TrackExtrapolation>::const_iterator it = trackextrapcoll_h->begin();
202 it != trackextrapcoll_h->end();
217 if (std::fabs(
point.eta()) < 1.479) {
236 if (
id.ietaAbs() == 29)
242 std::set<PhysicsTower, towercmp>::iterator it =
towers_.find(
dummy);
257 if (
id.ietaAbs() == 29)
263 std::set<PhysicsTower, towercmp>::iterator it =
towers_.find(
dummy);
281 std::set<const PhysicsTower*>& neighbors)
const {
287 std::vector<CaloTowerDetId> ids;
289 if (
id.ietaAbs() <= 20) {
302 if (
id.ietaAbs() <= 20) {
315 if (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 0)
321 if (
id.ietaAbs() == 21) {
324 }
else if (
id.ietaAbs() == 1) {
331 if (
id.ietaAbs() <= 19 || (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 0)) {
336 }
else if (
id.ietaAbs() >= 21) {
344 if (
id.ietaAbs() <= 19) {
349 }
else if (
id.ietaAbs() >= 21 || (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 1)) {
357 if (
id.ietaAbs() == 1) {
362 }
else if (
id.ietaAbs() <= 20) {
367 }
else if (
id.ietaAbs() >= 21) {
375 if (
id.ietaAbs() == 1) {
380 }
else if (
id.ietaAbs() <= 20) {
385 }
else if (
id.ietaAbs() >= 22) {
390 }
else if (
id.ietaAbs() == 21) {
401 for (std::vector<CaloTowerDetId>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
404 neighbors.insert(twr);
422 if (twr ==
nullptr) {
424 if (
id.ietaAbs() == 29)
438 if (twr ==
nullptr) {
440 if (
id.ietaAbs() == 29)
454 if (twr ==
nullptr) {
456 if (
id.ietaAbs() == 29)
540 for (std::set<const HBHERecHit*>::const_iterator it2 = it1->second->hcalhits.begin();
541 it2 != it1->second->hcalhits.end();
555 v.insert(it1->second->ecalhits.begin(), it1->second->ecalhits.end());
563 v.insert(it1->second->tracks.begin(), it1->second->tracks.end());
636 neighbors_.insert(neighbors.begin(), neighbors.end());
656 if (
hit->
id().ietaAbs() <= 26)
667 std::set<const HBHERecHit*>
v;
669 for (std::set<const HBHERecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
680 std::set<const EcalRecHit*>
v;
682 for (std::set<const EcalRecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
693 std::set<const reco::Track*>
v;
695 for (std::set<const reco::Track*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
706 std::set<const HBHERecHit*>
v;
708 for (std::set<const HBHERecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
719 std::set<const EcalRecHit*>
v;
721 for (std::set<const EcalRecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
732 std::set<const reco::Track*>
v;
734 for (std::set<const reco::Track*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
762 std::set<const PhysicsTower*> neighbors;
774 std::vector<const HBHERecHit*> hpdneighbors;
777 if (hpdneighbors.size() == 1) {
778 std::vector<const HBHERecHit*> hpdneighborsneighbors;
781 if (hpdneighborsneighbors.size() == 1 && hpdneighborsneighbors[0] ==
hit &&
782 hit->energy() > hpdneighbors[0]->energy()) {
788 std::set<const PhysicsTower*> neighbors2;
793 dihit.
insert(hpdneighbors[0], tower2, neighbors2);
796 }
else if (hpdneighbors.empty()) {
808 for (std::map<int, HBHEHitMap>::const_iterator it =
rbxs_.begin(); it !=
rbxs_.end(); ++it) {
817 for (std::map<int, HBHEHitMap>::const_iterator it =
hpds_.begin(); it !=
hpds_.end(); ++it) {
826 for (std::vector<HBHEHitMap>::const_iterator it =
dihits_.begin(); it !=
dihits_.end(); ++it) {
827 if (it->hitEnergy() >
energy)
834 for (std::vector<HBHEHitMap>::const_iterator it =
monohits_.begin(); it !=
monohits_.end(); ++it) {
835 if (it->hitEnergy() >
energy)
842 std::vector<const HBHERecHit*>& neighbors,
844 std::set<const PhysicsTower*>
temp;
851 for (std::set<const PhysicsTower*>::const_iterator it1 =
temp.begin(); it1 !=
temp.end(); ++it1) {
852 for (std::set<const HBHERecHit*>::const_iterator it2 = (*it1)->hcalhits.begin(); it2 != (*it1)->hcalhits.end();
856 neighbors.push_back(hit2);
double trackEnergyNeighborTowers_
T const * product() const
void calcEcalNeighborTowers_(void) const
int ietaAbs() const
get the absolute value of the tower ieta
void tracksNeighborTowers(std::set< const reco::Track * > &v) const
double ecalEnergyNeighborTowers_
std::set< const HBHERecHit * > hcalhits
static const unsigned OFF_COMBINED
const HcalSeverityLevelComputer * theHcalSevLvlComputer_
std::vector< T >::const_iterator const_iterator
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
double trackEnergySameTowers(void) const
EcalSeverityLevel::SeverityLevel severityLevel(const DetId &id) const
Evaluate status from id use channelStatus from DB.
int nHcalHitsSameTowers(void) const
bool UseEcalRecoveredHits_
const int lookupRMIndex(DetId fId) const
double p() const
momentum vector magnitude
double hitEnergy(void) const
const HcalChannelQuality * theHcalChStatus_
void getHPDs(std::vector< HBHEHitMap > &v, double energy) const
const HcalFrontEndMap * hfemap_
~ObjectValidator() override
void calcTracksNeighborTowers_(void) const
void calcTracksSameTowers_(void) const
neighbor_const_iterator findNeighbor(const PhysicsTower *twr) const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
bool UseHcalRecoveredHits_
bool validHit(const HBHERecHit &) const override
std::set< const reco::Track * > tracks
virtual bool validHit(const HBHERecHit &) const =0
int nEcalHitsSameTowers(void) const
HBHEHitMapOrganizer(const edm::Handle< HBHERecHitCollection > &hbhehitcoll_h, const ObjectValidatorAbs &objvalidator, const PhysicsTowerOrganizer &pto, const HcalFrontEndMap *hfemap)
std::set< const PhysicsTower * >::const_iterator neighbor_const_iterator
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
uint32_t EcalAcceptSeverityLevel_
unsigned short numberOfValidHits() const
number of valid hits found
neighbor_const_iterator endNeighbors(void) const
const Item * getValues(DetId fId, bool throwOnFail=true) const
hitmap_const_iterator beginHits(void) const
std::map< int, HBHEHitMap > rbxs_
std::set< PhysicsTower, towercmp > towers_
void getRBXs(std::vector< HBHEHitMap > &v, double energy) const
double pt() const
track transverse momentum
void ecalHitsSameTowers(std::set< const EcalRecHit * > &v) const
void hcalHitsNeighborTowers(std::set< const HBHERecHit * > &v) const
const PhysicsTower * findTower(const CaloTowerDetId &id) const
const EcalChannelStatus * theEcalChStatus_
int nEcalHitsNeighborTowers(void) const
int nHcalHitsNeighborTowers(void) const
const_iterator begin() const
const EcalRecHitCollection * theEERecHitCollection_
double ecalEnergySameTowers(void) const
void getDiHits(std::vector< HBHEHitMap > &v, double energy) const
int nTracksNeighborTowers(void) const
const int lookupRBXIndex(DetId fId) const
const EcalRecHitCollection * theEBRecHitCollection_
bool validTrack(const reco::Track &) const override
void calcHcalSameTowers_(void) const
int nTracksNeighborTowers_
double ecalEnergyNeighborTowers(void) const
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
uint32_t getValue() const
void tracksSameTowers(std::set< const reco::Track * > &v) const
double trackEnergyNeighborTowers(void) const
void getHPDNeighbors(const HBHERecHit *hit, std::vector< const HBHERecHit * > &neighbors, const PhysicsTowerOrganizer &pto)
const_iterator end() const
void ecalHitsNeighborTowers(std::set< const EcalRecHit * > &v) const
std::set< const EcalRecHit * > ecalhits
std::map< const HBHERecHit *, const PhysicsTower * > hits_
void byTowers(std::vector< twrinfo > &v) const
double hcalEnergySameTowers(void) const
double trackEnergySameTowers_
bool UseAllCombinedRechits_
hitmap_const_iterator findHit(const HBHERecHit *hit) const
constexpr bool getBit(const uint32_t u, const unsigned bitnum)
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
virtual DetId getClosestCell(const GlobalPoint &r) const
void insert(const HBHERecHit *hit, const PhysicsTower *twr, std::set< const PhysicsTower * > &neighbors)
void calcHcalNeighborTowers_(void) const
void calcEcalSameTowers_(void) const
PhysicsTowerOrganizer(const edm::Event &iEvent, const edm::EventSetup &evSetup, const edm::Handle< HBHERecHitCollection > &hbhehitcoll_h, const edm::Handle< EcalRecHitCollection > &ebhitcoll_h, const edm::Handle< EcalRecHitCollection > &eehitcoll_h, const edm::Handle< std::vector< reco::TrackExtrapolation > > &trackextrapcoll_h, const ObjectValidatorAbs &objectvalidator, const CaloTowerConstituentsMap &ctcm)
double hcalEnergyNeighborTowers(void) const
int iphi() const
get the tower iphi
T getParameter(std::string const &) const
int nEcalHitsNeighborTowers_
std::map< int, HBHEHitMap > hpds_
std::set< const PhysicsTower * > neighbors_
double ecalEnergySameTowers_
std::vector< HBHEHitMap > monohits_
void insert_(CaloTowerDetId &id, const HBHERecHit *hit)
void hcalHitsSameTowers(std::set< const HBHERecHit * > &v) const
double hcalEnergySameTowers_
int nHcalHitsNeighborTowers_
hitmap_const_iterator endHits(void) const
double hitEnergyTrackFiducial(void) const
ObjectValidator(const edm::ParameterSet &)
int nTracksSameTowers(void) const
const EcalSeverityLevelAlgo * theEcalSevLvlAlgo_
void calcHits_(void) const
std::map< const HBHERecHit *, const PhysicsTower * >::const_iterator hitmap_const_iterator
uint32_t HcalAcceptSeverityLevel_
std::vector< HBHEHitMap > dihits_
int zside() const
get the z-side of the tower (1/-1)
constexpr HcalDetId id() const
get the id
const Vector & momentum() const
track momentum vector
*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
double hcalEnergyNeighborTowers_
void getMonoHits(std::vector< HBHEHitMap > &v, double energy) const
virtual bool validTrack(const reco::Track &) const =0
void findNeighbors(const CaloTowerDetId &id, std::set< const PhysicsTower * > &neighbors) const
neighbor_const_iterator beginNeighbors(void) const
double MinValidTrackPtBarrel_