CMS 3D CMS Logo

FWHistSliceSelector.cc
Go to the documentation of this file.
2 
5 
6 #include "TEveCaloData.h"
7 #include "TH2F.h"
8 #include "Rtypes.h"
9 
11 
13 
14 bool FWHistSliceSelector::matchCell(const TEveCaloData::CellId_t& iCell, int itemIdx) const {
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 }
57 
58 void FWHistSliceSelector::doSelect(const TEveCaloData::CellId_t& iCell) {
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 }
73 
74 void FWHistSliceSelector::doUnselect(const TEveCaloData::CellId_t& iCell) {
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 }
FWModelChangeManager.h
FWEventItem::modelInfo
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:446
FWDisplayProperties::isVisible
bool isVisible() const
Definition: FWDisplayProperties.h:51
etaBin
int etaBin(const l1t::HGCalMulticluster *cl)
Definition: L1EGammaEEProducer.cc:19
BeamMonitor_cff.phiBin
phiBin
Definition: BeamMonitor_cff.py:75
h
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
Definition: L1TUtmAlgorithmRcd.h:4
FWHistSliceSelector::doSelect
void doSelect(const TEveCaloData::CellId_t &) override
Definition: FWHistSliceSelector.cc:58
FWEventItem::select
void select(int iIndex) const
Definition: FWEventItem.cc:224
FWEventItem::changeManager
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:123
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
Abs
T Abs(T a)
Definition: MathUtil.h:49
PVValHelper::eta
Definition: PVValidationHelpers.h:70
w
const double w
Definition: UKUtility.cc:23
FWChangeSentry
Definition: FWModelChangeManager.h:68
FWHistSliceSelector::~FWHistSliceSelector
~FWHistSliceSelector() override
Definition: FWHistSliceSelector.cc:12
h
FWHistSliceSelector::doUnselect
void doUnselect(const TEveCaloData::CellId_t &) override
Definition: FWHistSliceSelector.cc:74
FWHistSliceSelector::m_hist
TH2F * m_hist
Definition: FWHistSliceSelector.h:21
FWFromSliceSelector
Definition: FWFromSliceSelector.h:30
FWEventItem::unselect
void unselect(int iIndex) const
Definition: FWEventItem.cc:215
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
FWEventItem::ModelInfo::isSelected
bool isSelected() const
Definition: FWEventItem.h:65
FWHistSliceSelector::FWHistSliceSelector
FWHistSliceSelector(TH2F *h, const FWEventItem *item)
Definition: FWHistSliceSelector.cc:10
FWFromSliceSelector::m_item
const FWEventItem * m_item
Definition: FWFromSliceSelector.h:49
FWHistSliceSelector::aggregatePhiCells
virtual bool aggregatePhiCells() const
Definition: FWHistSliceSelector.h:15
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
FWEventItem.h
FWHistSliceSelector::getItemEntryEtaPhi
virtual void getItemEntryEtaPhi(int itemIdx, float &eta, float &phi) const =0
DDAxes::phi
FWEventItem
Definition: FWEventItem.h:56
FWHistSliceSelector::matchCell
bool matchCell(const TEveCaloData::CellId_t &iCell, int idx) const
Definition: FWHistSliceSelector.cc:14
FWEventItem::ModelInfo::m_displayProperties
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:59
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
FWHistSliceSelector.h
FWEventItem::size
size_t size() const
Definition: FWEventItem.cc:457
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443