ATLAS Offline Software
Classes | Public Member Functions | Protected Slots | Private Attributes | List of all members
PhiSectorManager Class Reference

#include <PhiSectorManager.h>

Inheritance diagram for PhiSectorManager:
Collaboration diagram for PhiSectorManager:

Classes

class  Imp
 

Public Member Functions

 PhiSectorManager (PhiSectionWidget *, IVP1System *, QObject *parent=0)
 
virtual ~PhiSectorManager ()
 
void registerSubSystemSeparator (VP1GeoFlags::SubSystemFlag flag, SoSeparator *subsystemsep)
 
int getVolumeType (const SbMatrix &transform, SoNode *shape) const
 
VP1ExtraSepLayerHelpergetSepHelperForNode (VP1GeoFlags::SubSystemFlag flag, int iphi)
 
VP1ExtraSepLayerHelpergetLabelSepHelperForNode (VP1GeoFlags::SubSystemFlag flag, int iphi)
 Addition to handle label separators, in exactly the same way as getSepHelperForNode(...) More...
 
VP1ExtraSepLayerHelperregisterVolumeAroundZAxis (VP1GeoFlags::SubSystemFlag flag, SoSwitch *sw, const SbMatrix &tranformation)
 
void updateRepresentationsOfVolsAroundZAxis ()
 
void largeChangesBegin ()
 
void largeChangesEnd ()
 

Protected Slots

void enabledPhiSectorsChanged ()
 
void updateEnabledPhiSections (int)
 

Private Attributes

Impm_d
 

Detailed Description

Definition at line 30 of file PhiSectorManager.h.

Constructor & Destructor Documentation

◆ PhiSectorManager()

PhiSectorManager::PhiSectorManager ( PhiSectionWidget psw,
IVP1System sys,
QObject *  parent = 0 
)

Definition at line 262 of file PhiSectorManager.cxx.

263  : QObject(parent), m_d(new Imp)
264 {
265  m_d->phisectionwidget = psw;
266  m_d->system=sys;
268  m_d->currentlyEnabledPhiSectors = QVector<bool>(NPHISECTORS,false);
269  QList<int> l; l << 4 << 6 << 9 << 12 << 18 << NPHISECTORS;//NB: All must be divisors in NPHISECTORS
270  psw->setNumberOfSectors(12);
272 
273  connect(psw,SIGNAL(enabledPhiRangesChanged(const QList<VP1Interval>&)),this,SLOT(enabledPhiSectorsChanged()));
275 }

◆ ~PhiSectorManager()

PhiSectorManager::~PhiSectorManager ( )
virtual

Definition at line 278 of file PhiSectorManager.cxx.

279 {
280 
281  std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> >::iterator it, itE = m_d->subsysflag_2_iphi2sephelper.end();
282  for (it = m_d->subsysflag_2_iphi2sephelper.begin();it!=itE;++it) {
283  std::map<int,VP1ExtraSepLayerHelper*>::iterator it2(it->second.begin()),it2E(it->second.end());
284  for (;it2!=it2E;++it2) {
285  SoSeparator * sep = it2->second->topSeparator();
286  delete (it2->second);
287  sep->unref();
288  }
289  }
290 
291  std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> >::iterator it4, itE4 = m_d->subsysflag_2_iphi2labelsephelper.end();
292  for (it4 = m_d->subsysflag_2_iphi2labelsephelper.begin();it4!=itE4;++it4) {
293  std::map<int,VP1ExtraSepLayerHelper*>::iterator it5(it4->second.begin()),it5E(it4->second.end());
294  for (;it5!=it5E;++it5) {
295  SoSeparator * sep = it5->second->topSeparator();
296  delete (it5->second);
297  sep->unref();
298  }
299  }
301  for (it3 = m_d->subsysflag_2_volAroundZSepHelper.begin();it3!=it3E;++it3) {
302  SoSeparator * sep = it3->second->topSeparator();
303  delete (it3->second);
304  sep->unref();
305  }
306  delete m_d; m_d=0;
307 }

Member Function Documentation

◆ enabledPhiSectorsChanged

void PhiSectorManager::enabledPhiSectorsChanged ( )
protectedslot

