11#include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetworkContainer.h>
12#include <tracking/trackFindingVXD/segmentNetwork/Segment.h>
13#include <tracking/trackFindingVXD/segmentNetwork/TrackNode.h>
15#include <framework/datastore/StoreObjPtr.h>
16#include <framework/datastore/StoreArray.h>
17#include <mdst/dataobjects/MCParticle.h>
18#include <framework/core/Module.h>
37 std::vector<double>
phi{};
39 std::vector<double>
pT{};
42 std::vector<int>
pdg{};
55 void event()
override;
91 template<
typename EntryType,
typename MetaInfoType>
Network of directed nodes of the type EntryType.
class for analyzing the contents of the SegmentNetwork
TTree * m_treePtr
ptr to TTree
std::string m_PARAMrootFileName
file name of the produced root file
TFile * m_rFilePtr
ptr to root file
void initialize() override
set up root file and check required Store Arrays
SegmentNetworkAnalyzerModule()
constructor
Belle2::StoreObjPtr< Belle2::DirectedNodeNetworkContainer > m_network
StoreObjPtr to the SegmentNetwork and TrackNode Network container.
RootVariables m_rootVariables
handle to collect all data for one event
void event() override
collect necessary data and put into TTree
std::string m_PARAMnetworkName
StoreArray name of the DirectedNodeNetworkContainer.
size_t getNConnections(Belle2::DirectedNodeNetwork< EntryType, MetaInfoType > &network) const
get the number of connections between the nodes of a network
void terminate() override
write and close root file
Belle2::StoreArray< Belle2::MCParticle > m_mcParticles
MCParticles StoreArray for obtaining MC Information.
void analyzeCombination(const Belle2::Segment< Belle2::TrackNode > &outer, const Belle2::Segment< Belle2::TrackNode > &inner, bool passed)
get necessary data from three hit combination and put them into the root variables
void makeBranches()
setup the Branches in the output TTree
The Segment class This class represents segments of track candidates needed for TrackFinderVXD-Module...
Accessor to arrays stored in the data store.
Type-safe access to single objects in the data store.
Abstract base class for different kinds of events.
keep all the variables for rootoutput in one struct
std::vector< double > phi
phi of the innermost hit (that is not the virtual IP)
std::vector< int > pdg
pdg of the related MCParticle
unsigned networkSize
segmentNetwork size
std::vector< int > virtualIP
did the segment contain the virtual IP
std::vector< double > theta
theta of the innermost hit (that is not the virtual IP)
unsigned networkConnections
number of connections in network
std::vector< int > passed
did segment combination pass the three hit filters
std::vector< int > signal
was segment combination signal
std::vector< double > pT
pT of the related MCParticle