Belle II Software development
SegmentPairCreationValidationModule Class Reference
Inheritance diagram for SegmentPairCreationValidationModule:
HarvestingModule

Public Member Functions

 __init__ (self, output_file_name)
 
 initialize (self)
 
 prepare (self)
 
 pick (self, segment_pair_relation)
 
 peel (self, segment_pair_relation)
 
 peel_target (self, segment_pair_relation)
 
 peel_mc (self, segment_pair_relation)
 
 peel_fit (self, segment_pair_relation)
 
 peel_fitless (self, segment_pair_relation)
 
 fit (self, segment_pair_relation)
 
 select_fitless (self, fitless_crops)
 
 select (self, crops)
 
 print_signal_number (self, crops, tdirectory, **kwds)
 
 id (self)
 
 event (self)
 
 terminate (self)
 
 barn (self)
 
 gather (self)
 
 refine (self, crops)
 

Static Public Member Functions

 create_crop_part_collection ()
 
 iter_store_obj (store_obj)
 

Public Attributes

 mc_segment_lookup = None
 defer reference to CDCMCSegment2dLookUp singleton until after it is constructed
 
 mc_segment_pair_filter = None
 defer reference to MCSegmentPairFilter until after it is constructed
 
 segment_pair_fusion = None
 defer reference to CDCAxialStereoFusion until after it is constructed
 
 foreach = foreach
 Name of the StoreArray or iterable StoreObjPtr that contains the objects to be harvested.
 
 output_file_name = output_file_name
 Name of the ROOT output file to be generated.
 
 title = title or self.name()
 Name of this harvest.
 
 contact = contact
 Contact email address to be displayed on the validation page.
 
int expert_level = self.default_expert_level if expert_level is None else expert_level
 Integer expert level that controls to detail of plots to be generated.
 
list refiners = []
 A list of additional refiner instances to be executed on top of the refiner methods that are members of this class.
 
 show_results = show_results
 Switch to show the result ROOT file in a TBrowser on terminate.
 
 stash = self.barn()
 stash of the harvested crops (start with those in the barn)
 
 crops
 the dictionaries from peel
 
 raw_crops = raw_crops
 the dictionaries from peel as a numpy.array of doubles
 

Static Public Attributes

float delta_phi_cut_value = 1.0
 default selection for the delta-phi of the segment pair
 
float is_after_cut_value = 1.0
 default selection for the ordering of the segment pair
 
 save_histograms = refiners.save_histograms(outlier_z_score=5.0, allow_discrete=True)
 Save histograms in a sub folder.
 
 save_tree = refiners.save_tree()
 Save a tree of all collected variables in a sub folder.
 
 save_fitless_selection_variables_histograms
 Save a tree of track-segment-without-fit variables in a sub folder.
 
 save_view_is_after_cut_histograms
 Save a tree of mal-ordered track-segment-pair variables in a sub folder.
 
 save_view_delta_phi_cut_histograms
 Save a tree of delta-phi-cut track-segment-pair variables in a sub folder.
 
 save_selection_variables_after_fitless_selection_histograms
 Save a tree of track-segment-pair selection variables in a sub folder.
 
 save_p_value_over_curvature_profile
 Save a tree of track-segment-pair p-value and curvature variables in a sub folder.
 
int default_expert_level = 1
 The default value of expert_level if not specified explicitly by the caller.
 

Detailed Description

Module to collect information about the generated segments and compose validation plots on terminate.

Definition at line 82 of file segmentPairCreationValidation.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
output_file_name )
Constructor

Definition at line 86 of file segmentPairCreationValidation.py.

86 def __init__(self, output_file_name):
87 """Constructor"""
88 super().__init__(foreach="CDCSegmentPairVector",
89 output_file_name=output_file_name)
90 ## defer reference to CDCMCSegment2dLookUp singleton until after it is constructed
91 self.mc_segment_lookup = None
92 ## defer reference to MCSegmentPairFilter until after it is constructed
93 self.mc_segment_pair_filter = None
94 ## defer reference to CDCAxialStereoFusion until after it is constructed
95 self.segment_pair_fusion = None
96

