CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
FWHistSliceSelector Class Referenceabstract

#include <FWHistSliceSelector.h>

Inheritance diagram for FWHistSliceSelector:
FWFromSliceSelector FWCaloTowerSliceSelector FWCandidateTowerSliceSelector FWHGCalMultiClusterSliceSelector FWPFCandidateTowerSliceSelector

Public Member Functions

virtual bool aggregatePhiCells () const
 
void doSelect (const TEveCaloData::CellId_t &) override
 
void doUnselect (const TEveCaloData::CellId_t &) override
 
 FWHistSliceSelector (TH2F *h, const FWEventItem *item)
 
 ~FWHistSliceSelector () override
 
- Public Member Functions inherited from FWFromSliceSelector
FWModelChangeManagerchangeManager () const
 
void clear ()
 
 FWFromSliceSelector (const FWEventItem *)
 
void reset ()
 
virtual ~FWFromSliceSelector ()
 

Protected Member Functions

virtual void getItemEntryEtaPhi (int itemIdx, float &eta, float &phi) const =0
 
bool matchCell (const TEveCaloData::CellId_t &iCell, int idx) const
 

Protected Attributes

TH2F * m_hist
 
- Protected Attributes inherited from FWFromSliceSelector
const FWEventItemm_item
 

Detailed Description

Definition at line 7 of file FWHistSliceSelector.h.

Constructor & Destructor Documentation

FWHistSliceSelector::FWHistSliceSelector ( TH2F *  h,
const FWEventItem item 
)

Definition at line 10 of file FWHistSliceSelector.cc.

References h, and m_hist.

10 : FWFromSliceSelector(item) { m_hist = h; }
FWFromSliceSelector(const FWEventItem *)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
FWHistSliceSelector::~FWHistSliceSelector ( )
override

Definition at line 12 of file FWHistSliceSelector.cc.

12 {}

Member Function Documentation

virtual bool FWHistSliceSelector::aggregatePhiCells ( ) const
inlinevirtual

Reimplemented in FWCandidateTowerSliceSelector, and FWPFCandidateTowerSliceSelector.

Definition at line 15 of file FWHistSliceSelector.h.

Referenced by FWCaloDataHistProxyBuilder::addEntryToTEveCaloData(), and matchCell().

15 { return true; }
void FWHistSliceSelector::doSelect ( const TEveCaloData::CellId_t &  iCell)
overridevirtual

Reimplemented from FWFromSliceSelector.

Definition at line 58 of file FWHistSliceSelector.cc.

References FWEventItem::changeManager(), FWEventItem::ModelInfo::isSelected(), FWDisplayProperties::isVisible(), FWEventItem::ModelInfo::m_displayProperties, FWFromSliceSelector::m_item, matchCell(), FWEventItem::modelInfo(), FWEventItem::select(), FWEventItem::size(), and findQualityFiles::size.

58  {
59  if (!m_item)
60  return;
61 
62  FWChangeSentry sentry(*(m_item->changeManager()));
63  size_t size = m_item->size();
64  for (size_t index = 0; index < size; ++index) {
66  if (matchCell(iCell, index)) {
68  break;
69  }
70  }
71  }
72 }
bool matchCell(const TEveCaloData::CellId_t &iCell, int idx) const
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:123
bool isSelected() const
Definition: FWEventItem.h:65
const FWEventItem * m_item
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:59
size_t size() const
Definition: FWEventItem.cc:457
void select(int iIndex) const
Definition: FWEventItem.cc:224
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:446
tuple size
Write out results.
void FWHistSliceSelector::doUnselect ( const TEveCaloData::CellId_t &  iCell)
overridevirtual

Reimplemented from FWFromSliceSelector.

Definition at line 74 of file FWHistSliceSelector.cc.

References FWEventItem::changeManager(), FWEventItem::ModelInfo::isSelected(), FWDisplayProperties::isVisible(), FWEventItem::ModelInfo::m_displayProperties, FWFromSliceSelector::m_item, matchCell(), FWEventItem::modelInfo(), FWEventItem::size(), findQualityFiles::size, and FWEventItem::unselect().

74  {
75  if (!m_item)
76  return;
77 
78  // std::cout <<" doUnselect "<<std::endl;
79 
80  FWChangeSentry sentry(*(m_item->changeManager()));
81 
82  size_t size = m_item->size();
83  for (size_t index = 0; index < size; ++index) {
85  if (matchCell(iCell, index)) {
86  // std::cout <<" doUnselect "<<index<<std::endl;
88  break;
89  }
90  }
91  }
92 }
bool matchCell(const TEveCaloData::CellId_t &iCell, int idx) const
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:123
bool isSelected() const
Definition: FWEventItem.h:65
void unselect(int iIndex) const
Definition: FWEventItem.cc:215
const FWEventItem * m_item
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:59
size_t size() const
Definition: FWEventItem.cc:457
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:446
tuple size
Write out results.
virtual void FWHistSliceSelector::getItemEntryEtaPhi ( int  itemIdx,
float &  eta,
float &  phi 
) const
protectedpure virtual
bool FWHistSliceSelector::matchCell ( const TEveCaloData::CellId_t &  iCell,
int  idx 
) const
protected

Definition at line 14 of file FWHistSliceSelector.cc.

References Abs(), aggregatePhiCells(), PVValHelper::eta, etaBin(), getItemEntryEtaPhi(), m_hist, match(), phi, and w.

Referenced by doSelect(), and doUnselect().

14  {
15  float eta, phi;
16  getItemEntryEtaPhi(itemIdx, eta, phi);
17 
18  int idx = m_hist->FindBin(eta, phi);
19  int nBinsX = m_hist->GetXaxis()->GetNbins() + 2;
20 
21  int etaBin, phiBin, w, newPhiBin;
22  m_hist->GetBinXYZ(idx, etaBin, phiBin, w);
23 
24  if (aggregatePhiCells()) {
25  bool match = false;
26  if (TMath::Abs(eta) > 4.716) {
27  newPhiBin = ((phiBin + 1) / 4) * 4 - 1;
28  if (newPhiBin <= 0)
29  newPhiBin = 71;
30 
31  idx = etaBin + newPhiBin * nBinsX;
32  match |= (idx == iCell.fTower);
33 
34  idx += nBinsX;
35  match |= (idx == iCell.fTower);
36 
37  idx += nBinsX;
38  if (newPhiBin == 71)
39  idx = etaBin + 1 * nBinsX;
40  match |= (idx == iCell.fTower);
41 
42  idx += nBinsX;
43  match |= (idx == iCell.fTower);
44  } else if (TMath::Abs(eta) > 1.873) {
45  newPhiBin = ((phiBin + 1) / 2) * 2 - 1;
46  idx = etaBin + newPhiBin * nBinsX;
47  match = (idx == iCell.fTower || idx + nBinsX == iCell.fTower);
48  } else {
49  match = (idx == iCell.fTower);
50  }
51 
52  return match;
53  } else {
54  return idx == iCell.fTower;
55  }
56 }
const double w
Definition: UKUtility.cc:23
virtual void getItemEntryEtaPhi(int itemIdx, float &eta, float &phi) const =0
T Abs(T a)
Definition: MathUtil.h:49
virtual bool aggregatePhiCells() const
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
int etaBin(const l1t::HGCalMulticluster *cl)

Member Data Documentation

TH2F* FWHistSliceSelector::m_hist
protected

Definition at line 21 of file FWHistSliceSelector.h.

Referenced by FWHistSliceSelector(), and matchCell().