ATLAS Offline Software
Loading...
Searching...
No Matches
SurveyConstraint.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef SURVEYCONSTRAINTTOOLS_SURVEYCONSTRAINT_H
6#define SURVEYCONSTRAINTTOOLS_SURVEYCONSTRAINT_H
7
12#include <vector>
13#include <map>
14
15class AtlasDetectorID;
17class PixelID;
18class SCT_ID;
19
20class SurveyConstraint : public extends <AthAlgTool, ISurveyConstraint>{
21 public:
22 SurveyConstraint(const std::string& type,const std::string& name,const IInterface* parent);
23
24 virtual ~SurveyConstraint() = default;
25
26 virtual StatusCode initialize() override;
27 virtual StatusCode finalize() override;
28
29 virtual StatusCode computeConstraint(const Identifier& ModuleID,
30 Amg::VectorX& dparams,
31 double& deltachisq,
32 Amg::VectorX& dchisqdparams,
33 Amg::MatrixX& d2chisqdpdp) override;
34 virtual void setup_SurveyConstraintModules() override;
35
36 virtual void MMap(std::map<Identifier, SurveyConstraintModule*, std::less<Identifier> >& ModuleMap) override;
37
38 virtual int getWeightPixEC(//const Identifier& ModuleID,
39 Amg::MatrixX& weight) override;
40 virtual int getWeightPixB(//const Identifier& ModuleID,
41 Amg::MatrixX& weight) override;
42 virtual int getWeightSCTEC(//const Identifier& ModuleID,
43 Amg::MatrixX& weight) override;
44 virtual int getWeightSCTB(//const Identifier& ModuleID,
45 Amg::MatrixX& weight) override;
46 virtual void getSurveyCoordsPixEC(//const Identifier& ModuleID,
47 std::vector< Amg::Vector3D > & coords) override;
48 virtual void getSurveyCoordsPixB(//const Identifier& ModuleID,
49 std::vector< Amg::Vector3D > & coords) override;
50 virtual void getSurveyCoordsSCTEC(//const Identifier& ModuleID,
51 std::vector< Amg::Vector3D > & coords) override;
52 virtual void getSurveyCoordsSCTB(//const Identifier& ModuleID,
53 std::vector< Amg::Vector3D > & coords) override;
54 virtual void GlobalToLocal(SurveyConstraintModule* mut,std::vector<SurveyConstraintPoint>& points) override;
55 virtual int SectorNumber(int phi_module) override;
56 virtual double PhiModuleToSector(int phi_module) override;
57 virtual void TransformSector(Identifier Pixel_ModuleID,
59 Amg::Vector3D& current,
60 Amg::Transform3D CurrentTransRandSect) override;
61
62 private :
66
67
70
71 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_pixelDetEleCollKey{this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"};
72 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
73
74 // dictionary of module constrain objects, indexed by moduleID
75 std::map<Identifier, SurveyConstraintModule*, std::less<Identifier> > m_ModuleMap;
76
77 // algorithm parameters, possible to declare at runtime
79 // (e.g. bow), set to 1 for now
85 double m_TransX;
86 double m_TransY;
87 double m_TransZ;
88 double m_RotX;
89 double m_RotX2;
90 double m_RotY;
91 double m_RotZ;
92 double m_TransXRand;
93 double m_TransYRand;
94 double m_TransZRand;
95 double m_RotXRand;
96 double m_RotYRand;
97 double m_RotZRand;
116 bool m_gaus;
127 double m_scaleZ;
128 double m_proximity;
129 std::string m_aligndbtoolinst;
130 std::string m_surveydbtoolinst;
131 std::string m_surveywfile;
132 std::string m_surveyrfile;
134
135};
136
137#endif // SURVEYCONSTRAINTTOOLS_SURVEYCONSTRAINT_H
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:69
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
bool m_FullDisk
use Full Disk
double m_RotZRandSect
rand Rotation in Z of current PixEC sectors
virtual StatusCode computeConstraint(const Identifier &ModuleID, Amg::VectorX &dparams, double &deltachisq, Amg::VectorX &dchisqdparams, Amg::MatrixX &d2chisqdpdp) override
double m_RotYRand
Weight & rand Rotation in Y of current PixEC modules.
IInDetAlignDBTool * m_survey_IDAlignDBTool
virtual void TransformSector(Identifier Pixel_ModuleID, SurveyConstraintModule *mut, Amg::Vector3D &current, Amg::Transform3D CurrentTransRandSect) override
double m_RotZRandSCTEC
Weight & rand Rotation in Z of current SCTEC modules.
double m_TransXRandSCTB
Weight & rand Translation in X of current SCTB modules.
double m_RotZRand
Weight & rand Rotation in Z of current PixEC modules.
virtual ~SurveyConstraint()=default
IInDetAlignDBTool * m_current_IDAlignDBTool
double m_TransZ
Translation in Z of the first current PixEC module.
double m_RotXRandSCTEC
Weight & rand Rotation in X of current SCTEC modules.
int m_misaligncase
misaligncase
double m_RotYRandPixB
Weight & rand Rotation in Y of current PixB modules.
double m_SurveyWeightPhiX
""
double m_TransX
Translation in X of the first current PixEC module.
virtual StatusCode initialize() override
virtual int getWeightPixEC(Amg::MatrixX &weight) override
double m_TransXRandPixB
Weight & rand Translation in X of current PixB modules.
virtual void GlobalToLocal(SurveyConstraintModule *mut, std::vector< SurveyConstraintPoint > &points) override
double m_TransYRandSect
rand Translation in Y of current PixEC sectors
virtual void getSurveyCoordsSCTB(std::vector< Amg::Vector3D > &coords) override
double m_RotXRandSCTB
Weight & rand Rotation in X of current SCTB modules.
std::string m_aligndbtoolinst
double m_TransLayerRand
rand Translation in X,Y,Z of all Pixel/SCT EC/B layers
double m_scaleZ
scale Z coordinate to match sensitivity
double m_TransYRandPixB
Weight & rand Translation in Y of current PixB modules.
double m_RotXRand
Weight & rand Rotation in X of current PixEC modules.
double m_TransXRandSect
rand Translation in X of current PixEC sectors
virtual void MMap(std::map< Identifier, SurveyConstraintModule *, std::less< Identifier > > &ModuleMap) override
SurveyConstraint(const std::string &type, const std::string &name, const IInterface *parent)
virtual int getWeightPixB(Amg::MatrixX &weight) override
virtual int getWeightSCTEC(Amg::MatrixX &weight) override
virtual void setup_SurveyConstraintModules() override
double m_TransYRandSCTB
Weight & rand Translation in Y of current SCTB modules.
double m_TransZRandSect
rand Translation in Z of current PixEC sectors
double m_RotXRandPixB
Weight & rand Rotation in X of current PixB modules.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
const SCT_ID * m_sctid
double m_TransZRand
Weight & rand Translation in Z of current PixEC modules.
std::string m_surveywfile
virtual void getSurveyCoordsPixEC(std::vector< Amg::Vector3D > &coords) override
double m_RotZRandPixB
Weight & rand Rotation in Z of current PixB modules.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
virtual int getWeightSCTB(Amg::MatrixX &weight) override
double m_TransYRandSCTEC
Weight & rand Translation in Y of current SCTEC modules.
std::string m_surveyrfile
double m_TransYRand
Weight & rand Translation in Y of current PixEC modules.
double m_RotYRandSCTEC
Weight & rand Rotation in Y of current SCTEC modules.
double m_TransZRandSCTB
Weight & rand Translation in Z of current SCTB modules.
std::map< Identifier, SurveyConstraintModule *, std::less< Identifier > > m_ModuleMap
Map of Wafer objects.
bool m_gausSect
use random (Gaus) rotations and translations for sectors
double m_RotZRandSCTB
Weight & rand Rotation in Z of current SCTB modules.
const AtlasDetectorID * m_idHelper
virtual double PhiModuleToSector(int phi_module) override
double m_SurveyWeightPhiZ
""
double m_SurveyWeightPhiY
""
double m_RotX2
Rotation in X (after Y & Z) of the first current PixEC module.
std::string m_surveydbtoolinst
double m_SurveyWeightX
Multiplicative weight, representing systematic unc.
virtual StatusCode finalize() override
virtual int SectorNumber(int phi_module) override
double m_RotZ
Rotation in Z of the first current PixEC module.
double m_TransXRand
Weight & rand Translation in X of current PixEC modules.
virtual void getSurveyCoordsPixB(std::vector< Amg::Vector3D > &coords) override
const PixelID * m_pixid
double m_TransZRandSCTEC
Weight & rand Translation in Z of current SCTEC modules.
double m_RotY
Rotation in Y of the first current PixEC module.
double m_RotYRandSCTB
Weight & rand Rotation in Y of current SCTB modules.
double m_RotYRandSect
rand Rotation in Y of current PixEC sectors
double m_TransY
Translation in Y of the first current PixEC module.
bool m_gaus
use random (Gaus) rotations and translations
virtual void getSurveyCoordsSCTEC(std::vector< Amg::Vector3D > &coords) override
double m_RotX
Rotation in X of the first current PixEC module.
double m_TransXRandSCTEC
Weight & rand Translation in X of current SCTEC modules.
double m_proximity
Proximity of Survey points used for alignment of SOW.
double m_RotXRandSect
rand Rotation in X of current PixEC sectors
double m_TransZRandPixB
Weight & rand Translation in Z of current PixB modules.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
#define private