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");
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
bool isOptional(const std::string &name="")
Tell the DataStore about an optional input.
bool isValid() const
Check wether the array was registered.
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