EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MediaBank.cxx
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MediaBank.cxx
1 //
2 // AYK (ayk@bnl.gov), shaped up in Nov'2015;
3 //
4 // Media distribution along Kalman filter node arrangement line;
5 //
6 
7 #include <assert.h>
8 
9 #include <MediaBank.h>
10 
11 // ---------------------------------------------------------------------------------------
12 
13 int MediaBank::StartNextLayer(TGeoMaterial *material, TVector3 pt) {
14  // Figure out Z coordinate, taking into account coordinate system offset;
15  double z = (pt - mAxisLine.x).Dot(mAxisLine.nx);
16 
17  // Allow 'z' to be negative; FIXME: do not check, that thickness of the previous
18  // layer matched this pt[]?; yet check monotonous grow (FIXME: but ignore thickness);
19  {
21 
22  if (layer && z < layer->GetZ0()) {
23  printf("MediaBank::StartNextLayer(): Z(now) is %7.2f, Z(last) was %7.2f\n",
24  z, layer->GetZ0());
25  return -1;
26  } //if
27  }
28 
29  mMediaLayers.push_back(MediaLayer(material, pt[2]));
30 
31  return 0;
32 } // MediaBank::StartNextLayer()
33 
34 // ---------------------------------------------------------------------------------------
35 
37 {
38  printf("--> %d layer(s)\n", GetMediaLayerCount());
39 
40  for(int iq=0; iq<GetMediaLayerCount(); iq++) {
41  const MediaLayer *mlayer = GetMediaLayer(iq);
42  TGeoMaterial *material = mlayer->GetMaterial();
43 
44  printf("material --> z0=%8.2fcm (%7.2fcm thick): %s\n",
45  mlayer->GetZ0(), mlayer->GetThickness(), material->GetName());
46  } //for iq
47 } // MediaBank::Print()
48 
49 // ---------------------------------------------------------------------------------------