Belle II Software  release-08-01-10
PickleHarvestingModule Class Reference
Inheritance diagram for PickleHarvestingModule:
Collaboration diagram for PickleHarvestingModule:

Public Member Functions

def barn (self)
 
def refine (self, crops)
 
def id (self)
 
def initialize (self)
 
def event (self)
 
def terminate (self)
 
def gather (self)
 
def prepare (self)
 
def peel (self, crop)
 
def pick (self, crop)
 

Static Public Member Functions

def create_crop_part_collection ()
 
def iter_store_obj (store_obj)
 

Public Attributes

 crops
 The gathered crops until now.
 
 foreach
 Name of the StoreArray or iterable StoreObjPtr that contains the objects to be harvested.
 
 output_file_name
 Name of the ROOT output file to be generated.
 
 title
 Name of this harvest. More...
 
 contact
 Contact email address to be displayed on the validation page.
 
 expert_level
 Integer expert level that controlls to detail of plots to be generated.
 
 refiners
 A list of additional refiner instances to be executed on top of the refiner methods that are members of this class.
 
 show_results
 Switch to show the result ROOT file in a TBrowser on terminate.
 
 stash
 stash of the harvested crops (start with those in the barn)
 
 raw_crops
 the dictionaries from peel as a numpy.array of doubles
 

Static Public Attributes

int default_expert_level = 1
 The default value of expert_level if not specified explicitly by the caller.
 

Detailed Description

Overloaded harvester, that stores its data into a pandas data frame instead of a numpy array,
because they are more flexible when it comes to changing columns and value types to be stored.

Definition at line 22 of file variable_modules.py.

Member Function Documentation

◆ barn()

def barn (   self)
Coroutine that receives the dictionaries of names and values from peel and store them into a pandas df.

Reimplemented from HarvestingModule.

Definition at line 28 of file variable_modules.py.

28  def barn(self):
29  """Coroutine that receives the dictionaries of names and values from peel and store them into a pandas df."""
30  crop = (yield)
31  crops = []
32 
33  if isinstance(crop, numbers.Number):
34  try:
35  while True:
36  crops.append({"value": crop})
37  # next crop
38  crop = (yield)
39  except GeneratorExit:
40  pass
41 
42  elif isinstance(crop, collections.abc.MutableMapping):
43  try:
44  while True:
45  crops.append(crop)
46  crop = (yield)
47  except GeneratorExit:
48  pass
49 
50  else:
51  msg = "Unrecognised crop {} of type {}".format(
52  crop,
53  type(crop)
54  )
55  raise ValueError(msg)
56 
57 
58  self.crops = crops
59 

◆ create_crop_part_collection()

def 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 281 of file harvesting.py.

◆ event()

def 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 deside 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 241 of file harvesting.py.

◆ gather()

def 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 334 of file harvesting.py.

◆ id()

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

Exposing the name as a property using a different name

Definition at line 226 of file harvesting.py.

◆ initialize()

def initialize (   self)
inherited
Initialisation method of the module.

Prepares the receiver stash of objects to be harvestered.

Definition at line 233 of file harvesting.py.

◆ iter_store_obj()

def iter_store_obj (   store_obj)
staticinherited
Obtain a iterator from a StoreObj

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

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

Definition at line 452 of file harvesting.py.

◆ peel()

def peel (   self,
  crop 
)
inherited
Unpack the the instances and return and dictionary of names to values or
a generator of those dictionaries to be saved.

Returns
-------
dict(str -> float)
    Unpacked names and values
or

Yields
------
dict(str -> float)
    Unpacked names and values

Reimplemented in SummarizeTriggerVariables, WrongRLInfoCounter, ReconstructionPositionHarvester, SummarizeTriggerResults, VxdCdcMergerHarvesterPRSide, VxdCdcPartFinderHarvester, MCTrajectoryHarvester, VxdCdcMergerHarvester, MCParticleHarvester, VxdCdcMergerHarvesterMCSide, SegmentFinderParameterExtractorModule, SegmentFakeRatesModule, FitValidationModule, and SeedsAnalyser.

Definition at line 380 of file harvesting.py.

◆ pick()

def pick (   self,
  crop 
)
inherited
Indicate whether the instance should be forwarded to the peeling

Returns
-------
bool : Indicator if the instance is valueable in the current harverst.

Reimplemented in VxdCdcMergerHarvester, MCParticleHarvester, and VxdCdcMergerHarvesterMCSide.

Definition at line 398 of file harvesting.py.

◆ prepare()

def prepare (   self)
inherited
Default implementation of prepare.

Can be overridden by subclasses.

Reimplemented in FitValidationModule, and SegmentFakeRatesModule.

Definition at line 373 of file harvesting.py.

◆ refine()

def refine (   self,
  crops 
)
Receive the gathered crops and saves them into a ROOT file.

Reimplemented from HarvestingModule.

Definition at line 60 of file variable_modules.py.

◆ terminate()

def terminate (   self)
inherited
Termination method of the module.

Finalize the collected crops.
Start the refinement.

Definition at line 265 of file harvesting.py.

Member Data Documentation

◆ title

title
inherited

Name of this harvest.

Title particle of this harvest

Definition at line 210 of file harvesting.py.


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