Member Function Documentation

◆ barn()

barn ( self)
inherited
Coroutine that receives the dictionaries of names and values from peel and store them.

Reimplemented in PickleHarvestingModule.

Definition at line 287 of file harvesting.py.

287 def barn(self):
288 """Coroutine that receives the dictionaries of names and values from peel and store them."""
289 crop = (yield)
290 raw_crops = copy.copy(crop)
291 crops = copy.copy(crop)
292
293 if isinstance(crop, numbers.Number):
294 raw_crops = self.create_crop_part_collection()
295 try:
296 while True:
297 raw_crops.append(crop)
298 # next crop
299 crop = (yield)
300 except GeneratorExit:
301 crops = np.array(raw_crops)
302
303 elif isinstance(crop, collections.abc.MutableMapping):
304 for part_name in crop:
305 raw_crops[part_name] = self.create_crop_part_collection()
306
307 try:
308 while True:
309 for part_name, parts in list(raw_crops.items()):
310 if part_name in crop:
311 parts.append(crop[part_name])
312 else:
313 parts.append(np.NaN)
314 # next crop
315 crop = (yield)
316 except GeneratorExit:
317 for part_name, parts in list(raw_crops.items()):
318 crops[part_name] = np.array(parts)
319
320 else:
321 msg = f"Unrecognised crop {crop} of type {type(crop)}"
322 raise ValueError(msg)
323
324
325 self.raw_crops = raw_crops
326
327 self.crops = crops
328

◆ create_crop_part_collection()

create_crop_part_collection ( )
staticinherited
Create the storing objects for the crop values

Currently a numpy.array of doubles is used to store all values in memory.

Definition at line 279 of file harvesting.py.

279 def create_crop_part_collection():
280 """Create the storing objects for the crop values
281
282 Currently a numpy.array of doubles is used to store all values in memory.
283 """
284 return array.array("d")
285

◆ event()

event ( self)
inherited
Event method of the module

* Does invoke the prepare method before the iteration starts.
* In each event fetch the StoreArray / iterable StoreObjPtr,
* Iterate through all instances
* Feed each instance to the pick method to decide it the instance is relevant
* Forward it to the peel method that should generated a dictionary of values
* Store each dictionary of values

Definition at line 239 of file harvesting.py.

239 def event(self):
240 """Event method of the module
241
242 * Does invoke the prepare method before the iteration starts.
243 * In each event fetch the StoreArray / iterable StoreObjPtr,
244 * Iterate through all instances
245 * Feed each instance to the pick method to decide it the instance is relevant
246 * Forward it to the peel method that should generated a dictionary of values
247 * Store each dictionary of values
248 """
249 self.prepare()
250 stash = self.stash.send
251 pick = self.pick
252 peel = self.peel
253 for crop in self.gather():
254 if pick(crop):
255 crop = peel(crop)
256 if isinstance(crop, types.GeneratorType):
257 many_crops = crop
258 for crop in many_crops:
259 stash(crop)
260 else:
261 stash(crop)
262

◆ fit()

fit ( self,
segment_pair_relation )
Fit the segment pair

Definition at line 249 of file segmentPairCreationValidation.py.

249 def fit(self, segment_pair_relation):
250 """Fit the segment pair"""
251 self.segment_pair_fusion.reconstructFuseTrajectories(segment_pair_relation, True)
252

◆ gather()

gather ( self)
inherited
Iterator that yield the instances form the StoreArray / iterable StoreObj.

Yields
------
Object instances from the StoreArray, iterable StoreObj or the StoreObj itself
in case it is not iterable.

Definition at line 329 of file harvesting.py.

