Belle II Software  release-05-01-25
SVDCoGTimeCalibrationImporterTBIndependent.py
1 # !/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 
18 
19 
20 from basf2 import *
21 from svd import *
22 import os
23 import math
24 from array import array
25 import basf2
26 import sys
27 from ROOT.Belle2 import SVDCoGCalibrationFunction
28 from ROOT.Belle2 import SVDCoGTimeCalibrations
29 from svd import *
30 from svd.CoGCalibration_utils_tbindependent import SVDCoGTimeCalibrationImporterModule
31 
32 import matplotlib.pyplot as plt
33 import simulation
34 
35 localdb = sys.argv[1]
36 # filename = sys.argv[2]
37 # branches = ['SVDShaperDigits', 'SVDRecoDigits', 'SVDClusters', 'EventT0', 'Tracks', 'RecoTracks']
38 branches = ['SVDShaperDigits', 'SVDShaperDigitsFromTracks', 'EventT0']
39 
40 trk_outputFile = "TrackFilterControlNtuples_" + localdb + ".root"
41 nSVD = 6
42 nCDC = 1
43 pVal = 0.0 # 0001
44 
45 
46 inputFileList = [
47  "/group/belle2/dataprod/Data/release-03-02-02/DB00000635/proc00000009/\
48 e0008/4S/r01309/skim/hlt_bhabha/cdst/sub00/cdst.physics.0008.01309.HLT*"
49 ]
50 '''
51 if filename.rfind(".root") != -1:
52  inputFileList.append(filename)
53 else:
54  with open(filename, 'r') as f:
55  inputFileList = [line.strip() for line in f]
56 '''
57 reset_database()
58 use_database_chain()
59 use_central_database('data_reprocessing_proc9')
60 
61 if '_CHECK' not in localdb:
62  use_central_database('svd_NOCoGCorrections')
63  if os.path.isdir(localdb):
64  print('WARNING, you are using CoG corrections in ' + localdb + ' exiting')
65  sys.exit(1)
66  else:
67  use_local_database(localdb + "/database.txt", localdb, invertLogging=True)
68 else:
69  localdb = localdb.split('_')
70  if not os.path.isdir(localdb[0]):
71  print('WARNING, the localDB ' + localdb[0] + ' containing the corrections is missing, exiting.')
72  sys.exit(1)
73  else:
74  use_local_database(localdb[0] + "/database.txt", localdb[0], invertLogging=True)
75  localdb = sys.argv[1]
76  if os.path.isdir(localdb):
77  print('WARNING, you are using CoG corrections in ' + localdb + ' exiting')
78  sys.exit(1)
79  else:
80  use_local_database(localdb + "/database.txt", localdb, invertLogging=True)
81 
82 # use_local_database("outputdb/database.txt", "outputdb", invertLogging=True)
83 
84 main = create_path()
85 
86 rootinput = register_module('RootInput')
87 rootinput.param('inputFileNames', inputFileList)
88 rootinput.param('branchNames', branches)
89 main.add_module(rootinput)
90 
91 main.add_module("Gearbox")
92 main.add_module("Geometry", useDB=True)
93 
94 # Track selection - NOT YET
95 trkFlt = register_module('TrackFilter')
96 trkFlt.param('outputFileName', trk_outputFile)
97 trkFlt.param('outputINArrayName', 'SelectedTracks')
98 trkFlt.param('outputOUTArrayName', 'ExcludedTracks')
99 trkFlt.param('min_NumHitSVD', nSVD)
100 trkFlt.param('min_NumHitCDC', nCDC)
101 trkFlt.param('min_Pvalue', pVal)
102 # trkFlt.logging.log_level = LogLevel.DEBUG
103 # main.add_module(trkFlt)
104 
105 # fil = register_module('SVDShaperDigitsFromTracks')
106 # fil.param('outputINArrayName', 'SVDShaperDigitsFromTracks')
107 # main.add_module(fil)
108 
109 add_svd_reconstruction(main)
110 
111 for moda in main.modules():
112  if moda.name() == 'SVDCoGTimeEstimator':
113  moda.param("ShaperDigits", 'SVDShaperDigitsFromTracks')
114  moda.param("RecoDigits", 'SVDRecoDigitsFromTracks')
115  if moda.name() == 'SVDSimpleClusterizer':
116  moda.param("Clusters", 'SVDClustersFromTracks')
117  moda.param("RecoDigits", 'SVDRecoDigitsFromTracks')
118  if moda.name() == 'SVDSpacePointCreator':
119  moda.param("SVDClusters", 'SVDClustersFromTracks')
120 
121 calib = SVDCoGTimeCalibrationImporterModule()
122 calib.set_localdb(localdb)
123 calib.notApplyCorrectForCDCLatency(False) # False = apply correction, True = not apply correction
124 main.add_module(calib)
125 
126 # Show progress of processing
127 progress = register_module('ProgressBar')
128 main.add_module(progress)
129 
130 print_path(main)
131 
132 # Process events
133 process(main)
134 
135 print(statistics)
svd.CoGCalibration_utils_tbindependent
Definition: CoGCalibration_utils_tbindependent.py:1