ATLAS Offline Software
CcawUtils.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CcawUtils_H
6 #define CcawUtils_H
7 
8 #include <cmath>
9 
10 namespace ccaw {
11 
12  inline double sqr( double a) {return a*a;}
13 
14  inline double area( double R) {return M_PI*R*R;}
15 
16  inline double gaugeDiam( int gauge) { return 0.127e-3*pow(92, double(36-gauge)/39.0);}
17 
18  inline double gaugeSurface( int gauge) { return M_PI*sqr(gaugeDiam(gauge))/4.;}
19 
21  inline double ccawDensity() {
22  double dens_cu = 8.94e3; // kg/m3
23  double dens_al = 2.70e3; // kg/m3
24  return 0.1*dens_cu + 0.9*dens_al;
25  }
26 
28  inline double conductorWeight( int gauge) { return gaugeSurface(gauge) * ccawDensity();}
29 
33  inline double insulatorWeight( int gauge, double thick=90.e-6, double dens=1.27e3) {
34  double radius = gaugeDiam(gauge) / 2.;
35  return (area( radius+thick) - area( radius)) * dens;
36  }
37 
38  inline double ccawResistivity(int gauge) {
39  double res_cu = 16.78e-9; // Ohm*m
40  double res_al = 28.2e-9; // Ohm*m
41 
42  double s = gaugeSurface( gauge);
43  double R_al = res_al/(s*0.9);
44  double R_cu = res_cu/(s*0.1);
45 
46  double invR = 1/R_al + 1/R_cu;
47  return 1./invR;
48  }
49 
50  inline int closestResistivityCcawGauge( double res)
51  {
52  // start arbitrarily with gauge 22
53  int gauge = 22;
54  double oldres = ccawResistivity(gauge);
55  double newres;
56  if (res > oldres) {
57  do {
58  newres = ccawResistivity(++gauge);
59  if (newres > res) break;
60  oldres = newres;
61  } while (gauge < 37);
62  if ( fabs( 1-newres/res) < fabs( 1-res/oldres)) return gauge;
63  else return --gauge; // old gauge was closer
64  }
65  else {
66  do {
67  newres = ccawResistivity(--gauge);
68  if (newres < res) break;
69  oldres = newres;
70  } while (gauge > 14);
71  if ( fabs( 1-newres/res) < fabs( 1-res/oldres)) return gauge;
72  else return ++gauge; // old gauge was closer
73  }
74  }
75 
76 }
77 #endif
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
ccaw::gaugeSurface
double gaugeSurface(int gauge)
Definition: CcawUtils.h:18
ccaw::gaugeDiam
double gaugeDiam(int gauge)
Definition: CcawUtils.h:16
ccaw::ccawDensity
double ccawDensity()
Units: kg/m3.
Definition: CcawUtils.h:21
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
M_PI
#define M_PI
Definition: ActiveFraction.h:11
ccaw::area
double area(double R)
Definition: CcawUtils.h:14
ccaw
Definition: CcawUtils.h:10
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
ccaw::closestResistivityCcawGauge
int closestResistivityCcawGauge(double res)
Definition: CcawUtils.h:50
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
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
a
TList * a
Definition: liststreamerinfos.cxx:10
ccaw::conductorWeight
double conductorWeight(int gauge)
Weight per unit of length for the CCAW conductor, in kg/meter.
Definition: CcawUtils.h:28
ccaw::sqr
double sqr(double a)
Definition: CcawUtils.h:12
ccaw::ccawResistivity
double ccawResistivity(int gauge)
Definition: CcawUtils.h:38