8#include <tracking/trackFindingCDC/findlets/minimal/BadBoardADCDetector.h>
10#include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
11#include <cdc/dataobjects/CDCHit.h>
13#include <tracking/trackFindingCDC/utilities/StringManipulation.h>
14#include <framework/core/ModuleParamList.templateDetails.h>
15#include <cdc/geometry/CDCGeometryPar.h>
20using namespace TrackFindingCDC;
28 return "Detect boards with bad ADC values and mark hits accordingly";
32 const std::string& prefix)
34 moduleParamList->
addParameter(prefixed(prefix,
"badADCaverageMin"),
36 "Minimal value of average ADC to consider board bad",
38 moduleParamList->
addParameter(prefixed(prefix,
"badTOTaverageMin"),
40 "Minimal value of average TOT to consider board bad",
48 std::map <int, double> BoardADC;
49 std::map <int, double> BoardTOT;
50 std::map <int, int> BoardCount;
51 for (
auto& wireHit : wireHits) {
52 auto board = geometryPar.
getBoardID(wireHit.getWireID());
53 BoardCount[board] += 1;
54 BoardADC[board] += (*wireHit.getHit()).getADCCount();
55 BoardTOT[board] += (*wireHit.getHit()).getTOT();
58 for (
auto& pair : BoardADC) {
59 int board = pair.first;
60 BoardADC[board] /= BoardCount[board];
61 BoardTOT[board] /= BoardCount[board];
65 for (
auto& wireHit : wireHits) {
66 auto board = geometryPar.
getBoardID(wireHit.getWireID());
68 wireHit->setBoardWithBadADCFlag();
70 wireHit->setBoardWithBadTOTFlag();
The Class for CDC Geometry Parameters.
unsigned short getBoardID(const WireID &wID) const
Returns frontend board id. corresponding to the wire id.
static CDCGeometryPar & Instance(const CDCGeometry *=nullptr)
Static method to get a reference to the CDCGeometryPar instance.
The Module parameter list class.
void apply(std::vector< CDCWireHit > &wireHits) final
Main algorithm marking hit as background.
BadBoardADCDetector()
Default constructor.
int m_badTOTaverageMin
Min TOT value for the average.
int m_badADCaverageMin
Min ADC value for the average.
std::string getDescription() final
Short description of the findlet.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Abstract base class for different kinds of events.