CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
FWHGTowerSliceSelector Class Reference

#include <Fireworks/Calo/interface/FWHGTowerSliceSelector.h>

Inheritance diagram for FWHGTowerSliceSelector:
FWFromSliceSelector

Public Member Functions

void doSelect (const TEveCaloData::CellId_t &) override
 
void doUnselect (const TEveCaloData::CellId_t &) override
 
 FWHGTowerSliceSelector (const FWEventItem *i, TEveCaloDataVec *data)
 
 ~FWHGTowerSliceSelector () override
 
- Public Member Functions inherited from FWFromSliceSelector
FWModelChangeManagerchangeManager () const
 
void clear ()
 
 FWFromSliceSelector (const FWEventItem *)
 
void reset ()
 
virtual ~FWFromSliceSelector ()
 

Private Member Functions

bool findBinFromId (DetId &id, int tower) const
 

Private Attributes

TEveCaloDataVec * m_vecData
 

Additional Inherited Members

- Protected Attributes inherited from FWFromSliceSelector
const FWEventItemm_item
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 31 of file FWHGTowerSliceSelector.h.

Constructor & Destructor Documentation

◆ FWHGTowerSliceSelector()

FWHGTowerSliceSelector::FWHGTowerSliceSelector ( const FWEventItem i,
TEveCaloDataVec *  data 
)
inline

Definition at line 33 of file FWHGTowerSliceSelector.h.

◆ ~FWHGTowerSliceSelector()

FWHGTowerSliceSelector::~FWHGTowerSliceSelector ( )
inlineoverride

Definition at line 35 of file FWHGTowerSliceSelector.h.

35 {}

Member Function Documentation

◆ doSelect()

void FWHGTowerSliceSelector::doSelect ( const TEveCaloData::CellId_t &  iCell)
overridevirtual

Reimplemented from FWFromSliceSelector.

Definition at line 32 of file FWHGTowerSliceSelector.cc.

32  {
33  if (!m_item)
34  return;
35 
36  const HGCRecHitCollection* hits = nullptr;
37  m_item->get(hits);
38  assert(nullptr != hits);
39 
40  int index = 0;
41  FWChangeSentry sentry(*(m_item->changeManager()));
42  for (HGCRecHitCollection::const_iterator it = hits->begin(); it != hits->end(); ++it, ++index) {
43  DetId id((*it).detid());
44  if (findBinFromId(id, iCell.fTower) && m_item->modelInfo(index).m_displayProperties.isVisible() &&
46  // std::cout <<" doSelect "<<index<<std::endl;
48  }
49  }
50 }

References cms::cuda::assert(), FWEventItem::changeManager(), findBinFromId(), FWEventItem::get(), hfClusterShapes_cfi::hits, triggerObjects_cff::id, FWEventItem::ModelInfo::isSelected(), FWDisplayProperties::isVisible(), FWEventItem::ModelInfo::m_displayProperties, FWFromSliceSelector::m_item, FWEventItem::modelInfo(), and FWEventItem::select().

◆ doUnselect()

void FWHGTowerSliceSelector::doUnselect ( const TEveCaloData::CellId_t &  iCell)
overridevirtual

Reimplemented from FWFromSliceSelector.

Definition at line 52 of file FWHGTowerSliceSelector.cc.

52  {
53  if (!m_item)
54  return;
55 
56  const HGCRecHitCollection* hits = nullptr;
57  m_item->get(hits);
58  assert(nullptr != hits);
59 
60  int index = 0;
61  FWChangeSentry sentry(*(m_item->changeManager()));
62  for (HGCRecHitCollection::const_iterator it = hits->begin(); it != hits->end(); ++it, ++index) {
63  DetId id((*it).detid());
64  if (findBinFromId(id, iCell.fTower) && m_item->modelInfo(index).m_displayProperties.isVisible() &&
66  // std::cout <<" doUnselect "<<index<<std::endl;
68  }
69  }
70 }

