28 : fInData(nullptr), fOutData(nullptr) {
29 RegisterInputCollection(
"InputCollection",
"Input collection of TMUXData objects",
31 RegisterOutputCollection(
"OutputCollection",
"Validated output collection",
34 const DoubleVec_t range(2, 0.0);
35 RegisterProcessorParameter(
"ValidPositionRange",
36 "[min, max] -- Ignored if min == max",
65 if (std::holds_alternative<TString>(result)) {
66 SetStateError(std::get<TString>(result));
69 fInData = std::get<TClonesArray **>(result);
74 SetStateError(Form(
"Position range size should be 2, but %zu",
80 SetStateError(
"Position range : min > max");
85 fOutData =
new TClonesArray(
"art::crib::TMUXData");
108 const int nData = (*fInData)->GetEntriesFast();
109 for (
int iData = 0; iData < nData; ++iData) {
110 const auto *data =
dynamic_cast<const TMUXData *
>((*fInData)->At(iData));
117 const double pos1_raw = data->
GetP1();
124 data->Copy(*outData);
Header file for the TMUXData class.
ClassImp(art::crib::TMUXPositionValidator)
ROOT macro for class implementation.
Header file for the TMUXPositionValidator class.
Utility functions for handling input and parameter objects in TEventCollection.
Represents data from the MUX module (E1, E2, P1, P2, T).
Double_t GetP1() const
Get the first position value.
Validates positions from the MUX module based on specified ranges.
std::vector< Double_t > fValidPositionRange
Range of valid positions for validation.
TClonesArray * fOutData
! Pointer to the output data collection.
TString fOutputColName
Name of the output collection.
~TMUXPositionValidator() override
Destructor.
TString fInputColName
Name of the input collection.
TMUXPositionValidator()
Constructor.
TClonesArray ** fInData
! Pointer to the input data collection.
void Init(TEventCollection *col) override
Initializes the validator by setting up input and output collections.
void Process() override
Processes input data, validates positions, and stores the results.
std::enable_if_t< std::is_base_of_v< TObject, T >, std::variant< T **, TString > > GetInputObject(TEventCollection *col, const TString &name, const TString &expectedTypeName, const TString &elementTypeName="TObject")
Retrieve an object from TEventCollection with type validation.