329 def gather(self):
330 """Iterator that yield the instances form the StoreArray / iterable StoreObj.
331
332 Yields
333 ------
334 Object instances from the StoreArray, iterable StoreObj or the StoreObj itself
335 in case it is not iterable.
336 """
337
338 registered_store_arrays = Belle2.PyStoreArray.list()
339 registered_store_objs = Belle2.PyStoreObj.list()
340
341 foreach = self.foreach
342 foreach_is_store_obj = foreach in registered_store_objs
343 foreach_is_store_array = foreach in registered_store_arrays
344
345 if foreach is not None:
346 if foreach_is_store_array:
347 store_array = Belle2.PyStoreArray(self.foreach)
348 yield from store_array
349
350 elif foreach_is_store_obj:
351 store_obj = Belle2.PyStoreObj(self.foreach)
352 try:
353 yield from self.iter_store_obj(store_obj)
354 except TypeError:
355 # Cannot iter the store object. Yield it instead.
356 yield store_obj.obj()
357
358 else:
359 msg = f"Name {self.foreach} does not refer to a valid object on the data store"
360 raise KeyError(msg)
361 else:
362 yield None
363
A (simplified) python wrapper for StoreArray.
static std::vector< std::string > list(DataStore::EDurability durability=DataStore::EDurability::c_Event)
Return list of available arrays for given durability.
a (simplified) python wrapper for StoreObjPtr.
Definition PyStoreObj.h:67
static std::vector< std::string > list(DataStore::EDurability durability=DataStore::EDurability::c_Event)
Return list of available objects for given durability.
Definition PyStoreObj.cc:28

◆ id()

id ( self)
inherited
Working around that name() is a method.

Exposing the name as a property using a different name

Definition at line 224 of file harvesting.py.

224 def id(self):
225 """Working around that name() is a method.
226
227 Exposing the name as a property using a different name
228 """
229 return self.name()
230

◆ initialize()

initialize ( self)
Receive signal at the start of event processing

Reimplemented from HarvestingModule.

Definition at line 97 of file segmentPairCreationValidation.py.

97 def initialize(self):
98 """Receive signal at the start of event processing"""
99 super().initialize()
101 self.mc_segment_pair_filter = Belle2.TrackFindingCDC.MCSegmentPairFilter()
102 self.segment_pair_fusion = Belle2.TrackFindingCDC.CDCAxialStereoFusion
103
Utility class implementing the Kalmanesk combination of to two dimensional trajectories to one three ...
static const CDCMCSegment2DLookUp & getInstance()
Getter for the singletone instance.
Filter for the construction of axial to stereo segment pairs based on MC information.

◆ iter_store_obj()

iter_store_obj ( store_obj)
staticinherited
Obtain a iterator from a StoreObj

Repeatedly calls iter(store_obj) or store_obj.__iter__()
until the final iterator returns itself

Returns
-------
iterator of the StoreObj

Definition at line 443 of file harvesting.py.

443 def iter_store_obj(store_obj):
444 """Obtain a iterator from a StoreObj
445
446 Repeatedly calls iter(store_obj) or store_obj.__iter__()
447 until the final iterator returns itself
448
449 Returns
450 -------
451 iterator of the StoreObj
452 """
453 iterable = store_obj.obj()
454 last_iterable = None
455 while iterable is not last_iterable:
456 if hasattr(iterable, "__iter__"):
457 iterable, last_iterable = iterable.__iter__(), iterable
458 else:
459 iterable, last_iterable = iter(iterable), iterable
460 return iterable
461
462

◆ peel()

peel ( self,
segment_pair_relation )
Aggregate the track and MC information for track segment-pair analysis

Reimplemented from HarvestingModule.

Definition at line 119 of file segmentPairCreationValidation.py.

119 def peel(self, segment_pair_relation):
120 """Aggregate the track and MC information for track segment-pair analysis"""
121 crops = self.peel_target(segment_pair_relation)
122 crops.update(self.peel_mc(segment_pair_relation))
123 crops.update(self.peel_fit(segment_pair_relation))
124 return crops
125

◆ peel_fit()

peel_fit ( self,
segment_pair_relation )
Create a dictionary of track-segment-fit information

Definition at line 151 of file segmentPairCreationValidation.py.

