17 fKeepHeater = GetBool(
"KeepHeater",
false);
18 fKeepLED = GetBool(
"KeepLED",
false);
19 fKeepSignal = GetBool(
"KeepSignal",
false);
20 fKeepNoise = GetBool(
"KeepNoise",
false);
21 fKeepSide = GetBool(
"KeepSide",
false,
false);
22 fKeepReversed = GetBool(
"KeepReversed",
false,
false);
23 fKeepVeto = GetBool(
"KeepVetos",
false);
24 fKeepThermometers = GetBool(
"KeepThermometers",
false);
25 fKeepBolometers = GetBool(
"KeepBolometers",
true,
false);
26 fKeepAllChannelTypes = GetBool(
"KeepAllChannelTypes",
false,
false);
28 fKeepRunDataChannels = GetBool(
"KeepOnlyRunDataChannels",
false,
false);
29 fLoadEventList = GetBool(
"LoadEventList",
false,
false);
30 fMinEventNumber = GetInt(
"MinEventNumber",-1,
false);
31 fMaxEventNumber = GetInt(
"MaxEventNumber",-1,
false);
35 fKeepChannels = GetVectorInt(
"KeepChannels",empty,
false);
36 fRejectChannels = GetVectorInt(
"RejectChannels",empty,
false);
37 if(!fKeepChannels.empty() && !fRejectChannels.empty()) {
38 Panic(
"Options KeepChannels and RejectChannels cannot be used at the same time");
43 const QMatrix& eventChannel = GlobalData().Get<
QMatrix>(
"EventList",fileName);
44 QVector eventsFromFile = eventChannel.
GetCol(1);
45 for (
size_t ev = 0; ev < eventsFromFile.Size(); ev++)
46 fEventList.insert((
unsigned int)eventsFromFile[ev]);
49 ev.Require<
QHeader>(
"DAQ",
"Header");
59 if(!fEventList.count(evnum))
return false;
61 if(fMinEventNumber != -1 && header.
GetEventNumber() < fMinEventNumber)
return false;
62 if(fMaxEventNumber != -1 && header.
GetEventNumber() > fMaxEventNumber)
return false;
64 const int run = header.
GetRun();
65 if(run != fRunData.fNumber) {
74 if(fRunData.GetChannelRunData(
channel).fIsThermometer) result = fKeepThermometers;
75 else if(fRunData.GetChannelRunData(
channel).fIsBolometer) result = fKeepBolometers;
76 if(!result && fKeepAllChannelTypes) result =
true;
77 if(!result)
return false;
80 if(fKeepHeater && pulseInfo.
GetIsPulser()) result =
true;
81 if(fKeepLED && pulseInfo.
GetIsLED()) result =
true;
82 if(fKeepNoise && pulseInfo.
GetIsNoise()) result =
true;
83 if(fKeepSignal && pulseInfo.
GetIsSignal()) result =
true;
84 if(fKeepVeto && pulseInfo.
GetIsVeto()) result =
true;
85 if(fKeepSide && pulseInfo.
GetIsSide()) result =
true;
87 if(!result)
return false;
89 if(!fKeepChannels.empty()
90 && find(fKeepChannels.begin(),fKeepChannels.end(),
channel) == fKeepChannels.end())
93 if(!fRejectChannels.empty()
94 && find(fRejectChannels.begin(),fRejectChannels.end(),
channel) != fRejectChannels.end())
97 if(fKeepRunDataChannels
98 && std::find(fRunData.fThermalDetectorChannels.begin(),fRunData.fThermalDetectorChannels.end(),
channel)
99 == fRunData.fThermalDetectorChannels.end())
QRunDataHandle rHandle(753)
#define REGISTER_MODULE(clazz)
bool Filter(const Diana::QEvent &ev)
void Get(const char *owner, ReadHandle< Q > &handle) const
Get a QObject Handle in read mode.
Interface for matrices in Diana analysis.
QVector GetCol(UInt_t ncol)
get column
Raw event: bolometer channel, trigger positions and types.
bool GetIsSignal() const
Get IsSignal.
bool GetIsSide() const
Get IsSide.
bool GetIsNoise() const
Get IsNoise.
bool GetIsPulser() const
Get IsPulser.
const int & GetChannelId() const
Get ChannelId.
bool GetIsLED() const
Get IsLED.
bool GetIsVeto() const
Get IsVeto.
bool GetIsReversed() const
Get IsSignal.
global handle for QRunData
the Diana namespace is needed because sometimes we use Qt libraries, that use same class names of our...