ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
PhiSectorManager::Imp Class Reference
Collaboration diagram for PhiSectorManager::Imp:

Public Member Functions

template<class T >
void updateRepresentationsOfVolsAroundZAxis_Specific (std::map< SoSwitch *, std::pair< T *, SoSeparator * > > &volaroundZ)
 
void getPhiExtentOfShape (const SoTubs *tubs, double &phistart, double &phispan)
 
void getPhiExtentOfShape (const SoPcons *pcons, double &phistart, double &phispan)
 
void getPhiExtentOfShape (const SoCons *cons, double &phistart, double &phispan)
 
void getPhiExtentOfShape (const SoLAr *lar, double &phistart, double &phispan)
 
void copyShapeFieldsAndOverridePhiRange (const SoTubs *source, SoTubs *dest, double phistart, double phispan)
 
void copyShapeFieldsAndOverridePhiRange (const SoPcons *source, SoPcons *dest, double phistart, double phispan)
 
void copyShapeFieldsAndOverridePhiRange (const SoCons *source, SoCons *dest, double phistart, double phispan)
 
void copyShapeFieldsAndOverridePhiRange (const SoLAr *source, SoLAr *dest, double phistart, double phispan)
 

Public Attributes

PhiSectionWidgetphisectionwidget = nullptr
 
IVP1Systemsystem = nullptr
 
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2sep
 
std::map< VP1GeoFlags::SubSystemFlag, SoSeparator * > subsysflag2labelsep
 
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2sephelper
 
std::map< VP1GeoFlags::SubSystemFlag, std::map< int, VP1ExtraSepLayerHelper * > > subsysflag_2_iphi2labelsephelper
 
std::map< VP1GeoFlags::SubSystemFlag, VP1ExtraSepLayerHelper * > subsysflag_2_volAroundZSepHelper
 
std::map< int, std::set< SoSwitch * > > iphi2switches
 
std::map< int, std::set< SoSwitch * > > iphi2Labelswitches
 
std::map< SoSwitch *, std::pair< SoTubs *, SoSeparator * > > volaroundZ_tubs
 
std::map< SoSwitch *, std::pair< SoPcons *, SoSeparator * > > volaroundZ_pcons
 
std::map< SoSwitch *, std::pair< SoCons *, SoSeparator * > > volaroundZ_cons
 
std::map< SoSwitch *, std::pair< SoLAr *, SoSeparator * > > volaroundZ_lar
 
std::map< SoSwitch *, std::pair< double, bool > > volaroundZ_switch2transfinfo
 
int nactivelargechanges = 0
 
QVector< bool > currentlyEnabledPhiSectors
 

Detailed Description

Definition at line 41 of file PhiSectorManager.cxx.

Member Function Documentation

◆ copyShapeFieldsAndOverridePhiRange() [1/4]

void PhiSectorManager::Imp::copyShapeFieldsAndOverridePhiRange ( const SoCons source,
SoCons dest,
double  phistart,
double  phispan 
)

Definition at line 401 of file PhiSectorManager.cxx.

402 {
403  dest->fRmin1.setValue(source->fRmin1.getValue());
404  dest->fRmin2.setValue(source->fRmin2.getValue());
405  dest->fRmax1.setValue(source->fRmax1.getValue());
406  dest->fRmax2.setValue(source->fRmax2.getValue());
407  dest->fDz.setValue(source->fDz.getValue());
408  dest->fSPhi.setValue(phistart);
409  dest->fDPhi.setValue(phispan);
410 }

◆ copyShapeFieldsAndOverridePhiRange() [2/4]

void PhiSectorManager::Imp::copyShapeFieldsAndOverridePhiRange ( const SoLAr source,
SoLAr dest,
double  phistart,
double  phispan 
)

Definition at line 420 of file PhiSectorManager.cxx.

421 {
422  dest->fRmin = source->fRmin;
423  dest->fRmax = source->fRmax;
424  dest->fDz = source->fDz;
425  dest->fSPhi.setValue(phistart);
426  dest->fDPhi.setValue(phispan);
427 }

