Belle II Software development
CDCTriggerNDFinderModule.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 <string>
12
13#include "framework/core/Module.h"
14#include "framework/datastore/StoreArray.h"
15#include "trg/cdc/dataobjects/CDCTrigger3DHTrack.h"
16#include "trg/cdc/dataobjects/CDCTriggerSegmentHit.h"
17#include "trg/cdc/NDFinder.h"
18
19namespace Belle2 {
24
25 // CDC Trigger NDFinder Module
26 class CDCTriggerNDFinderModule : public Module {
27 public:
28 // Constructor
29 CDCTriggerNDFinderModule();
30 // Destructor
31 virtual ~CDCTriggerNDFinderModule();
32
33 // Module functions
34 virtual void initialize() override;
35 virtual void beginRun() override;
36 virtual void event() override;
37 virtual void endRun() override;
38 virtual void terminate() override;
39
40 private:
41 // Sets the CDC quadrant according to the phi prediction
42 short getNDFinderQuadrant(const CDCTrigger3DHTrack& ndFinderTrack);
43 // Calculates the 3DHough total momentum estimate
44 double getNDFinderTotalMomentum(const CDCTrigger3DHTrack& ndFinderTrack);
45 // Name for TS hits
46 std::string m_trackSegmentHitsName;
47 // Name for NDFinder tracks
48 std::string m_ndFinderTracksName;
49 // Name for NDFinder Track To Hit Array
50 std::string m_ndFinderTrackToHitArrayName;
51
52 // StoreArray for TS hits
53 StoreArray<CDCTriggerSegmentHit> m_trackSegmentHits;
54 // StoreArray for NDFinder tracks
55 StoreArray<CDCTrigger3DHTrack> m_ndFinderTracks;
56
57 // Instance of the 3DHough Track Finder (NDFinder/3DFinder)
58 NDFinder m_NDFinder;
59 // Minimum number of axial super layers for the peak to be considered as a track
60 unsigned short m_minSuperAxial;
61 // Minimum number of stereo super layers for the peak to be considered as a track
62 unsigned short m_minSuperStereo;
63 // Peak finding: Number of global maximum searches per Hough space section
64 unsigned short m_iterations;
65 // Peak finding: Max deletion in omega (number of cells in each direction from max)
66 unsigned short m_omegaTrim;
67 // Peak finding: Max deletion in phi (number of cells in each direction from max)
68 unsigned short m_phiTrim;
69 // Switch for saving the full Hough space
70 bool m_storeHoughSpace;
71 // File name of the axial hit patterns
72 std::string m_axialFile;
73 // File name of the stereo hit patterns
74 std::string m_stereoFile;
75 };
76
77}
virtual void initialize() override
Initialize the Module.
virtual void event() override
This method is the core of the module.
virtual void endRun() override
This method is called if the current run ends.
virtual void terminate() override
This method is called at the end of the event processing.
virtual void beginRun() override
Called when entering a new run.
Module()
Constructor.
Definition Module.cc:30
Accessor to arrays stored in the data store.
Definition StoreArray.h:113
Abstract base class for different kinds of events.