151 def peel_fit(self, segment_pair_relation):
152 """Create a dictionary of track-segment-fit information"""
153 fitless_crops = self.peel_fitless(segment_pair_relation)
154
155 select_fitless = fitless_crops["select_fitless"]
156 if select_fitless:
157 # Now fit
158 self.fit(segment_pair_relation)
159 fit3d = segment_pair_relation.getTrajectory3D()
160
161 i_curv = 0
162 i_tan_lambda = 3
163
164 chi2 = fit3d.getChi2()
165 ndf = fit3d.getNDF()
166
167 curvature_estimate = fit3d.getCurvatureXY()
168 curvature_variance = fit3d.getLocalVariance(i_curv)
169
170 tan_lambda_estimate = fit3d.getTanLambda()
171 tan_lambda_variance = fit3d.getLocalVariance(i_tan_lambda)
172
173 chi2 = chi2
174 ndf = ndf
175 p_value = prob(chi2, ndf)
176 # select = True
177
178 else:
179 nan = float('nan')
180 curvature_estimate = nan
181 curvature_variance = nan
182
183 tan_lambda_estimate = nan
184 tan_lambda_variance = nan
185
186 chi2 = nan
187 ndf = nan
188 p_value = nan
189
190 crops = dict(
191 curvature_estimate=curvature_estimate,
192 curvature_variance=curvature_variance,
193
194 tan_lambda_estimate=tan_lambda_estimate,
195 tan_lambda_variance=tan_lambda_variance,
196
197 chi2=chi2,
198 ndf=ndf,
199 p_value=p_value,
200 )
201
202 if select_fitless:
203 crops["select"] = self.select(crops)
204 else:
205 crops["select"] = False
206
207 crops.update(fitless_crops)
208
209 return crops
210

◆ peel_fitless()

peel_fitless ( self,
segment_pair_relation )
Create a dictionary of track-segments-without-fit information

Definition at line 211 of file segmentPairCreationValidation.py.

211 def peel_fitless(self, segment_pair_relation):
212 """Create a dictionary of track-segments-without-fit information"""
213 # Try to make some judgements without executing the common fit.
214
215 start_segment = segment_pair_relation.getStartSegment()
216 end_segment = segment_pair_relation.getEndSegment()
217
218 start_fit2d = start_segment.getTrajectory2D()
219 end_fit2d = end_segment.getTrajectory2D()
220
221 start_superlayer_id = start_segment.getISuperLayer()
222 end_superlayer_id = end_segment.getISuperLayer()
223
224 sorted_superlayer_ids = sorted([start_superlayer_id, end_superlayer_id])
225
226 superlayer_id_pair = 10.0 * sorted_superlayer_ids[1] + sorted_superlayer_ids[0]
227
228 fitless_crops = dict(
229 start_superlayer_id=start_superlayer_id,
230 end_superlayer_id=end_superlayer_id,
231 superlayer_id_pair=superlayer_id_pair,
232
233 start_size=start_segment.size(),
234 end_size=end_segment.size(),
235
236 start_curvature_estimate=start_fit2d.getCurvature(),
237 end_curvature_estimate=end_fit2d.getCurvature(),
238
239 delta_phi=segment_pair_relation.computeDeltaPhiAtSuperLayerBound(),
240 is_coaligned=segment_pair_relation.computeIsCoaligned(),
241
242 start_is_before_end=segment_pair_relation.computeStartIsBeforeEnd(),
243 end_is_after_start=segment_pair_relation.computeEndIsAfterStart(),
244 )
245
246 fitless_crops["select_fitless"] = self.select_fitless(fitless_crops)
247 return fitless_crops
248

◆ peel_mc()

peel_mc ( self,
segment_pair_relation )
Create a dictionary of MC-truth (curvature,tanlambda) pairs

Definition at line 136 of file segmentPairCreationValidation.py.

