|
ATLAS Offline Software
|
#include <SurveyConstraint.h>
|
| SurveyConstraint (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~SurveyConstraint () |
|
virtual StatusCode | initialize () |
|
virtual StatusCode | finalize () |
|
virtual StatusCode | computeConstraint (const Identifier &ModuleID, Amg::VectorX &dparams, double &deltachisq, Amg::VectorX &dchisqdparams, Amg::MatrixX &d2chisqdpdp) |
| Pure virtual. More...
|
|
virtual void | setup_SurveyConstraintModules () |
|
virtual void | MMap (std::map< Identifier, SurveyConstraintModule *, std::less< Identifier > > &ModuleMap) |
|
virtual int | getWeightPixEC (Amg::MatrixX &weight) |
|
virtual int | getWeightPixB (Amg::MatrixX &weight) |
|
virtual int | getWeightSCTEC (Amg::MatrixX &weight) |
|
virtual int | getWeightSCTB (Amg::MatrixX &weight) |
|
virtual void | getSurveyCoordsPixEC (std::vector< Amg::Vector3D > &coords) |
|
virtual void | getSurveyCoordsPixB (std::vector< Amg::Vector3D > &coords) |
|
virtual void | getSurveyCoordsSCTEC (std::vector< Amg::Vector3D > &coords) |
|
virtual void | getSurveyCoordsSCTB (std::vector< Amg::Vector3D > &coords) |
|
virtual void | GlobalToLocal (SurveyConstraintModule *mut, std::vector< SurveyConstraintPoint > &points) |
|
virtual int | SectorNumber (int phi_module) |
|
virtual double | PhiModuleToSector (int phi_module) |
|
virtual void | TransformSector (Identifier Pixel_ModuleID, SurveyConstraintModule *mut, Amg::Vector3D ¤t, Amg::Transform3D CurrentTransRandSect) |
|
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 | sysInitialize () override |
| Perform system initialization for an algorithm. 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 > &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 |
|
|
const AtlasDetectorID * | m_idHelper |
|
const PixelID * | m_pixid |
|
const SCT_ID * | m_sctid |
|
IToolSvc * | m_toolsvc |
| Pointer to tool service. More...
|
|
IInDetAlignDBTool * | m_current_IDAlignDBTool |
|
IInDetAlignDBTool * | m_survey_IDAlignDBTool |
|
IRndmGenSvc * | m_randsvc |
|
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"} |
|
std::map< Identifier, SurveyConstraintModule *, std::less< Identifier > > | m_ModuleMap |
| Map of Wafer objects. More...
|
|
double | m_SurveyWeightX |
| Multiplicative weight, representing systematic unc. More...
|
|
double | m_SurveyWeightY |
| "" More...
|
|
double | m_SurveyWeightZ |
| "" More...
|
|
double | m_SurveyWeightPhiX |
| "" More...
|
|
double | m_SurveyWeightPhiY |
| "" More...
|
|
double | m_SurveyWeightPhiZ |
| "" More...
|
|
double | m_TransX |
| Translation in X of the first current PixEC module. More...
|
|
double | m_TransY |
| Translation in Y of the first current PixEC module. More...
|
|
double | m_TransZ |
| Translation in Z of the first current PixEC module. More...
|
|
double | m_RotX |
| Rotation in X of the first current PixEC module. More...
|
|
double | m_RotX2 |
| Rotation in X (after Y & Z) of the first current PixEC module. More...
|
|
double | m_RotY |
| Rotation in Y of the first current PixEC module. More...
|
|
double | m_RotZ |
| Rotation in Z of the first current PixEC module. More...
|
|
double | m_TransXRand |
| Weight & rand Translation in X of current PixEC modules. More...
|
|
double | m_TransYRand |
| Weight & rand Translation in Y of current PixEC modules. More...
|
|
double | m_TransZRand |
| Weight & rand Translation in Z of current PixEC modules. More...
|
|
double | m_RotXRand |
| Weight & rand Rotation in X of current PixEC modules. More...
|
|
double | m_RotYRand |
| Weight & rand Rotation in Y of current PixEC modules. More...
|
|
double | m_RotZRand |
| Weight & rand Rotation in Z of current PixEC modules
More...
|
|
double | m_TransXRandPixB |
| Weight & rand Translation in X of current PixB modules. More...
|
|
double | m_TransYRandPixB |
| Weight & rand Translation in Y of current PixB modules. More...
|
|
double | m_TransZRandPixB |
| Weight & rand Translation in Z of current PixB modules. More...
|
|
double | m_RotXRandPixB |
| Weight & rand Rotation in X of current PixB modules. More...
|
|
double | m_RotYRandPixB |
| Weight & rand Rotation in Y of current PixB modules. More...
|
|
double | m_RotZRandPixB |
| Weight & rand Rotation in Z of current PixB modules
More...
|
|
double | m_TransXRandSCTEC |
| Weight & rand Translation in X of current SCTEC modules. More...
|
|
double | m_TransYRandSCTEC |
| Weight & rand Translation in Y of current SCTEC modules. More...
|
|
double | m_TransZRandSCTEC |
| Weight & rand Translation in Z of current SCTEC modules. More...
|
|
double | m_RotXRandSCTEC |
| Weight & rand Rotation in X of current SCTEC modules. More...
|
|
double | m_RotYRandSCTEC |
| Weight & rand Rotation in Y of current SCTEC modules. More...
|
|
double | m_RotZRandSCTEC |
| Weight & rand Rotation in Z of current SCTEC modules
More...
|
|
double | m_TransXRandSCTB |
| Weight & rand Translation in X of current SCTB modules. More...
|
|
double | m_TransYRandSCTB |
| Weight & rand Translation in Y of current SCTB modules. More...
|
|
double | m_TransZRandSCTB |
| Weight & rand Translation in Z of current SCTB modules. More...
|
|
double | m_RotXRandSCTB |
| Weight & rand Rotation in X of current SCTB modules. More...
|
|
double | m_RotYRandSCTB |
| Weight & rand Rotation in Y of current SCTB modules. More...
|
|
double | m_RotZRandSCTB |
| Weight & rand Rotation in Z of current SCTB modules
More...
|
|
bool | m_gaus |
| use random (Gaus) rotations and translations
More...
|
|
double | m_TransXRandSect |
| rand Translation in X of current PixEC sectors More...
|
|
double | m_TransYRandSect |
| rand Translation in Y of current PixEC sectors More...
|
|
double | m_TransZRandSect |
| rand Translation in Z of current PixEC sectors More...
|
|
double | m_RotXRandSect |
| rand Rotation in X of current PixEC sectors More...
|
|
double | m_RotYRandSect |
| rand Rotation in Y of current PixEC sectors More...
|
|
double | m_RotZRandSect |
| rand Rotation in Z of current PixEC sectors
More...
|
|
double | m_TransLayerRand |
| rand Translation in X,Y,Z of all Pixel/SCT EC/B layers
More...
|
|
int | m_misaligncase |
| misaligncase More...
|
|
bool | m_gausSect |
| use random (Gaus) rotations and translations for sectors
More...
|
|
bool | m_FullDisk |
| use Full Disk More...
|
|
double | m_scaleZ |
| scale Z coordinate to match sensitivity More...
|
|
double | m_proximity |
| Proximity of Survey points used for alignment of SOW. More...
|
|
std::string | m_aligndbtoolinst |
|
std::string | m_surveydbtoolinst |
|
std::string | m_surveywfile |
|
std::string | m_surveyrfile |
|
bool | m_ntuple |
|
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 22 of file SurveyConstraint.h.
◆ StoreGateSvc_t
◆ SurveyConstraint()
SurveyConstraint::SurveyConstraint |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~SurveyConstraint()
SurveyConstraint::~SurveyConstraint |
( |
| ) |
|
|
virtual |
◆ computeConstraint()
Pure virtual.
Implements ISurveyConstraint.
Definition at line 284 of file SurveyConstraint.cxx.
303 bool isPixEC = false, isPixB = false, isSCTEC = false, isSCTB = false;
318 std::vector< SurveyConstraintPoint > Stavepoints;
320 if (
msgLvl(
MSG::DEBUG))
msg() <<
"SurveyConstraint().computeConstraint: Stavepoints.size() " << Stavepoints.size() <<
endmsg;
325 for (
unsigned int iPoint(0); iPoint < Stavepoints.size(); ++iPoint ) {
327 if (
msgLvl(
MSG::DEBUG))
msg() <<
"Survey Stavepoints before: " << survey.x() <<
"," << survey.y() <<
"," << survey.z() <<
endmsg;
330 survey = Stavepoints[iPoint].survey();
335 double stavemin = minimizer.findMinimum(Stavepoints,staveangles,stavetrans);
340 stavetrans[2] = (stavetrans.z()/
m_scaleZ);
342 stavetrans.x() <<
"," << stavetrans.y() <<
"," << stavetrans.z() <<
"," <<
343 staveangles.x()/
m_scaleZ <<
"," << staveangles.y()/
m_scaleZ <<
"," << staveangles.z() <<
")" <<
349 return StatusCode::FAILURE;
354 Amg::Transform3D staveTransform = amgstavetrans * Amg::RotationMatrix3D::Identity();
362 std::vector< SurveyConstraintPoint > Modulepoints;
370 for(
unsigned ipoint=0;ipoint<Modulepoints.size();ipoint++){
372 survey = staveTransform * survey;
379 double modmin = minimizer.findMinimum(Modulepoints,modangles,modtrans);
382 return StatusCode::FAILURE;
386 for(
unsigned ipar=0;ipar<3;ipar++)
387 dparams[ipar] = modtrans[ipar];
388 dparams[3] = modangles[0];
389 dparams[4] = modangles[1];
390 dparams[5] = modangles[2];
409 return StatusCode::FAILURE;
420 msg(MSG::ERROR) <<
"Chech that the size of the matrix is a 1,1: " << temp.rows() <<
", " << temp.cols() <<
endmsg;
421 deltachisq = temp(0,0);
427 DOCA_Vector = 2.0*
weight*dparams;
430 return StatusCode::SUCCESS;
◆ 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);
◆ 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.
◆ 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.
◆ 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]
◆ 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
◆ finalize()
StatusCode SurveyConstraint::finalize |
( |
| ) |
|
|
virtual |
◆ getSurveyCoordsPixB()
void SurveyConstraint::getSurveyCoordsPixB |
( |
std::vector< Amg::Vector3D > & |
coords | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 1001 of file SurveyConstraint.cxx.
1004 const double SurveyTargetX = 17.8/2.0;
1005 const double SurveyTargetY = 59.8/2.0;
1007 coords.emplace_back(-SurveyTargetX,-SurveyTargetY,0.0);
1008 coords.emplace_back(-SurveyTargetX, SurveyTargetY,0.0);
1009 coords.emplace_back( SurveyTargetX,-SurveyTargetY,0.0);
1010 coords.emplace_back( SurveyTargetX, SurveyTargetY,0.0);
◆ getSurveyCoordsPixEC()
void SurveyConstraint::getSurveyCoordsPixEC |
( |
std::vector< Amg::Vector3D > & |
coords | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 988 of file SurveyConstraint.cxx.
991 const double SurveyTargetX = 17.8/2.0;
992 const double SurveyTargetY = 59.8/2.0;
994 coords.emplace_back(-SurveyTargetX,-SurveyTargetY,0.0);
995 coords.emplace_back(-SurveyTargetX, SurveyTargetY,0.0);
996 coords.emplace_back( SurveyTargetX,-SurveyTargetY,0.0);
997 coords.emplace_back( SurveyTargetX, SurveyTargetY,0.0);
◆ getSurveyCoordsSCTB()
void SurveyConstraint::getSurveyCoordsSCTB |
( |
std::vector< Amg::Vector3D > & |
coords | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 1027 of file SurveyConstraint.cxx.
1030 const double SurveyTargetX = 63.6/2.0;
1031 const double SurveyTargetY = 128.2/2.0;
1033 coords.emplace_back(-SurveyTargetX,-SurveyTargetY,0.0);
1034 coords.emplace_back(-SurveyTargetX, SurveyTargetY,0.0);
1035 coords.emplace_back( SurveyTargetX,-SurveyTargetY,0.0);
1036 coords.emplace_back( SurveyTargetX, SurveyTargetY,0.0);
◆ getSurveyCoordsSCTEC()
void SurveyConstraint::getSurveyCoordsSCTEC |
( |
std::vector< Amg::Vector3D > & |
coords | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 1014 of file SurveyConstraint.cxx.
1017 const double SurveyTargetX = 63.6/2.0;
1018 const double SurveyTargetY = 128.2/2.0;
1020 coords.emplace_back(-SurveyTargetX,-SurveyTargetY,0.0);
1021 coords.emplace_back(-SurveyTargetX, SurveyTargetY,0.0);
1022 coords.emplace_back( SurveyTargetX,-SurveyTargetY,0.0);
1023 coords.emplace_back( SurveyTargetX, SurveyTargetY,0.0);
◆ getWeightPixB()
int SurveyConstraint::getWeightPixB |
( |
Amg::MatrixX & |
weight | ) |
|
|
virtual |
◆ getWeightPixEC()
int SurveyConstraint::getWeightPixEC |
( |
Amg::MatrixX & |
weight | ) |
|
|
virtual |
◆ getWeightSCTB()
int SurveyConstraint::getWeightSCTB |
( |
Amg::MatrixX & |
weight | ) |
|
|
virtual |
◆ getWeightSCTEC()
int SurveyConstraint::getWeightSCTEC |
( |
Amg::MatrixX & |
weight | ) |
|
|
virtual |
◆ GlobalToLocal()
◆ initialize()
StatusCode SurveyConstraint::initialize |
( |
| ) |
|
|
virtual |
Definition at line 173 of file SurveyConstraint.cxx.
176 msg(MSG::INFO) <<
"SurveyConstraint initialize()" <<
endmsg;
180 if (
sc.isFailure()) {
184 msg(MSG::INFO) <<
"got ToolSvc" <<
endmsg;
188 if (
sc.isFailure()) {
192 msg(MSG::INFO) <<
"got current_IDAlignDBTool" <<
endmsg;
197 if (
sc.isFailure()) {
201 msg(MSG::INFO) <<
"got survey_IDAlignDBTool" <<
endmsg;
205 if (
sc.isFailure()) {
206 msg(MSG::WARNING) <<
"Could not get AtlasDetectorID !" <<
endmsg;
207 return StatusCode::SUCCESS;
216 return StatusCode::FAILURE;
218 msg(MSG::INFO) <<
"got ID helpers from detector store (relying on GeoModel to put them)" <<
endmsg;
225 if (StatusCode::SUCCESS!=service(
"RndmGenSvc",
m_randsvc,
true))
226 msg(MSG::ERROR) <<
"Cannot find RndmGenSvc" <<
endmsg;
256 msg(MSG::INFO) <<
"now entering SurveyConstraint::setup_SurveyConstraintModules()" <<
endmsg;
259 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.
◆ interfaceID()
const InterfaceID & ISurveyConstraint::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Declared here, and defined below.
Definition at line 65 of file ISurveyConstraint.h.
67 return IID_ISurveyConstraint;
◆ MMap()
◆ 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.
◆ PhiModuleToSector()
double SurveyConstraint::PhiModuleToSector |
( |
int |
phi_module | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 1090 of file SurveyConstraint.cxx.
1091 int phiMod6 = phi_module%6;
1092 if(phiMod6 == 0)
return ( 7.5 - phiModEnd) * 1.0_degree;
1093 else if(phiMod6 == 1)
return (15 - phiModEnd) * 1.0_degree;
1094 else if(phiMod6 == 2)
return (22.5 - phiModEnd) * 1.0_degree;
1095 else if(phiMod6 == 3)
return (30 - phiModEnd) * 1.0_degree;
1096 else if(phiMod6 == 4)
return (37.5 - phiModEnd) * 1.0_degree;
1097 else if(phiMod6 == 5)
return (45 - phiModEnd) * 1.0_degree;
◆ renounce()
◆ renounceArray()
◆ SectorNumber()
int SurveyConstraint::SectorNumber |
( |
int |
phi_module | ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 1077 of file SurveyConstraint.cxx.
1078 if(phi_module >= 0 && phi_module <= 5)
return 0;
1079 if(phi_module >= 6 && phi_module <= 11)
return 1;
1080 if(phi_module >= 12 && phi_module <= 17)
return 2;
1081 if(phi_module >= 18 && phi_module <= 23)
return 3;
1082 if(phi_module >= 24 && phi_module <= 29)
return 4;
1083 if(phi_module >= 30 && phi_module <= 35)
return 5;
1084 if(phi_module >= 36 && phi_module <= 41)
return 6;
1085 if(phi_module >= 42 && phi_module <= 47)
return 7;
◆ setup_SurveyConstraintModules()
void SurveyConstraint::setup_SurveyConstraintModules |
( |
| ) |
|
|
virtual |
Implements ISurveyConstraint.
Definition at line 434 of file SurveyConstraint.cxx.
452 m_survey_IDAlignDBTool->
dispGroup(-1, -1, -1, -1, -1,
m_TransLayerRand,
m_TransLayerRand,
m_TransLayerRand, 2, 2, 0);
455 m_survey_IDAlignDBTool->
dispGroup(1, 2, 0, -1, -1,
m_TransLayerRand, 0, 0, 1, 2, 0);
458 m_survey_IDAlignDBTool->
dispGroup(1, 2, 2, -1, -1,
m_TransLayerRand, 0, 0, 1, 2, 0);
461 int nSCT(0), nPixel(0);
462 std::vector< Amg::Vector3D > localSurveyCoords;
464 SurveyTransRand.setIdentity();
465 SurveyTransRandSect.setIdentity();
467 unsigned int nSCTMod = 0,nSCTModInMap = 0,nSCTModEC = 0,nSCTModPointsEC = 0;
471 if (not sctDetEleHandle.isValid() or sctElements==
nullptr) {
476 const Identifier SCT_ModuleID = element->identify();
516 Misalign_Vector[0]=
m1;Misalign_Vector[1]=
m2;Misalign_Vector[2]=
m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
533 Misalign_Vector[0]=
m1;Misalign_Vector[1]=
m2;Misalign_Vector[2]=
m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
540 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
543 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) * localSurveyCoords[iCorn];
548 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint );
549 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint);
557 bool first =
true, NewDisk =
true, NewSector =
true, firstB =
true;
558 unsigned int nPixMod = 0,nPixModInMap = 0,nPixModEC = 0,nPixModPointsEC = 0;
559 int previous_disk = -1, previous_sector = -1;
563 if (not pixelDetEleHandle.isValid() or pixelElements==
nullptr) {
568 const Identifier Pixel_ModuleID = element->identify();
623 Misalign_Vector[0]=
m1;Misalign_Vector[1]=
m2;Misalign_Vector[2]=
m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
644 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
648 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) * localSurveyCoords[iCorn];
654 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint);
655 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint );
671 msg(MSG::INFO) <<
"Local Coordinates = (" << localSurveyCoords[iCorn][0] <<
","
672 << localSurveyCoords[iCorn][1] <<
"," << localSurveyCoords[iCorn][2] <<
")" <<
endmsg;
673 msg(MSG::INFO) <<
"Survey Local Coordinates = (" << surveyPoint[0] <<
","
674 << surveyPoint[1] <<
"," << surveyPoint[2] <<
")" <<
endmsg;
675 msg(MSG::INFO) <<
"Current Local Coordinates = (" << currentPoint[0] <<
","
676 << currentPoint[1] <<
"," << currentPoint[2] <<
")" <<
endmsg;
677 msg(MSG::INFO) <<
"Survey Global Coordinates = (" << globalSurveyPoint[0] <<
","
678 << globalSurveyPoint[1] <<
"," << globalSurveyPoint[2] <<
")" <<
endmsg;
679 msg(MSG::INFO) <<
"Current Global Coordinates = (" << globalCurrentPoint[0] <<
","
680 << globalCurrentPoint[1] <<
"," << globalCurrentPoint[2] <<
")" <<
endmsg;
681 msg(MSG::INFO) <<
"SurveyConstraint().setup_SurveyConstraintModules: nModulePoints " <<
m_ModuleMap[Pixel_ModuleID]->nModulePoints() <<
endmsg;
714 Misalign_Vector[0]=
m1;Misalign_Vector[1]=
m2;Misalign_Vector[2]=
m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
720 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
723 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) *localSurveyCoords[iCorn] ;
728 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint );
729 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint );
737 msg(MSG::INFO) <<
"nSCTMod " << nSCTMod
738 <<
", nSCTModInMap " << nSCTModInMap
739 <<
", nSCTModEC " << nSCTModEC
740 <<
", nSCTModPointsEC " << nSCTModPointsEC
741 <<
", nPixMod " << nPixMod
742 <<
", nPixModInMap " << nPixModInMap
743 <<
", nPixModEC " << nPixModEC
744 <<
", nPixModPointsEC " << nPixModPointsEC
753 std::vector< SurveyConstraintPoint > Stavepoints;
755 unsigned int nPixModEC2 = 0,nPixModPixModEC = 0,nPixModECPixModEC = 0,nSameLayer = 0,nNotIdentical = 0;
762 const Identifier Pixel_ModuleID2 = *wafer_it2;
771 if(Pixel_ModuleID != Pixel_ModuleID2){
774 (
m_ModuleMap[Pixel_ModuleID])->addStaveConstraintPoint(Stavepoints);
779 std::vector< SurveyConstraintPoint > Testpoints;
781 msg(MSG::INFO) <<
"SurveyConstraint().setup_SurveyConstraintModules: Stavepoints.size() (from map) " << Testpoints.size() <<
endmsg;
793 msg(MSG::INFO) <<
"Loop 2, filling stave-points, nPixModEC2 " << nPixModEC2
794 <<
", nPixModPixModEC " << nPixModPixModEC
795 <<
", nPixModECPixModEC " << nPixModECPixModEC
796 <<
", nSameLayer " << nSameLayer
797 <<
", nNotIdentical " << nNotIdentical
801 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
808 const Identifier Pixel_ModuleID2 = *wafer_it2;
815 if(Pixel_ModuleID == Pixel_ModuleID2)
continue;
818 (
m_ModuleMap[Pixel_ModuleID])->addStaveConstraintPoint(Stavepoints);
821 msg(MSG::INFO) <<
"Loop 2, filling stave-points, nPixModB2 " << nPixModEC2
822 <<
", nPixModPixModB " << nPixModPixModEC
823 <<
", nPixModBPixModB " << nPixModECPixModEC
824 <<
", nSameLayer " << nSameLayer
825 <<
", nNotIdentical " << nNotIdentical
829 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
845 if(SCT_ModuleID == SCT_ModuleID2)
continue;
848 (
m_ModuleMap[SCT_ModuleID])->addStaveConstraintPoint(Stavepoints);
859 std::vector< SurveyConstraintPoint > Testpoints;
861 msg(MSG::INFO) <<
"SurveyConstraint().setup_SurveyConstraintModules: Stavepoints.size() (from map) " << Testpoints.size() <<
endmsg;
867 msg(MSG::INFO) <<
"Loop 2, filling stave-points, nSCTModEC2 " << nPixModEC2
868 <<
", nSCTModSCTModEC " << nPixModPixModEC
869 <<
", nSCTModECSCTModEC " << nPixModECPixModEC
870 <<
", nSameLayer " << nSameLayer
871 <<
", nNotIdentical " << nNotIdentical
875 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
891 if(SCT_ModuleID == SCT_ModuleID2)
continue;
894 (
m_ModuleMap[SCT_ModuleID])->addStaveConstraintPoint(Stavepoints);
897 msg(MSG::INFO) <<
"Loop 2, filling stave-points, nSCTModB2 " << nPixModEC2
898 <<
", nSCTModSCTModB " << nPixModPixModEC
899 <<
", nSCTModBSCTModB " << nPixModECPixModEC
900 <<
", nSameLayer " << nSameLayer
901 <<
", nNotIdentical " << nNotIdentical
910 msg(MSG::ERROR) <<
"Write of AlignableTransforms fails" <<
endmsg;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ TransformSector()
◆ updateVHKA()
◆ m_aligndbtoolinst
std::string SurveyConstraint::m_aligndbtoolinst |
|
private |
◆ m_current_IDAlignDBTool
◆ m_detStore
◆ m_evtStore
◆ m_FullDisk
bool SurveyConstraint::m_FullDisk |
|
private |
◆ m_gaus
bool SurveyConstraint::m_gaus |
|
private |
◆ m_gausSect
bool SurveyConstraint::m_gausSect |
|
private |
use random (Gaus) rotations and translations for sectors
Definition at line 129 of file SurveyConstraint.h.
◆ m_idHelper
◆ m_misaligncase
int SurveyConstraint::m_misaligncase |
|
private |
◆ m_ModuleMap
◆ m_ntuple
bool SurveyConstraint::m_ntuple |
|
private |
◆ m_pixelDetEleCollKey
◆ m_pixid
◆ m_proximity
double SurveyConstraint::m_proximity |
|
private |
◆ m_randsvc
IRndmGenSvc* SurveyConstraint::m_randsvc |
|
private |
◆ m_RotX
double SurveyConstraint::m_RotX |
|
private |
◆ m_RotX2
double SurveyConstraint::m_RotX2 |
|
private |
Rotation in X (after Y & Z) of the first current PixEC module.
Definition at line 93 of file SurveyConstraint.h.
◆ m_RotXRand
double SurveyConstraint::m_RotXRand |
|
private |
Weight & rand Rotation in X of current PixEC modules.
Definition at line 99 of file SurveyConstraint.h.
◆ m_RotXRandPixB
double SurveyConstraint::m_RotXRandPixB |
|
private |
◆ m_RotXRandSCTB
double SurveyConstraint::m_RotXRandSCTB |
|
private |
◆ m_RotXRandSCTEC
double SurveyConstraint::m_RotXRandSCTEC |
|
private |
◆ m_RotXRandSect
double SurveyConstraint::m_RotXRandSect |
|
private |
◆ m_RotY
double SurveyConstraint::m_RotY |
|
private |
◆ m_RotYRand
double SurveyConstraint::m_RotYRand |
|
private |
◆ m_RotYRandPixB
double SurveyConstraint::m_RotYRandPixB |
|
private |
◆ m_RotYRandSCTB
double SurveyConstraint::m_RotYRandSCTB |
|
private |
◆ m_RotYRandSCTEC
double SurveyConstraint::m_RotYRandSCTEC |
|
private |
◆ m_RotYRandSect
double SurveyConstraint::m_RotYRandSect |
|
private |
◆ m_RotZ
double SurveyConstraint::m_RotZ |
|
private |
◆ m_RotZRand
double SurveyConstraint::m_RotZRand |
|
private |
◆ m_RotZRandPixB
double SurveyConstraint::m_RotZRandPixB |
|
private |
◆ m_RotZRandSCTB
double SurveyConstraint::m_RotZRandSCTB |
|
private |
◆ m_RotZRandSCTEC
double SurveyConstraint::m_RotZRandSCTEC |
|
private |
◆ m_RotZRandSect
double SurveyConstraint::m_RotZRandSect |
|
private |
◆ m_scaleZ
double SurveyConstraint::m_scaleZ |
|
private |
◆ m_SCTDetEleCollKey
◆ m_sctid
◆ m_survey_IDAlignDBTool
◆ m_surveydbtoolinst
std::string SurveyConstraint::m_surveydbtoolinst |
|
private |
◆ m_surveyrfile
std::string SurveyConstraint::m_surveyrfile |
|
private |
◆ m_SurveyWeightPhiX
double SurveyConstraint::m_SurveyWeightPhiX |
|
private |
◆ m_SurveyWeightPhiY
double SurveyConstraint::m_SurveyWeightPhiY |
|
private |
◆ m_SurveyWeightPhiZ
double SurveyConstraint::m_SurveyWeightPhiZ |
|
private |
◆ m_SurveyWeightX
double SurveyConstraint::m_SurveyWeightX |
|
private |
Multiplicative weight, representing systematic unc.
of survey
Definition at line 82 of file SurveyConstraint.h.
◆ m_SurveyWeightY
double SurveyConstraint::m_SurveyWeightY |
|
private |
◆ m_SurveyWeightZ
double SurveyConstraint::m_SurveyWeightZ |
|
private |
◆ m_surveywfile
std::string SurveyConstraint::m_surveywfile |
|
private |
◆ m_toolsvc
IToolSvc* SurveyConstraint::m_toolsvc |
|
private |
◆ m_TransLayerRand
double SurveyConstraint::m_TransLayerRand |
|
private |
rand Translation in X,Y,Z of all Pixel/SCT EC/B layers
Definition at line 127 of file SurveyConstraint.h.
◆ m_TransX
double SurveyConstraint::m_TransX |
|
private |
Translation in X of the first current PixEC module.
Definition at line 89 of file SurveyConstraint.h.
◆ m_TransXRand
double SurveyConstraint::m_TransXRand |
|
private |
Weight & rand Translation in X of current PixEC modules.
Definition at line 96 of file SurveyConstraint.h.
◆ m_TransXRandPixB
double SurveyConstraint::m_TransXRandPixB |
|
private |
Weight & rand Translation in X of current PixB modules.
Definition at line 102 of file SurveyConstraint.h.
◆ m_TransXRandSCTB
double SurveyConstraint::m_TransXRandSCTB |
|
private |
Weight & rand Translation in X of current SCTB modules.
Definition at line 114 of file SurveyConstraint.h.
◆ m_TransXRandSCTEC
double SurveyConstraint::m_TransXRandSCTEC |
|
private |
Weight & rand Translation in X of current SCTEC modules.
Definition at line 108 of file SurveyConstraint.h.
◆ m_TransXRandSect
double SurveyConstraint::m_TransXRandSect |
|
private |
◆ m_TransY
double SurveyConstraint::m_TransY |
|
private |
Translation in Y of the first current PixEC module.
Definition at line 90 of file SurveyConstraint.h.
◆ m_TransYRand
double SurveyConstraint::m_TransYRand |
|
private |
Weight & rand Translation in Y of current PixEC modules.
Definition at line 97 of file SurveyConstraint.h.
◆ m_TransYRandPixB
double SurveyConstraint::m_TransYRandPixB |
|
private |
Weight & rand Translation in Y of current PixB modules.
Definition at line 103 of file SurveyConstraint.h.
◆ m_TransYRandSCTB
double SurveyConstraint::m_TransYRandSCTB |
|
private |
Weight & rand Translation in Y of current SCTB modules.
Definition at line 115 of file SurveyConstraint.h.
◆ m_TransYRandSCTEC
double SurveyConstraint::m_TransYRandSCTEC |
|
private |
Weight & rand Translation in Y of current SCTEC modules.
Definition at line 109 of file SurveyConstraint.h.
◆ m_TransYRandSect
double SurveyConstraint::m_TransYRandSect |
|
private |
◆ m_TransZ
double SurveyConstraint::m_TransZ |
|
private |
Translation in Z of the first current PixEC module.
Definition at line 91 of file SurveyConstraint.h.
◆ m_TransZRand
double SurveyConstraint::m_TransZRand |
|
private |
Weight & rand Translation in Z of current PixEC modules.
Definition at line 98 of file SurveyConstraint.h.
◆ m_TransZRandPixB
double SurveyConstraint::m_TransZRandPixB |
|
private |
Weight & rand Translation in Z of current PixB modules.
Definition at line 104 of file SurveyConstraint.h.
◆ m_TransZRandSCTB
double SurveyConstraint::m_TransZRandSCTB |
|
private |
Weight & rand Translation in Z of current SCTB modules.
Definition at line 116 of file SurveyConstraint.h.
◆ m_TransZRandSCTEC
double SurveyConstraint::m_TransZRandSCTEC |
|
private |
Weight & rand Translation in Z of current SCTEC modules.
Definition at line 110 of file SurveyConstraint.h.
◆ m_TransZRandSect
double SurveyConstraint::m_TransZRandSect |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
double m_TransXRandSCTB
Weight & rand Translation in X of current SCTB modules.
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
virtual int SectorNumber(int phi_module)
virtual void getSurveyCoordsSCTB(std::vector< Amg::Vector3D > &coords)
std::map< Identifier, SurveyConstraintModule *, std::less< Identifier > > m_ModuleMap
Map of Wafer objects.
std::vector< Identifier >::const_iterator const_id_iterator
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
double m_RotYRandSCTEC
Weight & rand Rotation in Y of current SCTEC modules.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
double m_RotXRand
Weight & rand Rotation in X of current PixEC modules.
double m_SurveyWeightPhiX
""
const_id_iterator wafer_end(void) const
double m_RotXRandSect
rand Rotation in X of current PixEC sectors
Scalar phi() const
phi method
double m_scaleZ
scale Z coordinate to match sensitivity
const AtlasDetectorID * m_idHelper
Amg::Transform3D get_globaltolocal()
virtual int getWeightSCTEC(Amg::MatrixX &weight)
bool m_FullDisk
use Full Disk
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
double m_TransYRandSCTB
Weight & rand Translation in Y of current SCTB modules.
double m_RotZRandSCTB
Weight & rand Rotation in Z of current SCTB modules
virtual int getWeightSCTB(Amg::MatrixX &weight)
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
double m_TransYRand
Weight & rand Translation in Y of current PixEC modules.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
virtual int getWeightPixEC(Amg::MatrixX &weight)
std::vector< Identifier >::const_iterator const_id_iterator
IInDetAlignDBTool * m_survey_IDAlignDBTool
bool m_gausSect
use random (Gaus) rotations and translations for sectors
double m_TransYRandPixB
Weight & rand Translation in Y of current PixB modules.
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
double m_SurveyWeightX
Multiplicative weight, representing systematic unc.
double m_RotZRand
Weight & rand Rotation in Z of current PixEC modules
double m_TransX
Translation in X of the first current PixEC module.
virtual void getSurveyCoordsPixB(std::vector< Amg::Vector3D > &coords)
#define AmgSymMatrix(dim)
std::string m_aligndbtoolinst
bool m_gaus
use random (Gaus) rotations and translations
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
void set_globaltolocal(Amg::Transform3D &globaltolocal)
std::string m_surveywfile
double m_TransY
Translation in Y of the first current PixEC module.
void addModuleConstraintPoint(const SurveyConstraintPoint &cPoint)
double m_RotXRandPixB
Weight & rand Rotation in X of current PixB modules.
std::string m_surveydbtoolinst
double m_TransZRandSect
rand Translation in Z of current PixEC sectors
virtual double PhiModuleToSector(int phi_module)
virtual void getSurveyCoordsSCTEC(std::vector< Amg::Vector3D > &coords)
double m_RotYRand
Weight & rand Rotation in Y of current PixEC modules.
double m_RotZRandSCTEC
Weight & rand Rotation in Z of current SCTEC modules
virtual void GlobalToLocal(SurveyConstraintModule *mut, std::vector< SurveyConstraintPoint > &points)
double m_TransXRandSect
rand Translation in X of current PixEC sectors
virtual int getWeightPixB(Amg::MatrixX &weight)
::StatusCode StatusCode
StatusCode definition for legacy code.
Eigen::Affine3d Transform3D
std::string m_surveyrfile
double m_TransXRand
Weight & rand Translation in X of current PixEC modules.
double m_RotYRandPixB
Weight & rand Rotation in Y of current PixB modules.
double m_TransZ
Translation in Z of the first current PixEC module.
double m_SurveyWeightPhiY
""
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double m_proximity
Proximity of Survey points used for alignment of SOW.
double m_TransXRandPixB
Weight & rand Translation in X of current PixB modules.
double m_TransZRandSCTEC
Weight & rand Translation in Z of current SCTEC modules.
IInDetAlignDBTool * m_current_IDAlignDBTool
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
int layer_disk(const Identifier &id) const
virtual void getSurveyCoordsPixEC(std::vector< Amg::Vector3D > &coords)
double m_RotZRandSect
rand Rotation in Z of current PixEC sectors
virtual void setup_SurveyConstraintModules()
int layer_disk(const Identifier &id) const
StatusCode initialize(bool used=true)
double m_RotYRandSect
rand Rotation in Y of current PixEC sectors
int m_misaligncase
misaligncase
Eigen::Matrix< double, 3, 1 > Vector3D
IToolSvc * m_toolsvc
Pointer to tool service.
double m_RotZRandPixB
Weight & rand Rotation in Z of current PixB modules
double m_TransZRandPixB
Weight & rand Translation in Z of current PixB modules.
double m_RotYRandSCTB
Weight & rand Rotation in Y of current SCTB modules.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
void set_DOCA_Vector(Amg::VectorX &DOCA_Vector)
double m_TransZRandSCTB
Weight & rand Translation in Z of current SCTB modules.
double m_TransZRand
Weight & rand Translation in Z of current PixEC modules.
double m_TransXRandSCTEC
Weight & rand Translation in X of current SCTEC modules.
double m_RotX
Rotation in X of the first current PixEC module.
double m_TransYRandSect
rand Translation in Y of current PixEC sectors
int eta_module(const Identifier &id) const
Eigen::Translation< double, 3 > Translation3D
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int side(const Identifier &id) const
double m_RotXRandSCTEC
Weight & rand Rotation in X of current SCTEC modules.
const_id_iterator wafer_end(void) const
Eigen::AngleAxisd AngleAxis3D
double m_RotX2
Rotation in X (after Y & Z) of the first current PixEC module.
double m_RotZ
Rotation in Z of the first current PixEC module.
double m_TransYRandSCTEC
Weight & rand Translation in Y of current SCTEC modules.
int phi_module(const Identifier &id) const
double m_TransLayerRand
rand Translation in X,Y,Z of all Pixel/SCT EC/B layers
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
double m_SurveyWeightPhiZ
""
double m_RotY
Rotation in Y of the first current PixEC module.
double m_RotXRandSCTB
Weight & rand Rotation in X of current SCTB modules.