ATLAS Offline Software
Loading...
Searching...
No Matches
ConvertStaveServices Class Reference

#include <ConvertStaveServices.h>

Collaboration diagram for ConvertStaveServices:

Public Member Functions

ServiceMaterial convertStaveServices (const StaveServices &stServ) const
void addCooling (DetType::Type type, DetType::Part part, int layerNumber, int nStaves, ServiceMaterial &mat)
std::string constructName (DetType::Type type, DetType::Part part, int layer) const
std::string getHvCableName (DetType::Type type, DetType::Part part, int layer) const
std::string getDcsCableName (DetType::Type type, DetType::Part part, int layer) const
std::string getDataCableName (DetType::Type type, DetType::Part part, int layer) const
std::string getLvConductorName (DetType::Type type, DetType::Part part, int layer) const
std::string getLvInsulatorName (DetType::Type type, DetType::Part part, int layer) const

Detailed Description

Definition at line 14 of file ConvertStaveServices.h.

Member Function Documentation

◆ addCooling()

void ConvertStaveServices::addCooling ( DetType::Type type,
DetType::Part part,
int layerNumber,
int nStaves,
ServiceMaterial & mat )

Definition at line 50 of file ConvertStaveServices.cxx.

52{
53 int manifoldFactor = 1;
54
55 double pipesPerStave;
56 if (layerNumber < 2 && type == DetType::Pixel && part == DetType::Barrel) pipesPerStave = 1;
57 else pipesPerStave = 2;
58
59 double dInlets = nStaves * pipesPerStave / 2. / manifoldFactor;
60 int nInlets = int(dInlets);
61 if (dInlets - int(dInlets) > 0.001) nInlets++; // smallest int larger than dInlets
62
63 // Fixme: Hard-wired numbers, only valid if no manifolding
64 double inletR = 1.e-3;
65 double outletR = 1.e-3;
66 if ( type != DetType::Pixel) outletR = 1.5e-3;
67
68 mat.addEntry( "std::Titanium", nInlets, true, pipeWeight( inletR, 1.e-4) + pipeWeight( outletR, 1.e-4));
69
70 double collantDensity = 0.6e3; // kg/m3, approx for 60% liquid fraction at -40, ignore liquid fraction diff between inlet and outlet
71 mat.addEntry( "pix::CO2_Liquid", nInlets, true, (area(inletR)+area(outletR)) * collantDensity);
72}
double area(double R)
double pipeWeight(double R, double thick)
@ Pixel
Definition DetType.h:13
@ Barrel
Definition DetType.h:14

◆ constructName()

std::string ConvertStaveServices::constructName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 76 of file ConvertStaveServices.cxx.

77{
78 std::string name = DetType::name(type, part) + "Services_L";
79 std::ostringstream os;
80 os << layer;
81 return name + os.str();
82}
std::string name(Type t)
Definition DetType.h:16
@ layer
Definition HitInfo.h:79

◆ convertStaveServices()

ServiceMaterial ConvertStaveServices::convertStaveServices ( const StaveServices & stServ) const

Definition at line 11 of file ConvertStaveServices.cxx.

12{
13 std::string name = constructName( stServ.type(), stServ.part(), stServ.layer());
14 ServiceMaterial result( name);
15
16 std::string hvCableName = getHvCableName( stServ.type(), stServ.part(), stServ.layer());
17 result.addEntry( hvCableName, stServ.numHV(), true);
18
19 for (int i=0; i< stServ.numLvTypes(); i++) {
20 int gauge = stServ.lvGauge(i);
21 std::string lvConductorName = getLvConductorName( stServ.type(), stServ.part(), stServ.layer());
22 std::string lvInsulatorName = getLvInsulatorName( stServ.type(), stServ.part(), stServ.layer());
23 // two cables of each type assumed; if a thicker cable should be split in several thinner ones for engineering reasons
24 // this should not change the amount of material significantly.
25 result.addEntry( lvConductorName, 2, true, ccaw::conductorWeight(gauge));
26 result.addEntry( lvInsulatorName, 2, true, ccaw::insulatorWeight(gauge));
27 }
28
29 std::string dcsCableName = getDcsCableName( stServ.type(), stServ.part(), stServ.layer());
30 result.addEntry( dcsCableName, stServ.numDCS(), true);
31
32 std::string dataCableName = getDataCableName( stServ.type(), stServ.part(), stServ.layer());
33 result.addEntry( dataCableName, stServ.numData(), true);
34
35 // Add shielding and sleeving for thw whole bundle, for bundle diameter 6 mm
36 result.addEntry( "ShieldingSleeve", 1, true);
37 result.addEntry( "ProtectionSleeve", 1, true);
38
39 return result;
40}
std::string getHvCableName(DetType::Type type, DetType::Part part, int layer) const
std::string getDataCableName(DetType::Type type, DetType::Part part, int layer) const
std::string getLvConductorName(DetType::Type type, DetType::Part part, int layer) const
std::string getLvInsulatorName(DetType::Type type, DetType::Part part, int layer) const
std::string constructName(DetType::Type type, DetType::Part part, int layer) const
std::string getDcsCableName(DetType::Type type, DetType::Part part, int layer) const
int lvGauge(int lvType) const
int numHV() const
int numData() const
int numDCS() const
DetType::Part part() const
int numLvTypes() const
int layer() const
DetType::Type type() const
double conductorWeight(int gauge)
Weight per unit of length for the CCAW conductor, in kg/meter.
Definition CcawUtils.h:28
double insulatorWeight(int gauge, double thick=90.e-6, double dens=1.27e3)
Weight per unit of length for the insulator.
Definition CcawUtils.h:33

◆ getDataCableName()

std::string ConvertStaveServices::getDataCableName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 95 of file ConvertStaveServices.cxx.

96{
97 // FIXME: should come from DB?
98 return "Twinax"; // for all strip and pixel
99}

◆ getDcsCableName()

std::string ConvertStaveServices::getDcsCableName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 90 of file ConvertStaveServices.cxx.

91{
92 // FIXME: should come from DB?
93 return "ScreenedTwistP_36"; // for all strip and pixel
94}

◆ getHvCableName()

std::string ConvertStaveServices::getHvCableName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 85 of file ConvertStaveServices.cxx.

86{
87 // FIXME: should come from DB?
88 return "TwistedPair_awg36"; // for all strip and pixel
89}

◆ getLvConductorName()

std::string ConvertStaveServices::getLvConductorName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 101 of file ConvertStaveServices.cxx.

102{
103 // FIXME: should come from DB?
104 return "CCAW";
105}

◆ getLvInsulatorName()

std::string ConvertStaveServices::getLvInsulatorName ( DetType::Type type,
DetType::Part part,
int layer ) const

Definition at line 106 of file ConvertStaveServices.cxx.

107{
108 // FIXME: should come from DB?
109 return "Polyetherimide";
110}

The documentation for this class was generated from the following files: