ARTEMIS-CRIB
 
Loading...
Searching...
No Matches
TMUXPositionValidator.h
Go to the documentation of this file.
1/**
2 * @file TMUXPositionValidator.h
3 * @brief Header file for the TMUXPositionValidator class.
4 * @author Kodai Okawa <okawa@cns.s.u-tokyo.ac.jp>
5 * @date 2024-01-30 10:02:32
6 * @note last modified: 2025-03-05 18:31:28
7 * @details
8 */
9
10#ifndef CRIB_TMUXPOSITIONVALIDATOR_H_
11#define CRIB_TMUXPOSITIONVALIDATOR_H_
12
13#include <TProcessor.h>
14
15class TClonesArray;
16
17namespace art::crib {
18
19/**
20 * @class TMUXPositionValidator
21 * @brief Validates positions from the MUX module based on specified ranges.
22 *
23 * This class is designed to work with the TMUX module in a daisy-chain configuration,
24 * separating data from different modules based on position information.
25 *
26 * ### Example Steering File
27 *
28 * ```yaml
29 * Processor:
30 * - name: MyTMUXPositionValidator
31 * type: art::crib::TMUXPositionValidator
32 * parameter:
33 * InputCollection: input # [TString] Input collection of TMUXData objects
34 * OutputCollection: validated # [TString] Validated output collection
35 * OutputTransparency: 0 # [Bool_t] Output is persistent if false (default)
36 * ValidPositionRange: [0, 0] # [vector<Double_t>] [min, max] -- Ignored if min == max
37 * Verbose: 1 # [Int_t] verbose level (default 1 : non quiet)
38 * ```
39 */
41 public:
42 /**
43 * @brief Constructor.
44 */
46
47 /**
48 * @brief Destructor.
49 */
50 ~TMUXPositionValidator() override;
51
52 /**
53 * @brief Initializes the validator by setting up input and output collections.
54 * @param col A pointer to the TEventCollection used for data management.
55 */
56 void Init(TEventCollection *col) override;
57
58 /**
59 * @brief Processes input data, validates positions, and stores the results.
60 */
61 void Process() override;
62
63 private:
64 TString fInputColName; ///< Name of the input collection.
65 TString fOutputColName; ///< Name of the output collection.
66 TClonesArray **fInData; ///<! Pointer to the input data collection.
67 TClonesArray *fOutData; ///<! Pointer to the output data collection.
68
69 std::vector<Double_t> fValidPositionRange; ///< Range of valid positions for validation.
70
73
74 ClassDefOverride(TMUXPositionValidator, 2); ///< ROOT class definition macro.
75};
76
77} // namespace art::crib
78
79#endif // CRIB_TMUXPOSITIONVALIDATOR_H_
Validates positions from the MUX module based on specified ranges.
std::vector< Double_t > fValidPositionRange
Range of valid positions for validation.
ClassDefOverride(TMUXPositionValidator, 2)
ROOT class definition macro.
TClonesArray * fOutData
! Pointer to the output data collection.
TString fOutputColName
Name of the output collection.
TString fInputColName
Name of the input collection.
TMUXPositionValidator & operator=(const TMUXPositionValidator &rhs)=delete
TClonesArray ** fInData
! Pointer to the input data collection.
TMUXPositionValidator(const TMUXPositionValidator &rhs)=delete
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.
return to the guide