Belle II Software development
VXDInterceptor.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <framework/datastore/StoreArray.h>
12#include <framework/datastore/RelationArray.h>
13#include <tracking/roiFinding/ROIGeometry.h>
14
15#include <vector>
16
17namespace genfit {
18 class MeasuredStateOnPlane;
19}
20
21namespace Belle2 {
26 class RecoTrack;
27
30 template<class aIntercept>
32
33 public:
34
36 VXDInterceptor(double toleranceZ, double tolerancePhi, std::vector<float> layerRadii, VXD::SensorInfoBase::SensorType det,
37 bool forDQM = false)
38 : m_layerRadii(layerRadii), m_detector(det), m_ForDQM(forDQM)
39 {
40 B2ASSERT("Can't create VXDIntercepts if no layer radii are provided.", not layerRadii.empty());
41 m_theROIGeometry.fillPlaneList(toleranceZ, tolerancePhi, det);
42 }
43
46 virtual ~VXDInterceptor() = default;
47
50 void fillInterceptList(StoreArray<aIntercept>* listToBeFilled,
51 const StoreArray<RecoTrack>& trackList,
52 RelationArray* recoTrackToIntercepts);
53
54
55 private:
56
58 std::vector<float> m_layerRadii = {0};
59
62
65
67 bool m_ForDQM = false;
70 const std::vector<short> c_backwards = {-1};
72 const std::vector<short> c_both = {-1, 1};
73
76 void appendIntercepts(StoreArray<aIntercept>* interceptList, std::list<ROIDetPlane> planeList, genfit::MeasuredStateOnPlane state,
77 int recoTrackIndex, RelationArray* recoTrackToIntercepts);
78
79 };
81}
This class appends the VXDIntercept infos of a track to the list of intercepts.
Definition: ROIGeometry.h:24
void fillPlaneList(double toleranceZ, double tolerancePhi, const VXD::SensorInfoBase::SensorType det)
fill the list of planes
Definition: ROIGeometry.cc:32
Low-level class to create/modify relations between StoreArrays.
Definition: RelationArray.h:62
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
This Class implements the interceptor of the SVD tracks on the PXD layers.
ROIGeometry m_theROIGeometry
the geometry of the Region Of Interest
std::vector< float > m_layerRadii
Vector containing the radii of the layer, filled in the constructor.
VXDInterceptor(double toleranceZ, double tolerancePhi, std::vector< float > layerRadii, VXD::SensorInfoBase::SensorType det, bool forDQM=false)
Constructor.
virtual ~VXDInterceptor()=default
Destructor.
const std::vector< short > c_both
vector for both backward and forward extrapolation
const std::vector< short > c_backwards
define two arrays for directions of extrapolation with -1 for backwards and +1 for forwards vector fo...
bool m_ForDQM
ROI finding for DQM or for data reduction.
VXD::SensorInfoBase::SensorType m_detector
The detector we are creating intercepts for.
SensorType
Enum specifing the type of sensor the SensorInfo represents.
void fillInterceptList(StoreArray< aIntercept > *listToBeFilled, const StoreArray< RecoTrack > &trackList, RelationArray *recoTrackToIntercepts)
Fill the list of PXD intecepts corresponding to the list of track candidates.
void appendIntercepts(StoreArray< aIntercept > *interceptList, std::list< ROIDetPlane > planeList, genfit::MeasuredStateOnPlane state, int recoTrackIndex, RelationArray *recoTrackToIntercepts)
Append the Intercept infos related to the track theTrack to the listToBeFilled.
Abstract base class for different kinds of events.