References cms::cuda::assert(), FWEventItem::changeManager(), findBinFromId(), FWEventItem::get(), hfClusterShapes_cfi::hits, triggerObjects_cff::id, FWEventItem::ModelInfo::isSelected(), FWDisplayProperties::isVisible(), FWEventItem::ModelInfo::m_displayProperties, FWFromSliceSelector::m_item, FWEventItem::modelInfo(), and FWEventItem::unselect().

◆ findBinFromId()

bool FWHGTowerSliceSelector::findBinFromId ( DetId id,
int  tower 
) const
private

Definition at line 72 of file FWHGTowerSliceSelector.cc.

72  {
73  TEveCaloData::vCellId_t cellIds;
74  const float* corners = m_item->getGeom()->getCorners(detId);
75  if (corners == nullptr) {
76  fwLog(fwlog::kInfo) << "FWHGTowerSliceSelector cannot get geometry for DetId: " << detId.rawId() << ". Ignored.\n";
77  return false;
78  }
79  std::vector<TEveVector> front(4);
80  float eta = 0, phi = 0;
81  int j = 0;
82  for (int i = 0; i < 4; ++i) {
83  front[i] = TEveVector(corners[j], corners[j + 1], corners[j + 2]);
84  j += 3;
85 
86  eta += front[i].Eta();
87  phi += front[i].Phi();
88  }
89  eta /= 4;
90  phi /= 4;
91 
92  const TEveCaloData::CellGeom_t& cg = m_vecData->GetCellGeom()[tower];
93  if ((eta >= cg.fEtaMin && eta <= cg.fEtaMax) && (phi >= cg.fPhiMin && phi <= cg.fPhiMax)) {
94  return true;
95  }
96 
97  return false;
98 }

References PVValHelper::eta, fwLog, FWGeometry::getCorners(), FWEventItem::getGeom(), mps_fire::i, dqmiolumiharvest::j, fwlog::kInfo, FWFromSliceSelector::m_item, m_vecData, phi, DetId::rawId(), and hgcalTowerProducer_cfi::tower.

Referenced by doSelect(), and doUnselect().

Member Data Documentation

◆ m_vecData

TEveCaloDataVec* FWHGTowerSliceSelector::m_vecData
private

Definition at line 42 of file FWHGTowerSliceSelector.h.

Referenced by findBinFromId().

fwLog
#define fwLog(_level_)
Definition: fwLog.h:45
FWEventItem::modelInfo
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:446
FWDisplayProperties::isVisible
bool isVisible() const
Definition: FWDisplayProperties.h:51
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
FWGeometry::getCorners
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:467
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
FWEventItem::get
void get(const T *&oData) const
Definition: FWEventItem.h:78
FWHGTowerSliceSelector::m_vecData
TEveCaloDataVec * m_vecData
Definition: FWHGTowerSliceSelector.h:42
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:4
cms::cuda::assert
assert(be >=bs)
edm::SortedCollection
Definition: SortedCollection.h:49
FWEventItem::select
void select(int iIndex) const
Definition: FWEventItem.cc:224
FWEventItem::changeManager
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:123
DetId
Definition: DetId.h:17
FWHGTowerSliceSelector::findBinFromId
bool findBinFromId(DetId &id, int tower) const
Definition: FWHGTowerSliceSelector.cc:72
PVValHelper::eta
Definition: PVValidationHelpers.h:70
FWChangeSentry
Definition: FWModelChangeManager.h:68
FWEventItem::unselect
void unselect(int iIndex) const
Definition: FWEventItem.cc:215
FWEventItem::ModelInfo::isSelected
bool isSelected() const
Definition: FWEventItem.h:65
FWFromSliceSelector::m_item
const FWEventItem * m_item
Definition: FWFromSliceSelector.h:49
FWEventItem::getGeom
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:548
DDAxes::phi
fwlog::kInfo
Definition: fwLog.h:35
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
FWEventItem::ModelInfo::m_displayProperties
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:59
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
FWFromSliceSelector::FWFromSliceSelector
FWFromSliceSelector(const FWEventItem *)
Definition: FWFromSliceSelector.cc:30
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66