 |
ATLAS Offline Software
|
#include <CreateMisalignAlg.h>
|
| CreateMisalignAlg (const std::string &name, ISvcLocator *pSvcLocator) |
| Standard Athena-Algorithm Constructor. More...
|
|
| ~CreateMisalignAlg () |
| Default Destructor. More...
|
|
StatusCode | initialize () |
| standard Athena-Algorithm method More...
|
|
StatusCode | execute () |
| standard Athena-Algorithm method More...
|
|
StatusCode | finalize () |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | setupSCT_AlignModule (int &) |
|
void | setupPixel_AlignModule (int &) |
|
void | setupTRT_AlignModule (int &) |
|
const HepGeom::Transform3D | BuildAlignTransform (const CLHEP::HepVector &) |
| builds a HepGeom::Transform3D from the 6 Alignment Parameters More...
|
|
const Identifier | reduceTRTID (Identifier id) |
|
const Identifier | reduceTRTID (IdentifierHash &hash) |
|
double | getBowingMagParam (double temp_shift) |
|
double | getBowingTx (double p1, double z) |
|
StatusCode | GenerateMisaligment () |
| the main function which calculates and applies a transformation to each detector element More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
const AtlasDetectorID * | m_idHelper |
|
const PixelID * | m_pixelIdHelper |
|
const SCT_ID * | m_sctIdHelper |
|
const TRT_ID * | m_trtIdHelper |
|
ToolHandle< IInDetAlignDBTool > | m_IDAlignDBTool |
|
ServiceHandle< ITRT_AlignDbSvc > | m_trtaligndbservice |
|
std::string | m_asciiFileNameBase |
| filename basis for ASCII files with alignment constants More...
|
|
std::string | m_SQLiteTag |
| tag name for the ConditionsDB More...
|
|
bool | m_firstEvent |
| Flag for Setup of AlignModuleList (1st event) More...
|
|
bool | m_createFreshDB |
| Flag to call the createDB method of DBTool (to be switched off when adding misalignments to a given geometry) More...
|
|
int | m_MisalignmentMode |
| Flag which Misalignment mode is to be generated. More...
|
|
long int | m_nEvents |
|
bool | m_translation |
| Flag which turns on misalignment with translation. More...
|
|
bool | m_rotation |
| Flag which turns on misalignment with rotation. More...
|
|
std::vector< double > | m_local_translation |
| Specify misalignment with translation. More...
|
|
std::vector< double > | m_local_rotation |
| Specify misalignment with rotation. More...
|
|
std::string | m_index |
| Generate misalignment according to module indices. More...
|
|
Gaudi::Property< double > | m_Misalign_x {this,"MisalignmentX",0.0,"Fixed X shift (mode 1 and 2)"} |
|
Gaudi::Property< double > | m_Misalign_y {this,"MisalignmentY",0.0,"Fixed Y shif (model 1 and 2)"} |
|
Gaudi::Property< double > | m_Misalign_z {this,"MisalignmentZ",0.0,"Fixed Z shift (mode 1 and 2)"} |
|
Gaudi::Property< double > | m_Misalign_alpha {this,"MisalignmentAlpha",0.0,"Fixed Alpha shift (model 1 and 2)"} |
|
Gaudi::Property< double > | m_Misalign_beta {this,"MisalignmentBeta",0.0,"Fixed Beta shift (mode 1 and 2)"} |
|
Gaudi::Property< double > | m_Misalign_gamma {this,"MisalignmentGamma",0.0,"Fixed Gamma shift (model 1 and 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_x {this,"RandomMisalignmentWidthX",0.1,"Gaussian width of X random misalignments (mode 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_y {this,"RandomMisalignmentWidthY",0.1,"Gaussian width of Y random misalignments (mode 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_z {this,"RandomMisalignmentWidthZ",0.1,"Gaussian width of Z random misalignments (mode 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_alpha {this,"RandomMisalignmentWidthAplha",0.1,"Gaussian width of Alpha random misalignments (mode 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_beta {this,"RandomMisalignmentWidthBeta",0.1,"Gaussian width of Beta random misalignments (mode 2)"} |
|
Gaudi::Property< double > | m_RndmMisalignWidth_gamma {this,"RandomMisalignmentWidthGamma",0.1,"Gaussian width of Gamma random misalignments (mode 2)"} |
|
double | m_Misalign_maxShift |
| Maximum shift for global modes. More...
|
|
double | m_Misalign_maxShift_Inner |
| Maximum shift of the Pixel B-layer in curl (d0 bias!) More...
|
|
double | m_ScalePixelIBL |
|
double | m_ScalePixelDBM |
|
double | m_IBLBowingTshift |
| The relative temp shift of set point that intriduces bowing (sign is important) More...
|
|
double | m_ScalePixelBarrel |
|
double | m_ScalePixelEndcap |
|
double | m_ScaleSCTBarrel |
|
double | m_ScaleSCTEndcap |
|
double | m_ScaleTRTBarrel |
|
double | m_ScaleTRTEndcap |
|
std::map< Identifier, HepGeom::Point3D< double > > | m_ModuleList |
| map of all SiIdentifiers to be misaligned and their centerpoints in global coordinates More...
|
|
TTree * | m_VisualizationLookupTree |
|
int | m_AthenaHashedID |
|
int | m_HumanReadableID |
|
NTuple::Item< double > | m_AlignResults_x |
| Alignment parameter sensitive coordinate. More...
|
|
NTuple::Item< double > | m_AlignResults_y |
| AP not-so-sensitive coordinate. More...
|
|
NTuple::Item< double > | m_AlignResults_z |
| AP normal to module plane. More...
|
|
NTuple::Item< double > | m_AlignResults_alpha |
| AP rotation around x-axis. More...
|
|
NTuple::Item< double > | m_AlignResults_beta |
| AP rotation aorund y-axis. More...
|
|
NTuple::Item< double > | m_AlignResults_gamma |
| AP rotation around z-axis. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_ID |
| ID information for this module. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_PixelSCT |
| ID information for this module. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_BarrelEC |
| ID information for this module. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_LayerDisc |
| ID information for this module. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_Phi |
| ID information for this module. More...
|
|
NTuple::Item< long > | m_AlignResults_Identifier_Eta |
| ID information for this module. More...
|
|
NTuple::Item< double > | m_Initial_center_x |
| Initial global center of module. More...
|
|
NTuple::Item< double > | m_Initial_center_y |
| Initial global center of module. More...
|
|
NTuple::Item< double > | m_Initial_center_z |
| Initial global center of module. More...
|
|
NTuple::Item< double > | m_Global_center_x |
| Misaligned global center of module. More...
|
|
NTuple::Item< double > | m_Global_center_y |
| Misaligned global center of module. More...
|
|
NTuple::Item< double > | m_Global_center_z |
| Misaligned global center of module. More...
|
|
bool | m_doPix |
|
bool | m_doStrip |
|
bool | m_doTRT |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"} |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} |
|
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > | m_trtDetEleCollKey {this, "TRTDetEleCollKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"} |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 46 of file CreateMisalignAlg.h.
◆ StoreGateSvc_t
◆ CreateMisalignAlg()
InDetAlignment::CreateMisalignAlg::CreateMisalignAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~CreateMisalignAlg()
InDetAlignment::CreateMisalignAlg::~CreateMisalignAlg |
( |
| ) |
|
◆ BuildAlignTransform()
const HepGeom::Transform3D InDetAlignment::CreateMisalignAlg::BuildAlignTransform |
( |
const CLHEP::HepVector & |
AlignParams | ) |
|
|
private |
builds a HepGeom::Transform3D from the 6 Alignment Parameters
Definition at line 1067 of file CreateMisalignAlg.cxx.
1069 HepGeom::Vector3D<double> AlignShift(AlignParams[0],AlignParams[1],AlignParams[2]);
1070 CLHEP::HepRotation AlignRot;
1072 AlignRot = CLHEP::HepRotationX(AlignParams[3]) * CLHEP::HepRotationY(AlignParams[4]) * CLHEP::HepRotationZ(AlignParams[5]);
1075 return AlignTransform;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode InDetAlignment::CreateMisalignAlg::execute |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 227 of file CreateMisalignAlg.cxx.
255 return StatusCode::FAILURE;
261 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode InDetAlignment::CreateMisalignAlg::finalize |
( |
| ) |
|
◆ GenerateMisaligment()
StatusCode InDetAlignment::CreateMisalignAlg::GenerateMisaligment |
( |
| ) |
|
|
private |
the main function which calculates and applies a transformation to each detector element
Definition at line 446 of file CreateMisalignAlg.cxx.
449 SmartIF<IRndmGenSvc> randsvc{Gaudi::svcLocator()->service(
"RndmGenSvc")};
495 pixelElements = *pixelDetEleHandle;
496 if (not pixelDetEleHandle.isValid() or pixelElements==
nullptr) {
498 return StatusCode::FAILURE;
504 sctElements = *sctDetEleHandle;
505 if (not sctDetEleHandle.isValid() or sctElements==
nullptr) {
507 return StatusCode::FAILURE;
520 else ATH_MSG_WARNING(
"Trying to access a Pixel module when running with no Pixel!");
525 else ATH_MSG_WARNING(
"Trying to access an SCT/Strop module when running with no SCT/Strip!");
531 ATH_MSG_WARNING(
"Something fishy, identifier is neither Pixel, nor SCT or TRT!" );
546 ATH_MSG_WARNING(
"Apparently in a silicon detector, but SiModule is a null pointer");
549 const HepGeom::Point3D<double> center =
iter->second;
552 double r = center.rho();
553 double phi = center.phi();
554 double z = center.z();
561 double ScaleFactor = 1.;
596 ATH_MSG_WARNING(
"Something fishy, identifier is neither Pixel, nor SCT or TRT!" );
607 msg() <<
"localToGlobal transformation:" <<
endmsg;
610 msg() << localToGlobal.xx() <<
" " << localToGlobal.xy() <<
" " << localToGlobal.xz() <<
endmsg;
611 msg() << localToGlobal.yx() <<
" " << localToGlobal.yy() <<
" " << localToGlobal.yz() <<
endmsg;
612 msg() << localToGlobal.zx() <<
" " << localToGlobal.zy() <<
" " << localToGlobal.zz() <<
endmsg;
625 CLHEP::HepRotation rot;
628 if (ScaleFactor == 0.0) {
646 double randMisX = RandMisX();
647 double randMisY = RandMisY();
648 double randMisZ = RandMisZ();
650 double randMisaplha = RandMisalpha();
651 double randMisbeta = RandMisbeta();
652 double randMisgamma = RandMisgamma();
654 CLHEP::HepRotation rot;
655 HepGeom::Vector3D<double> shift;
658 if (ScaleFactor == 0.0) {
662 shift = HepGeom::Vector3D<double>(randMisX, randMisY, randMisZ);
663 rot = CLHEP::HepRotationX(randMisaplha) * CLHEP::HepRotationY(randMisbeta) * CLHEP::HepRotationZ(randMisgamma);
666 shift = HepGeom::Vector3D<double>(0, 0, 0);
667 rot = CLHEP::HepRotationX(randMisaplha) * CLHEP::HepRotationY(randMisbeta) * CLHEP::HepRotationZ(randMisgamma);
670 shift = HepGeom::Vector3D<double>(randMisX, randMisY, randMisZ);
671 rot = CLHEP::HepRotationX(0) * CLHEP::HepRotationY(0) * CLHEP::HepRotationZ(0);
673 else { shift = HepGeom::Vector3D<double>(0, 0, 0);
674 rot = CLHEP::HepRotationX(0) * CLHEP::HepRotationY(0) * CLHEP::HepRotationZ(0);
690 ATH_MSG_DEBUG(
"will not move this module for IBL temp distortion " );
694 parameterizedTrafo = HepGeom::Translate3D(
deltaX,0,0);
705 HepGeom::Vector3D<double> shift(0, 0, 0);
711 CLHEP::HepRotation rot = CLHEP::HepRotationX(0) * CLHEP::HepRotationY(0) * CLHEP::HepRotationZ(0);
731 ATH_MSG_DEBUG(
"will not move TRT endcap for radial distortion " );
734 deltaR =
r/maxRadius * maxDeltaR;
741 ATH_MSG_DEBUG(
"will not move TRT endcap for elliptical distortion " );
744 deltaR =
cos ( 2*phi ) *
r/maxRadius * maxDeltaR;
751 ATH_MSG_DEBUG(
"will not move TRT endcap for funnel distortion " );
754 deltaR = 2. *
z/maxLength * maxDeltaR;
757 ATH_MSG_DEBUG(
"Wrong misalignment mode entered, doing nothing." );
770 deltaPhi =
r/maxRadius * maxAngle + minRadius/
r * maxAngleInner;
777 ATH_MSG_DEBUG(
"will not move TRT endcap for clamshell distortion " );
792 parameterizedTrafo = HepGeom::RotateZ3D(
deltaPhi);
800 deltaZ =
r/maxRadius * maxDeltaZ;
806 ATH_MSG_DEBUG(
"will not move TRT endcap for skew distortion " );
814 deltaZ = 2. *
z/maxLength * maxDeltaZ;
821 parameterizedTrafo = HepGeom::Translate3D(0,0,
deltaZ);
834 ATH_MSG_DEBUG(
"additional rotation for TRT barrel module!" );
835 HepGeom::Transform3D realLocalToGlobalTRT = HepGeom::Translate3D(center.x(),center.y(),center.z());
838 alignmentTrafo = parameterizedTrafo * realLocalToGlobalTRT * parameterizedTrafo * realLocalToGlobalTRT.inverse();
841 HepGeom::Transform3D realLocalToGlobalTRT = HepGeom::Translate3D(center.x(),center.y(),center.z());
842 double deltaAlpha = (-2.) *
r * maxAngle/maxLength;
845 CLHEP::HepRotation twistForTRTRotation(HepGeom::Vector3D<double>(center.x(),center.y(),center.z()), deltaAlpha );
849 alignmentTrafo = realLocalToGlobalTRT * twistForTRT * realLocalToGlobalTRT.inverse();
852 HepGeom::Transform3D realLocalToGlobalTRT = HepGeom::Translate3D(center.x(),center.y(),center.z());
853 double deltaAlpha = (-2.) * maxDeltaR/maxLength;
857 HepGeom::Vector3D<double> normalVector(center.x(),center.y(),center.z());
858 HepGeom::Vector3D<double> beamVector(0.,0.,1.);
859 HepGeom::Vector3D<double> rotationAxis = normalVector.cross(beamVector);
860 CLHEP::HepRotation twistForTRTRotation(rotationAxis, deltaAlpha );
863 alignmentTrafo = realLocalToGlobalTRT * twistForTRT * realLocalToGlobalTRT.inverse();
869 alignmentTrafo = parameterizedTrafo;
873 alignmentTrafo = localToGlobal.inverse() * parameterizedTrafo * localToGlobal;
880 msg() <<
"Align Transformation x phi = (" << alignmentTrafo.getRotation().phiX() /
CLHEP::deg <<
")" <<
endmsg;
881 msg() <<
"Align Transformation x Theta = (" << alignmentTrafo.getRotation().thetaX() /
CLHEP::deg <<
")" <<
endmsg;
882 msg() <<
"Align Transformation y phi = (" << alignmentTrafo.getRotation().phiY() /
CLHEP::deg <<
")" <<
endmsg;
883 msg() <<
"Align Transformation y Theta = (" << alignmentTrafo.getRotation().thetaY() /
CLHEP::deg <<
")" <<
endmsg;
884 msg() <<
"Align Transformation z phi = (" << alignmentTrafo.getRotation().phiZ() /
CLHEP::deg <<
")" <<
endmsg;
885 msg() <<
"Align Transformation z Theta = (" << alignmentTrafo.getRotation().thetaZ() /
CLHEP::deg <<
")" <<
endmsg;
889 if ( std::abs(alignmentTrafo.getTranslation().x()) < 1
e-10) {
890 HepGeom::Vector3D<double>
891 zeroSuppressedTranslation(0,alignmentTrafo.getTranslation().y(),alignmentTrafo.
892 getTranslation().
z());
896 if ( std::abs(alignmentTrafo.getTranslation().y()) < 1
e-10) {
897 HepGeom::Vector3D<double>
898 zeroSuppressedTranslation(alignmentTrafo.getTranslation().x(),0,alignmentTrafo.
899 getTranslation().
z());
903 if ( std::abs(alignmentTrafo.getTranslation().z()) < 1
e-10) {
904 HepGeom::Vector3D<double>
905 zeroSuppressedTranslation(alignmentTrafo.getTranslation().x(),alignmentTrafo.getTranslation().y(),0);
909 if ( std::abs(alignmentTrafo.getRotation().getDelta()) < 1
e-10) {
910 CLHEP::HepRotation zeroSuppressedRotation(alignmentTrafo.getRotation());
911 zeroSuppressedRotation.setDelta(0.);
938 ATH_MSG_WARNING(
"Something fishy, identifier is neither Pixel, nor SCT or TRT!" );
963 HepGeom::Point3D<double> alignedPosGlobal = LocalaGlobal * alignedPosLocal;
971 double radialShift_x = SCT_Center[0];
972 double radialShift_y = SCT_Center[1];
975 HepGeom::Point3D<double> SCT_endcap_alignedPosGlobal = LocalaaGlobal * alignedPosLocal;
1020 ATH_MSG_WARNING(
"Something fishy, identifier is neither Pixel, nor SCT or TRT!" );
1024 if (StatusCode::SUCCESS!=
ntupleSvc()->writeRecord(
"NTUPLES/CREATEMISALIGN/InitialAlignment")) {
1025 ATH_MSG_ERROR(
"Could not write InitialAlignment ntuple." );
1040 ATH_MSG_INFO(
"Writing IoV information to mysql file" );
1047 ATH_MSG_ERROR(
"Write of AlignableTransforms (TRT) failed" );
1049 ATH_MSG_INFO(
"AlignableTransforms for TRT were written" );
1054 ATH_MSG_INFO(
"Writing IoV information for TRT to mysql file" );
1055 if ( StatusCode::SUCCESS
1062 return StatusCode::SUCCESS;
◆ getBowingMagParam()
double InDetAlignment::CreateMisalignAlg::getBowingMagParam |
( |
double |
temp_shift | ) |
|
|
private |
◆ getBowingTx()
double InDetAlignment::CreateMisalignAlg::getBowingTx |
( |
double |
p1, |
|
|
double |
z |
|
) |
| |
|
private |
◆ initialize()
StatusCode InDetAlignment::CreateMisalignAlg::initialize |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 139 of file CreateMisalignAlg.cxx.
168 SmartIF<ITHistSvc> hist_svc{Gaudi::svcLocator()->service(
"THistSvc")};
177 NTupleFilePtr file1(
ntupleSvc(),
"/NTUPLES/CREATEMISALIGN");
179 NTuplePtr
nt(
ntupleSvc(),
"/NTUPLES/CREATEMISALIGN/InitialAlignment");
181 nt =
ntupleSvc()->book(
"/NTUPLES/CREATEMISALIGN/InitialAlignment", CLID_ColumnWiseTuple,
"InitialAlignment");
203 msg(MSG::ERROR) <<
"Failed to book InitialAlignment ntuple." <<
endmsg;
220 ATH_MSG_INFO(
"Dry run, no misalignment will be generated." );
223 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ reduceTRTID() [1/2]
◆ reduceTRTID() [2/2]
◆ renounce()
◆ renounceArray()
◆ setupPixel_AlignModule()
void InDetAlignment::CreateMisalignAlg::setupPixel_AlignModule |
( |
int & |
nPixel | ) |
|
|
private |
Definition at line 325 of file CreateMisalignAlg.cxx.
330 if (not pixelDetEleHandle.isValid() or elements==
nullptr) {
336 const Identifier Pixel_ModuleID = element->identify();
366 msg() << commonAlignmentOutput(InitialAlignment);
◆ setupSCT_AlignModule()
void InDetAlignment::CreateMisalignAlg::setupSCT_AlignModule |
( |
int & |
nSCT | ) |
|
|
private |
Definition at line 275 of file CreateMisalignAlg.cxx.
280 if (not sctDetEleHandle.isValid() or elements==
nullptr) {
317 msg() << commonAlignmentOutput(InitialAlignment);
◆ setupTRT_AlignModule()
void InDetAlignment::CreateMisalignAlg::setupTRT_AlignModule |
( |
int & |
nTRT | ) |
|
|
private |
Definition at line 377 of file CreateMisalignAlg.cxx.
381 std::map< Identifier, std::vector<double> > trtModulesWithCOG;
386 if (not trtDetEleHandle.isValid() or elements==
nullptr) {
394 const Identifier TRTID_orig = element->identify();
396 bool insertSuccess{};
397 std::tie(
std::ignore, insertSuccess) = trtModulesWithCOG.insert({TRTID,std::vector<double>(4,0.)});
398 if (not insertSuccess){
399 ATH_MSG_VERBOSE(
"No insert was performed, identifier was already in the trtModulesWithCOG map");
402 unsigned int nStraws = element->nStraws();
403 for (
unsigned int l = 0;
l<nStraws;
l++) {
405 trtModulesWithCOG[TRTID].at(0) += strawcenter.x();
406 trtModulesWithCOG[TRTID].at(1) += strawcenter.y();
407 trtModulesWithCOG[TRTID].at(2) += strawcenter.z();
408 trtModulesWithCOG[TRTID].at(3) += 1.;
412 ATH_MSG_DEBUG(
"this strawlayer has " << nStraws <<
" straws." );
413 ATH_MSG_DEBUG(
"strawcount of this module: " << trtModulesWithCOG[TRTID].at(3) );
418 std::map< Identifier, std::vector<double> >::const_iterator iter2;
419 for (iter2 = trtModulesWithCOG.begin(); iter2!=trtModulesWithCOG.end(); ++iter2) {
421 double nStraws = iter2->second.at(3);
424 m_ModuleList[TRTID] = HepGeom::Point3D<double>(iter2->second.at(0)/nStraws, iter2->second.at(1)/nStraws,iter2->second.at(2)/nStraws);
433 msg() << commonAlignmentOutput(InitialAlignment);
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_AlignResults_alpha
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_alpha |
|
private |
◆ m_AlignResults_beta
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_beta |
|
private |
◆ m_AlignResults_gamma
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_gamma |
|
private |
◆ m_AlignResults_Identifier_BarrelEC
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_BarrelEC |
|
private |
◆ m_AlignResults_Identifier_Eta
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_Eta |
|
private |
◆ m_AlignResults_Identifier_ID
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_ID |
|
private |
◆ m_AlignResults_Identifier_LayerDisc
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_LayerDisc |
|
private |
◆ m_AlignResults_Identifier_Phi
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_Phi |
|
private |
◆ m_AlignResults_Identifier_PixelSCT
NTuple::Item<long> InDetAlignment::CreateMisalignAlg::m_AlignResults_Identifier_PixelSCT |
|
private |
◆ m_AlignResults_x
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_x |
|
private |
◆ m_AlignResults_y
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_y |
|
private |
◆ m_AlignResults_z
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_AlignResults_z |
|
private |
◆ m_asciiFileNameBase
std::string InDetAlignment::CreateMisalignAlg::m_asciiFileNameBase |
|
private |
filename basis for ASCII files with alignment constants
Definition at line 74 of file CreateMisalignAlg.h.
◆ m_AthenaHashedID
int InDetAlignment::CreateMisalignAlg::m_AthenaHashedID |
|
private |
◆ m_createFreshDB
bool InDetAlignment::CreateMisalignAlg::m_createFreshDB |
|
private |
Flag to call the createDB method of DBTool (to be switched off when adding misalignments to a given geometry)
Definition at line 78 of file CreateMisalignAlg.h.
◆ m_detStore
◆ m_doPix
bool InDetAlignment::CreateMisalignAlg::m_doPix |
|
private |
◆ m_doStrip
bool InDetAlignment::CreateMisalignAlg::m_doStrip |
|
private |
◆ m_doTRT
bool InDetAlignment::CreateMisalignAlg::m_doTRT |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_firstEvent
bool InDetAlignment::CreateMisalignAlg::m_firstEvent |
|
private |
◆ m_Global_center_x
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Global_center_x |
|
private |
◆ m_Global_center_y
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Global_center_y |
|
private |
◆ m_Global_center_z
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Global_center_z |
|
private |
◆ m_HumanReadableID
int InDetAlignment::CreateMisalignAlg::m_HumanReadableID |
|
private |
◆ m_IBLBowingTshift
double InDetAlignment::CreateMisalignAlg::m_IBLBowingTshift |
|
private |
The relative temp shift of set point that intriduces bowing (sign is important)
Definition at line 103 of file CreateMisalignAlg.h.
◆ m_IDAlignDBTool
◆ m_idHelper
◆ m_index
std::string InDetAlignment::CreateMisalignAlg::m_index |
|
private |
◆ m_Initial_center_x
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Initial_center_x |
|
private |
◆ m_Initial_center_y
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Initial_center_y |
|
private |
◆ m_Initial_center_z
NTuple::Item<double> InDetAlignment::CreateMisalignAlg::m_Initial_center_z |
|
private |
◆ m_local_rotation
std::vector<double> InDetAlignment::CreateMisalignAlg::m_local_rotation |
|
private |
◆ m_local_translation
std::vector<double> InDetAlignment::CreateMisalignAlg::m_local_translation |
|
private |
◆ m_Misalign_alpha
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_alpha {this,"MisalignmentAlpha",0.0,"Fixed Alpha shift (model 1 and 2)"} |
|
private |
◆ m_Misalign_beta
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_beta {this,"MisalignmentBeta",0.0,"Fixed Beta shift (mode 1 and 2)"} |
|
private |
◆ m_Misalign_gamma
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_gamma {this,"MisalignmentGamma",0.0,"Fixed Gamma shift (model 1 and 2)"} |
|
private |
◆ m_Misalign_maxShift
double InDetAlignment::CreateMisalignAlg::m_Misalign_maxShift |
|
private |
◆ m_Misalign_maxShift_Inner
double InDetAlignment::CreateMisalignAlg::m_Misalign_maxShift_Inner |
|
private |
◆ m_Misalign_x
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_x {this,"MisalignmentX",0.0,"Fixed X shift (mode 1 and 2)"} |
|
private |
◆ m_Misalign_y
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_y {this,"MisalignmentY",0.0,"Fixed Y shif (model 1 and 2)"} |
|
private |
◆ m_Misalign_z
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_Misalign_z {this,"MisalignmentZ",0.0,"Fixed Z shift (mode 1 and 2)"} |
|
private |
◆ m_MisalignmentMode
int InDetAlignment::CreateMisalignAlg::m_MisalignmentMode |
|
private |
◆ m_ModuleList
std::map<Identifier, HepGeom::Point3D<double> > InDetAlignment::CreateMisalignAlg::m_ModuleList |
|
private |
map of all SiIdentifiers to be misaligned and their centerpoints in global coordinates
Definition at line 112 of file CreateMisalignAlg.h.
◆ m_nEvents
long int InDetAlignment::CreateMisalignAlg::m_nEvents |
|
private |
◆ m_pixelDetEleCollKey
◆ m_pixelIdHelper
const PixelID* InDetAlignment::CreateMisalignAlg::m_pixelIdHelper |
|
private |
◆ m_RndmMisalignWidth_alpha
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_alpha {this,"RandomMisalignmentWidthAplha",0.1,"Gaussian width of Alpha random misalignments (mode 2)"} |
|
private |
◆ m_RndmMisalignWidth_beta
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_beta {this,"RandomMisalignmentWidthBeta",0.1,"Gaussian width of Beta random misalignments (mode 2)"} |
|
private |
◆ m_RndmMisalignWidth_gamma
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_gamma {this,"RandomMisalignmentWidthGamma",0.1,"Gaussian width of Gamma random misalignments (mode 2)"} |
|
private |
◆ m_RndmMisalignWidth_x
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_x {this,"RandomMisalignmentWidthX",0.1,"Gaussian width of X random misalignments (mode 2)"} |
|
private |
◆ m_RndmMisalignWidth_y
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_y {this,"RandomMisalignmentWidthY",0.1,"Gaussian width of Y random misalignments (mode 2)"} |
|
private |
◆ m_RndmMisalignWidth_z
Gaudi::Property<double> InDetAlignment::CreateMisalignAlg::m_RndmMisalignWidth_z {this,"RandomMisalignmentWidthZ",0.1,"Gaussian width of Z random misalignments (mode 2)"} |
|
private |
◆ m_rotation
bool InDetAlignment::CreateMisalignAlg::m_rotation |
|
private |
◆ m_ScalePixelBarrel
double InDetAlignment::CreateMisalignAlg::m_ScalePixelBarrel |
|
private |
◆ m_ScalePixelDBM
double InDetAlignment::CreateMisalignAlg::m_ScalePixelDBM |
|
private |
◆ m_ScalePixelEndcap
double InDetAlignment::CreateMisalignAlg::m_ScalePixelEndcap |
|
private |
◆ m_ScalePixelIBL
double InDetAlignment::CreateMisalignAlg::m_ScalePixelIBL |
|
private |
◆ m_ScaleSCTBarrel
double InDetAlignment::CreateMisalignAlg::m_ScaleSCTBarrel |
|
private |
◆ m_ScaleSCTEndcap
double InDetAlignment::CreateMisalignAlg::m_ScaleSCTEndcap |
|
private |
◆ m_ScaleTRTBarrel
double InDetAlignment::CreateMisalignAlg::m_ScaleTRTBarrel |
|
private |
◆ m_ScaleTRTEndcap
double InDetAlignment::CreateMisalignAlg::m_ScaleTRTEndcap |
|
private |
◆ m_SCTDetEleCollKey
◆ m_sctIdHelper
const SCT_ID* InDetAlignment::CreateMisalignAlg::m_sctIdHelper |
|
private |
◆ m_SQLiteTag
std::string InDetAlignment::CreateMisalignAlg::m_SQLiteTag |
|
private |
◆ m_translation
bool InDetAlignment::CreateMisalignAlg::m_translation |
|
private |
◆ m_trtaligndbservice
◆ m_trtDetEleCollKey
◆ m_trtIdHelper
const TRT_ID* InDetAlignment::CreateMisalignAlg::m_trtIdHelper |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_VisualizationLookupTree
TTree* InDetAlignment::CreateMisalignAlg::m_VisualizationLookupTree |
|
private |
The documentation for this class was generated from the following files:
Gaudi::Property< double > m_RndmMisalignWidth_y
def retrieve(aClass, aKey=None)
bool is_pixel(Identifier id) const
Gaudi::Property< double > m_Misalign_z
NTuple::Item< double > m_AlignResults_alpha
AP rotation around x-axis.
Identifier layer_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer) const
For an individual straw layer.
double m_ScalePixelEndcap
static constexpr uint32_t MAXRUN
NTuple::Item< long > m_AlignResults_Identifier_ID
ID information for this module.
NTuple::Item< double > m_Global_center_x
Misaligned global center of module.
std::vector< double > m_local_translation
Specify misalignment with translation.
NTuple::Item< double > m_Initial_center_z
Initial global center of module.
Gaudi::Property< double > m_Misalign_gamma
bool is_sct(Identifier id) const
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Gaudi::Property< double > m_Misalign_beta
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
NTuple::Item< double > m_AlignResults_gamma
AP rotation around z-axis.
std::string m_index
Generate misalignment according to module indices.
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
std::string m_SQLiteTag
tag name for the ConditionsDB
bool is_trt(Identifier id) const
int phi_module(const Identifier &id) const
#define ATH_MSG_VERBOSE(x)
NTuple::Item< long > m_AlignResults_Identifier_LayerDisc
ID information for this module.
bool empty() const
Test if the key is blank.
bool is_valid() const
Check if id is in a valid state.
value_type get_compact() const
Get the compact id.
Identifier module_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
bool is_blayer(const Identifier &id) const
Test for b-layer - WARNING: id MUST be pixel id, otherwise answer is not accurate....
NTuple::Item< long > m_AlignResults_Identifier_Eta
ID information for this module.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
std::map< Identifier, HepGeom::Point3D< double > > m_ModuleList
map of all SiIdentifiers to be misaligned and their centerpoints in global coordinates
virtual void setOwner(IDataHandleHolder *o)=0
static constexpr uint32_t MINRUN
NTuple::Item< long > m_AlignResults_Identifier_BarrelEC
ID information for this module.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
NTuple::Item< double > m_AlignResults_beta
AP rotation aorund y-axis.
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
Gaudi::Property< double > m_RndmMisalignWidth_beta
bool m_createFreshDB
Flag to call the createDB method of DBTool (to be switched off when adding misalignments to a given g...
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > m_trtDetEleCollKey
Gaudi::Property< double > m_RndmMisalignWidth_gamma
virtual StatusCode sysInitialize() override
Override sysInitialize.
double getBowingTx(double p1, double z)
const Amg::Transform3D & moduleTransform() const
Module to global frame transform.
std::string m_asciiFileNameBase
filename basis for ASCII files with alignment constants
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
TTree * m_VisualizationLookupTree
const TRT_ID * m_trtIdHelper
::StatusCode StatusCode
StatusCode definition for legacy code.
NTuple::Item< long > m_AlignResults_Identifier_Phi
ID information for this module.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< ITRT_AlignDbSvc > m_trtaligndbservice
Eigen::Affine3d Transform3D
const SCT_ID * m_sctIdHelper
void setupPixel_AlignModule(int &)
bool m_rotation
Flag which turns on misalignment with rotation.
NTuple::Item< double > m_AlignResults_x
Alignment parameter sensitive coordinate.
Gaudi::Property< double > m_Misalign_x
Gaudi::Property< double > m_RndmMisalignWidth_z
const AtlasDetectorID * m_idHelper
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int straw_layer(const Identifier &id) const
int layer_or_wheel(const Identifier &id) const
const PixelID * m_pixelIdHelper
virtual void renounce()=0
bool m_translation
Flag which turns on misalignment with translation.
double m_IBLBowingTshift
The relative temp shift of set point that intriduces bowing (sign is important)
static constexpr uint32_t MAXEVENT
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
double m_ScalePixelBarrel
int layer_disk(const Identifier &id) const
void setupTRT_AlignModule(int &)
int eta_module(const Identifier &id) const
virtual Amg::Vector3D sensorCenter() const override
Return the centre of a sensor in the local reference frame.
NTuple::Item< double > m_Initial_center_x
Initial global center of module.
bool m_firstEvent
Flag for Setup of AlignModuleList (1st event)
int layer_disk(const Identifier &id) const
NTuple::Item< double > m_AlignResults_y
AP not-so-sensitive coordinate.
StatusCode initialize(bool used=true)
ToolHandle< IInDetAlignDBTool > m_IDAlignDBTool
double getBowingMagParam(double temp_shift)
Eigen::Matrix< double, 3, 1 > Vector3D
int phi_module(const Identifier &id) const
static constexpr uint32_t MINEVENT
NTuple::Item< double > m_AlignResults_z
AP normal to module plane.
const Identifier reduceTRTID(Identifier id)
bool is_dbm(const Identifier &id) const
Test for dbm - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for gene...
NTuple::Item< double > m_Global_center_y
Misaligned global center of module.
double m_Misalign_maxShift
Maximum shift for global modes.
std::vector< double > m_local_rotation
Specify misalignment with rotation.
NTuple::Item< double > m_Initial_center_y
Initial global center of module.
DataObjIDColl m_extendedExtraObjects
bool is_barrel(const Identifier &id) const
Test for barrel.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Gaudi::Property< double > m_RndmMisalignWidth_alpha
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
#define ATH_MSG_WARNING(x)
Gaudi::Property< double > m_Misalign_alpha
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
Gaudi::Property< double > m_Misalign_y
NTuple::Item< long > m_AlignResults_Identifier_PixelSCT
ID information for this module.
int eta_module(const Identifier &id) const
HepGeom::Transform3D EigenTransformToCLHEP(const Amg::Transform3D &eigenTransf)
Converts an Eigen-based Amg::Transform3D into a CLHEP-based HepGeom::Transform3D.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int side(const Identifier &id) const
NTuple::Item< double > m_Global_center_z
Misaligned global center of module.
AthAlgorithm()
Default constructor:
void setupSCT_AlignModule(int &)
Class to hold collection of TRT detector elements.
double m_Misalign_maxShift_Inner
Maximum shift of the Pixel B-layer in curl (d0 bias!)
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
int phi_module(const Identifier &id) const
StatusCode GenerateMisaligment()
the main function which calculates and applies a transformation to each detector element
constexpr int pow(int base, int exp) noexcept
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Gaudi::Property< double > m_RndmMisalignWidth_x
Identifier module_id(int barrel_ec, int phi_module, int layer_or_wheel) const
For an individual module phi sector.
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be sct id, otherwise answer is not accurate. Use SiliconID for gen...
int m_MisalignmentMode
Flag which Misalignment mode is to be generated.