 |
Belle II Software
release-05-02-19
|
16 #include <framework/datastore/StoreArray.h>
17 #include <framework/datastore/StoreObjPtr.h>
18 #include <framework/core/Module.h>
19 #include <framework/logging/Logger.h>
20 #include <framework/geometry/B2Vector3.h>
22 #include <mdst/dataobjects/EventLevelTrackingInfo.h>
24 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetworkContainer.h>
25 #include <tracking/trackFindingVXD/segmentNetwork/TrackNode.h>
26 #include <tracking/spacePointCreation/SpacePoint.h>
27 #include <tracking/dataobjects/FullSecID.h>
28 #include <tracking/trackFindingVXD/filterMap/map/FiltersContainer.h>
42 class SegmentNetworkProducerModule :
public Module {
49 struct RawSectorData {
63 std::vector<Belle2::TrackNode*>
hits;
77 B2FATAL(
"Requested secMapName '" <<
m_PARAMsecMapName <<
"' does not exist! Can not continue...");
87 void event()
override;
116 template <
class ObserverType>
123 template <
class ObserverType>
unsigned short m_PARAMmaxNetworkSize
Maximal size of SegmentNetwork; if exceeded, filling of SegmentNetwork will be stopped and the event ...
std::vector< double > m_PARAMVirtualIPCoordinates
Coordinates for virtual interaction point SpacePoint.
std::vector< std::string > m_PARAMSpacePointsArrayNames
Module Parameters.
This class contains everything needed by the VXDTF that is not going to change during a RUN,...
ActiveSector< StaticSectorType, TrackNode > * sector
Stores a sector if one is found, nullptr else.
SegmentNetworkProducerModule()
Constructor of the module.
VXDTFFilters< SpacePoint >::staticSector_t StaticSectorType
Definition of the static sector type.
Class that contains all the static sectors to which the filters are attached.
bool buildTrackNodeNetwork()
Evaluate TrackNodes in the ActiveSectors and link them if they fulfill the filter criteria of the Sec...
std::string m_PARAMNetworkOutputName
Name for network container data store object created by this module.
StaticSector< point_t, twoHitFilter_t, threeHitFilter_t, int > staticSector_t
typedef to make a static sector type more readable.
bool wasCreated
Whether the sector was already added to the network.
B2Vector3D m_virtualIPErrors
Vector for errors on coordinates of virtual IP.
unsigned int m_PARAMmaxSegmentAddedConnections
Maximal number of added Segment connections; if exceeded, filling of SegmentNetwork will be stopped a...
std::vector< Belle2::TrackNode * > hits
collects the hits found on this sector
SpacePoint typically is build from 1 PXDCluster or 1-2 SVDClusters.
std::vector< double > m_PARAMVirtualIPErrors
Errors on coordinates for virtual interaction point SpacePoint.
unsigned int m_PARAMmaxSegmentConnections
Maximal number of Segment connections; if exceeded, filling of SegmentNetwork will be stopped and the...
bool m_PARAMAddVirtualIP
Boolean to set whether to add an additional SpacePoint as a virtual interaction point.
Class to identify a sector inside of the VXD.
StoreObjPtr< EventLevelTrackingInfo > m_eventLevelTrackingInfo
Acccess to the EventLevelTrackingInfo object in the datastore.
void buildSegmentNetwork()
Use connected SpacePoints to form segments which will stored and linked in a DirectedNodeNetwork<Segm...
Abstract base class for different kinds of events.
Type-safe access to single objects in the data store.
void initialize() override
Modul initialization: performing checks on input parameter and registration of network container in d...
void event() override
Event function.
StoreObjPtr< DirectedNodeNetworkContainer > m_network
Access to the DirectedNodeNetwork, which will be produced by this module.
double getNormalizedLocalV() const
Return normalized local coordinates of the cluster in v (0 <= posV <= 1).
class to describe a static sector of the sector map.
std::vector< StoreArray< Belle2::SpacePoint > > m_spacePoints
Contains all SPacePoint storeArrays to be evaluated.
FullSecID secID
secID of rawSector
FiltersContainer< SpacePoint > & m_filtersContainer
Reference to container which contains all the sector to filter maps and with it the VXDTFFilters.
static FiltersContainer & getInstance()
one and only way to access the singleton object
unsigned int m_PARAMmaxTrackNodeAddedConnections
Maximal number of added hit connections; if exceeded, filling of HitNetwork will be stopped and the e...
unsigned short m_PARAMmaxTrackNodeConnections
Maximal number of hit connections; if exceeded, filling of HitNetwork will be stopped and the event s...
std::vector< RawSectorData > matchSpacePointToSectors()
Create TrackNodes from SpacePoints and collect fullSecIDs of 'active' sectors with SpacePoints for th...
void buildActiveSectorNetwork(std::vector< RawSectorData > &collectedData)
Builds a DirectedNodeNetwork<ActiveSector>, containing ActiveSectors which have SpacePoints and compa...
bool m_PARAMprintNetworks
If true for each event and each network a file with a graph of the network is created.
const StaticSectorType * findSectorForSpacePoint(const SpacePoint &aSP)
Returns pointer to static sector of a provided SpacePoint; returns nullptr if no sector could be foun...
std::string m_PARAMEventLevelTrackingInfoName
Name of the EventLevelTrackingInfo that should be used (different one for ROI-finding)
B2Vector3D m_virtualIPCoordinates
Member Variables.
VXDTFFilters< SpacePoint > * m_vxdtfFilters
Pointer to the current filters, contains all sectorCombinations and Filters including cuts.
unsigned int m_eventCounter
Counters.
bool m_PARAMprintToMathematica
If true a file containing Mathematica code to generate a graph of the segment network is created.
void beginRun() override
Begin Run which load the filters from the provided SectorMap and checks if this was successful.
VxdID getVxdID() const
Return the VxdID of the sensor on which the the cluster of the SpacePoint lives.
bool m_PARAMallFiltersOff
If true, all filters are deactivated for all hit-combinations and therefore all combinations are acce...
double getNormalizedLocalU() const
Return normalized local coordinates of the cluster in u (0 <= posU <= 1).
const StaticSectorType * staticSector
Stores a static sector.
std::string m_PARAMsecMapName
Name of SectorMap used for this instance.