◆ copyShapeFieldsAndOverridePhiRange() [3/4]

void PhiSectorManager::Imp::copyShapeFieldsAndOverridePhiRange ( const SoPcons source,
SoPcons dest,
double  phistart,
double  phispan 
)

Definition at line 383 of file PhiSectorManager.cxx.

384 {
385  dest->fRmin = source->fRmin;
386  dest->fRmax = source->fRmax;
387  dest->fDz = source->fDz;
388  dest->fSPhi.setValue(phistart);
389  dest->fDPhi.setValue(phispan);
390  dest->drawEdgeLines.setValue(source->drawEdgeLines.getValue());
391 }

◆ copyShapeFieldsAndOverridePhiRange() [4/4]

void PhiSectorManager::Imp::copyShapeFieldsAndOverridePhiRange ( const SoTubs source,
SoTubs dest,
double  phistart,
double  phispan 
)

Definition at line 365 of file PhiSectorManager.cxx.

366 {
367  dest->pRMin.setValue(source->pRMin.getValue());
368  dest->pRMax.setValue(source->pRMax.getValue());
369  dest->pDz.setValue(source->pDz.getValue());
370  dest->pSPhi.setValue(phistart);
371  dest->pDPhi.setValue(phispan);
372  dest->drawEdgeLines.setValue(source->drawEdgeLines.getValue());
373 }

◆ getPhiExtentOfShape() [1/4]

void PhiSectorManager::Imp::getPhiExtentOfShape ( const SoCons cons,
double &  phistart,
double &  phispan 
)

Definition at line 394 of file PhiSectorManager.cxx.

395 {
396  phistart = cons->fSPhi.getValue();
397  phispan = cons->fDPhi.getValue();
398 }

◆ getPhiExtentOfShape() [2/4]

void PhiSectorManager::Imp::getPhiExtentOfShape ( const SoLAr lar,
double &  phistart,
double &  phispan 
)

Definition at line 413 of file PhiSectorManager.cxx.

414 {
415  phistart = lar->fSPhi.getValue();
416  phispan = lar->fDPhi.getValue();
417 }

◆ getPhiExtentOfShape() [3/4]

void PhiSectorManager::Imp::getPhiExtentOfShape ( const SoPcons pcons,
double &  phistart,
double &  phispan 
)

Definition at line 376 of file PhiSectorManager.cxx.

377 {
378  phistart = pcons->fSPhi.getValue();
379  phispan = pcons->fDPhi.getValue();
380 }

◆ getPhiExtentOfShape() [4/4]

void PhiSectorManager::Imp::getPhiExtentOfShape ( const SoTubs tubs,
double &  phistart,
double &  phispan 
)

Definition at line 358 of file PhiSectorManager.cxx.

359 {
360  phistart = tubs->pSPhi.getValue();
361  phispan = tubs->pDPhi.getValue();
362 }

◆ updateRepresentationsOfVolsAroundZAxis_Specific()

template<class T >
void PhiSectorManager::Imp::updateRepresentationsOfVolsAroundZAxis_Specific ( std::map< SoSwitch *, std::pair< T *, SoSeparator * > > &  volaroundZ)

Definition at line 431 of file PhiSectorManager.cxx.

