9#include <tracking/modules/roiFinding/pxd/PXDROIFinderModule.h>
11#include <framework/datastore/StoreArray.h>
12#include <framework/datastore/RelationArray.h>
14#include <genfit/MaterialEffects.h>
16#include <tracking/dbobjects/ROICalculationParameters.h>
17#include <tracking/dataobjects/RecoTrack.h>
18#include <tracking/dataobjects/ROIid.h>
19#include <tracking/dataobjects/PXDIntercept.h>
20#include <tracking/roiFinding/ROIToUnitTranslator.templateDetails.h>
21#include <tracking/roiFinding/VXDInterceptor.templateDetails.h>
37 setDescription(
"This module performs the reduction of the PXD data output");
48 "Tolerance by finding sensor in phi coordinate (radians). Will only be used if overrideDBROICalculation is set to True.",
51 "Tolerance by finding sensor in Z coordinate (cm). Will only be used if overrideDBROICalculation is set to True.",
54 "Systematic sigma in the u local coordinate. Will only be used if overrideDBROICalculation is set to True.",
57 "Systematic sigma in the V local coordinate. Will only be used if overrideDBROICalculation is set to True.",
60 "Number of sigmas (total) in the U local coordinate. Will only be used if overrideDBROICalculation is set to True.",
63 "Number of sigmas (total) in the V local coordinate. Will only be used if overrideDBROICalculation is set to True.",
66 "Upper limit on width of the ROI in the U local coordinate (cm). Will only be used if overrideDBROICalculation is set to True.",
69 "Upper limit on width of the ROI in the V local coordinate (cm). Will only be used if overrideDBROICalculation is set to True.",
72 "Override the parameters from DB for testing or debugging. Required to be True to use the other ROI calculation parameters.",
75 "Is this ROI finding for DQM? If false, create PXDIntercepts by extrapolating tracks in both directions. If true, only extrapolate backwards.",
89 if (!genfit::MaterialEffects::getInstance()->isInitialized()) {
90 B2FATAL(
"Material effects not set up. Please use SetupGenfitExtrapolationModule.");
99 B2WARNING(
"ROI calculation parameters from DB are valid, but they are overridden by the module parameters.\n"
100 " --> Using module parameters instead of parameters from DB.");
113 B2FATAL(
"No ROI configuration for the current run found (missing ROICalculationParameters payload).");
116 B2DEBUG(29,
"||| PXDROIFinder Parameters:");
137 std::vector<float> {1.42854, 2.21218},
150 recoTrackToPXDIntercepts.
create();
153 PXDInterceptsToROIids.
create();
@ c_ErrorIfAlreadyRegistered
If the object/array was already registered, produce an error (aborting initialisation).
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
double m_maxWidthV
maximum V width of the ROI
bool m_overrideDBROICalculation
Override DB parameters for ROI calculation for debugging and testing.
std::string m_recoTracksListName
track list name
std::string m_ROIListName
ROI list name.
void initialize() override
Initializes the module.
std::string m_PXDInterceptListName
intercept list name
double m_maxWidthU
maximum U width of the ROI
void event() override
This method is called for each event.
void endRun() override
This method is called at the end of the event processing.
VXDInterceptor< PXDIntercept > * m_thePXDInterceptor
the pxd interceptor object
double m_tolerancePhi
tolerance for finding sensor in phi coordinate (radians)
PXDROIFinderModule()
Constructor of the module.
double m_sigmaSystV
fixed width to add in quadrature to the extrapolation error and obtain the ROI V width
bool m_ROIFindingForDQM
ROI finding for DQM or for data reduction.
double m_numSigmaTotV
number of sigma (stat+syst) determining the U width of the ROI
void beginRun() override
Called when entering a new run.
DBObjPtr< ROICalculationParameters > m_ROICalculationParameters
Configuration parameters for ROIs.
double m_sigmaSystU
fixed width to add in quadrature to the extrapolation error and obtain the ROI U width
StoreArray< PXDIntercept > m_PXDIntercepts
PXDIntercepts StoreArray.
ROIinfo m_ROIinfo
contains the parameters that can be changed by the user
double m_numSigmaTotU
number of sigma (stat+syst) determining the U width of the ROI
StoreArray< RecoTrack > m_RecoTracks
RecoTracks StoreArray.
ROIToUnitTranslator< PXDIntercept > * m_thePixelTranslator
the pixel translator object
double m_toleranceZ
tolerance for finding sensor in Z coordinate (cm)
StoreArray< ROIid > m_ROIs
ROIs StoreArray.
Translator for ROI-geometry-information into a list of pixels or strips.
Low-level class to create/modify relations between StoreArrays.
bool create(bool replace=false)
Create an empty relation array in the data store.
bool isOptional(const std::string &name="")
Tell the DataStore about an optional input.
int getEntries() const
Get the number of objects in the array.
bool registerRelationTo(const StoreArray< TO > &toArray, DataStore::EDurability durability=DataStore::c_Event, DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut, const std::string &namedRelation="") const
Register a relation to the given StoreArray.
This Class implements the interceptor of the SVD tracks on the PXD layers.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.
double sigmaSystV
fixed width to add in quadrature to the extrapolation error and obtain the ROI V width
double numSigmaTotU
number of sigma (stat+syst) determining the U width of the ROI
double maxWidthU
maximum U width of the ROI
std::string PXDInterceptListName
Intercept list name.
double sigmaSystU
fixed width to add in quadrature to the extrapolation error and obtain the ROI U width
std::string recoTracksListName
track list name
double numSigmaTotV
number of sigma (stat+syst) determining the U width of the ROI
std::string ROIListName
ROI list name.
double maxWidthV
maximum U width of the ROI