Definition at line 310 of file PhiSectorManager.cxx.

311 {
314  return;
315  QList<int> changedPhiSectors;
316  for (int iphi = 0; iphi < NPHISECTORS; ++iphi)
317  if (m_d->currentlyEnabledPhiSectors[iphi]!=v[iphi])
318  changedPhiSectors << iphi;
320  for (int iphi : changedPhiSectors)
322 }

◆ getLabelSepHelperForNode()

VP1ExtraSepLayerHelper * PhiSectorManager::getLabelSepHelperForNode ( VP1GeoFlags::SubSystemFlag  flag,
int  iphi 
)

Addition to handle label separators, in exactly the same way as getSepHelperForNode(...)

Definition at line 118 of file PhiSectorManager.cxx.

119 {
120  assert(iphi>=-1);
121  assert(m_d->subsysflag2labelsep.find(flag)!=m_d->subsysflag2labelsep.end());
123 
126  }
127 
128  SoSwitch * sw = new SoSwitch;
129  sw->whichChild = (iphi>=0 ? m_d->phisectionwidget->virtualSectorEnabled(iphi,NPHISECTORS):!m_d->phisectionwidget->allSectorsOff()) ? SO_SWITCH_ALL : SO_SWITCH_NONE;
130 
131  m_d->iphi2Labelswitches[iphi].insert(sw);
132 
133  SoSeparator * sep = new SoSeparator;
134  sep->ref();
136  m_d->subsysflag_2_iphi2labelsephelper[flag][iphi] = sephelper;
137 
138  sw->addChild(sep);
139  m_d->subsysflag2labelsep[flag]->addChild(sw);
140  return sephelper;
141 }

◆ getSepHelperForNode()

VP1ExtraSepLayerHelper * PhiSectorManager::getSepHelperForNode ( VP1GeoFlags::SubSystemFlag  flag,
int  iphi 
)

Definition at line 92 of file PhiSectorManager.cxx.

93 {
94  assert(iphi>=-1);
95  assert(m_d->subsysflag2sep.find(flag)!=m_d->subsysflag2sep.end());
97 
99  return m_d->subsysflag_2_iphi2sephelper[flag][iphi];
100  }
101 
102  SoSwitch * sw = new SoSwitch;
103  sw->whichChild = (iphi>=0 ? m_d->phisectionwidget->virtualSectorEnabled(iphi,NPHISECTORS):!m_d->phisectionwidget->allSectorsOff()) ? SO_SWITCH_ALL : SO_SWITCH_NONE;
104 
105  m_d->iphi2switches[iphi].insert(sw);
106 
107  SoSeparator * sep = new SoSeparator;
108  sep->ref();
110  m_d->subsysflag_2_iphi2sephelper[flag][iphi] = sephelper;
111 
112  sw->addChild(sep);
113  m_d->subsysflag2sep[flag]->addChild(sw);
114  return sephelper;
115 }

◆ getVolumeType()

int PhiSectorManager::getVolumeType ( const SbMatrix &  transform,
SoNode *  shape 
) const

Definition at line 215 of file PhiSectorManager.cxx.

