R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BDigitizingChannel.cxx
Go to the documentation of this file.
1
/******************************************************************************
2
* Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3
* Copyright (C) 2019 Members of R3B Collaboration *
4
* *
5
* This software is distributed under the terms of the *
6
* GNU General Public Licence (GPL) version 3, *
7
* copied verbatim in the file "LICENSE". *
8
* *
9
* In applying this license GSI does not waive the privileges and immunities *
10
* granted to it by virtue of its status as an Intergovernmental Organization *
11
* or submit itself to any jurisdiction. *
12
******************************************************************************/
13
14
#include "
R3BDigitizingChannel.h
"
15
#include <algorithm>
16
17
namespace
R3B::Digitizing
18
{
19
Channel::Channel
(
ChannelSide
side)
20
: fSide(side)
21
{
22
}
23
24
auto
Channel::GetDefaultRandomGen
() -> TRandom3&
25
{
26
static
auto
random3 = TRandom3{};
27
return
random3;
28
}
29
30
auto
Channel::GetSignals
() ->
const
Signals
&
31
{
32
if
(!fSignals.valid())
33
{
34
fSignals.set(
ConstructSignals
());
35
}
36
return
fSignals.getRef();
37
}
38
39
auto
Channel::HasFired
() ->
bool
{
return
(!
GetSignals
().empty()); }
40
41
auto
Channel::GetTrigTime
() ->
double
42
{
43
if
(!fTrigTime.valid())
44
{
45
const
auto
& signals =
GetSignals
();
46
auto
it =
47
std::min_element(signals.begin(),
48
signals.end(),
49
[](
const
auto
& left_v,
const
auto
& right_v) { return left_v.tdc < right_v.tdc; });
50
fTrigTime.set((it != signals.end() ? it->tdc :
MAXTIME
));
51
}
52
return
fTrigTime.get();
53
}
54
}
// namespace R3B::Digitizing
R3BDigitizingChannel.h
R3B::Digitizing::Channel::GetTrigTime
virtual auto GetTrigTime() -> double
Definition
R3BDigitizingChannel.cxx:41
R3B::Digitizing::Channel::HasFired
virtual auto HasFired() -> bool
Definition
R3BDigitizingChannel.cxx:39
R3B::Digitizing::Channel::GetDefaultRandomGen
static auto GetDefaultRandomGen() -> TRandom3 &
Definition
R3BDigitizingChannel.cxx:24
R3B::Digitizing::Channel::Signals
std::vector< Signal > Signals
Definition
R3BDigitizingChannel.h:68
R3B::Digitizing::Channel::ConstructSignals
virtual auto ConstructSignals() -> Signals=0
R3B::Digitizing::Channel::GetSignals
auto GetSignals() -> const Signals &
Definition
R3BDigitizingChannel.cxx:30
R3B::Digitizing::Channel::Channel
Channel(ChannelSide)
Definition
R3BDigitizingChannel.cxx:19
R3B::Digitizing
Definition
R3BNeulandAppOptionJson.cxx:8
R3B::Digitizing::ChannelSide
ChannelSide
Definition
R3BDigitizingChannel.h:25
R3B::Digitizing::MAXTIME
const double MAXTIME
Definition
R3BDigitizingChannel.h:22
neuland
digitizing
R3BDigitizingChannel.cxx
Generated by
1.13.2