Belle II Software  release-05-02-19
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 15 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 21 of file variable_modules.py.

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

◆ 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 272 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 232 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 325 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 217 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 224 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 443 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, MCParticleHarvester, VxdCdcMergerHarvester, VxdCdcMergerHarvesterMCSide, V0Harvester, SegmentFinderParameterExtractorModule, SegmentFakeRatesModule, SeedsAnalyser, and FitValidationModule.

Definition at line 371 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 MCParticleHarvester, VxdCdcMergerHarvester, V0Harvester, and VxdCdcMergerHarvesterMCSide.

Definition at line 389 of file harvesting.py.

◆ prepare()

def prepare (   self)
inherited
Default implementation of prepare.

Can be overridden by subclasses.

Reimplemented in SegmentFakeRatesModule, and FitValidationModule.

Definition at line 364 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 53 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 256 of file harvesting.py.

Member Data Documentation

◆ title

title
inherited

Name of this harvest.

Title particle of this harvest

Definition at line 194 of file harvesting.py.


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