Belle II Software  release-05-01-25
trgcdct3dDQM.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # -----------------------------------------------------------------------------------
5 #
6 # CDCTRGT3D Unpacker and Converter
7 #
8 # usage : %> basf2 trgcdct3dUnpackerConverter -i [input sroot file name] -o [output root file name]
9 #
10 # -----------------------------------------------------------------------------------
11 import basf2
12 import ROOT.Belle2
13 
14 import sys # get argv
15 import os.path
16 argvs = sys.argv # get arg
17 argc = len(argvs) # of arg
18 
19 if argc == 3:
20  inname = argvs[1]
21  histname = argvs[2]
22  # outname=argvs[2]
23  # histname=argvs[3]
24 else:
25  sys.exit("trgcdct3dDQM.py> # of arg is strange. Exit.")
26 
27 
28 # class is2DSkim(basf2.Module):
29 # def event(self):
30 # Tracks = ROOT.Belle2.PyStoreArray("Tracks")
31 # TRGGRLT3DUnpackerStores = ROOT.Belle2.PyStoreArray("TRGCDCT3DUnpackerStores")
32 #
33 # isTwoTrack = False
34 # if len(Tracks) == 2:
35 # isTwoTrack = True
36 #
37 # areTracksClean = True
38 # for track in Tracks:
39 # trackResult = track.getTrackFitResultWithClosestMass(ROOT.Belle2.Const.pion)
40 # if trackResult.getPValue() > 0.1:
41 # areTracksClean = False
42 #
43 # enoughHits = True
44 # for track in Tracks:
45 # trackResult = track.getTrackFitResultWithClosestMass(ROOT.Belle2.Const.pion)
46 # nHitStSl = 0
47 # nHitAxSl = 0
48 # for iAx in range(5):
49 # if (trackResult.getHitPatternCDC().getSLayerNHits(2 * iAx) > 3):
50 # nHitAxSl += 1
51 # for iSt in range(4):
52 # if (trackResult.getHitPatternCDC().getSLayerNHits(2 * iSt + 1) > 3):
53 # nHitStSl += 1
54 # if nHitStSl < 3:
55 # enoughHits = False
56 # if nHitAxSl < 4:
57 # enoughHits = False
58 #
59 # is2D = False
60 # for iClk, data in enumerate(TRGGRLT3DUnpackerStores):
61 # if (data.m_t2d_fnf != 0):
62 # is2D = True
63 #
64 # self.return_value(isTwoTrack and is2D and areTracksClean and enoughHits)
65 
66 
67 if __name__ == '__main__':
68 
69  basf2.use_central_database("development")
70 # Hot fix for CDCFudgeFactorFromSigma
71  basf2.use_local_database(ROOT.Belle2.FileSystem.findFile("data/trg/cdc/db_CDCFudgeFactorsForSigma.txt"), "localdb")
72 
73  empty_path = basf2.create_path()
74 # skim = basf2.register_module(is2DSkim())
75 # skim.if_value('=0', empty_path, basf2.AfterConditionPath.END)
76 
77  # Create main path
78  main = basf2.create_path()
79  # Add modules to main path
80  main.add_module('RootInput', inputFileName=inname)
81 # main.add_module('SeqRootInput', inputFileName=inname)
82 
83  nmod = [0, 1, 2, 3]
84  for mod in nmod:
85  main.add_module('TRGCDCT3DUnpacker', T3DMOD=mod)
86 
87  main.add_module('Gearbox')
88 
89  for mod in nmod:
90  # main.add_module(skim)
91  main.add_module('TRGCDCT3DConverter',
92  hitCollectionName='FirmCDCTriggerSegmentHits' + str(mod),
93  addTSToDatastore=True,
94  EventTimeName='FirmBinnedEventT0' + str(mod),
95  addEventTimeToDatastore=True,
96  inputCollectionName='FirmTRGCDC2DFinderTracks' + str(mod),
97  add2DFinderToDatastore=True,
98  outputCollectionName='FirmTRGCDC3DFitterTracks' + str(mod),
99  add3DToDatastore=True,
100  fit3DWithTSIM=0,
101  firmwareResultCollectionName='TRGCDCT3DUnpackerStore' + str(mod),
102  isVerbose=0)
103 
104  for mod in nmod:
105  main.add_module('TRGCDCT3DDQM', postScriptName=histname, T3DMOD=mod)
106 
107  main.add_module('HistoManager', histoFileName=histname)
108 
109  # Process all events
110  basf2.process(main)
111  print(basf2.statistics)
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25