136 def peel_mc(self, segment_pair_relation):
137 """Create a dictionary of MC-truth (curvature,tanlambda) pairs"""
138 mc_segment_lookup = self.mc_segment_lookup
139
140 end_segment = segment_pair_relation.getEndSegment()
141
142 # Take the fit best at the middle of the segment pair
143 # mc_particle = mc_segment_lookup.getMCParticle(end_segment)
144 fit3d_truth = mc_segment_lookup.getTrajectory3D(end_segment)
145
146 return dict(
147 curvature_truth=fit3d_truth.getCurvatureXY(),
148 tan_lambda_truth=fit3d_truth.getTanLambda(),
149 )
150

◆ peel_target()

peel_target ( self,
segment_pair_relation )
Create a dictionary of MC-truth (weight,decision) pairs

Definition at line 126 of file segmentPairCreationValidation.py.

126 def peel_target(self, segment_pair_relation):
127 """Create a dictionary of MC-truth (weight,decision) pairs"""
128 mc_weight = self.mc_segment_pair_filter(segment_pair_relation)
129 mc_decision = np.isfinite(mc_weight) # Filters for nan
130
131 return dict(
132 mc_weight=mc_weight,
133 mc_decision=mc_decision,
134 )
135

◆ pick()

pick ( self,
segment_pair_relation )
Select segment pairs with 4 or more hit in each segments and a matching primary MC particle

Reimplemented from HarvestingModule.

Definition at line 108 of file segmentPairCreationValidation.py.

108 def pick(self, segment_pair_relation):
109 """Select segment pairs with 4 or more hit in each segments and a matching primary MC particle"""
110 mc_segment_lookup = self.mc_segment_lookup
111 start_segment = segment_pair_relation.getStartSegment()
112 end_segment = segment_pair_relation.getEndSegment()
113 mc_particle = mc_segment_lookup.getMCParticle(start_segment)
114 return (mc_particle and
115 is_primary(mc_particle) and
116 start_segment.size() > 3 and
117 end_segment.size() > 3)
118

◆ prepare()

prepare ( self)
Initialize the MC-hit lookup method

Reimplemented from HarvestingModule.

Definition at line 104 of file segmentPairCreationValidation.py.

104 def prepare(self):
105 """Initialize the MC-hit lookup method"""
107
static const CDCMCHitLookUp & getInstance()
Getter for the singletone instance.

◆ print_signal_number()

print_signal_number ( self,
crops,
tdirectory,
** kwds )
Print diagnostic information about the track-segment-pair selection

Definition at line 328 of file segmentPairCreationValidation.py.

328 def print_signal_number(self, crops, tdirectory, **kwds):
329 """Print diagnostic information about the track-segment-pair selection"""
330 info = get_logger().info
331
332 # start_superlayer_ids = crops["start_superlayer_id"]
333 # end_superlayer_ids = crops["end_superlayer_id"]
334
335 superlayer_id_pair = crops["superlayer_id_pair"]
336 info("Number of pairs in superlayers %s : %s", np.unique(superlayer_id_pair), len(superlayer_id_pair))
337
338 mc_decisions = crops["mc_decision"]
339 n = len(mc_decisions)
340 n_signal = np.sum(mc_decisions)
341 n_background = n - n_signal
342 info("#Signal : %s", n_signal)
343 info("#Background : %s", n_background)
344
345 fitless_selections = np.nonzero(crops["select_fitless"])
346 info("#Signal after precut : %s", np.sum(mc_decisions[fitless_selections]))
347 info("#Background after precut : %s", np.sum(1 - mc_decisions[fitless_selections]))
348
349

◆ refine()

refine ( self,
crops )
inherited
Receive the gathered crops and forward them to the refiners.

Reimplemented in PickleHarvestingModule.

Definition at line 398 of file harvesting.py.