215  {
216  if (!shape) {
217  VP1Msg::message("ERROR: getVolumeType got a NULL shape pointer");
218  return 0;
219  }
220 
221  //Step 1) Find the (projected) bounding box.
222  shape->ref();
223  SbViewportRegion dummyvp;
224  SoGetBoundingBoxAction a(dummyvp);//Fixme: Cache this guy?
225  a.apply(shape);
226  SbXfBox3f xfbox = a.getXfBoundingBox();
227  xfbox.transform(transform);
228  SbBox3f box = xfbox.project();
229  shape->unrefNoDelete();
230 
231  //Step 2) Does it enclose the Z-axis?
232  float minx, miny, minz, maxx, maxy, maxz;
233  box.getBounds(minx, miny, minz, maxx, maxy, maxz);
234  float x,y,z;
235  box.getCenter().getValue(x,y,z);
236  if (std::abs(x*20.0)<std::abs(std::min(minx,maxx))&&std::abs(y*20.0)<std::abs(std::min(miny,maxy))) {
237  // -> Yes: It is one of the volumes we can handle dynamically?
238  if (shape->getTypeId()==SoTubs::getClassTypeId()
239  ||shape->getTypeId()==SoPcons::getClassTypeId()
240  ||shape->getTypeId()==SoCons::getClassTypeId()
241  ||shape->getTypeId()==SoLAr::getClassTypeId()) {
242  // -> Yes:
243  return -2;
244  } else {
245  // -> No:
246  //Fixme: Move this message somewhere appropriate???
247  //shape cannot be NULL here, so 'false' case is redundant (coverity 16272)
248  //std::string Typenametest = shape ? shape->getTypeId().getName().getString() : "NULL";
249  std::string Typenametest = shape->getTypeId().getName().getString();
250  m_d->system->message("WARNING: Unknown volume type (boolean?) for volume around Z-axis (type "
251  +QString(Typenametest.c_str())+"). Phi-sector cuts won't work for this!");
252  return -1;
253  }
254  }
255 
256  //Step 3: Find phi of center and return appropriate iphi:
258 
259 }

◆ largeChangesBegin()

void PhiSectorManager::largeChangesBegin ( )

Definition at line 492 of file PhiSectorManager.cxx.

493 {
494  if (++(m_d->nactivelargechanges)==1) {
495  VP1Msg::messageVerbose("PhiSectorManager disabling notifications begin");
496  std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> >::iterator it, itE = m_d->subsysflag_2_iphi2sephelper.end();
497  for (it = m_d->subsysflag_2_iphi2sephelper.begin();it!=itE;++it) {
498  std::map<int,VP1ExtraSepLayerHelper*>::iterator it2(it->second.begin()),it2E(it->second.end());
499  for (;it2!=it2E;++it2)
500  it2->second->largeChangesBegin();
501  }
503  for (it3 = m_d->subsysflag_2_volAroundZSepHelper.begin();it3!=it3E;++it3)
504  it3->second->largeChangesBegin();
505  VP1Msg::messageVerbose("PhiSectorManager disabling notifications end");
506  }
507 }

◆ largeChangesEnd()

void PhiSectorManager::largeChangesEnd ( )

Definition at line 510 of file PhiSectorManager.cxx.

511 {
512  if (--(m_d->nactivelargechanges)==0) {
513  VP1Msg::messageVerbose("PhiSectorManager enabling notifications begin");
514  std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> >::iterator it, itE = m_d->subsysflag_2_iphi2sephelper.end();
515  for (it = m_d->subsysflag_2_iphi2sephelper.begin();it!=itE;++it) {
516  std::map<int,VP1ExtraSepLayerHelper*>::iterator it2(it->second.begin()),it2E(it->second.end());
517  for (;it2!=it2E;++it2)
518  it2->second->largeChangesEnd();
519  }
521  for (it3 = m_d->subsysflag_2_volAroundZSepHelper.begin();it3!=it3E;++it3)
522  it3->second->largeChangesEnd();
523  VP1Msg::messageVerbose("PhiSectorManager enabling notifications end");
524  }
525 }

◆ registerSubSystemSeparator()

void PhiSectorManager::registerSubSystemSeparator ( VP1GeoFlags::SubSystemFlag  flag,
SoSeparator *  subsystemsep 
)

Definition at line 78 of file PhiSectorManager.cxx.

79 {
80  assert(m_d->subsysflag2sep.find(flag)==m_d->subsysflag2sep.end());
82  m_d->subsysflag_2_iphi2sephelper[flag] = std::map<int,VP1ExtraSepLayerHelper*>();
83  m_d->subsysflag2sep[flag] = subsystemsep;
84 
85  assert(m_d->subsysflag2labelsep.find(flag)==m_d->subsysflag2labelsep.end());
87  m_d->subsysflag_2_iphi2labelsephelper[flag] = std::map<int,VP1ExtraSepLayerHelper*>();
88  m_d->subsysflag2labelsep[flag] = subsystemsep;
89 }

◆ registerVolumeAroundZAxis()

