88 const uint32_t recHitFlag =
hit.flags();
154 const edm::Handle<std::vector<reco::TrackExtrapolation> >& trackextrapcoll_h,
196 for (std::vector<reco::TrackExtrapolation>::const_iterator it = trackextrapcoll_h->begin();
197 it != trackextrapcoll_h->end();
212 if (std::fabs(
point.eta()) < 1.479) {
231 if (
id.ietaAbs() == 29)
237 std::set<PhysicsTower, towercmp>::iterator it =
towers_.find(
dummy);
252 if (
id.ietaAbs() == 29)
258 std::set<PhysicsTower, towercmp>::iterator it =
towers_.find(
dummy);
276 std::set<const PhysicsTower*>& neighbors)
const {
282 std::vector<CaloTowerDetId> ids;
284 if (
id.ietaAbs() <= 20) {
297 if (
id.ietaAbs() <= 20) {
310 if (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 0)
316 if (
id.ietaAbs() == 21) {
319 }
else if (
id.ietaAbs() == 1) {
326 if (
id.ietaAbs() <= 19 || (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 0)) {
331 }
else if (
id.ietaAbs() >= 21) {
339 if (
id.ietaAbs() <= 19) {
344 }
else if (
id.ietaAbs() >= 21 || (
id.ietaAbs() == 20 && (
id.
iphi() % 2) == 1)) {
352 if (
id.ietaAbs() == 1) {
357 }
else if (
id.ietaAbs() <= 20) {
362 }
else if (
id.ietaAbs() >= 21) {
370 if (
id.ietaAbs() == 1) {
375 }
else if (
id.ietaAbs() <= 20) {
380 }
else if (
id.ietaAbs() >= 22) {
385 }
else if (
id.ietaAbs() == 21) {
396 for (std::vector<CaloTowerDetId>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
399 neighbors.insert(twr);
417 if (twr ==
nullptr) {
419 if (
id.ietaAbs() == 29)
433 if (twr ==
nullptr) {
435 if (
id.ietaAbs() == 29)
449 if (twr ==
nullptr) {
451 if (
id.ietaAbs() == 29)
535 for (std::set<const HBHERecHit*>::const_iterator it2 = it1->second->hcalhits.begin();
536 it2 != it1->second->hcalhits.end();
550 v.insert(it1->second->ecalhits.begin(), it1->second->ecalhits.end());
558 v.insert(it1->second->tracks.begin(), it1->second->tracks.end());
631 neighbors_.insert(neighbors.begin(), neighbors.end());
651 if (
hit->
id().ietaAbs() <= 26)
662 std::set<const HBHERecHit*>
v;
664 for (std::set<const HBHERecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
675 std::set<const EcalRecHit*>
v;
677 for (std::set<const EcalRecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
688 std::set<const reco::Track*>
v;
690 for (std::set<const reco::Track*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
701 std::set<const HBHERecHit*>
v;
703 for (std::set<const HBHERecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
714 std::set<const EcalRecHit*>
v;
716 for (std::set<const EcalRecHit*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
727 std::set<const reco::Track*>
v;
729 for (std::set<const reco::Track*>::const_iterator it =
v.begin(); it !=
v.end(); ++it) {
757 std::set<const PhysicsTower*> neighbors;
769 std::vector<const HBHERecHit*> hpdneighbors;
772 if (hpdneighbors.size() == 1) {
773 std::vector<const HBHERecHit*> hpdneighborsneighbors;
776 if (hpdneighborsneighbors.size() == 1 && hpdneighborsneighbors[0] ==
hit &&
777 hit->energy() > hpdneighbors[0]->energy()) {
783 std::set<const PhysicsTower*> neighbors2;
788 dihit.
insert(hpdneighbors[0], tower2, neighbors2);
791 }
else if (hpdneighbors.empty()) {
803 for (std::map<int, HBHEHitMap>::const_iterator it =
rbxs_.begin(); it !=
rbxs_.end(); ++it) {
812 for (std::map<int, HBHEHitMap>::const_iterator it =
hpds_.begin(); it !=
hpds_.end(); ++it) {
821 for (std::vector<HBHEHitMap>::const_iterator it =
dihits_.begin(); it !=
dihits_.end(); ++it) {
822 if (it->hitEnergy() >
energy)
829 for (std::vector<HBHEHitMap>::const_iterator it =
monohits_.begin(); it !=
monohits_.end(); ++it) {
830 if (it->hitEnergy() >
energy)
837 std::vector<const HBHERecHit*>& neighbors,
839 std::set<const PhysicsTower*>
temp;
846 for (std::set<const PhysicsTower*>::const_iterator it1 =
temp.begin(); it1 !=
temp.end(); ++it1) {
847 for (std::set<const HBHERecHit*>::const_iterator it2 = (*it1)->hcalhits.begin(); it2 != (*it1)->hcalhits.end();
851 neighbors.push_back(hit2);
int nEcalHitsNeighborTowers(void) const
int nHcalHitsNeighborTowers(void) const
std::set< const HBHERecHit * > hcalhits
const int lookupRBXIndex(DetId fId) const
void calcHcalNeighborTowers_(void) const
double ecalEnergySameTowers_
T getParameter(std::string const &) const
void insert(const HBHERecHit *hit, const PhysicsTower *twr, std::set< const PhysicsTower *> &neighbors)
hitmap_const_iterator endHits(void) const
void getDiHits(std::vector< HBHEHitMap > &v, double energy) const
int ietaAbs() const
get the absolute value of the tower ieta
void calcHits_(void) const
unsigned short numberOfValidHits() const
number of valid hits found
double MinValidTrackPtBarrel_
std::map< const HBHERecHit *, const PhysicsTower * >::const_iterator hitmap_const_iterator
std::vector< HBHEHitMap > dihits_
PhysicsTowerOrganizer(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, const CaloGeometry &geo)
double p() const
momentum vector magnitude
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
HBHEHitMapOrganizer(const edm::Handle< HBHERecHitCollection > &hbhehitcoll_h, const ObjectValidatorAbs &objvalidator, const PhysicsTowerOrganizer &pto, const HcalFrontEndMap *hfemap)
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
double hitEnergyTrackFiducial(void) const
int nTracksSameTowers(void) const
std::vector< T >::const_iterator const_iterator
void hcalHitsSameTowers(std::set< const HBHERecHit *> &v) const
void calcHcalSameTowers_(void) const
virtual bool validTrack(const reco::Track &) const =0
void byTowers(std::vector< twrinfo > &v) const
void tracksSameTowers(std::set< const reco::Track *> &v) const
double hcalEnergyNeighborTowers_
double hcalEnergySameTowers(void) const
hitmap_const_iterator findHit(const HBHERecHit *hit) const
ObjectValidator(const edm::ParameterSet &)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
bool validHit(const HBHERecHit &) const override
std::map< const HBHERecHit *, const PhysicsTower * > hits_
bool UseAllCombinedRechits_
const Item * getValues(DetId fId, bool throwOnFail=true) const
EcalSeverityLevel::SeverityLevel severityLevel(const DetId &id) const
Evaluate status from id use channelStatus from DB.
double trackEnergyNeighborTowers_
void hcalHitsNeighborTowers(std::set< const HBHERecHit *> &v) const
double hcalEnergyNeighborTowers(void) const
double trackEnergySameTowers_
uint32_t HcalAcceptSeverityLevel_
double pt() const
track transverse momentum
double hitEnergy(void) const
const int lookupRMIndex(DetId fId) const
std::set< const PhysicsTower * > neighbors_
void calcEcalSameTowers_(void) const
void ecalHitsNeighborTowers(std::set< const EcalRecHit *> &v) const
std::map< int, HBHEHitMap > rbxs_
int nHcalHitsSameTowers(void) const
bool UseHcalRecoveredHits_
int nEcalHitsNeighborTowers_
const EcalChannelStatus * theEcalChStatus_
void ecalHitsSameTowers(std::set< const EcalRecHit *> &v) const
const EcalRecHitCollection * theEERecHitCollection_
void insert_(CaloTowerDetId &id, const HBHERecHit *hit)
double hcalEnergySameTowers_
neighbor_const_iterator findNeighbor(const PhysicsTower *twr) const
void calcTracksSameTowers_(void) const
int nHcalHitsNeighborTowers_
neighbor_const_iterator endNeighbors(void) const
const_iterator begin() const
void getHPDNeighbors(const HBHERecHit *hit, std::vector< const HBHERecHit *> &neighbors, const PhysicsTowerOrganizer &pto)
const EcalRecHitCollection * theEBRecHitCollection_
uint32_t getValue() const
std::set< const PhysicsTower * >::const_iterator neighbor_const_iterator
virtual DetId getClosestCell(const GlobalPoint &r) const
constexpr bool getBit(const uint32_t u, const unsigned bitnum)
std::map< int, HBHEHitMap > hpds_
~ObjectValidator() override
const_iterator end() const
std::set< PhysicsTower, towercmp > towers_
neighbor_const_iterator beginNeighbors(void) const
const PhysicsTower * findTower(const CaloTowerDetId &id) const
void calcEcalNeighborTowers_(void) const
virtual bool validHit(const HBHERecHit &) const =0
constexpr HcalDetId id() const
get the id
double ecalEnergyNeighborTowers_
double ecalEnergySameTowers(void) const
int iphi() const
get the tower iphi
int nTracksNeighborTowers(void) const
const EcalSeverityLevelAlgo * theEcalSevLvlAlgo_
void findNeighbors(const CaloTowerDetId &id, std::set< const PhysicsTower *> &neighbors) const
double trackEnergySameTowers(void) const
std::set< const EcalRecHit * > ecalhits
const Vector & momentum() const
track momentum vector
uint32_t EcalAcceptSeverityLevel_
void getMonoHits(std::vector< HBHEHitMap > &v, double energy) const
bool validTrack(const reco::Track &) const override
double ecalEnergyNeighborTowers(void) const
double trackEnergyNeighborTowers(void) const
void getRBXs(std::vector< HBHEHitMap > &v, double energy) const
void calcTracksNeighborTowers_(void) const
void getHPDs(std::vector< HBHEHitMap > &v, double energy) const
int zside() const
get the z-side of the tower (1/-1)
void tracksNeighborTowers(std::set< const reco::Track *> &v) const
std::set< const reco::Track * > tracks
static const unsigned OFF_COMBINED
std::vector< HBHEHitMap > monohits_
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
int nTracksNeighborTowers_
const HcalChannelQuality * theHcalChStatus_
const HcalFrontEndMap * hfemap_
const HcalSeverityLevelComputer * theHcalSevLvlComputer_
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
hitmap_const_iterator beginHits(void) const
*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
int nEcalHitsSameTowers(void) const
bool UseEcalRecoveredHits_