398 def refine(self, crops):
399 """Receive the gathered crops and forward them to the refiners."""
400
401 kwds = {}
402 if self.output_file_name:
403 # Save everything to a ROOT file
404 if isinstance(self.output_file_name, ROOT.TFile):
405 output_tdirectory = self.output_file_name
406 else:
407 output_tfile = ROOT.TFile(self.output_file_name, 'recreate')
408 output_tdirectory = output_tfile
409
410 else:
411 output_tdirectory = None
412
413 try:
414 with root_cd(output_tdirectory):
415 for refiner in self.refiners:
416 refiner(self, crops, tdirectory=output_tdirectory, **kwds)
417
418 # Get the methods marked as refiners from the class
419 cls = type(self)
420 for name in dir(cls):
421 if isinstance(getattr(cls, name), Refiner):
422 refiner = getattr(self, name)
423 # Getattr already binds self
424 refiner(crops, tdirectory=output_tdirectory, **kwds)
425
426 finally:
427 # If we opened the TFile ourself, close it again
428 if self.output_file_name:
429 if isinstance(self.output_file_name, str):
430 output_tfile.Close()
431
432 if self.show_results and self.output_file_name:
433 if isinstance(self.output_file_name, str):
434 output_tfile = ROOT.TFile(self.output_file_name)
435 root_browse(output_tfile)
436 input("Press enter to close")
437 output_tfile.Close()
438 else:
439 root_browse(self.output_file_name)
440 input("Press enter to close")
441

◆ select()

select ( self,
crops )
Select every track-segment-pair

Definition at line 266 of file segmentPairCreationValidation.py.

266 def select(self, crops):
267 """Select every track-segment-pair"""
268 return True
269

◆ select_fitless()

select_fitless ( self,
fitless_crops )
Selection of track-segments-without-fit

Definition at line 258 of file segmentPairCreationValidation.py.

258 def select_fitless(self, fitless_crops):
259 """Selection of track-segments-without-fit"""
260 delta_phi = fitless_crops["delta_phi"]
261 start_is_before_end = fitless_crops["start_is_before_end"]
262 end_is_after_start = fitless_crops["end_is_after_start"]
263 is_after_select = (abs(start_is_before_end) < self.is_after_cut_value) & (abs(end_is_after_start) < self.is_after_cut_value)
264 return (abs(delta_phi) < self.delta_phi_cut_value) & is_after_select
265

◆ terminate()

terminate ( self)
inherited
Termination method of the module.

Finalize the collected crops.
Start the refinement.

Reimplemented in ClusterFilterValidationModule.

Definition at line 263 of file harvesting.py.

263 def terminate(self):
264 """Termination method of the module.
265
266 Finalize the collected crops.
267 Start the refinement.
268 """
269
270 self.stash.close()
271 del self.stash
272
273 try:
274 self.refine(self.crops)
275 except AttributeError:
276 pass
277

Member Data Documentation

◆ contact

contact = contact
inherited

Contact email address to be displayed on the validation page.

Definition at line 211 of file harvesting.py.

◆ crops

crops
inherited

the dictionaries from peel

Definition at line 274 of file harvesting.py.

◆ default_expert_level

int default_expert_level = 1
staticinherited

The default value of expert_level if not specified explicitly by the caller.

Definition at line 156 of file harvesting.py.

◆ delta_phi_cut_value

delta_phi_cut_value = 1.0
static

default selection for the delta-phi of the segment pair

Definition at line 254 of file segmentPairCreationValidation.py.

◆ expert_level

int expert_level = self.default_expert_level if expert_level is None else expert_level
inherited

Integer expert level that controls to detail of plots to be generated.

Definition at line 214 of file harvesting.py.

◆ foreach

foreach = foreach
inherited

Name of the StoreArray or iterable StoreObjPtr that contains the objects to be harvested.

Definition at line 196 of file harvesting.py.

◆ is_after_cut_value

float is_after_cut_value = 1.0
static

default selection for the ordering of the segment pair

Definition at line 256 of file segmentPairCreationValidation.py.

◆ mc_segment_lookup

mc_segment_lookup = None

defer reference to CDCMCSegment2dLookUp singleton until after it is constructed

Definition at line 91 of file segmentPairCreationValidation.py.

◆ mc_segment_pair_filter

mc_segment_pair_filter = None

defer reference to MCSegmentPairFilter until after it is constructed

Definition at line 93 of file segmentPairCreationValidation.py.

◆ output_file_name

output_file_name = output_file_name
inherited

