ATLAS Offline Software
Loading...
Searching...
No Matches
PADdata.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8
9PADdata::PADdata(CMAdata* cma_data,unsigned long int debug) :
10 BaseObject(Data,"PAD data"),m_debug(debug)
11{
12 m_pad_patterns.clear();
13
14 CMAdata::PatternsList cma_patterns = cma_data->give_patterns();
15 CMAdata::PatternsList::const_iterator CMApatterns = cma_patterns.begin();
16
17 while(CMApatterns != cma_patterns.end())
18 {
19 create_pad_patterns(*CMApatterns);
20 ++CMApatterns;
21 }
22}
23
24PADdata::PADdata(const PADdata& pad_data) :
25 BaseObject(Data,pad_data.name()),
26 m_debug(pad_data.debug()),
28{
29}
30
32{
33 m_pad_patterns.clear();
34}
35
38{
39 static_cast<BaseObject&>(*this) = static_cast<const BaseObject&>(pad_data);
40 m_pad_patterns.clear();
41 m_pad_patterns = pad_data.pad_patterns();
42 m_debug = pad_data.debug();
43 return *this;
44}
45
46void
48{
49 const int pad_id = cma_patterns->cma_parameters().id().PAD_index();
50 const int sector = cma_patterns->sector();
51 PADpatterns* patterns = find(sector,pad_id);
52 if(patterns) patterns->load_cma_patterns(cma_patterns);
53 else {
54 PADpatterns thePatterns(sector,pad_id,m_debug);
55 thePatterns.load_cma_patterns(cma_patterns);
56 m_pad_patterns.push_back(thePatterns);
57 }
58}
59
60
62PADdata::find(const int sector,const int pad_id)
63{
64 PATTERNSlist::iterator it = m_pad_patterns.begin();
65 while (it != m_pad_patterns.end())
66 {
67 if((*it).pad_id() == pad_id &&
68 (*it).sector() == sector ) return &(*it);
69 ++it;
70 }
71
72 return 0;
73}
74
75
78{
80
81 PATTERNSlist::iterator pad = m_pad_patterns.begin();
82
83 while(pad != m_pad_patterns.end())
84 {
85 patterns.push_back(&(*pad));
86 ++pad;
87 }
88
89 return patterns;
90}
91
92
93void PADdata::PrintElement(std::ostream& stream,std::string element,bool detail)
94 const
95{
96 bool all = (element == name() || element == "")? true : false;
97 bool nPad = m_pad_patterns.size();
98 bool printed = false;
99
100 if(nPad && (element == (*m_pad_patterns.begin()).name() || all))
101 {
102 stream << name() << " contains " << m_pad_patterns.size()
103 << " pad patterns:" << std::endl;
104 printed = true;
105 PATTERNSlist::const_iterator it = m_pad_patterns.begin();
106 while(it != m_pad_patterns.end())
107 {
108 it->Print(stream,detail);
109 ++it;
110 }
111 }
112
113 if(!printed)
114 {
115 if (element == "") element = "PADs";
116 stream << name() << " contains no " << element << "!" << std::endl;
117 }
118}
119
120
121void PADdata::Print(std::ostream& stream,bool detail) const
122{
123 stream << name() << " contains "
124 << m_pad_patterns.size()
125 << " pad patterns " << std::endl;
126
127 PATTERNSlist::const_iterator pad = pad_patterns().begin();
128
129 while(pad != pad_patterns().end())
130 {
131 (*pad).Print(stream,detail);
132 ++pad;
133 }
134}
@ Data
Definition BaseObject.h:11
BaseObject(ObjectType, const std::string &)
Definition BaseObject.cxx:7
const std::string & name() const
Definition BaseObject.h:23
PatternsList give_patterns(void)
Definition CMAdata.cxx:139
std::list< CMApatterns * > PatternsList
Definition CMAdata.h:22
int PAD_index() const
const CMAidentity & id() const
int sector(void) const
Definition CMApatterns.h:86
const CMAparameters & cma_parameters(void) const
Definition CMApatterns.h:87
PADdata operator=(const PADdata &)
Definition PADdata.cxx:37
PatternsList give_patterns(void)
Definition PADdata.cxx:77
void Print(std::ostream &, bool) const
Definition PADdata.cxx:121
void PrintElement(std::ostream &, std::string, bool) const
Definition PADdata.cxx:93
PATTERNSlist m_pad_patterns
Definition PADdata.h:23
PADpatterns * find(const int, const int)
Definition PADdata.cxx:62
void create_pad_patterns(CMApatterns *)
Definition PADdata.cxx:47
std::list< PADpatterns * > PatternsList
Definition PADdata.h:19
const PATTERNSlist & pad_patterns(void) const
Definition PADdata.h:39
unsigned long int m_debug
Definition PADdata.h:22
~PADdata()
Definition PADdata.cxx:31
PADdata(CMAdata *, unsigned long int)
Definition PADdata.cxx:9
unsigned long int debug(void) const
Definition PADdata.h:37
void load_cma_patterns(CMApatterns *)
std::vector< std::string > patterns
Definition listroot.cxx:187