ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
PixelGeoModel
src
GeoPixelPigtail.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
7
#include "
GeoPixelPigtail.h
"
8
#include "GeoModelKernel/GeoTubs.h"
9
#include "GeoModelKernel/GeoLogVol.h"
10
#include "GeoModelKernel/GeoPhysVol.h"
11
#include "GeoModelKernel/GeoMaterial.h"
12
#include "GeoModelKernel/GeoTransform.h"
13
#include <utility>
14
GeoPixelPigtail::GeoPixelPigtail
(
InDetDD::PixelDetectorManager
* ddmgr,
15
PixelGeometryManager
* mgr,
16
GeoModelIO::ReadGeoModel* sqliteReader,
17
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
18
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
19
:
GeoVPixelFactory
(ddmgr, mgr, sqliteReader,
std
::move(mapFPV),
std
::move(mapAX))
20
{
21
}
22
23
GeoVPhysVol*
GeoPixelPigtail::Build
() {
24
//this block was originally in the c'tor
25
const
GeoMaterial* air =
m_mat_mgr
->getMaterial(
"std::Air"
);
26
double
length
=
m_gmt_mgr
->PixelPigtailEnvelopeLength()+
m_epsilon
;
27
double
rmin =
m_gmt_mgr
->PixelPigtailBendRMin();
28
double
rmax =
m_gmt_mgr
->PixelPigtailBendRMax();
29
double
phi
=
m_gmt_mgr
->PixelPigtailBendPhiMin();
30
double
dphi =
m_gmt_mgr
->PixelPigtailBendPhiMax() -
phi
;
31
double
width
=
m_gmt_mgr
->PixelPigtailWidthZ();
32
double
posZ =
m_gmt_mgr
->PixelPigtailPosZ();
33
34
double
rminEps = rmin-
m_epsilon
;
35
double
rmaxEps = rmax+
m_epsilon
;
36
const
GeoTubs* tubs =
new
GeoTubs(rminEps,rmaxEps,0.5*
length
,
phi
,dphi);
37
GeoLogVol * thePigtail =
new
GeoLogVol(
"PigtailCylEnv"
,tubs,air);
38
//
39
GeoPhysVol* pigtailPhys =
new
GeoPhysVol(thePigtail);
40
const
std::string pigtailStr{
"PigtailCyl"
};
41
for
(
int
iModule = 0; iModule<
m_gmt_mgr
->PixelNModule(); iModule++) {
42
int
moduleEta =
m_gmt_mgr
->PixelModuleEtaFromIndex(iModule);
43
double
zShift =
m_gmt_mgr
->PixelModuleZPosition(moduleEta);
44
const
GeoTubs* tubs =
new
GeoTubs(rmin,rmax,0.5*
width
,
phi
,dphi);
45
std::string matName =
m_gmt_mgr
->getMaterialName(pigtailStr,
m_gmt_mgr
->GetLD());
46
const
GeoMaterial* cyliMat =
m_mat_mgr
->getMaterialForVolume(matName,tubs->volume());
47
GeoLogVol* theTubs =
new
GeoLogVol(pigtailStr,tubs,cyliMat);
48
GeoPhysVol* pigtailPart =
new
GeoPhysVol(theTubs);
49
50
double
zpos = posZ + zShift;
51
GeoTransform* xform =
new
GeoTransform(GeoTrf::TranslateZ3D(zpos));
52
pigtailPhys->add(xform);
53
pigtailPhys->add(pigtailPart);
54
}
55
return
pigtailPhys;
56
}
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
length
double length(const pvec &v)
Definition
FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
GeoPixelPigtail.h
width
const double width
Definition
TTileTripReader.cxx:24
GeoPixelPigtail::Build
virtual GeoVPhysVol * Build() override
Definition
GeoPixelPigtail.cxx:23
GeoPixelPigtail::GeoPixelPigtail
GeoPixelPigtail(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX)
Definition
GeoPixelPigtail.cxx:14
GeoVPixelFactory::m_epsilon
const double m_epsilon
Definition
GeoVPixelFactory.h:49
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition
GeoVPixelFactory.h:43
GeoVPixelFactory::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition
GeoVPixelFactory.h:44
GeoVPixelFactory::GeoVPixelFactory
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX)
Definition
GeoVPixelFactory.cxx:11
InDetDD::PixelDetectorManager
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Definition
PixelDetectorManager.h:47
PixelGeometryManager
Definition
PixelGeometryManager.h:28
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0