ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtData
AtPadReference.h
Go to the documentation of this file.
1
#ifndef _ATPADREFERENCE_H
2
#define _ATPADREFERENCE_H
3
4
#include "
AtPadBase.h
"
5
6
#include <Rtypes.h>
7
8
#include <cstddef>
9
#include <functional>
// IWYU pragma: keep
10
#include <iosfwd>
11
#include <memory>
12
13
class
TBuffer;
14
class
TClass;
15
class
TMemberInspector;
16
17
// The definition of this struct, and the operator overloads have to
18
// be before AtMap where an unordered_map using this as a key is
19
// instatiated.
20
struct
AtPadReference
{
21
Int_t
cobo
;
22
Int_t
asad
;
23
Int_t
aget
;
24
Int_t
ch
;
25
};
26
bool
operator<
(
const
AtPadReference
&l,
const
AtPadReference
&r);
27
bool
operator==
(
const
AtPadReference
&l,
const
AtPadReference
&r);
28
std::ostream &
operator<<
(std::ostream &os,
const
AtPadReference
&t);
29
30
namespace
std {
31
template
<>
32
struct
hash<
AtPadReference
> {
33
inline
size_t
operator()
(
const
AtPadReference
&x)
const
34
{
35
return
x.
ch
+ x.
aget
* 100 + x.
asad
* 10000 + x.
cobo
* 1000000;
36
}
37
};
38
}
// namespace std
39
40
class
AtElectronicReference
:
public
AtPadBase
{
41
private
:
42
AtPadReference
fRef;
43
44
public
:
45
AtElectronicReference
(
AtPadReference
ref = {}) : fRef(ref) {}
46
virtual
std::unique_ptr<AtPadBase>
Clone
()
const override
{
return
std::make_unique<AtElectronicReference>(*
this
); }
47
AtPadReference
GetReference
() {
return
fRef; }
48
ClassDefOverride
(
AtElectronicReference
, 1);
49
};
50
#endif //#ifndef _PADREFERENCE_H
AtElectronicReference::AtElectronicReference
AtElectronicReference(AtPadReference ref={})
Definition:
AtPadReference.h:45
AtPadReference::aget
Int_t aget
Definition:
AtPadReference.h:23
operator==
bool operator==(const AtPadReference &l, const AtPadReference &r)
Definition:
AtPadReference.cxx:16
AtPadReference::cobo
Int_t cobo
Definition:
AtPadReference.h:21
operator<<
std::ostream & operator<<(std::ostream &os, const AtPadReference &t)
Definition:
AtPadReference.cxx:5
AtElectronicReference::Clone
virtual std::unique_ptr< AtPadBase > Clone() const override
Definition:
AtPadReference.h:46
AtElectronicReference::ClassDefOverride
ClassDefOverride(AtElectronicReference, 1)
AtPadBase
Base class for AtPad composition pattern.
Definition:
AtPadBase.h:37
AtElectronicReference::GetReference
AtPadReference GetReference()
Definition:
AtPadReference.h:47
AtPadReference::asad
Int_t asad
Definition:
AtPadReference.h:22
operator<
bool operator<(const AtPadReference &l, const AtPadReference &r)
Definition:
AtPadReference.cxx:11
AtElectronicReference
Definition:
AtPadReference.h:40
AtPadReference::ch
Int_t ch
Definition:
AtPadReference.h:24
AtPadBase.h
AtPadReference
Definition:
AtPadReference.h:20
std::hash< AtPadReference >::operator()
size_t operator()(const AtPadReference &x) const
Definition:
AtPadReference.h:33
Generated on Sat Nov 11 2023 15:30:37 for ATTPCROOT by
1.8.18