ATLAS Offline Software
WaferTree.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 using namespace std;
8 
9 bool Side::add(int side, Wafer &wafer) {
10 
11  if (count(side) == 0) {
12  insert(pair<int, Wafer>(side, wafer));
13  return true;
14  }
15  else {
16  errmsg << "WaferTree ERROR: request to add a second copy of a wafer ignored. Identifier = " <<
17  wafer.hashId() << "; side = " << side;
18  return false;
19  }
20 }
21 
22 bool PhiModule::add(int phi, int side, Wafer &wafer) {
23  if (count(phi) == 0) {
24  insert(pair<int, Side>(phi, Side()));
25  }
26  if (!(*this)[phi].add(side, wafer)) {
27  errmsg << "; phi = " << phi;
28  return false;
29  }
30  return true;
31 }
32 
33 bool EtaModule::add(int eta, int phi, int side, Wafer &wafer) {
34  if (count(eta) == 0) {
35  insert(pair<int, PhiModule>(eta, PhiModule()));
36  }
37  if (!(*this)[eta].add(phi, side, wafer)) {
38  errmsg << "; eta = " << eta;
39  return false;
40  }
41  return true;
42 }
43 
44 bool LayerDisk::add(int ld, int eta, int phi, int side, Wafer &wafer) {
45  if (count(ld) == 0) {
46  insert(pair<int, EtaModule>(ld, EtaModule()));
47  }
48  if (!(*this)[ld].add(eta, phi, side, wafer)) {
49  errmsg << "; ld = " << ld;
50  return false;
51  }
52  return true;
53 }
54 
55 bool BarrelEndcap::add(int bec, int ld, int eta, int phi, int side, Wafer &wafer, string &errorMessage) {
56  errorMessage = "";
57  errmsg.str("");
58  errmsg.str().clear();
59  if (count(bec) == 0) {
60  insert(pair<int, LayerDisk>(bec, LayerDisk()));
61  }
62  if (!(*this)[bec].add(ld, eta, phi, side, wafer)) {
63  errmsg << "; bec = " << bec;
64  errorMessage = errmsg.str();
65  return false;
66  }
67  return true;
68 }
69 
70 //version without side index for pixels
71 bool BarrelEndcap::add(int bec, int ld, int eta, int phi, Wafer &wafer, string &errorMessage) {
72  return add(bec,ld,eta,phi,0,wafer,errorMessage);
73 }
ForwardTracker::Side
Side
Definition: ForwardTrackerConstants.h:13
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Wafer::hashId
unsigned int hashId()
Definition: WaferTree.h:30
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TRT::Hit::side
@ side
Definition: HitInfo.h:83
EtaModule
Definition: WaferTree.h:50
LayerDisk
Definition: WaferTree.h:57
Wafer
Definition: WaferTree.h:27
BarrelEndcap::add
bool add(int bec, int ld, int eta, int phi, int side, Wafer &wafer, std::string &errorMessage)
Definition: WaferTree.cxx:55
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
LayerDisk::add
bool add(int ld, int eta, int phi, int side, Wafer &wafer)
Definition: WaferTree.cxx:44
Side::add
bool add(int side, Wafer &wafer)
Definition: WaferTree.cxx:9
WaferTree.h
PhiModule::add
bool add(int phi, int side, Wafer &wafer)
Definition: WaferTree.cxx:22
PhiModule
Definition: WaferTree.h:43
EtaModule::add
bool add(int eta, int phi, int side, Wafer &wafer)
Definition: WaferTree.cxx:33
geometry_dat_to_json.ld
ld
Definition: geometry_dat_to_json.py:14