Belle II Software development
DATCONSVDClusterLoaderAndPreparer.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#pragma once
9
10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
11#include <framework/datastore/StoreArray.h>
12
13#include <string>
14#include <vector>
15
16namespace Belle2 {
21 class ModuleParamList;
22 class SVDCluster;
23 class VxdID;
24
31 TrackFindingCDC::Findlet<const SVDCluster, const SVDCluster, std::pair<VxdID, std::pair<long, long>>,
32 std::pair<VxdID, std::pair<long, long>>> {
35 std::pair<VxdID, std::pair<long, long>>>;
36
37 public:
40
42 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
43
45 void initialize() override;
46
49 void apply(const std::vector<SVDCluster>& uClusters, const std::vector<SVDCluster>& vClusters,
50 std::vector<std::pair<VxdID, std::pair<long, long>>>& uHits,
51 std::vector<std::pair<VxdID, std::pair<long, long>>>& vHits) override;
52
53 private:
54 // Parameters
57
59 std::array<uint, 8> m_nClusterPerLayer = {0};
60
61 // ATTENTION: all the values below are hardcoded and taken from svd/data/SVD-Components.xml
63 const std::array<int, 4> m_const_SVDRadii = {38990, 80000, 104000, 135150};
65 const std::array<int, 4> m_const_RPhiShiftsOfLayers = { -4680, -10780, -11036, -19076};
67 const std::array<double, 4> m_const_InitialAngle = {(342.195 - 360.) / 180. * M_PI, 8. / 180. * M_PI, -8. / 180. * M_PI, -4. / 180. * M_PI};
69 const std::array<double, 4> m_const_AngleStep = {2. * M_PI / 7., M_PI / 5., M_PI / 6., M_PI / 8.};
71 const std::array<double, 4> m_const_CosSlantedAngles = {1, cos(0.207694180987), cos(0.279252680319), cos(0.368264472171)};
72
74 const std::array<int, 2> m_const_ZShiftL3 = {92350, -32650};
76 const std::array<int, 3> m_const_ZShiftL4 = {149042, 24760, -100240};
78 const std::array<int, 4> m_const_ZShiftL5 = {233754, 110560, -14440, -139440};
80 const std::array<int, 5> m_const_ZShiftL6 = {303471, 182060, 57060, -67940, -192940};
81
82 };
84}
Findlet for loading SVDClusters that were created by the DATCONSVDClusterizer findlet and prepare the...
const std::array< int, 3 > m_const_ZShiftL4
shift along z of the L4 senosrs, in µn
uint m_param_maxClustersPerLayer
Cut value for aborting tracking if more than this number of clusters is found on one layer.
void apply(const std::vector< SVDCluster > &uClusters, const std::vector< SVDCluster > &vClusters, std::vector< std::pair< VxdID, std::pair< long, long > > > &uHits, std::vector< std::pair< VxdID, std::pair< long, long > > > &vHits) override
Load the SVDClusters and create two vectors containing the hits prepared for intercept finding This f...
void initialize() override
Create the store arrays.
std::array< uint, 8 > m_nClusterPerLayer
array containing the number of clusters per layer. If this exceeds a cut value, tracking is aborted
const std::array< int, 2 > m_const_ZShiftL3
shift along z of the L3 senosrs, in µn
const std::array< double, 4 > m_const_AngleStep
angle difference between two consecutive ladders, in rad
const std::array< int, 4 > m_const_RPhiShiftsOfLayers
shift in r-phi to create windmill structure, in µm
const std::array< double, 4 > m_const_InitialAngle
phi-value of the first ladder in each layer, i.e. sensors X.1.Y, in rad
const std::array< double, 4 > m_const_CosSlantedAngles
cosine values of the slanted sensors
DATCONSVDClusterLoaderAndPreparer()
Load clusters and prepare them for intercept finding.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
const std::array< int, 4 > m_const_ZShiftL5
shift along z of the L5 senosrs, in µn
const std::array< int, 5 > m_const_ZShiftL6
shift along z of the L6 senosrs, in µn
const std::array< int, 4 > m_const_SVDRadii
Radii of the SVD layers, in µm.
The Module parameter list class.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:33
Abstract base class for different kinds of events.