DP3
BaselineSelection.h
Go to the documentation of this file.
1 // BaselineSelection.h: Class to handle the baseline selection
2 // Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy)
3 // SPDX-License-Identifier: GPL-3.0-or-later
4 
8 
9 #ifndef DP3_BASELINESELECTION_H_
10 #define DP3_BASELINESELECTION_H_
11 
12 #include "DPInfo.h"
13 
14 #include <casacore/casa/Arrays/Vector.h>
15 #include <casacore/casa/Arrays/Matrix.h>
16 #include <casacore/ms/MSSel/MSAntennaParse.h>
17 #include <casacore/ms/MSSel/MSSelectionErrorHandler.h>
18 
19 namespace dp3 {
20 namespace common {
21 class ParameterSet;
22 class ParameterValue;
23 } // namespace common
24 
25 namespace base {
26 
29  public:
33 
37 
38  private:
39  // Different casacore versions use different (smart) pointer types.
40  using ErrorHandlerPointer =
41  decltype(casacore::MSAntennaParse::thisMSAErrorHandler);
42  ErrorHandlerPointer old_handler_;
43 };
44 
48  public:
51 
61  BaselineSelection(const common::ParameterSet&, const std::string& prefix,
62  bool minmax = false,
63  const std::string& defaultCorrType = std::string(),
64  const std::string& defaultBaseline = std::string());
65 
67  bool hasSelection() const;
68 
71  void show(std::ostream& os, const std::string& blanks = std::string()) const;
72 
75  casacore::Matrix<bool> apply(const DPInfo& info) const;
76 
79  casacore::Vector<bool> applyVec(const DPInfo& info) const;
80 
81  private:
83  void handleBL(casacore::Matrix<bool>& selectBL, const DPInfo& info) const;
84 
86  casacore::Matrix<bool> HandleMsSelection(const DPInfo& info) const;
87 
89  casacore::Matrix<bool> handleBLVector(
90  const common::ParameterValue& pvBL,
91  const casacore::Vector<casacore::String>&) const;
92 
94  void handleCorrType(casacore::Matrix<bool>& selectBL) const;
95 
97  void handleLength(casacore::Matrix<bool>& selectBL, const DPInfo& info) const;
98 
99  std::string itsStrBL;
100  std::string itsCorrType;
101  std::vector<double> itsRangeBL;
102 };
103 
104 } // namespace base
105 } // namespace dp3
106 
107 #endif
General info about DP3 data processing attributes like averaging.
Class containing a few static functions to parse a baseline selection string.
Definition: BaselineSelection.h:47
void show(std::ostream &os, const std::string &blanks=std::string()) const
casacore::Matrix< bool > apply(const DPInfo &info) const
bool hasSelection() const
Is there any selection?
BaselineSelection()
Default constructor has no selection.
BaselineSelection(const common::ParameterSet &, const std::string &prefix, bool minmax=false, const std::string &defaultCorrType=std::string(), const std::string &defaultBaseline=std::string())
casacore::Vector< bool > applyVec(const DPInfo &info) const
General info about DP3 data processing attributes like averaging.
Definition: DPInfo.h:35
RAII object for temporarily overriding MSAntennaParse::thisMSAErrorHandler.
Definition: BaselineSelection.h:28
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
The value of a parameter.
Definition: ParameterValue.h:24
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53