ATLAS Offline Software
Public Member Functions | List of all members
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 }

◆ 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 }

◆ 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());
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 }

◆ 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:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ConvertStaveServices::getHvCableName
std::string getHvCableName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:85
get_generator_info.result
result
Definition: get_generator_info.py:21
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
StaveServices::lvGauge
int lvGauge(int lvType) const
Definition: StaveServices.h:36
DetType::Barrel
@ Barrel
Definition: DetType.h:14
ConvertStaveServices::getDcsCableName
std::string getDcsCableName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:90
ConvertStaveServices::constructName
std::string constructName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:76
DetType::Pixel
@ Pixel
Definition: DetType.h:13
lumiFormat.i
int i
Definition: lumiFormat.py:92
DetType::name
std::string name(Type t)
Definition: DetType.h:16
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
StaveServices::numLvTypes
int numLvTypes() const
Definition: StaveServices.h:35
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
ServiceMaterial
Definition: ServiceMaterial.h:12
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
StaveServices::layer
int layer() const
Definition: StaveServices.h:30
StaveServices::part
DetType::Part part() const
Definition: StaveServices.h:29
ccaw::insulatorWeight
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
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
StaveServices::numData
int numData() const
Definition: StaveServices.h:34
StaveServices::numDCS
int numDCS() const
Definition: StaveServices.h:33
ConvertStaveServices::getLvInsulatorName
std::string getLvInsulatorName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:106
ccaw::conductorWeight
double conductorWeight(int gauge)
Weight per unit of length for the CCAW conductor, in kg/meter.
Definition: CcawUtils.h:28
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ConvertStaveServices::getDataCableName
std::string getDataCableName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:95
ConvertStaveServices::getLvConductorName
std::string getLvConductorName(DetType::Type type, DetType::Part part, int layer) const
Definition: ConvertStaveServices.cxx:101
StaveServices::numHV
int numHV() const
Definition: StaveServices.h:32
area
double area(double R)
Definition: ConvertStaveServices.cxx:42
pipeWeight
double pipeWeight(double R, double thick)
Definition: ConvertStaveServices.cxx:44
StaveServices::type
DetType::Type type() const
Definition: StaveServices.h:28