432 {
433 
434  typename std::map<SoSwitch*,std::pair<T*,SoSeparator*> >::iterator it, itE = volaroundZ.end();
435  for (it = volaroundZ.begin();it!=itE;++it) {
437  if (it->first->whichChild.getValue() != SO_SWITCH_NONE)
438  it->first->whichChild = SO_SWITCH_NONE;
439  } else if (phisectionwidget->allSectorsOn()) {
440  if (it->first->whichChild.getValue() != 0)
441  it->first->whichChild = 0;
442  } else {
443  //Update and use sep node:
444  SbBool save = it->first->enableNotify(false);
445  SoSeparator * sep = it->second.second;
446  sep->removeAllChildren();
447  //Figure out phirot/yrot info:
448  std::map<SoSwitch*,std::pair<double,bool> >::iterator it_transfinfo = volaroundZ_switch2transfinfo.find(it->first);
449  if (it_transfinfo==volaroundZ_switch2transfinfo.end()) {
450  system->message("updateRepresentationsOfVolsAroundZAxis_Specific ERROR: Inconsistent maps");
451  continue;
452  }
453  double phirot = it_transfinfo->second.first;
454  bool rotaroundy = it_transfinfo->second.second;
455 
456  double sphi, dphi;
457  getPhiExtentOfShape(it->second.first,sphi,dphi);
458 
459  QList<VP1Interval> ranges = phisectionwidget->enabledPhiRanges( sphi, sphi+dphi );
460 
461  int n = ranges.count();
462  for (int i = 0; i< n; ++i) {
463  T * shape = new T;
464  double deltaphi = ranges.at(i).length();
465  double startphi = rotaroundy ? - ranges.at(i).upper() - 2*M_PI + phirot : ranges.at(i).lower()-phirot;
466  while (startphi<0) startphi += 2*M_PI;
467  while (startphi+deltaphi>2*M_PI) startphi -= 2*M_PI;
468  copyShapeFieldsAndOverridePhiRange( it->second.first, shape, startphi, deltaphi );
469  sep->addChild(shape);
470  }
471 
472  it->first->whichChild = 1;
473  it->first->enableNotify(save);
474  if (save)
475  it->first->touch();
476 
477  }
478  }
479 
480 }

Member Data Documentation

◆ currentlyEnabledPhiSectors

QVector<bool> PhiSectorManager::Imp::currentlyEnabledPhiSectors

Definition at line 74 of file PhiSectorManager.cxx.

◆ iphi2Labelswitches

std::map<int,std::set<SoSwitch*> > PhiSectorManager::Imp::iphi2Labelswitches

Definition at line 54 of file PhiSectorManager.cxx.

◆ iphi2switches

std::map<int,std::set<SoSwitch*> > PhiSectorManager::Imp::iphi2switches

Definition at line 53 of file PhiSectorManager.cxx.

◆ nactivelargechanges

int PhiSectorManager::Imp::nactivelargechanges = 0

Definition at line 72 of file PhiSectorManager.cxx.

◆ phisectionwidget

PhiSectionWidget* PhiSectorManager::Imp::phisectionwidget = nullptr

Definition at line 43 of file PhiSectorManager.cxx.

◆ subsysflag2labelsep

std::map<VP1GeoFlags::SubSystemFlag,SoSeparator *> PhiSectorManager::Imp::subsysflag2labelsep

Definition at line 47 of file PhiSectorManager.cxx.

◆ subsysflag2sep

std::map<VP1GeoFlags::SubSystemFlag,SoSeparator *> PhiSectorManager::Imp::subsysflag2sep

Definition at line 46 of file PhiSectorManager.cxx.

◆ subsysflag_2_iphi2labelsephelper

std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> > PhiSectorManager::Imp::subsysflag_2_iphi2labelsephelper

Definition at line 49 of file PhiSectorManager.cxx.

◆ subsysflag_2_iphi2sephelper

std::map<VP1GeoFlags::SubSystemFlag,std::map<int,VP1ExtraSepLayerHelper*> > PhiSectorManager::Imp::subsysflag_2_iphi2sephelper

Definition at line 48 of file PhiSectorManager.cxx.

◆ subsysflag_2_volAroundZSepHelper

std::map<VP1GeoFlags::SubSystemFlag,VP1ExtraSepLayerHelper*> PhiSectorManager::Imp::subsysflag_2_volAroundZSepHelper

Definition at line 50 of file PhiSectorManager.cxx.

◆ system

IVP1System* PhiSectorManager::Imp::system = nullptr

Definition at line 44 of file PhiSectorManager.cxx.

◆ volaroundZ_cons

std::map<SoSwitch*,std::pair<SoCons*,SoSeparator*> > PhiSectorManager::Imp::volaroundZ_cons

Definition at line 59 of file PhiSectorManager.cxx.

◆ volaroundZ_lar

std::map<SoSwitch*,std::pair<SoLAr*,SoSeparator*> > PhiSectorManager::Imp::volaroundZ_lar

Definition at line 60 of file PhiSectorManager.cxx.

◆ volaroundZ_pcons

std::map<SoSwitch*,std::pair<SoPcons*,SoSeparator*> > PhiSectorManager::Imp::volaroundZ_pcons

Definition at line 58 of file PhiSectorManager.cxx.

◆ volaroundZ_switch2transfinfo

std::map<SoSwitch*,std::pair<double,bool> > PhiSectorManager::Imp::volaroundZ_switch2transfinfo

Definition at line 61 of file PhiSectorManager.cxx.

◆ volaroundZ_tubs

std::map<SoSwitch*,std::pair<SoTubs*,SoSeparator*> > PhiSectorManager::Imp::volaroundZ_tubs

Definition at line 57 of file PhiSectorManager.cxx.


The documentation for this class was generated from the following file:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
trigbs_pickEvents.ranges
ranges
Definition: trigbs_pickEvents.py:60
PhiSectionWidget::allSectorsOn
bool allSectorsOn() const
Definition: PhiSectionWidget.cxx:483
SoCons::fDPhi
SoSFFloat fDPhi
Delta-angle, in radians.
Definition: SoCons.h:84
PhiSectionWidget::allSectorsOff
bool allSectorsOff() const
Definition: PhiSectionWidget.cxx:492
skel.it
it
Definition: skel.GENtoEVGEN.py:396
SoCons::fSPhi
SoSFFloat fSPhi
Starting angle, in radians.
Definition: SoCons.h:80
M_PI
#define M_PI
Definition: ActiveFraction.h:11
perfmonmt-printer.dest
dest
Definition: perfmonmt-printer.py:189
SoPcons::fSPhi
SoSFFloat fSPhi
Starting angle, in radians.
Definition: SoPcons.h:61
PhiSectorManager::Imp::phisectionwidget
PhiSectionWidget * phisectionwidget
Definition: PhiSectorManager.cxx:43
PhiSectorManager::Imp::volaroundZ_switch2transfinfo
std::map< SoSwitch *, std::pair< double, bool > > volaroundZ_switch2transfinfo
Definition: PhiSectorManager.cxx:61
TruthTest.itE
itE
Definition: TruthTest.py:25
checkTP.save
def save(self, fileName="./columbo.out")
Definition: checkTP.py:178
lumiFormat.i
int i
Definition: lumiFormat.py:85
beamspotman.n
n
Definition: beamspotman.py:731
PhiSectorManager::Imp::system
IVP1System * system
Definition: PhiSectorManager.cxx:44
PhiSectorManager::Imp::getPhiExtentOfShape
void getPhiExtentOfShape(const SoTubs *tubs, double &phistart, double &phispan)
Definition: PhiSectorManager.cxx:358
PhiSectorManager::Imp::copyShapeFieldsAndOverridePhiRange
void copyShapeFieldsAndOverridePhiRange(const SoTubs *source, SoTubs *dest, double phistart, double phispan)
Definition: PhiSectorManager.cxx:365
grepfile.sep
sep
Definition: grepfile.py:38
SoTubs::pDPhi
SoSFFloat pDPhi
Delta-angle, in radians.
Definition: SoTubs.h:76
SoLAr::fSPhi
SoSFFloat fSPhi
Starting angle, in radians.
Definition: SoLAr.h:58
SoLAr::fDPhi
SoSFFloat fDPhi
Delta-angle, in radians.
Definition: SoLAr.h:62
SoPcons::fDPhi
SoSFFloat fDPhi
Delta-angle, in radians.
Definition: SoPcons.h:65
copySelective.source
string source
Definition: copySelective.py:32
PhiSectionWidget::enabledPhiRanges
QList< VP1Interval > enabledPhiRanges() const
Definition: PhiSectionWidget.cxx:560
IVP1System::message
void message(const QString &) const
Definition: IVP1System.cxx:336
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
SoTubs::pSPhi
SoSFFloat pSPhi
Starting angle, in radians.
Definition: SoTubs.h:72