VP1ExtraSepLayerHelper * PhiSectorManager::registerVolumeAroundZAxis ( VP1GeoFlags::SubSystemFlag  flag,
SoSwitch *  sw,
const SbMatrix &  tranformation 
)

Definition at line 144 of file PhiSectorManager.cxx.

145 {
146  //Assumes that the switch, sw, has the unsliced shape node as the
147  //first child (0) and a separator as the second child (1), under
148  //which shapes representing the phi-sliced shape will be placed.
149 
150  //If not all phi sectors are visible, the sep node will be
151  //populated with children representing the shape cut up
152  //appropriately, and the switch will show the sep rather than the
153  //shapeWithAllPhiSectors.
154 
155  assert(sw->getNumChildren()==2);
156 // assert(sw->getChild(0)->getTypeId().isDerivedFrom(SoShape::getClassTypeId()));
157  assert(sw->getChild(1)->getTypeId()==SoSeparator::getClassTypeId());
158 
159  SoNode* shape = static_cast<SoShape*>(sw->getChild(0));
160  SoSeparator* sep = static_cast<SoSeparator*>(sw->getChild(1));
161 
162  //Start unsliced:
163  if (sw->whichChild.getValue() != 0)
164  sw->whichChild = 0;
165 
166  // Register the shape according to type:
167  if (shape->getTypeId()==SoTubs::getClassTypeId()) {
168  m_d->volaroundZ_tubs[sw] = std::pair<SoTubs*,SoSeparator*>(static_cast<SoTubs*>(shape),sep);
169  } else if (shape->getTypeId()==SoPcons::getClassTypeId()) {
170  m_d->volaroundZ_pcons[sw] = std::pair<SoPcons*,SoSeparator*>(static_cast<SoPcons*>(shape),sep);
171  } else if (shape->getTypeId()==SoCons::getClassTypeId()) {
172  m_d->volaroundZ_cons[sw] = std::pair<SoCons*,SoSeparator*>(static_cast<SoCons*>(shape),sep);
173  } else {
174  assert(shape->getTypeId()==SoLAr::getClassTypeId());
175  m_d->volaroundZ_lar[sw] = std::pair<SoLAr*,SoSeparator*>(static_cast<SoLAr*>(shape),sep);
176  }
177 
178  //Test: Are we roughly given by a rotation around the y-axis?
179  SbVec3f unitz (0.0f, 0.0f, 1.0f);
180  SbVec3f transfunitz;
181 
182  SbVec3f translation; SbRotation rotation; SbVec3f scaleFactor; SbRotation scaleOrientation;
183  transf.getTransform (translation, rotation, scaleFactor, scaleOrientation);
184 
185  rotation.multVec(unitz,transfunitz);
186 
187  float x,y,z;
188  transfunitz.getValue(x,y,z);
189  //Look at direction in x-z plane - is it consistent with z<0 and |x|<<|z|? Then we have rotated around y:
190  bool rotaroundy = (z<0&&std::fabs(x)*10<std::fabs(z));
191 
192  //Test: Whats the rough value we are rotated around z?
193  SbVec3f unitx (1.0f, 0.0f, 0.0f);
194  SbVec3f transfunitx;
195  rotation.multVec(unitx,transfunitx);
196  transfunitx.getValue(x,y,z);
197  double phirot = VP1LinAlgUtils::phiFromXY(x, y );
198  m_d->volaroundZ_switch2transfinfo[sw] = std::pair<double,bool>(phirot,rotaroundy);
199 
200  //Return the sephelper for this subsystems volumes around Z:
203 
204  SoSeparator * subsyssep_volaroundZ = new SoSeparator;
205  assert(m_d->subsysflag2sep.find(flag)!=m_d->subsysflag2sep.end());
206  m_d->subsysflag2sep[flag]->addChild(subsyssep_volaroundZ);
207 
208  subsyssep_volaroundZ->ref();
209  VP1ExtraSepLayerHelper * sephelper = new VP1ExtraSepLayerHelper(subsyssep_volaroundZ);
211  return sephelper;
212 }

◆ updateEnabledPhiSections

void PhiSectorManager::updateEnabledPhiSections ( int  iphi)
protectedslot

Definition at line 325 of file PhiSectorManager.cxx.

