CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
FWECALDetailViewBuilder Class Reference

#include <FWECALDetailViewBuilder.h>

Public Member Functions

TEveCaloLego * build ()
 
 FWECALDetailViewBuilder (const edm::EventBase *event, const FWGeometry *geom, float eta, float phi, int size=50, Color_t defaultColor=kMagenta+1)
 
double makeLegend (double x0=0.02, double y0=0.95, Color_t clustered1=kGreen+1, Color_t clustered2=kTeal, Color_t supercluster=kYellow)
 
void setColor (Color_t color, const std::vector< DetId > &detIds)
 
void showSuperCluster (const reco::SuperCluster &cluster, Color_t color=kYellow)
 
void showSuperClusters (Color_t color1=kGreen+2, Color_t color2=kTeal)
 

Private Member Functions

void fillData (const EcalRecHitCollection *hits, TEveCaloDataVec *data)
 

Static Private Member Functions

static bool superClusterEtaLess (const reco::CaloCluster &lhs, const reco::CaloCluster &rhs)
 

Private Attributes

std::vector< Color_t > m_colors
 
Color_t m_defaultColor
 
std::map< DetId, int > m_detIdsToColor
 
float m_eta
 
const edm::EventBasem_event
 
const FWGeometrym_geom
 
float m_phi
 
int m_size
 

Detailed Description

Definition at line 28 of file FWECALDetailViewBuilder.h.

Constructor & Destructor Documentation

FWECALDetailViewBuilder::FWECALDetailViewBuilder ( const edm::EventBase event,
const FWGeometry geom,
float  eta,
float  phi,
int  size = 50,
Color_t  defaultColor = kMagenta+1 
)
inline

Definition at line 37 of file FWECALDetailViewBuilder.h.

40  : m_event(event), m_geom(geom),
42  m_defaultColor(defaultColor){
43  }
T eta() const
const edm::EventBase * m_event
tuple size
Write out results.
Definition: DDAxes.h:10

Member Function Documentation

TEveCaloLego * FWECALDetailViewBuilder::build ( )

Definition at line 28 of file FWECALDetailViewBuilder.cc.

References runTheMatrix::data, jptDQMConfig_cff::etaMax, jptDQMConfig_cff::etaMin, fillData(), fwLog, edm::EventBase::getByLabel(), i, edm::HandleBase::isValid(), fwlog::kWarning, m_colors, m_defaultColor, m_eta, m_event, m_phi, M_PI, m_size, siStripFEDMonitor_P5_cff::Max, siStripFEDMonitor_P5_cff::Min, phi, jptDQMConfig_cff::phiMax, jptDQMConfig_cff::phiMin, csvReporter::r, GlobalPosition_Frontier_DevDB_cff::tag, theta(), x, and fw3dlego::xbins.

Referenced by FWCaloTowerDetailView::build(), FWMuonDetailView::build(), FWPhotonDetailView::build(), and FWElectronDetailView::build().

