ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
PixelGeoModel
src
GeoPixelFluid.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//
6
// This class builds one trapezoid
7
//
8
//
9
#include "
GeoPixelFluid.h
"
10
#include "GeoModelKernel/GeoTrd.h"
11
#include "GeoModelKernel/GeoLogVol.h"
12
#include "GeoModelKernel/GeoPhysVol.h"
13
#include "GeoModelKernel/GeoMaterial.h"
14
15
#include<cmath>
16
#include <sstream>
17
#include <utility>
18
19
GeoPixelFluid::GeoPixelFluid
(
InDetDD::PixelDetectorManager
* ddmgr,
20
PixelGeometryManager
* mgr,
21
GeoModelIO::ReadGeoModel* sqliteReader,
22
std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
23
std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
24
int
type
)
25
:
GeoVPixelFactory
(ddmgr, mgr, sqliteReader,
std
::move(mapFPV),
std
::move(mapAX))
26
{
27
m_index
=
m_gmt_mgr
->PixelFluidIndex(
type
);
28
double
z1 =
m_gmt_mgr
->PixelFluidZ1(
m_index
);
29
double
z2 =
m_gmt_mgr
->PixelFluidZ2(
m_index
);
30
m_posX
=
m_gmt_mgr
->PixelFluidX(
m_index
);
31
m_posY
=
m_gmt_mgr
->PixelFluidY(
m_index
);
32
m_posZ
= 0.5*(z1+z2);
33
}
34
35
GeoVPhysVol*
GeoPixelFluid::Build
()
36
{
37
//
38
// Dimensions
39
//
40
double
z1 =
m_gmt_mgr
->PixelFluidZ1(
m_index
);
41
double
z2 =
m_gmt_mgr
->PixelFluidZ2(
m_index
);
42
double
thick1 =
m_gmt_mgr
->PixelFluidThick1(
m_index
);
43
double
thick2 =
m_gmt_mgr
->PixelFluidThick2(
m_index
);
44
double
width
=
m_gmt_mgr
->PixelFluidWidth(
m_index
);
45
46
double
length
= std::abs(z2 - z1);
47
double
thickAtZmin = thick1;
48
// double thickAtZmax = thick2;
49
if
(z1 > z2) {
50
thickAtZmin = thick2;
51
// thickAtZmax = thick1;
52
}
53
54
std::ostringstream o;
55
o <<
"Fluid"
<<
m_gmt_mgr
->PixelFluidType(
m_index
);
56
std::string logName = o.str();
57
58
const
GeoMaterial* fluidMat =
m_mat_mgr
->getMaterial(
m_gmt_mgr
->PixelFluidMat(
m_index
));
59
const
GeoTrd* fluidShape =
new
GeoTrd(0.5*thickAtZmin, 0.5*thickAtZmin, 0.5*
width
, 0.5*
width
, 0.5*
length
);
60
GeoLogVol * fluidLV =
new
GeoLogVol(logName, fluidShape, fluidMat);
61
GeoPhysVol * fluidPhys =
new
GeoPhysVol(fluidLV);
62
63
return
fluidPhys;
64
}
length
double length(const pvec &v)
Definition
FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
GeoPixelFluid.h
width
const double width
Definition
TTileTripReader.cxx:24
GeoPixelFluid::m_posZ
double m_posZ
Definition
GeoPixelFluid.h:30
GeoPixelFluid::GeoPixelFluid
GeoPixelFluid(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, int type)
Definition
GeoPixelFluid.cxx:19
GeoPixelFluid::Build
virtual GeoVPhysVol * Build() override
Definition
GeoPixelFluid.cxx:35
GeoPixelFluid::m_posX
double m_posX
Definition
GeoPixelFluid.h:28
GeoPixelFluid::m_index
int m_index
Definition
GeoPixelFluid.h:27
GeoPixelFluid::m_posY
double m_posY
Definition
GeoPixelFluid.h:29
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.
type
Generated on
for ATLAS Offline Software by
1.17.0