325  {
326  bool turnedon = m_d->currentlyEnabledPhiSectors.at(iphi);
327  if (m_d->iphi2switches.find(iphi)!=m_d->iphi2switches.end()) {
329  for (it = m_d->iphi2switches[iphi].begin();it!=itE;++it) {
330  if ((*it)->whichChild.getValue() != (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE))
331  (*it)->whichChild = (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE);
332  }
333  }
334 
335  if (m_d->iphi2Labelswitches.find(iphi)!=m_d->iphi2Labelswitches.end()) {
337  for (it = m_d->iphi2Labelswitches[iphi].begin();it!=itE;++it) {
338  if ((*it)->whichChild.getValue() != (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE))
339  (*it)->whichChild = (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE);
340  }
341  }
342  // FIXME - need to find a way to turn on labels for recently made visible phi sections, OR build them all by default.
343 
344  //Update the switches for boolean, etc., volumes around the Z axis.
345  bool alloff = m_d->phisectionwidget->allSectorsOff();
346  std::map<int,std::set<SoSwitch*> >::iterator it_zax_switches = m_d->iphi2switches.find(-1);
347  if (it_zax_switches!=m_d->iphi2switches.end()) {
348  std::set<SoSwitch*>::iterator it, itE = it_zax_switches->second.end();
349  for (it = it_zax_switches->second.begin();it!=itE;++it) {
350  if ((*it)->whichChild.getValue() != (alloff?SO_SWITCH_NONE:SO_SWITCH_ALL))
351  (*it)->whichChild = (alloff?SO_SWITCH_NONE:SO_SWITCH_ALL);
352  }
353  }
355 }

◆ updateRepresentationsOfVolsAroundZAxis()

void PhiSectorManager::updateRepresentationsOfVolsAroundZAxis ( )

Member Data Documentation

◆ m_d

Imp* PhiSectorManager::m_d
private