29 {
30  // get the hits from the event
31 
33  const EcalRecHitCollection *hits = 0;
34 
35  if (fabs(m_eta) < 1.5)
36  {
37  try
38  {
39  edm::InputTag tag("ecalRecHit", "EcalRecHitsEB");
40  m_event->getByLabel(tag, handle_hits);
41  if (handle_hits.isValid())
42  {
43  hits = &*handle_hits;
44  }
45  }
46  catch (...)
47  {
48  fwLog(fwlog::kWarning) <<"FWECALDetailViewBuilder::build():: Failed to access EcalRecHitsEB collection." << std::endl;
49  }
50  if ( ! handle_hits.isValid()) {
51  try{
52  edm::InputTag tag("reducedEcalRecHitsEB");
53  m_event->getByLabel(tag, handle_hits);
54  if (handle_hits.isValid())
55  {
56  hits = &*handle_hits;
57  }
58 
59  }
60  catch (...)
61  {
62  fwLog(fwlog::kWarning) <<"FWECALDetailViewBuilder::build():: Failed to access reducedEcalRecHitsEB collection." << std::endl;
63  }
64  }
65  }
66  else
67  {
68  try
69  {
70  edm::InputTag tag("ecalRecHit", "EcalRecHitsEE");
71  m_event->getByLabel(tag, handle_hits);
72  if (handle_hits.isValid())
73  hits = &*handle_hits;
74  }
75  catch (...)
76  {
77  fwLog(fwlog::kWarning) <<"FWECALDetailViewBuilder::build():: Failed to access ecalRecHitsEE collection." << std::endl;
78  }
79 
80  if ( ! handle_hits.isValid()) {
81  try {
82  edm::InputTag tag("reducedEcalRecHitsEE");
83  m_event->getByLabel(tag, handle_hits);
84  if (handle_hits.isValid())
85  {
86  hits = &*handle_hits;
87  }
88 
89  }
90  catch (...)
91  {
92  fwLog(fwlog::kWarning) <<"FWECALDetailViewBuilder::build():: Failed to access reducedEcalRecHitsEE collection." << std::endl;
93  }
94  }
95  }
96 
97  // data
98  TEveCaloDataVec* data = new TEveCaloDataVec( 1 + m_colors.size() );
99  data->RefSliceInfo(0).Setup("hits (not clustered)", 0.0, m_defaultColor );
100  for( size_t i = 0; i < m_colors.size(); ++i )
101  {
102  data->RefSliceInfo(i + 1).Setup( "hits (clustered)", 0.0, m_colors[i] );
103  }
104 
105  if( handle_hits.isValid() )
106  {
107  fillData( hits, data );
108  }
109 
110  // axis
111  Double_t etaMin(0), etaMax(0), phiMin(0), phiMax(0);
112  if (data->Empty())
113  {
114  fwLog(fwlog::kWarning) <<"FWECALDetailViewBuilder::build():: No hits found in " << Form("FWECALDetailViewBuilder::build():: No hits found in eta[%f] phi[%f] region", m_eta, m_phi)<<".\n";
115 
116  // add dummy background
117  float x = m_size*TMath::DegToRad();
118  if (fabs(m_eta) < 1.5) {
119  etaMin = m_eta -x;
120  etaMax = m_eta +x;
121  phiMin = m_phi -x;
122  phiMax = m_phi +x;
123  data->AddTower(etaMin, etaMax, phiMin, phiMax);
124  }
125  else
126  {
127  float theta = TEveCaloData::EtaToTheta(m_eta);
128  float r = TMath::Tan(theta) * 290;
129  phiMin = r * TMath::Cos(m_phi - x) -300;
130  phiMax = r * TMath::Cos(m_phi + x) + 300;
131  etaMin = r * TMath::Sin(m_phi - x) - 300;
132  etaMax = r * TMath::Sin(m_phi + x) + 300;
133  data->AddTower(TMath::Min(etaMin, etaMax), TMath::Max(etaMin, etaMax),
135 
136  }
137  data->FillSlice(0, 0.1);
138  }
139 
140 
141  TAxis* eta_axis = 0;
142  TAxis* phi_axis = 0;
143  data->GetEtaLimits(etaMin, etaMax);
144  data->GetPhiLimits(phiMin, phiMax);
145  // printf("data rng %f %f %f %f\n",etaMin, etaMax, phiMin, phiMax );
146 
147  if (fabs(m_eta) > 1.5) {
148  eta_axis = new TAxis(10, etaMin, etaMax);
149  phi_axis = new TAxis(10, phiMin, phiMax);
150  eta_axis->SetTitle("X[cm]");
151  phi_axis->SetTitle("Y[cm]");
152  phi_axis->SetTitleSize(0.05);
153  eta_axis->SetTitleSize(0.05);
154  } else {
155  std::vector<double> etaBinsWithinLimits;
156  etaBinsWithinLimits.push_back(etaMin);
157  for (unsigned int i=0; i<83; ++i)
159  etaBinsWithinLimits.push_back(fw3dlego::xbins[i]);
160  etaBinsWithinLimits.push_back(etaMax);
161 
162  std::vector<double> phiBinsWithinLimits;
163  phiBinsWithinLimits.push_back(phiMin);
164  for ( double phi = -M_PI; phi < M_PI; phi += M_PI/36 )
165  if ( phi > phiMin && phi < phiMax )
166  phiBinsWithinLimits.push_back(phi);
167  phiBinsWithinLimits.push_back(phiMax);
168 
169  eta_axis = new TAxis((int)etaBinsWithinLimits.size() -1, &etaBinsWithinLimits[0]);
170  phi_axis = new TAxis((int)phiBinsWithinLimits.size() -1, &phiBinsWithinLimits[0]);
171 
172  eta_axis->SetTitleFont(122);
173  eta_axis->SetTitle("h");
174  eta_axis->SetTitleSize(0.07);
175  phi_axis->SetTitleFont(122);
176  phi_axis->SetTitle("f");
177  phi_axis->SetTitleSize(0.07);
178  }
179  eta_axis->SetNdivisions(510);
180  phi_axis->SetNdivisions(510);
181  data->SetEtaBins(eta_axis);
182  data->SetPhiBins(phi_axis);
183 
184 
185  // lego
186  TEveCaloLego *lego = new TEveCaloLego(data);
187  lego->SetDrawNumberCellPixels(100);
188  // scale and translate to real world coordinates
189  lego->SetEta(etaMin, etaMax);
190  lego->SetPhiWithRng((phiMin+phiMax)*0.5, (phiMax-phiMin)*0.5); // phi range = 2* phiOffset
191  Double_t legoScale = ((etaMax - etaMin) < (phiMax - phiMin)) ? (etaMax - etaMin) : (phiMax - phiMin);
192  lego->InitMainTrans();
193  lego->RefMainTrans().SetScale(legoScale, legoScale, legoScale*0.5);
194  lego->RefMainTrans().SetPos((etaMax+etaMin)*0.5, (phiMax+phiMin)*0.5, 0);
195  lego->SetAutoRebin(kFALSE);
196  lego->Set2DMode(TEveCaloLego::kValSizeOutline);
197  lego->SetName("ECALDetail Lego");
198  return lego;
199 
200 }
int i
Definition: DBlmapReader.cc:9
const double xbins[]
Geom::Theta< T > theta() const
bool getByLabel(const InputTag &, Handle< T > &) const
Definition: EventBase.h:86
const edm::EventBase * m_event
bool isValid() const
Definition: HandleBase.h:76
#define M_PI
Definition: BFit3D.cc:3
void fillData(const EcalRecHitCollection *hits, TEveCaloDataVec *data)
#define fwLog(_level_)
Definition: fwLog.h:51
std::vector< Color_t > m_colors
Definition: DDAxes.h:10
Definition: DDAxes.h:10
void FWECALDetailViewBuilder::fillData ( const EcalRecHitCollection hits,
TEveCaloDataVec *  data 
)
private

Definition at line 273 of file FWECALDetailViewBuilder.cc.

References edm::SortedCollection< T, SORT >::begin(), delta, EcalBarrel, EcalEndcap, edm::SortedCollection< T, SORT >::end(), eta(), fwLog, FWGeometry::getCorners(), i, j, gen::k, fwlog::kInfo, m_detIdsToColor, m_eta, m_geom, m_phi, M_PI, m_size, maxEta, displayMF_cfg::maxX, displayMF_cfg::maxY, benchmark_cfg::minEta, displayMF_cfg::minX, displayMF_cfg::minY, phi, findQualityFiles::size, v, x, and detailsBasic3DVector::y.

Referenced by build().

275 {
276  const float barrelCR = m_size*0.0172; // barrel cell range
277 
278  // loop on all the detids
279  for( EcalRecHitCollection::const_iterator k = hits->begin(), kEnd = hits->end();
280  k != kEnd; ++k )
281  {
282  // get reco geometry
283  double centerEta = 0;
284  double centerPhi = 0;
285  const float* points = m_geom->getCorners( k->id().rawId());
286  if( points != 0 )
287  {
288  TEveVector v;
289  int j = 0;
290  for( int i = 0; i < 8; ++i )
291  {
292  v += TEveVector( points[j], points[j + 1], points[j + 2] );
293  j +=3;
294  }
295  centerEta = v.Eta();
296  centerPhi = v.Phi();
297  }
298  else
299  fwLog( fwlog::kInfo ) << "cannot get geometry for DetId: "<< k->id().rawId() << ". Ignored.\n";
300 
301  double size = k->energy() / cosh( centerEta );
302 
303  // check what slice to put in
304  int slice = 0;
305  std::map<DetId, int>::const_iterator itr = m_detIdsToColor.find(k->id());
306  if (itr != m_detIdsToColor.end()) slice = itr->second;
307 
308  // if in the EB
309  if( k->id().subdetId() == EcalBarrel )
310  {
311  // do phi wrapping
312  if( centerPhi > m_phi + M_PI) centerPhi -= 2 * M_PI;
313  if( centerPhi < m_phi - M_PI) centerPhi += 2 * M_PI;
314 
315  // check if the hit is in the window to be drawn
316  if( !( fabs( centerEta - m_eta ) < barrelCR
317  && fabs( centerPhi - m_phi ) < barrelCR )) continue;
318 
319  double minEta(10), maxEta(-10), minPhi(4), maxPhi(-4);
320  if( points != 0 )
321  {
322  // calorimeter crystalls have slightly non-symetrical form in eta-phi projection
323  // so if we simply get the largest eta and phi, cells will overlap
324  // therefore we get a smaller eta-phi range representing the inner square
325  // we also should use only points from the inner face of the crystal, since
326  // non-projecting direction of crystals leads to large shift in eta on outter
327  // face.
328  int j = 0;
329  for( unsigned int i = 0; i < 8; ++i )
330  {
331  TEveVector crystal( points[j], points[j + 1], points[j + 2] );
332  j += 3;
333  double eta = crystal.Eta();
334  double phi = crystal.Phi();
335  if ( crystal.Perp() > 135 ) continue;
336  if ( minEta - eta > 0.01) minEta = eta;
337  if ( eta - minEta > 0 && eta - minEta < 0.01 ) minEta = eta;
338  if ( eta - maxEta > 0.01) maxEta = eta;
339  if ( maxEta - eta > 0 && maxEta - eta < 0.01 ) maxEta = eta;
340  if ( minPhi - phi > 0.01) minPhi = phi;
341  if ( phi - minPhi > 0 && phi - minPhi < 0.01 ) minPhi = phi;
342  if ( phi - maxPhi > 0.01) maxPhi = phi;
343  if ( maxPhi - phi > 0 && maxPhi - phi < 0.01 ) maxPhi = phi;
344  }
345  }
346  else
347  {
348  double delta = 0.0172 * 0.5;
349  minEta = centerEta - delta;
350  maxEta = centerEta + delta;
351  minPhi = centerPhi - delta;
352  maxPhi = centerPhi + delta;
353  }
354  if( minPhi >= ( m_phi - barrelCR ) && maxPhi <= ( m_phi + barrelCR ) &&
355  minEta >= ( m_eta - barrelCR ) && maxEta <= ( m_eta + barrelCR ))
356  {
357  data->AddTower( minEta, maxEta, minPhi, maxPhi );
358  // printf("EB add %f %f %f %f \n",minEta, maxEta, minPhi, maxPhi );
359  data->FillSlice( slice, size );
360  }
361  // otherwise in the EE
362  }
363  else if( k->id().subdetId() == EcalEndcap )
364  {
365  // check if the hit is in the window to be drawn
366  double crystalSize = m_size * 0.0172;
367  if( !( fabs( centerEta - m_eta ) < ( crystalSize )
368  && fabs( centerPhi - m_phi ) < ( crystalSize )))
369  continue;
370 
371  if( points != 0 )
372  {
373  double minX(9999), maxX(-9999), minY(9999), maxY(-9999);
374  int j = 0;
375  for( unsigned int i = 0; i < 8; ++i )
376  {
377  TEveVector crystal( points[j], points[j + 1], points[j + 2] );
378  j += 3;
379  double x = crystal.fX;
380  double y = crystal.fY;
381  if( fabs( crystal.fZ ) > 330 ) continue;
382  if( minX - x > 0.01 ) minX = x;
383  if( x - maxX > 0.01 ) maxX = x;
384  if( minY - y > 0.01 ) minY = y;
385  if( y - maxY > 0.01 ) maxY = y;
386  }
387  data->AddTower( minX, maxX, minY, maxY );
388  // printf("EE add %f %f %f %f \n",minX, maxX, minY, maxY );
389  }
390  data->FillSlice( slice, size );
391  }
392  } // end loop on hits
393 
394  data->DataChanged();
395  }
dbl * delta
Definition: mlp_gen.cc:36
int i
Definition: DBlmapReader.cc:9
std::vector< T >::const_iterator const_iterator
double maxEta
T eta() const
std::map< DetId, int > m_detIdsToColor
int j
Definition: DBlmapReader.cc:9
int k[5][pyjets_maxn]
const_iterator end() const
#define M_PI
Definition: BFit3D.cc:3
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:278
#define fwLog(_level_)
Definition: fwLog.h:51
Definition: DDAxes.h:10
tuple size
Write out results.
mathSSE::Vec4< T > v
const_iterator begin() const
Definition: DDAxes.h:10
double FWECALDetailViewBuilder::makeLegend ( double  x0 = 0.02,
double  y0 = 0.95,
Color_t  clustered1 = kGreen+1,
Color_t  clustered2 = kTeal,
Color_t  supercluster = kYellow 
)

Definition at line 398 of file FWECALDetailViewBuilder.cc.

References FWDetailViewBase::drawCanvasBox(), m_defaultColor, pos, x, and detailsBasic3DVector::y.

Referenced by FWCaloTowerDetailView::setTextInfo(), FWMuonDetailView::setTextInfo(), FWPhotonDetailView::setTextInfo(), and FWElectronDetailView::setTextInfo().

402 {
403  Double_t fontsize = 0.07;
404  TLatex* latex = new TLatex();
405  Double_t x = x0;
406  Double_t y = y0;
407  Double_t boxH = 0.25*fontsize;
408  Double_t yStep = 0.04;
409 
410  y -= yStep;
411  latex->DrawLatex(x, y, "Energy types:");
412  y -= yStep;
413 
414  Double_t pos[4];
415  pos[0] = x+0.05;
416  pos[2] = x+0.20;
417 
418  pos[1] = y; pos[3] = pos[1] + boxH;
420  latex->DrawLatex(x+0.25, y, "unclustered");
421  y -= yStep;
422  if (clustered1<0) return y;
423 
424  pos[1] = y; pos[3] = pos[1] + boxH;
425  FWDetailViewBase::drawCanvasBox(pos, clustered1);
426  latex->DrawLatex(x+0.25, y, "clustered");
427  y -= yStep;
428  if (clustered2<0) return y;
429 
430  pos[1] = y; pos[3] = pos[1] + boxH;
431  FWDetailViewBase::drawCanvasBox(pos, clustered2);
432  latex->DrawLatex(x+0.25, y, "clustered");
433  y -= yStep;
434  if (supercluster<0) return y;
435 
436  pos[1] = y; pos[3] = pos[1] + boxH;
437  FWDetailViewBase::drawCanvasBox(pos, supercluster);
438  latex->DrawLatex(x+0.25, y, "super-cluster");
439  y -= yStep;
440 
441  return y;
442 }
Definition: DDAxes.h:10
static void drawCanvasBox(Double_t *pos, Color_t fillCol, Int_t fillType=0, bool bg=kTRUE)
void FWECALDetailViewBuilder::setColor ( Color_t  color,
const std::vector< DetId > &  detIds 
)

Definition at line 202 of file FWECALDetailViewBuilder.cc.

References i, m_colors, and m_detIdsToColor.

Referenced by FWMuonDetailView::build(), and showSuperCluster().

203 {
204 
205  m_colors.push_back(color);
206 
207  // get the slice for this group of detIds
208  // note that the zeroth slice is the default one (all else)
209  int slice = m_colors.size();
210  // take a note of which slice these detids are going to go into
211  for (size_t i = 0; i < detIds.size(); ++i)
212  m_detIdsToColor[detIds[i]] = slice;
213 }
int i
Definition: DBlmapReader.cc:9
std::map< DetId, int > m_detIdsToColor
std::vector< Color_t > m_colors
void FWECALDetailViewBuilder::showSuperCluster ( const reco::SuperCluster cluster,
Color_t  color = kYellow 
)

Definition at line 216 of file FWECALDetailViewBuilder.cc.

References first, reco::CaloCluster::hitsAndFractions(), j, and setColor().

Referenced by FWPhotonDetailView::build(), FWElectronDetailView::build(), and showSuperClusters().

217 {
218  std::vector<DetId> clusterDetIds;
219  const std::vector<std::pair<DetId, float> > &hitsAndFractions = cluster.hitsAndFractions();
220  for (size_t j = 0; j < hitsAndFractions.size(); ++j)
221  {
222  clusterDetIds.push_back(hitsAndFractions[j].first);
223  }
224 
225  setColor( color, clusterDetIds );
226 }
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:189
int j
Definition: DBlmapReader.cc:9
bool first
Definition: L1TdeRCT.cc:79
void setColor(Color_t color, const std::vector< DetId > &detIds)
void FWECALDetailViewBuilder::showSuperClusters ( Color_t  color1 = kGreen+2,
Color_t  color2 = kTeal 
)

Definition at line 229 of file FWECALDetailViewBuilder.cc.

References runEdmFileComparison::collection, eta(), fwLog, edm::EventBase::getByLabel(), i, edm::HandleBase::isValid(), fwlog::kWarning, m_eta, m_event, m_phi, m_size, phi, edm::Handle< T >::product(), showSuperCluster(), python.multivaluedict::sort(), and superClusterEtaLess().

Referenced by FWCaloTowerDetailView::build(), FWMuonDetailView::build(), FWPhotonDetailView::build(), and FWElectronDetailView::build().

230 {
231  // get the superclusters from the event
233 
234  if( fabs( m_eta ) < 1.5 ) {
235  try {
236  m_event->getByLabel(edm::InputTag("correctedHybridSuperClusters"), collection);
237  }
238  catch (...)
239  {
240  fwLog(fwlog::kWarning) <<"no barrel superclusters are available" << std::endl;
241  }
242  } else {
243  try {
244  m_event->getByLabel(edm::InputTag("correctedMulti5x5SuperClustersWithPreshower"), collection);
245  }
246  catch (...)
247  {
248  fwLog(fwlog::kWarning) <<"no endcap superclusters are available" << std::endl;
249  }
250  }
251  if( collection.isValid() )
252  {
253  unsigned int colorIndex = 0;
254  // sort clusters in eta so neighboring clusters have distinct colors
255  reco::SuperClusterCollection sorted = *collection.product();
256  std::sort( sorted.begin(), sorted.end(), superClusterEtaLess );
257  for( size_t i = 0; i < sorted.size(); ++i )
258  {
259  if( !(fabs(sorted[i].eta() - m_eta) < (m_size*0.0172)
260  && fabs(sorted[i].phi() - m_phi) < (m_size*0.0172)) )
261  continue;
262 
263  if( colorIndex %2 == 0 )
264  showSuperCluster( sorted[i], color1 );
265  else
266  showSuperCluster( sorted[i], color2 );
267  ++colorIndex;
268  }
269  }
270 }
void showSuperCluster(const reco::SuperCluster &cluster, Color_t color=kYellow)
int i
Definition: DBlmapReader.cc:9
T eta() const
bool getByLabel(const InputTag &, Handle< T > &) const
Definition: EventBase.h:86
const edm::EventBase * m_event
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
bool isValid() const
Definition: HandleBase.h:76
#define fwLog(_level_)
Definition: fwLog.h:51
T const * product() const
Definition: Handle.h:74
static bool superClusterEtaLess(const reco::CaloCluster &lhs, const reco::CaloCluster &rhs)
Definition: DDAxes.h:10
static bool FWECALDetailViewBuilder::superClusterEtaLess ( const reco::CaloCluster lhs,
const reco::CaloCluster rhs 
)
inlinestaticprivate

Definition at line 83 of file FWECALDetailViewBuilder.h.

References reco::CaloCluster::eta().

Referenced by showSuperClusters().

84  {
85  return ( lhs.eta() < rhs.eta());
86  }
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:160

Member Data Documentation

std::vector<Color_t> FWECALDetailViewBuilder::m_colors
private

Definition at line 80 of file FWECALDetailViewBuilder.h.

Referenced by build(), and setColor().

Color_t FWECALDetailViewBuilder::m_defaultColor
private

Definition at line 74 of file FWECALDetailViewBuilder.h.

Referenced by build(), and makeLegend().

std::map<DetId, int> FWECALDetailViewBuilder::m_detIdsToColor
private

Definition at line 77 of file FWECALDetailViewBuilder.h.

Referenced by fillData(), and setColor().

float FWECALDetailViewBuilder::m_eta
private

Definition at line 71 of file FWECALDetailViewBuilder.h.

Referenced by build(), fillData(), and showSuperClusters().

const edm::EventBase* FWECALDetailViewBuilder::m_event
private

Definition at line 69 of file FWECALDetailViewBuilder.h.

Referenced by build(), and showSuperClusters().

const FWGeometry* FWECALDetailViewBuilder::m_geom
private

Definition at line 70 of file FWECALDetailViewBuilder.h.

Referenced by fillData().

float FWECALDetailViewBuilder::m_phi
private

Definition at line 72 of file FWECALDetailViewBuilder.h.

Referenced by build(), fillData(), and showSuperClusters().

int FWECALDetailViewBuilder::m_size
private

Definition at line 73 of file FWECALDetailViewBuilder.h.

Referenced by build(), fillData(), and showSuperClusters().