9#include <tracking/modules/roiFinding/svd/SVDROIFinderModule.h>
10#include <framework/datastore/StoreArray.h>
11#include <framework/datastore/RelationArray.h>
12#include <tracking/dataobjects/ROIid.h>
13#include <tracking/dataobjects/SVDIntercept.h>
14#include <tracking/dataobjects/RecoTrack.h>
15#include <tracking/roiFinding/ROIToUnitTranslator.templateDetails.h>
16#include <tracking/roiFinding/VXDInterceptor.templateDetails.h>
17#include <genfit/MaterialEffects.h>
41 addParam(
"tolerancePhi",
m_tolerancePhi,
"Tolerance by finding sensor in phi coordinate (radians).",
double(0.15));
43 addParam(
"toleranceZ",
m_toleranceZ,
"Tolerance by finding sensor in Z coordinate (cm).",
double(0.5));
45 addParam(
"sigmaSystU",
m_sigmaSystU,
" systematic sigma in the u local coordinate ",
double(0.025));
46 addParam(
"sigmaSystV",
m_sigmaSystV,
" systematic sigma in the V local coordinate ",
double(0.025));
47 addParam(
"numSigmaTotU",
m_numSigmaTotU,
" number of sigmas (total) in the U local coordinate ",
double(10));
48 addParam(
"numSigmaTotV",
m_numSigmaTotV,
" number of sigmas (total) in the V local coordinate ",
double(10));
49 addParam(
"maxWidthU",
m_maxWidthU,
" upper limit on width of the ROI in the U local coordinate (cm) ",
double(0.5));
50 addParam(
"maxWidthV",
m_maxWidthV,
" upper limit on width of the ROI in the V local coordinate (cm) ",
double(0.5));
55 "Is this ROI finding for DQM? If false, create SVDIntercepts by extrapolating tracks in both directions. If true, only extrapolate backwards.",
76 if (!genfit::MaterialEffects::getInstance()->isInitialized()) {
77 B2FATAL(
"Material effects not set up. Please use SetupGenfitExtrapolationModule.");
85 B2DEBUG(21,
"||| SVDROIFinder Parameters:");
106 std::vector<float> {3.9, 8.0, 10.4, 13.5},
119 B2DEBUG(21,
"RecoTracks array is missing, no SVD ROIs");
124 B2DEBUG(21,
"%%%%%%%% Number of RecoTracks in the events = " <<
m_recotracks.getEntries());
127 recoTrackToSVDIntercepts.
create();
130 SVDInterceptsToROIids.
create();
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...
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.
double m_maxWidthV
maximum V width of the ROI
std::string m_recoTracksListName
track list name
std::string m_ROIListName
ROI list name.
StoreArray< SVDIntercept > m_intercepts
svd intercept store array
StoreArray< ROIid > m_rois
rois store array
void initialize() override
Initializes the Module.
SVDROIFinderModule()
Constructor of the module.
double m_maxWidthU
maximum U width of the ROI
void event() override
Event loop.
std::string m_SVDInterceptListName
intercept list name
VXDInterceptor< SVDIntercept > * m_theSVDInterceptor
the svd interceptor object
void endRun() override
Deletion of objects at the end of the run.
void terminate() override
Termination action.
StoreArray< RecoTrack > m_recotracks
reco tracks store array
double m_tolerancePhi
determination of interesting planes, tolerance in phi
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
Initializations at the beginning of the run.
~SVDROIFinderModule()
Destructor of the module.
double m_sigmaSystU
fixed width to add in quadrature to the extrapolation error and obtain the ROI U width
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
double m_toleranceZ
determination of interesting planes, tolerance along Z
ROIToUnitTranslator< SVDIntercept > * m_theStripTranslator
the strip translator object
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.