|
ATLAS Offline Software
|
#include <PhiSectorManager.h>
Definition at line 30 of file PhiSectorManager.h.
◆ PhiSectorManager()
◆ ~PhiSectorManager()
PhiSectorManager::~PhiSectorManager |
( |
| ) |
|
|
virtual |
Definition at line 278 of file PhiSectorManager.cxx.
284 for (;it2!=it2E;++it2) {
285 SoSeparator *
sep = it2->second->topSeparator();
286 delete (it2->second);
294 for (;it5!=it5E;++it5) {
295 SoSeparator *
sep = it5->second->topSeparator();
296 delete (it5->second);
302 SoSeparator *
sep = it3->second->topSeparator();
303 delete (it3->second);
◆ enabledPhiSectorsChanged
void PhiSectorManager::enabledPhiSectorsChanged |
( |
| ) |
|
|
protectedslot |
Definition at line 310 of file PhiSectorManager.cxx.
315 QList<int> changedPhiSectors;
318 changedPhiSectors << iphi;
320 for (
int iphi : changedPhiSectors)
◆ getLabelSepHelperForNode()
Addition to handle label separators, in exactly the same way as getSepHelperForNode(...)
Definition at line 118 of file PhiSectorManager.cxx.
128 SoSwitch * sw =
new SoSwitch;
133 SoSeparator *
sep =
new SoSeparator;
◆ getSepHelperForNode()
Definition at line 92 of file PhiSectorManager.cxx.
102 SoSwitch * sw =
new SoSwitch;
107 SoSeparator *
sep =
new SoSeparator;
◆ getVolumeType()
int PhiSectorManager::getVolumeType |
( |
const SbMatrix & |
transform, |
|
|
SoNode * |
shape |
|
) |
| const |
Definition at line 215 of file PhiSectorManager.cxx.
223 SbViewportRegion dummyvp;
224 SoGetBoundingBoxAction
a(dummyvp);
226 SbXfBox3f xfbox =
a.getXfBoundingBox();
228 SbBox3f box = xfbox.project();
229 shape->unrefNoDelete();
232 float minx, miny, minz, maxx, maxy, maxz;
233 box.getBounds(minx, miny, minz, maxx, maxy, maxz);
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))) {
238 if (shape->getTypeId()==SoTubs::getClassTypeId()
239 ||shape->getTypeId()==SoPcons::getClassTypeId()
240 ||shape->getTypeId()==SoCons::getClassTypeId()
241 ||shape->getTypeId()==SoLAr::getClassTypeId()) {
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!");
◆ largeChangesBegin()
void PhiSectorManager::largeChangesBegin |
( |
| ) |
|
Definition at line 492 of file PhiSectorManager.cxx.
499 for (;it2!=it2E;++it2)
500 it2->second->largeChangesBegin();
504 it3->second->largeChangesBegin();
◆ largeChangesEnd()
void PhiSectorManager::largeChangesEnd |
( |
| ) |
|
Definition at line 510 of file PhiSectorManager.cxx.
517 for (;it2!=it2E;++it2)
518 it2->second->largeChangesEnd();
522 it3->second->largeChangesEnd();
◆ registerSubSystemSeparator()
◆ registerVolumeAroundZAxis()
Definition at line 144 of file PhiSectorManager.cxx.
155 assert(sw->getNumChildren()==2);
157 assert(sw->getChild(1)->getTypeId()==SoSeparator::getClassTypeId());
159 SoNode* shape =
static_cast<SoShape*
>(sw->getChild(0));
160 SoSeparator*
sep =
static_cast<SoSeparator*
>(sw->getChild(1));
163 if (sw->whichChild.getValue() != 0)
167 if (shape->getTypeId()==SoTubs::getClassTypeId()) {
169 }
else if (shape->getTypeId()==SoPcons::getClassTypeId()) {
171 }
else if (shape->getTypeId()==SoCons::getClassTypeId()) {
174 assert(shape->getTypeId()==SoLAr::getClassTypeId());
179 SbVec3f unitz (0.0
f, 0.0
f, 1.0
f);
182 SbVec3f translation; SbRotation
rotation; SbVec3f scaleFactor; SbRotation scaleOrientation;
183 transf.getTransform (translation,
rotation, scaleFactor, scaleOrientation);
185 rotation.multVec(unitz,transfunitz);
188 transfunitz.getValue(
x,
y,
z);
190 bool rotaroundy = (
z<0&&std::fabs(
x)*10<std::fabs(
z));
193 SbVec3f unitx (1.0
f, 0.0
f, 0.0
f);
195 rotation.multVec(unitx,transfunitx);
196 transfunitx.getValue(
x,
y,
z);
204 SoSeparator * subsyssep_volaroundZ =
new SoSeparator;
208 subsyssep_volaroundZ->ref();
◆ updateEnabledPhiSections
void PhiSectorManager::updateEnabledPhiSections |
( |
int |
iphi | ) |
|
|
protectedslot |
Definition at line 325 of file PhiSectorManager.cxx.
330 if ((*it)->whichChild.getValue() != (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE))
331 (*it)->whichChild = (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE);
338 if ((*it)->whichChild.getValue() != (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE))
339 (*it)->whichChild = (turnedon?SO_SWITCH_ALL:SO_SWITCH_NONE);
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);
◆ updateRepresentationsOfVolsAroundZAxis()
void PhiSectorManager::updateRepresentationsOfVolsAroundZAxis |
( |
| ) |
|
◆ m_d
Imp* PhiSectorManager::m_d |
|
private |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
std::map< VP1GeoFlags::SubSystemFlag, VP1ExtraSepLayerHelper * > subsysflag_2_volAroundZSepHelper
SoLAr - Inventor version of the G4Cons Geant Geometry entity.
SoPcons - Inventor version of the G4Cons Geant Geometry entity.
SoTubs - Inventor version of the G4Tubs Geant Geometry entity.
void updateEnabledPhiSections(int)
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2sephelper
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2labelsep
PhiSectionWidget * phisectionwidget
std::map< SoSwitch *, std::pair< SoTubs *, SoSeparator * > > volaroundZ_tubs
std::map< SoSwitch *, std::pair< double, bool > > volaroundZ_switch2transfinfo
std::map< SoSwitch *, std::pair< SoLAr *, SoSeparator * > > volaroundZ_lar
static double phiFromXY(const double &x, const double &y)
std::map< SoSwitch *, std::pair< SoPcons *, SoSeparator * > > volaroundZ_pcons
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2sep
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
std::map< SoSwitch *, std::pair< SoCons *, SoSeparator * > > volaroundZ_cons
QVector< bool > currentlyEnabledPhiSectors
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2labelsephelper
void enabledPhiSectorsChanged()
static void messageVerbose(const QString &)
std::map< int, std::set< SoSwitch * > > iphi2Labelswitches
void updateRepresentationsOfVolsAroundZAxis_Specific(std::map< SoSwitch *, std::pair< T *, SoSeparator * > > &volaroundZ)
static void message(const QString &, IVP1System *sys=0)
void updateRepresentationsOfVolsAroundZAxis()
SoCons - Inventor version of the G4Cons Geant Geometry entity.
std::map< int, std::set< SoSwitch * > > iphi2switches
void message(const QString &) const