5 import os, sys, ROOT, argparse
7 if __name__ ==
"__main__":
8 parser = argparse.ArgumentParser(prog=
'checkHitValidTree', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
9 parser.add_argument(
'-i',
'--inputFile', help=
'choose input ROOT file', default=
'NSWPRDValAlg.digi.ntuple.root', type=str)
10 parser.add_argument(
'--checkPRD', help=
'check also the RPDs (for reco validation only)', action=
'store_true', default=
False)
11 parser.add_argument(
'--checkHits', help=
'check also the Hits (Hits are skimmed out after Digitisation step!)', action=
'store_true', default=
False)
12 parser.add_argument(
'--checkDigits', help=
'check also the Digits (Hits are skimmed out after Digitisation step!)', action=
'store_true', default=
False)
13 parser.add_argument(
'--checkSDO', help=
'check also the SDO (Hits are skimmed out after Digitisation step!)', action=
'store_true', default=
False)
14 Options = parser.parse_args()
16 ROOT.gROOT.SetBatch(
True)
18 if not os.path.exists(Options.inputFile):
19 print (
'ERROR: File %s does not exist'%Options.inputFile)
22 inputFile = ROOT.TFile(Options.inputFile,
"READ")
24 print (
'ERROR: Failed to open file %s'%Options.inputFile)
26 inputTree = inputFile.Get(
"HitValidTree")
28 print (
'ERROR: HitValidTree does not exist in file %s'%Options.inputFile)
31 nEntries = inputTree.GetEntries()
33 print (
'ERROR: HitValidTree of file %s has 0 entries'%Options.inputFile)
46 for i
in range(nEntries):
48 nRDOMM += inputTree.N_RDO_MM
49 nRDOSTGC += inputTree.N_RDO_sTGC
52 nPRDMM += inputTree.N_PRD_MM
53 nPRDSTGC += inputTree.N_PRD_sTGC
56 nHitsMM += inputTree.Hits_MM_nHits
57 nHitsSTGC += inputTree.Hits_sTGC_nHits
60 nDigitsMM += inputTree.N_Digits_MM
61 nDigitsSTGC += inputTree.N_Digits_sTGC
64 nSDOMM += inputTree.nSDO_MM
65 nSDOSTGC += inputTree.nSDO_sTGC
67 if Options.checkHits
and nHitsMM==0:
68 print (
'ERROR: HitValidTree of file %s has 0 MM Hits'%Options.inputFile)
70 elif Options.checkHits
and nHitsSTGC==0:
71 print (
'ERROR: HitValidTree of file %s has 0 STGC Hits'%Options.inputFile)
73 elif Options.checkDigits
and nDigitsMM==0:
74 print (
'ERROR: HitValidTree of file %s has 0 MM Digits'%Options.inputFile)
76 elif Options.checkDigits
and nDigitsSTGC==0:
77 print (
'ERROR: HitValidTree of file %s has 0 STGC Digits'%Options.inputFile)
79 elif Options.checkSDO
and nSDOMM==0:
80 print (
'ERROR: HitValidTree of file %s has 0 MM SDOs'%Options.inputFile)
82 elif Options.checkSDO
and nSDOSTGC==0:
83 print (
'ERROR: HitValidTree of file %s has 0 STGC SDOs'%Options.inputFile)
86 print (
'ERROR: HitValidTree of file %s has 0 MM RDOs'%Options.inputFile)
89 print (
'ERROR: HitValidTree of file %s has 0 STGC RDOs'%Options.inputFile)
91 elif Options.checkPRD
and nPRDMM==0:
92 print (
'ERROR: HitValidTree of file %s has 0 MM PRDs'%Options.inputFile)
94 elif Options.checkPRD
and nPRDSTGC==0:
95 print (
'ERROR: HitValidTree of file %s has 0 STGC PRDs'%Options.inputFile)
98 print (
'INFO: All fine with file %s'%Options.inputFile)
100 if Options.checkHits:
101 print (
'INFO: Number of found MM hits:\t\t%i'%nHitsMM)
102 print (
'INFO: Number of found STGC hits:\t%i'%nHitsSTGC)
104 if Options.checkDigits:
105 print (
'INFO: Number of found MM digits:\t%i'%nDigitsMM)
106 print (
'INFO: Number of found STGC digits:\t%i'%nDigitsSTGC)
109 print (
'INFO: Number of found MM SDOs:\t\t%i'%nSDOMM)
110 print (
'INFO: Number of found STGC SDOs:\t%i'%nSDOSTGC)
112 print (
'INFO: Number of found MM RDOs:\t\t%i'%nRDOMM)
113 print (
'INFO: Number of found STGC RDOs:\t%i'%nRDOSTGC)
116 print (
'INFO: Number of found MM PRDs:\t\t%i'%nPRDMM)
117 print (
'INFO: Number of found STGC PRDs:\t%i'%nPRDSTGC)