ATLAS Offline Software
Loading...
Searching...
No Matches
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
7using namespace std;
8
9bool 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
22bool 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
33bool 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
44bool 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
55bool 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
71bool 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}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
static thread_local std::ostringstream errmsg
Definition WaferTree.h:25
bool add(int bec, int ld, int eta, int phi, int side, Wafer &wafer, std::string &errorMessage)
Definition WaferTree.cxx:55
bool add(int eta, int phi, int side, Wafer &wafer)
Definition WaferTree.cxx:33
bool add(int ld, int eta, int phi, int side, Wafer &wafer)
Definition WaferTree.cxx:44
bool add(int phi, int side, Wafer &wafer)
Definition WaferTree.cxx:22
bool add(int side, Wafer &wafer)
Definition WaferTree.cxx:9
unsigned int hashId()
Definition WaferTree.h:30
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
STL namespace.