217 {
218
219
220 SoDrawStyle *drawStyle = new SoDrawStyle();
221 drawStyle->lineWidth=1;
222 SoLightModel *lm = new SoLightModel();
223 lm->model=SoLightModel::BASE_COLOR;
224
225 SoMaterial *
blue=
new SoMaterial();
226 blue->diffuseColor.setValue(0,0,1);
227
228 SoMaterial *
green=
new SoMaterial();
229 green->diffuseColor.setValue(0 , 1, 0);
230
231 SoMaterial *
yellow=
new SoMaterial();
232 yellow->diffuseColor.setValue(0, 1.00, 1.00);
233
234 SoMaterial *magenta = new SoMaterial();
235 magenta->diffuseColor.setValue(1.00,0.00, 1.00);
236
237 for (
int i=0;
i<4;
i++) {
238 if (i<3) {
242 }
252 }
253
255
256 {
258
259 if (manager) {
262
263 const FCALModule *fcalMod = *
e;
264 SoSeparator *sep1 = new SoSeparator();
265 VP1ExtraSepLayerHelper *
sep =
new VP1ExtraSepLayerHelper(sep1);
266
269 double x =
t->getX();
270 double y =
t->getY();
273
274
275
276
278 SoVertexProperty *vtxProperty = new SoVertexProperty();
279 vtxProperty->vertex.set1Value(cc++, SbVec3f(
x-dx+3,
y-dy+3 ,0));
280 vtxProperty->vertex.set1Value(cc++, SbVec3f(
x+dx-3,
y-dy+3, 0));
281 vtxProperty->vertex.set1Value(cc++, SbVec3f(
x+dx-3,
y+dy-3 ,0));
282 vtxProperty->vertex.set1Value(cc++, SbVec3f(
x-dx+3,
y+dy-3 ,0));
283 vtxProperty->vertex.set1Value(cc++, SbVec3f(
x-dx+3,
y-dy+3 ,0));
284
285 SoLineSet *
ls =
new SoLineSet();
287 ls->vertexProperty=vtxProperty;
289
291 }
294
295 }
296 }
297 }
298
299 {
301
302 if (manager) {
303
305 for (e=
manager->beginDetectorRegion();e!=
manager->endDetectorRegion(); ++e) {
306
307 const HECDetectorRegion *region=*
e;
308 SoSeparator *sep1 = new SoSeparator();
309 VP1ExtraSepLayerHelper *
sep =
new VP1ExtraSepLayerHelper(sep1);
310
311 for (
unsigned int iPhi=region->
beginPhiIndex();iPhi<region->endPhiIndex();
iPhi++) {
312 for (
unsigned int iEta=region->
beginEtaIndex();iEta<region->endEtaIndex();
iEta++) {
314 if (cellPtr) {
315
316 double phiMin = cellPtr->getPhiLocalLower();
317 double phiMax = cellPtr->getPhiLocalUpper();
318 double etaMin = cellPtr->getEtaMinNominal();
319 double etaMax = cellPtr->getEtaMaxNominal();
320
322 phiMin =
M_PI-phiMin;
323 phiMax =
M_PI-phiMax;
326 }
327
329 SoVertexProperty *vtxProperty = new SoVertexProperty();
330 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
331 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMax ,0));
332 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMax ,0));
333 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMin ,0));
334 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
335
336 SoLineSet *
ls =
new SoLineSet();
338 ls->vertexProperty=vtxProperty;
340
342 }
343 }
344 }
346 }
347 }
348 }
349
350
351 {
353
354 if (manager) {
355
357 for (e=
manager->beginDetectorRegion();e!=
manager->endDetectorRegion(); ++e) {
358 const EMECDetectorRegion *region = *
e;
359
360
361
362
363 SoSeparator *sep1 = new SoSeparator();
364 VP1ExtraSepLayerHelper *
sep =
new VP1ExtraSepLayerHelper(sep1);
365
366
367 for (
unsigned int iPhi=region->
beginPhiIndex();iPhi<region->endPhiIndex();
iPhi++) {
368 for (
unsigned int iEta=region->
beginEtaIndex();iEta<region->endEtaIndex();
iEta++) {
369
370
371
372 EMECCellConstLink cellPtr = (
static_cast<const EMECDetectorRegion *
> (region))->getEMECCell(iEta,iPhi);
373 double phiMin = cellPtr->getPhiLocalLower();
374 double phiMax = cellPtr->getPhiLocalUpper();
375 double etaMin = cellPtr->getEtaMin();
376 double etaMax = cellPtr->getEtaMax();
377
379 phiMin =
M_PI-phiMin;
380 phiMax =
M_PI-phiMax;
383 }
384
386 SoVertexProperty *vtxProperty = new SoVertexProperty();
387 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
388 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMax ,0));
389 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMax ,0));
390 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMin ,0));
391 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
392
393 SoLineSet *
ls =
new SoLineSet();
395 ls->vertexProperty=vtxProperty;
398 }
399 }
401 }
402 }
403 }
404 {
406
407 if (manager) {
408
410 for (e=
manager->beginDetectorRegion();e!=
manager->endDetectorRegion(); ++e) {
411 const EMBDetectorRegion *region = *
e;
412 SoSeparator *sep1 = new SoSeparator();
413 VP1ExtraSepLayerHelper *
sep =
new VP1ExtraSepLayerHelper(sep1);
414
415 for (
unsigned int iPhi=region->
beginPhiIndex();iPhi<region->endPhiIndex();
iPhi++) {
416 for (
unsigned int iEta=region->
beginEtaIndex();iEta<region->endEtaIndex();
iEta++) {
417
418
419 EMBCellConstLink cellPtr = (
static_cast<const EMBDetectorRegion *
> (region))->getEMBCell(iEta,iPhi);
420 double phiMin = cellPtr->getPhiLocalLower();
421 double phiMax = cellPtr->getPhiLocalUpper();
422 double etaMin = cellPtr->getEtaMin();
423 double etaMax = cellPtr->getEtaMax();
424
426 phiMin =
M_PI-phiMin;
427 phiMax =
M_PI-phiMax;
430 }
431
433 SoVertexProperty *vtxProperty = new SoVertexProperty();
434 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
435 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMax ,0));
436 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMax ,0));
437 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMax,phiMin ,0));
438 vtxProperty->vertex.set1Value(cc++, SbVec3f(etaMin,phiMin ,0));
439
440 SoLineSet *
ls =
new SoLineSet();
442 ls->vertexProperty=vtxProperty;
445 }
446 }
448 }
449 }
450 }
451}
GeoIntrusivePtr< const EMBCell > EMBCellConstLink
GeoIntrusivePtr< const EMECCell > EMECCellConstLink
GeoIntrusivePtr< const HECCell > HECCellConstLink
@Class: HECCellConstLink
std::vector< constEMBDetectorRegion * >::const_iterator DetectorRegionConstIterator
unsigned int beginPhiIndex() const
Returns the first phi index in the region.
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
EMBDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
unsigned int beginEtaIndex() const
Returns the first eta index in the region.
std::vector< constEMECDetectorRegion * >::const_iterator DetectorRegionConstIterator
unsigned int beginPhiIndex() const
returns the first phi index in the region.
EMECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
unsigned int beginEtaIndex() const
returns the first eta index in the region.
std::vector< constFCALModule * >::const_iterator ConstIterator
double getFullWidthY(const FCALTile &tile) const
Gets Tile Full Width in Y.
double getFullWidthX(const FCALTile &tile) const
Gets Tile Full Width in X.
std::vector< FCALTile >::const_iterator ConstIterator
FCALModule::ConstIterator beginTiles() const
Iteration over FCAL Tiles.
FCALModule::Module getModuleIndex() const
Returns the Module (1,2, or 3)
FCALModule::ConstIterator endTiles() const
Iteration over FCAL Tiles.
std::vector< constHECDetectorRegion * >::const_iterator DetectorRegionConstIterator
HECCellConstLink getHECCell(unsigned int ieta, unsigned int iphi) const
Retrieve a cell with eta index and phi index.
unsigned int beginPhiIndex() const
returns the first phi index in the region.
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index (0-3)
unsigned int beginEtaIndex() const
returns the first eta index in the region.
HECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
static const FCALDetectorManager * fcalDetMgr()
static const EMECDetectorManager * emecDetMgr()
static void ensureInit(IVP1System *)
static const EMBDetectorManager * embDetMgr()
static const HECDetectorManager * hecDetMgr()
setScale setgFexType iEta