test
Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
Fireworks
Calo
plugins
FWCaloTowerSliceSelector.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: Calo
4
// Class : FWCaloTowerSliceSelector
5
//
6
// Implementation:
7
// [Notes on implementation]
8
//
9
// Original Author: Alja Mrak-Tadel
10
// Created: Wed Jun 2 17:36:23 CEST 2010
11
//
12
13
// system include files
14
15
// user include files
16
#include "TH2F.h"
17
#include "TMath.h"
18
#include "
Fireworks/Calo/plugins/FWCaloTowerSliceSelector.h
"
19
#include "
Fireworks/Core/interface/FWModelChangeManager.h
"
20
#include "
Fireworks/Core/interface/FWEventItem.h
"
21
#include "
DataFormats/CaloTowers/interface/CaloTower.h
"
22
#include "
DataFormats/CaloTowers/interface/CaloTowerFwd.h
"
23
24
25
FWCaloTowerSliceSelector::FWCaloTowerSliceSelector
(TH2F*
h
,
const
FWEventItem
*
i
):
26
FWFromSliceSelector
(i),
27
m_hist(h)
28
{
29
}
30
31
FWCaloTowerSliceSelector::~FWCaloTowerSliceSelector
()
32
{
33
}
34
35
//
36
// member functions
37
//
38
//
39
40
bool
41
FWCaloTowerSliceSelector::matchCell
(
const
TEveCaloData::CellId_t& iCell,
const
CaloTower
& tower)
const
42
{
43
bool
match
=
false
;
44
int
idx
=
m_hist
->FindBin(tower.
eta
(), tower.
phi
());
45
int
nBinsX =
m_hist
->GetXaxis()->GetNbins() + 2;
46
47
int
etaBin, phiBin,
w
, newPhiBin;
48
m_hist
->GetBinXYZ(idx, etaBin, phiBin, w);
49
50
if
(tower.
ietaAbs
() > 39)
51
{
52
newPhiBin = ((phiBin + 1) / 4) * 4 - 1;
53
if
(newPhiBin <= 0) newPhiBin = 71;
54
55
idx = etaBin + newPhiBin*nBinsX;
56
match |= (idx == iCell.fTower);
57
58
idx += nBinsX;
59
match |= (idx == iCell.fTower);
60
61
idx += nBinsX;
62
if
(newPhiBin == 71)
63
idx = etaBin + 1*nBinsX;
64
match |= (idx == iCell.fTower);
65
66
idx += nBinsX;
67
match |= (idx == iCell.fTower);
68
}
69
else
if
(tower.
ietaAbs
() > 20)
70
{
71
newPhiBin = ((phiBin + 1) / 2) * 2 -1;
72
idx = etaBin + newPhiBin*nBinsX;
73
match = ( idx == iCell.fTower || idx + nBinsX == iCell.fTower);
74
}
75
else
76
{
77
match = ( idx == iCell.fTower);
78
}
79
return
match
;
80
}
81
82
void
83
FWCaloTowerSliceSelector::doSelect
(
const
TEveCaloData::CellId_t& iCell)
84
{
85
if
(!
m_item
)
return
;
86
87
const
CaloTowerCollection
* towers=0;
88
m_item
->
get
(towers);
89
assert(0!=towers);
90
int
index
= 0;
91
92
FWChangeSentry
sentry(*(
m_item
->
changeManager
()));
93
for
(
CaloTowerCollection::const_iterator
tower = towers->
begin
(); tower != towers->
end
(); ++tower,++
index
)
94
{
95
if
(
m_item
->
modelInfo
(index).
m_displayProperties
.
isVisible
() && !
m_item
->
modelInfo
(index).
isSelected
())
96
{
97
if
(
matchCell
(iCell, *tower))
98
{
99
m_item
->
select
(index);
100
break
;
101
}
102
}
103
}
104
}
105
106
void
107
FWCaloTowerSliceSelector::doUnselect
(
const
TEveCaloData::CellId_t& iCell)
108
{
109
if
(!
m_item
)
return
;
110
111
// std::cout <<" doUnselect "<<std::endl;
112
113
const
CaloTowerCollection
* towers=0;
114
m_item
->
get
(towers);
115
assert(0!=towers);
116
int
index
= 0;
117
FWChangeSentry
sentry(*(
m_item
->
changeManager
()));
118
for
(
CaloTowerCollection::const_iterator
tower = towers->
begin
(); tower != towers->
end
(); ++tower,++
index
)
119
{
120
if
(
m_item
->
modelInfo
(index).
m_displayProperties
.
isVisible
() &&
121
m_item
->
modelInfo
(index).
isSelected
()) {
122
if
(
matchCell
(iCell, *tower))
123
{
124
// std::cout <<" doUnselect "<<index<<std::endl;
125
m_item
->
unselect
(index);
126
break
;
127
}
128
}
129
}
130
}
FWCaloTowerSliceSelector::doUnselect
virtual void doUnselect(const TEveCaloData::CellId_t &)
Definition:
FWCaloTowerSliceSelector.cc:107
i
int i
Definition:
DBlmapReader.cc:9
FWEventItem::changeManager
FWModelChangeManager * changeManager() const
Definition:
FWEventItem.h:130
FWDisplayProperties::isVisible
bool isVisible() const
Definition:
FWDisplayProperties.h:59
edm::SortedCollection< CaloTower >
w
const double w
Definition:
UKUtility.cc:23
reco::LeafCandidate::phi
virtual float phi() const
momentum azimuthal angle
Definition:
LeafCandidate.h:180
FWEventItem::ModelInfo::isSelected
bool isSelected() const
Definition:
FWEventItem.h:70
CaloTower.h
FWEventItem::get
void get(const T *&oData) const
Definition:
FWEventItem.h:84
edm::SortedCollection< CaloTower >::const_iterator
std::vector< CaloTower >::const_iterator const_iterator
Definition:
SortedCollection.h:82
FWEventItem::unselect
void unselect(int iIndex) const
Definition:
FWEventItem.cc:239
FWFromSliceSelector::m_item
const FWEventItem * m_item
Definition:
FWFromSliceSelector.h:51
cmsHarvester.index
string index
Definition:
cmsHarvester.py:4378
FWCaloTowerSliceSelector.h
reco::LeafCandidate::eta
virtual float eta() const
momentum pseudorapidity
Definition:
LeafCandidate.h:184
FWCaloTowerSliceSelector::~FWCaloTowerSliceSelector
virtual ~FWCaloTowerSliceSelector()
Definition:
FWCaloTowerSliceSelector.cc:31
h
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition:
Activities.doc:4
CaloTower
Definition:
CaloTower.h:26
FWCaloTowerSliceSelector::matchCell
bool matchCell(const TEveCaloData::CellId_t &iCell, const CaloTower &tower) const
Definition:
FWCaloTowerSliceSelector.cc:41
FWEventItem::ModelInfo::m_displayProperties
FWDisplayProperties m_displayProperties
Definition:
FWEventItem.h:60
edm::SortedCollection::end
const_iterator end() const
Definition:
SortedCollection.h:310
FWEventItem
Definition:
FWEventItem.h:56
FWEventItem.h
FWModelChangeManager.h
FWFromSliceSelector
Definition:
FWFromSliceSelector.h:31
FWCaloTowerSliceSelector::FWCaloTowerSliceSelector
FWCaloTowerSliceSelector(TH2F *h, const FWEventItem *i)
Definition:
FWCaloTowerSliceSelector.cc:25
customizeTrackingMonitorSeedNumber.idx
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
Definition:
customizeTrackingMonitorSeedNumber.py:15
FWCaloTowerSliceSelector::m_hist
TH2F * m_hist
Definition:
FWCaloTowerSliceSelector.h:40
FWCaloTowerSliceSelector::doSelect
virtual void doSelect(const TEveCaloData::CellId_t &)
Definition:
FWCaloTowerSliceSelector.cc:83
CaloTower::ietaAbs
int ietaAbs() const
Definition:
CaloTower.h:170
FWEventItem::select
void select(int iIndex) const
Definition:
FWEventItem.cc:250
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition:
Utils.h:6
FWEventItem::modelInfo
ModelInfo modelInfo(int iIndex) const
Definition:
FWEventItem.cc:535
FWChangeSentry
Definition:
FWModelChangeManager.h:70
edm::SortedCollection::begin
const_iterator begin() const
Definition:
SortedCollection.h:303
CaloTowerFwd.h
Generated for CMSSW Reference Manual by
1.8.5