#include <Fireworks/Calo/interface/FWCaloTowerSliceSelector.h>
Public Member Functions | |
virtual void | doSelect (const TEveCaloData::CellId_t &) |
virtual void | doUnselect (const TEveCaloData::CellId_t &) |
FWCaloTowerSliceSelector (TH2F *h, const FWEventItem *i) | |
virtual | ~FWCaloTowerSliceSelector () |
Private Member Functions | |
bool | matchCell (const TEveCaloData::CellId_t &iCell, const CaloTower &tower) const |
Private Attributes | |
TH2F * | m_hist |
Description: [one line class summary]
Usage: <usage>
Definition at line 31 of file FWCaloTowerSliceSelector.h.
FWCaloTowerSliceSelector::FWCaloTowerSliceSelector | ( | TH2F * | h, |
const FWEventItem * | i | ||
) |
Definition at line 26 of file FWCaloTowerSliceSelector.cc.
: FWFromSliceSelector(i), m_hist(h) { }
FWCaloTowerSliceSelector::~FWCaloTowerSliceSelector | ( | ) | [virtual] |
Definition at line 32 of file FWCaloTowerSliceSelector.cc.
{ }
void FWCaloTowerSliceSelector::doSelect | ( | const TEveCaloData::CellId_t & | iCell | ) | [virtual] |
Reimplemented from FWFromSliceSelector.
Definition at line 84 of file FWCaloTowerSliceSelector.cc.
References edm::SortedCollection< T, SORT >::begin(), FWEventItem::changeManager(), edm::SortedCollection< T, SORT >::end(), FWEventItem::get(), getHLTprescales::index, FWFromSliceSelector::m_item, matchCell(), FWEventItem::modelInfo(), and FWEventItem::select().
{ if (!m_item) return; const CaloTowerCollection* towers=0; m_item->get(towers); assert(0!=towers); int index = 0; FWChangeSentry sentry(*(m_item->changeManager())); for(CaloTowerCollection::const_iterator tower = towers->begin(); tower != towers->end(); ++tower,++index) { if (m_item->modelInfo(index).m_displayProperties.isVisible() && !m_item->modelInfo(index).isSelected()) { if (matchCell(iCell, *tower)) { m_item->select(index); break; } } } }
void FWCaloTowerSliceSelector::doUnselect | ( | const TEveCaloData::CellId_t & | iCell | ) | [virtual] |
Reimplemented from FWFromSliceSelector.
Definition at line 108 of file FWCaloTowerSliceSelector.cc.
References edm::SortedCollection< T, SORT >::begin(), FWEventItem::changeManager(), edm::SortedCollection< T, SORT >::end(), FWEventItem::get(), getHLTprescales::index, FWFromSliceSelector::m_item, matchCell(), FWEventItem::modelInfo(), and FWEventItem::unselect().
{ if (!m_item) return; // std::cout <<" doUnselect "<<std::endl; const CaloTowerCollection* towers=0; m_item->get(towers); assert(0!=towers); int index = 0; FWChangeSentry sentry(*(m_item->changeManager())); for(CaloTowerCollection::const_iterator tower = towers->begin(); tower != towers->end(); ++tower,++index) { if ( m_item->modelInfo(index).m_displayProperties.isVisible() && m_item->modelInfo(index).isSelected()) { if (matchCell(iCell, *tower)) { // std::cout <<" doUnselect "<<index<<std::endl; m_item->unselect(index); break; } } } }
bool FWCaloTowerSliceSelector::matchCell | ( | const TEveCaloData::CellId_t & | iCell, |
const CaloTower & | tower | ||
) | const [private] |
Definition at line 42 of file FWCaloTowerSliceSelector.cc.
References reco::LeafCandidate::eta(), UserOptions_cff::idx, CaloTower::ietaAbs(), m_hist, match(), reco::LeafCandidate::phi(), and w().
Referenced by doSelect(), and doUnselect().
{ bool match = false; int idx = m_hist->FindBin(tower.eta(), tower.phi()); int nBinsX = m_hist->GetXaxis()->GetNbins() + 2; int etaBin, phiBin, w, newPhiBin; m_hist->GetBinXYZ(idx, etaBin, phiBin, w); if (tower.ietaAbs() > 39) { newPhiBin = ((phiBin + 1) / 4) * 4 - 1; if (newPhiBin <= 0) newPhiBin = 71; idx = etaBin + newPhiBin*nBinsX; match |= (idx == iCell.fTower); idx += nBinsX; match |= (idx == iCell.fTower); idx += nBinsX; if (newPhiBin == 71) idx = etaBin + 1*nBinsX; match |= (idx == iCell.fTower); idx += nBinsX; match |= (idx == iCell.fTower); } else if (tower.ietaAbs() > 20) { newPhiBin = ((phiBin + 1) / 2) * 2 -1; idx = etaBin + newPhiBin*nBinsX; match = ( idx == iCell.fTower || idx + nBinsX == iCell.fTower); } else { match = ( idx == iCell.fTower); } return match; }
TH2F* FWCaloTowerSliceSelector::m_hist [private] |
Definition at line 41 of file FWCaloTowerSliceSelector.h.
Referenced by matchCell().