3 #include <fwk/CentralConfig.h>
5 #include <utl/Branch.h>
6 #include <utl/config.h>
7 #include <utl/ErrorLogger.h>
10 #include <revt/REvent.h>
11 #include <revt/Station.h>
12 #include <revt/StationRecData.h>
27 CentralConfig::GetInstance()->
GetTopBranch(
"RdStationTimeSeriesWindowCutter");
31 string tmpstring = topBranch.
GetChild(
"WindowType").
Get<
string>();
32 if (tmpstring ==
"eUserSignalWindow") {
33 fWindowType = eUserSignalWindow;
34 }
else if (tmpstring ==
"eRecSignalWindow") {
35 fWindowType = eRecSignalWindow;
36 }
else if (tmpstring ==
"eUserWindow") {
37 fWindowType = eUserWindow;
39 ERROR(
"Undefined Window Type in xml - file.");
52 WARNING(
"No radio event found!");
56 REvent& rEvent =
event.GetREvent();
59 for (
auto& station : rEvent.StationsRange()) {
60 auto& sRecData = station.GetRecData();
70 case eUserSignalWindow:
72 if (!station.HasRecData()) {
74 info <<
"Station " << station.GetId() <<
" has no reconstructed signal";
79 if (sRecData.HasParameter(eSignalTime)) {
80 fWindowStart = sRecData.GetParameter(eSignalTime) - sRecData.GetParameter(eTraceStartTime)
82 if (fWindowStart < 0) {
84 info <<
"Station " << station.GetId() <<
" has window set before starting of the time series"
85 <<
" - that should never happen. It can happen when eSignalTime is 0 for some reason."
86 <<
" Maybe you added an empty station and forgot to add noise. Check what went wrong!";
91 if (station.IsCandidate()) {
94 info <<
"Station " << station.GetId() <<
" has no SignalTime. Using middle of SignalSearchWindow instead";
98 fWindowStart = ((sRecData.GetParameter(eSignalSearchWindowStart)
99 - sRecData.GetParameter(eSignalSearchWindowStop)) / 2.) - (fWindowSize / 2.);
105 case eRecSignalWindow:
107 if (!station.HasRecData()) {
109 info <<
"Station " << station.GetId() <<
" has no reconstructed signal";
111 return eContinueLoop;
114 fWindowStart = sRecData.GetParameter(eSignalSearchWindowStart);
115 fWindowSize = sRecData.GetParameter(eSignalSearchWindowStop) - fWindowStart;
122 const double binning = stationTrace.
GetBinning();
129 for (
auto i = iBegin; i < iEnd; ++i)
134 sRecData.SetParameter(eTraceStartTime, sRecData.GetParameter(eTraceStartTime) + fWindowStart,
false);
137 sRecData.SetParameter(eSignalSearchWindowStart, sRecData.GetParameter(eSignalSearchWindowStart) - fWindowStart,
false);
138 sRecData.SetParameter(eSignalSearchWindowStop, sRecData.GetParameter(eSignalSearchWindowStop) - fWindowStart,
false);
139 sRecData.SetParameter(eNoiseWindowStart, sRecData.GetParameter(eNoiseWindowStart) - fWindowStart,
false);
140 sRecData.SetParameter(eNoiseWindowStop, sRecData.GetParameter(eNoiseWindowStop) - fWindowStart,
false);
148 RdStationTimeSeriesWindowCutter::Finish()
Branch GetTopBranch() const
Interface class to access to the Radio part of an event.
double GetBinning() const
size of one slot
void Init()
Initialise the registry.
Branch GetChild(const std::string &childName) const
Get child of this Branch by child name.
Class representing a document branch.
std::vector< T >::size_type SizeType
#define WARNING(message)
Macro for logging warning messages.
void GetData(bool &b) const
Overloads of the GetData member template function.
void SetBinning(const double binning)
ResultFlag
Flag returned by module methods to the RunController.
Template class for a FADC data or calibrated data container. Use the typedefs (TraceD, TraceI, etc.) defined in Trace-fwd.h.
void PushBack(const T &value)
Insert a single value at the end.
#define ERROR(message)
Macro for logging error messages.