ATLAS Offline Software
Loading...
Searching...
No Matches
AFPSiRowColToLocalCSTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef AFP_SICLUSTERTOOLS_AFPSIROWCOLTOLOCALCSTOOL_H
6#define AFP_SICLUSTERTOOLS_AFPSIROWCOLTOLOCALCSTOOL_H 1
7
15
16
17
18// FrameWork includes
20#include "GaudiKernel/ServiceHandle.h"
21
25
26// using root transformations because CLHEP does not allow to directly set transformation matrix
27#include <Math/Point3D.h>
28#include <Math/RotationY.h>
29#include <Math/RotationZYX.h>
30#include <Math/Translation3D.h>
31#include <Math/Transform3D.h>
32
33
34#include "CLHEP/Units/SystemOfUnits.h"
35
44 : public extends<AthAlgTool, IAFPSiRowColToLocalCSTool>
45{
46public:
47 AFPSiRowColToLocalCSTool (const std::string& type,
48 const std::string& name,
49 const IInterface* parent);
50
52 virtual StatusCode initialize() override;
53
55 virtual StatusCode finalize() override;
56
57
59 virtual xAOD::AFPSiHitsCluster* newXAODLocal (const int stationID, const int layerID, const AFP::SiLocAlignData& LA, const AFP::SiGlobAlignData& GA, const AFPSiClusterBasicObj& cluster, std::unique_ptr<xAOD::AFPSiHitsClusterContainer>& xAODContainer) const override;
60
61
71 void fillXAOD (const int stationID, const int layerID, const ROOT::Math::XYZPoint& position, const ROOT::Math::XYZPoint& positionError, xAOD::AFPSiHitsCluster* xAODCluster) const;
72
73private:
80 Gaudi::Property<std::vector<int>> m_numberOfLayersInStations {this, "numberOfLayersInStations",{4,4,4,4}, "Array defining number of stations and layers in each station. The size of the array in argument defines number of stations, the value in each entry defines number of layers in the station."};
81
88 std::vector< std::vector<ROOT::Math::Transform3D> > m_transformations;
89
96 Gaudi::Property<std::vector<double>> m_transformationsInit{this, "transformations", {}, "Initialisation of the transformation matrices (4x3). It is not full transformation only part. Must be defined simultaneously with transformationsErr."};
97
103 std::vector< std::vector<ROOT::Math::Transform3D> > m_transformationsErr;
104
111 Gaudi::Property<std::vector<double>> m_transformationsErrInit{this, "transformationsErr", {}, "Initialisation of the error transformation matrices (4x3). It is not full transformation only part. Must be defined simultaneously with transformations."};
112
113
118 Gaudi::Property<double> m_pixelHorizSize {this, "pixelHorizSize", 0.05, "Size of the pixel in horizontal direction when mounted (default = 0.05 mm)"};
119
124 Gaudi::Property<double> m_pixelVertSize {this, "pixelVertSize", 0.25, "Size of the pixel in vertical direction when mounted (default = 0.25 mm)"};
125
127 void initTransformationMatricesSize (std::list<std::vector< std::vector<ROOT::Math::Transform3D> >* >& matrices, const std::vector<int>& layersInStations);
128};
129
130#endif
Header file for interface IAFPSiRowColToLocalCSTool.
Source file for class SiGlobAlignData.
Header file for class SiLocAlignData.
Class representing basic silicon pixels cluster, designed to be used for creating the clusters.
void initTransformationMatricesSize(std::list< std::vector< std::vector< ROOT::Math::Transform3D > > * > &matrices, const std::vector< int > &layersInStations)
The method initialises matrices to have the size defined in layersInStations.
virtual StatusCode finalize() override
does nothing
virtual xAOD::AFPSiHitsCluster * newXAODLocal(const int stationID, const int layerID, const AFP::SiLocAlignData &LA, const AFP::SiGlobAlignData &GA, const AFPSiClusterBasicObj &cluster, std::unique_ptr< xAOD::AFPSiHitsClusterContainer > &xAODContainer) const override
Gaudi::Property< double > m_pixelHorizSize
Size of the pixel in horizontal direction when mounted (default = 0.05 mm)
virtual StatusCode initialize() override
Prepare transformation matrices.
Gaudi::Property< std::vector< double > > m_transformationsInit
Vector containing initial values for m_transformations matrices.
Gaudi::Property< std::vector< int > > m_numberOfLayersInStations
Vector defining number of stations and number of layers in each station.
Gaudi::Property< double > m_pixelVertSize
Size of the pixel in vertical direction when mounted (default = 0.25 mm)
AFPSiRowColToLocalCSTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::vector< double > > m_transformationsErrInit
Vector containing initial values for m_transformationsErr matrices.
std::vector< std::vector< ROOT::Math::Transform3D > > m_transformations
Array of transformations that position in each layers.
void fillXAOD(const int stationID, const int layerID, const ROOT::Math::XYZPoint &position, const ROOT::Math::XYZPoint &positionError, xAOD::AFPSiHitsCluster *xAODCluster) const
Sets xAOD information about station, layer, position and error based on the ROOT::Math::XYZPoint obje...
std::vector< std::vector< ROOT::Math::Transform3D > > m_transformationsErr
Array of transformations that are applied to position uncertainties.
Class storing information about alignment.
AFPSiHitsCluster_v1 AFPSiHitsCluster