Definition at line 74 of file PhiSectorManager.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
PhiSectionWidget::phiToVirtualSectorIndex
static int phiToVirtualSectorIndex(double phi, int nSectors)
Definition: PhiSectionWidget.cxx:716
PhiSectorManager::Imp::subsysflag_2_volAroundZSepHelper
std::map< VP1GeoFlags::SubSystemFlag, VP1ExtraSepLayerHelper * > subsysflag_2_volAroundZSepHelper
Definition: PhiSectorManager.cxx:50
SoLAr
SoLAr - Inventor version of the G4Cons Geant Geometry entity.
Definition: SoLAr.h:36
PhiSectorManager::m_d
Imp * m_d
Definition: PhiSectorManager.h:73
SoPcons
SoPcons - Inventor version of the G4Cons Geant Geometry entity.
Definition: SoPcons.h:39
SoTubs
SoTubs - Inventor version of the G4Tubs Geant Geometry entity.
Definition: SoTubs.h:50
PhiSectorManager::updateEnabledPhiSections
void updateEnabledPhiSections(int)
Definition: PhiSectorManager.cxx:325
PhiSectionWidget::allSectorsOff
bool allSectorsOff() const
Definition: PhiSectionWidget.cxx:492
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
PhiSectorManager::Imp::subsysflag_2_iphi2sephelper
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2sephelper
Definition: PhiSectorManager.cxx:48
PhiSectorManager::Imp::nactivelargechanges
int nactivelargechanges
Definition: PhiSectorManager.cxx:72
skel.it
it
Definition: skel.GENtoEVGEN.py:396
PhiSectorManager::Imp::subsysflag2labelsep
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2labelsep
Definition: PhiSectorManager.cxx:47
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
PhiSectorManager::Imp::phisectionwidget
PhiSectionWidget * phisectionwidget
Definition: PhiSectorManager.cxx:43
x
#define x
PhiSectorManager::Imp::volaroundZ_tubs
std::map< SoSwitch *, std::pair< SoTubs *, SoSeparator * > > volaroundZ_tubs
Definition: PhiSectorManager.cxx:57
PhiSectorManager::Imp::volaroundZ_switch2transfinfo
std::map< SoSwitch *, std::pair< double, bool > > volaroundZ_switch2transfinfo
Definition: PhiSectorManager.cxx:61
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
PhiSectorManager::Imp::volaroundZ_lar
std::map< SoSwitch *, std::pair< SoLAr *, SoSeparator * > > volaroundZ_lar
Definition: PhiSectorManager.cxx:60
TruthTest.itE
itE
Definition: TruthTest.py:25
VP1LinAlgUtils::phiFromXY
static double phiFromXY(const double &x, const double &y)
Definition: VP1LinAlgUtils.cxx:374
PhiSectorManager::Imp::volaroundZ_pcons
std::map< SoSwitch *, std::pair< SoPcons *, SoSeparator * > > volaroundZ_pcons
Definition: PhiSectorManager.cxx:58
VP1ExtraSepLayerHelper
Definition: VP1ExtraSepLayerHelper.h:22
z
#define z
PhiSectionWidget::setAllowedNumberOfSectors
void setAllowedNumberOfSectors(QList< int > allowedNSectors, bool allowCustom=false)
Definition: PhiSectionWidget.cxx:831
PhiSectionWidget::setNumberOfSectors
void setNumberOfSectors(int, bool forceAllEnabled=false)
Definition: PhiSectionWidget.cxx:153
PhiSectorManager::Imp::subsysflag2sep
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2sep
Definition: PhiSectorManager.cxx:46
xAOD::rotation
rotation
Definition: TrackSurface_v1.cxx:15
master.flag
bool flag
Definition: master.py:29
PhiSectorManager::Imp::system
IVP1System * system
Definition: PhiSectorManager.cxx:44
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
test_pyathena.parent
parent
Definition: test_pyathena.py:15
PhiSectorManager::Imp::volaroundZ_cons
std::map< SoSwitch *, std::pair< SoCons *, SoSeparator * > > volaroundZ_cons
Definition: PhiSectorManager.cxx:59
hist_file_dump.f
f
Definition: hist_file_dump.py:135
PhiSectorManager::Imp::currentlyEnabledPhiSectors
QVector< bool > currentlyEnabledPhiSectors
Definition: PhiSectorManager.cxx:74
min
#define min(a, b)
Definition: cfImp.cxx:40
grepfile.sep
sep
Definition: grepfile.py:38
PhiSectorManager::Imp::subsysflag_2_iphi2labelsephelper
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2labelsephelper
Definition: PhiSectorManager.cxx:49
PhiSectorManager::enabledPhiSectorsChanged
void enabledPhiSectorsChanged()
Definition: PhiSectorManager.cxx:310
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
PhiSectorManager::Imp::iphi2Labelswitches
std::map< int, std::set< SoSwitch * > > iphi2Labelswitches
Definition: PhiSectorManager.cxx:54
PhiSectorManager::Imp::updateRepresentationsOfVolsAroundZAxis_Specific
void updateRepresentationsOfVolsAroundZAxis_Specific(std::map< SoSwitch *, std::pair< T *, SoSeparator * > > &volaroundZ)
Definition: PhiSectorManager.cxx:431
python.PyAthena.v
v
Definition: PyAthena.py:154
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition: VP1Msg.cxx:30
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
PhiSectorManager::updateRepresentationsOfVolsAroundZAxis
void updateRepresentationsOfVolsAroundZAxis()
Definition: PhiSectorManager.cxx:483
NPHISECTORS
#define NPHISECTORS
Definition: PhiSectorManager.cxx:38
SoCons
SoCons - Inventor version of the G4Cons Geant Geometry entity.
Definition: SoCons.h:50
PhiSectorManager::Imp::iphi2switches
std::map< int, std::set< SoSwitch * > > iphi2switches
Definition: PhiSectorManager.cxx:53
PhiSectionWidget::virtualSectorsEnabled
QVector< bool > virtualSectorsEnabled(int nSectors) const
Definition: PhiSectionWidget.cxx:704
PhiSectionWidget::virtualSectorEnabled
bool virtualSectorEnabled(int iSector, int nSectors) const
Definition: PhiSectionWidget.cxx:677
IVP1System::message
void message(const QString &) const
Definition: IVP1System.cxx:336