Belle II Software  release-06-00-14
toCDCfromEclCKFTrackingValidation.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 """
13 <header>
14  <contact>simon.kurz@desy.de</contact>
15  <input>EvtGenSimNoBkg.root</input>
16  <output>toCDCfromEclCKFTrackingValidation.root</output>
17  <description>This module validates toCDCfromEclCKF module using Y(4S) runs.</description>
18 </header>
19 """
20 
21 import reconstruction
22 from tracking.validation.run import TrackingValidationRun
23 import logging
24 import basf2
25 VALIDATION_OUTPUT_FILE = 'toCDCfromEclCKFTrackingValidation.root'
26 N_EVENTS = 10000
27 ACTIVE = True
28 
29 basf2.set_random_seed(1337)
30 
31 
33  """Validate the ecl seeded ckf"""
34 
35  n_events = N_EVENTS
36 
37  generator_module = 'generic'
38 
39  root_input_file = '../EvtGenSimNoBkg.root'
40 
41  @staticmethod
42  def finder_module(path):
43  """Only run the following (necessary) modules"""
44  path.add_module('SetupGenfitExtrapolation',
45  energyLossBrems=False, noiseBrems=False)
46 
48 
49  # needed for truth matching
50  path.add_module('TrackFinderMCTruthRecoTracks',
51  RecoTracksStoreArrayName="MCRecoTracks",
52  WhichParticles=[],
53  UsePXDHits=False,
54  UseSVDHits=False,
55  UseCDCHits=True)
56 
57  path.add_module("TFCDC_WireHitPreparer",
58  wirePosition="aligned",
59  useSecondHits=False,
60  flightTimeEstimation="outwards")
61 
62  path.add_module("ToCDCFromEclCKF",
63  inputWireHits="CDCWireHitVector",
64  minimalEnRequirementCluster=0.3,
65  eclSeedRecoTrackStoreArrayName='EclSeedRecoTracks',
66  hitFindingDirection="backward",
67  outputRecoTrackStoreArrayName="CKFCDCRecoTracksFromEcl",
68  outputRelationRecoTrackStoreArrayName="EclSeedRecoTracks",
69  writeOutDirection="forward",
70  stateBasicFilterParameters={"maximalHitDistance": 7.5, "maximalHitDistanceEclSeed": 75.0},
71  stateExtrapolationFilterParameters={"direction": "backward"},
72  pathFilter="arc_length_fromEcl",
73  inputECLshowersStoreArrayName="ECLShowers",
74  trackFindingDirection="backward",
75  seedComponent="ECL"
76  )
77 
78  path.add_module("ToCDCCKF",
79  inputWireHits="CDCWireHitVector",
80  inputRecoTrackStoreArrayName="CKFCDCRecoTracksFromEcl",
81  relatedRecoTrackStoreArrayName="RecoTracks",
82  relationCheckForDirection="backward",
83  outputRecoTrackStoreArrayName="RecoTracks",
84  outputRelationRecoTrackStoreArrayName="CKFCDCRecoTracksFromEcl",
85  writeOutDirection="backward",
86  stateBasicFilterParameters={"maximalHitDistance": 0.75},
87  stateExtrapolationFilterParameters={"direction": "forward"},
88  pathFilter="arc_length",
89  seedComponent="ECL"
90  )
91 
92  path.add_module("DAFRecoFitter", recoTracksStoreArrayName="RecoTracks")
93 
94  path.add_module('TrackCreator', recoTrackColName='RecoTracks')
95 
96  path.add_module("MCRecoTracksMatcher",
97  mcRecoTracksStoreArrayName="MCRecoTracks",
98  prRecoTracksStoreArrayName="RecoTracks",
99  UseCDCHits=True,
100  UseSVDHits=False,
101  UsePXDHits=False)
102 
103 
104  tracking_coverage = {
105  'UsePXDHits': False,
106  'UseSVDHits': False,
107  'UseCDCHits': True,
108  'WhichParticles': [],
109  }
110 
111 
112  fit_tracks = False
113 
114  use_fit_information = True
115 
116  pulls = True
117 
118  resolution = True
119 
120  output_file_name = VALIDATION_OUTPUT_FILE
121 
122 
123 def main():
124  validation_run = toCDCfromEclCKF()
125  validation_run.configure_and_execute_from_commandline()
126 
127 
128 if __name__ == '__main__':
129  logging.basicConfig(level=logging.INFO)
130 
131  if ACTIVE:
132  main()
finder_module
Name of the finder module to be used - can be everything that is accepted by tracking....
def add_ecl_modules(path, components=None)
int main(int argc, char **argv)
Run all tests.
Definition: test_main.cc:75