Name of the ROOT output file to be generated.

Definition at line 199 of file harvesting.py.

◆ raw_crops

raw_crops = raw_crops
inherited

the dictionaries from peel as a numpy.array of doubles

Definition at line 325 of file harvesting.py.

◆ refiners

list refiners = []
inherited

A list of additional refiner instances to be executed on top of the refiner methods that are members of this class.

Definition at line 218 of file harvesting.py.

◆ save_fitless_selection_variables_histograms

save_fitless_selection_variables_histograms
static
Initial value:
= refiners.save_histograms(
select=["mc_decision", "delta_phi", "start_is_before_end", "end_is_after_start", "is_coaligned"],
outlier_z_score=5.0,
allow_discrete=True,
stackby="mc_decision",
folder_name="fitless_selection_variables",
)

Save a tree of track-segment-without-fit variables in a sub folder.

Definition at line 278 of file segmentPairCreationValidation.py.

◆ save_histograms

save_histograms = refiners.save_histograms(outlier_z_score=5.0, allow_discrete=True)
static

Save histograms in a sub folder.

Definition at line 272 of file segmentPairCreationValidation.py.

◆ save_p_value_over_curvature_profile

save_p_value_over_curvature_profile
static
Initial value:
= refiners.save_profiles(
select={"p_value": "p-value", "curvature_truth": "true curvature"},
y="p-value",
folder_name="selection_variables_after_fitless_selection",
title=r"$p$-value versus true curvature after fitless selection",
filter_on="select_fitless",
)

Save a tree of track-segment-pair p-value and curvature variables in a sub folder.

Definition at line 317 of file segmentPairCreationValidation.py.

◆ save_selection_variables_after_fitless_selection_histograms

save_selection_variables_after_fitless_selection_histograms
static
Initial value:
= refiners.save_histograms(
select=["mc_decision", "chi2", "ndf", "p_value"],
outlier_z_score=5.0,
allow_discrete=True,
stackby="mc_decision",
folder_name="selection_variables_after_fitless_selection",
filter_on="select_fitless",
)

Save a tree of track-segment-pair selection variables in a sub folder.

Definition at line 306 of file segmentPairCreationValidation.py.

◆ save_tree

save_tree = refiners.save_tree()
static

Save a tree of all collected variables in a sub folder.

Definition at line 274 of file segmentPairCreationValidation.py.

◆ save_view_delta_phi_cut_histograms

save_view_delta_phi_cut_histograms
static
Initial value:
= refiners.save_histograms(
select=["mc_decision", "delta_phi"],
lower_bound=-delta_phi_cut_value,
upper_bound=delta_phi_cut_value,
stackby="mc_decision",
folder_name="view_fitless_cuts",
)

Save a tree of delta-phi-cut track-segment-pair variables in a sub folder.

Definition at line 296 of file segmentPairCreationValidation.py.

◆ save_view_is_after_cut_histograms

save_view_is_after_cut_histograms
static
Initial value:
= refiners.save_histograms(
select=["mc_decision", "start_is_before_end", "end_is_after_start"],
lower_bound=-is_after_cut_value,
upper_bound=is_after_cut_value,
stackby="mc_decision",
folder_name="view_fitless_cuts",
)

Save a tree of mal-ordered track-segment-pair variables in a sub folder.

Definition at line 287 of file segmentPairCreationValidation.py.

◆ segment_pair_fusion

segment_pair_fusion = None

defer reference to CDCAxialStereoFusion until after it is constructed

Definition at line 95 of file segmentPairCreationValidation.py.

◆ show_results

show_results = show_results
inherited

Switch to show the result ROOT file in a TBrowser on terminate.

Definition at line 221 of file harvesting.py.

◆ stash

stash = self.barn()
inherited

stash of the harvested crops (start with those in the barn)

Definition at line 237 of file harvesting.py.

◆ title

title = title or self.name()
inherited

Name of this harvest.

Title particle of this harvest

Definition at line 208 of file harvesting.py.


The documentation for this class was generated from the following file: