Belle II Software  release-05-01-25
combined_module.py
1 import ROOT
2 from tracking import metamodules
3 
4 from .mc_side_module import MCSideTrackingValidationModule
5 from .pr_side_module import PRSideTrackingValidationModule
6 from .eventwise_module import EventwiseTrackingValidationModule
7 
8 
10  """Harvesting validation module combining eventwise, pr side and mc side tracking valiation parts"""
11 
12 
13  MCSideModule = MCSideTrackingValidationModule
14 
15 
16  PRSideModule = PRSideTrackingValidationModule
17 
18 
19  EventwiseModule = EventwiseTrackingValidationModule
20 
21  def __init__(self,
22  name,
23  contact,
24  output_file_name=None,
25  reco_tracks_name='RecoTracks',
26  mc_reco_tracks_name='MCRecoTracks',
27  expert_level=None):
28  """Constructor"""
29 
30 
31  self.output_file_name = output_file_name or name + 'TrackingValidation.root'
32 
33  # First forward the output_file_name to the separate modules
34  # but we open the TFile in the top level and forward it to them on initialize.
35 
36  eventwise_module = self.EventwiseModule(name,
37  contact,
38  output_file_name=self.output_file_name,
39  reco_tracks_name=reco_tracks_name,
40  mc_reco_tracks_name=mc_reco_tracks_name,
41  expert_level=expert_level)
42 
43  pr_side_module = self.PRSideModule(name,
44  contact,
45  output_file_name=self.output_file_name,
46  reco_tracks_name=reco_tracks_name,
47  mc_reco_tracks_name=mc_reco_tracks_name,
48  expert_level=expert_level)
49 
50  mc_side_module = self.MCSideModule(name,
51  contact,
52  output_file_name=self.output_file_name,
53  reco_tracks_name=reco_tracks_name,
54  mc_reco_tracks_name=mc_reco_tracks_name,
55  expert_level=expert_level)
56 
57 
58  self.modules = [
59  eventwise_module,
60  pr_side_module,
61  mc_side_module,
62  ]
63 
64  super().__init__(modules=self.modules)
65 
66  def initialize(self):
67  """Initialization signal at the start of the event processing"""
68  super().initialize()
69  output_tfile = ROOT.TFile(self.output_file_name, "RECREATE")
70 
71  # Substitute the output file with the common output file opened in this module.
72  for module in self.modules:
73  module.output_file_name = output_tfile
74 
75 
76  self.output_tfile = output_tfile
77 
78  def terminate(self):
79  """Termination signal at the start of the event processing"""
80  self.output_tfile.Flush()
81  self.output_tfile.Close()
82  super().terminate()
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.output_tfile
output_tfile
the output TFile
Definition: combined_module.py:76
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.initialize
def initialize(self)
Definition: combined_module.py:66
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.output_file_name
output_file_name
Output TFile to be opened in the initialize methode.
Definition: combined_module.py:25
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule
Definition: combined_module.py:9
tracking.metamodules.PathModule
Definition: metamodules.py:305
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.__init__
def __init__(self, name, contact, output_file_name=None, reco_tracks_name='RecoTracks', mc_reco_tracks_name='MCRecoTracks', expert_level=None)
Definition: combined_module.py:21
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.modules
modules
Subordinate modules.
Definition: combined_module.py:52
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.PRSideModule
PRSideModule
PR side validation module to use.
Definition: combined_module.py:16
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.EventwiseModule
EventwiseModule
Eventwise side validation module to use.
Definition: combined_module.py:19
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.terminate
def terminate(self)
Definition: combined_module.py:78
tracking.harvesting_validation.combined_module.CombinedTrackingValidationModule.MCSideModule
MCSideModule
MC side validation module to use.
Definition: combined_module.py:13