Example Modes#

class vibe.skim_production_modes.example.ExampleFullPipeline.ExampleFullPipeline(base_path: str, exp: int | None = None, run_type: str | None = None, processing_id: str | None = None, run_range: Tuple[int, int] | None = None, release: str | None = None, offline_run: bool | None = False)[source]#

Bases: ValidationModeBaseClass

An example template for a full skim->validation pipeline in vibe.

Parameters

Note

  • This template in conjunction with the skim_production_modes.JSON file allows the user to submit any number of skims over any number of MC types.

  • The create_basf2_path function is used to construct the basf2 path for analysis reconstruction and validation of the skimmed MC.

  • The customisation allowed to a user is through the get_skim_attributes method. In here, the user must fill out the named tuple SkimAttributes as shown below.

skim_name

The skim_name property must be at least a string containing a valid skim name (this is checked at the beginning of run time). However, skim_name can be overloaded to be a list of skim names in which the user can have multiple skims run at once over the same MC. This is useful say for the fei, combining feiSl and feiHadronic such that: skim_name = [‘feiSL’,’feiHadronic’]

globaltag

The globaltag is an optional property. If the user requires a specific globaltag for their skims then is is vital they input it here. If None is given then the most up-to-date globaltag will be used.

grid_test_mode :

This flag if set to true will reduce the number of events per grid job to 100 events. Note that for skim names with low retentions, there is a chance that no ntuple will be saved to the grid if the retention threshold is not met.

skim_to_analysis_pipeline :

This variable can either be False for purely skimming, however in the case of a full pipeline this variable must return an AnalysisParameters() named tuple and if required the user can fill in the AnalysisParameters with kwargs as shown below Note, AnalysisParameters also has a value called ‘globaltag’ in which a list of globaltags can be passed which will be attached to the analysis basf2 path.

name: str | None = 'ExampleFullPipeline'#
get_skim_attributes()[source]#
  • Skim Types: feiSL, feiHadronic

  • Globaltag: analysis_tools_light-2305-korat

  • Skim to Analysis Pipeline: True

create_basf2_path(treename: str)[source]#

Create the basf2 path for the validation of this mode. Consult the source for specifics on the validation steering

property analysis_validation_histograms: List[Histogram]#

Histograms:

cosThetaBY

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component : cosThetaBY

    cut: sigProbRank==1

cosThetaBY_allVSrank1

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component 1: cosThetaBY_allVSrank1

  • Component 2: cosThetaBY_allVSrank1

    cut: sigProbRank==1

Mbc

  • Label: \(Mbc\)

  • Range: (2.5, 7.5)

  • Units: GeV/c^2

dmID

  • Label: \(dmID\)

  • Range: (0, 20)

  • Units:

foxWolframR2

  • Label: \(foxWolframR2\)

  • Range: (0, 1)

  • Units:

get_number_of_signal_for_efficiency(df: DataFrame) float[source]#
class vibe.skim_production_modes.example.ExampleSkim.ExampleSkim(base_path: str, exp: int | None = None, run_type: str | None = None, processing_id: str | None = None, run_range: Tuple[int, int] | None = None, release: str | None = None, offline_run: bool | None = False)[source]#

Bases: ValidationModeBaseClass

name: str | None = 'ExampleSkim'#
create_basf2_path()[source]#

Create the basf2 path for the validation of this mode. Consult the source for specifics on the validation steering

get_skim_attributes()[source]#
  • Skim Types: feiSL

  • Globaltag: analysis_tools_light-2305-korat

  • Skim to Analysis Pipeline: False

class vibe.skim_production_modes.example.offline_skim_fullpipeline.TestOfflineSkim(base_path: str, exp: int | None = None, run_type: str | None = None, processing_id: str | None = None, run_range: Tuple[int, int] | None = None, release: str | None = None, offline_run: bool | None = False)[source]#

Bases: ValidationModeBaseClass

An example template for a full skim->validation pipeline in vibe.

Parameters#

namestr

Unique name of your skim mode class. This must match a key inside the skim_production_modes.JSON file

NOTE#

  • This template in conjunction with the skim_production_modes.JSON file allows the user to submit any number of skims over any number of MC types.

  • The create_basf2_path function is used to construct the basf2 path for analysis reconstruction and validation of the skimmed MC.

  • The customisation allowed to a user is through the get_skim_attributes method. In here, the user must fill out the named tuple SkimAttributes as shown below.

skim_name

The skim_name property must be at least a string containing a valid skim name (this is checked at the beginning of run time). However, skim_name can be overloaded to be a list of skim names in which the user can have multiple skims run at once over the same MC. This is useful say for the fei, combining feiSl and feiHadronic such that: skim_name = [‘feiSL’,’feiHadronic’]

globaltag

The globaltag is an optional property. If the user requires a specific globaltag for their skims then is is vital they input it here. If None is given then the most up-to-date globaltag will be used.

grid_test_mode :

This flag if set to true will reduce the number of events per grid job to 100 events. Note that for skim names with low retentions, there is a chance that no ntuple will be saved to the grid if the retention threshold is not met.

skim_to_analysis_pipeline :

This variable can either be False for purely skimming, however in the case of a full pipeline this variable must return an AnalysisParameters() named tuple and if required the user can fill in the AnalysisParameters with kwargs as shown below Note, AnalysisParameters also has a value called ‘globaltag’ in which a list of globaltags can be passed which will be attached to the analysis basf2 path.

name: str | None = '2offlineSkimExample'#
get_skim_attributes()[source]#
  • Skim Types: BtoXll, BtoXgamma

  • Globaltag: analysis_tools_light-2305-korat

  • Skim to Analysis Pipeline: True

create_basf2_path(treename: str)[source]#

Create the basf2 path for the validation of this mode. Consult the source for specifics on the validation steering

property analysis_validation_histograms: List[Histogram]#

Histograms:

cosThetaBY

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component : cosThetaBY

    cut: sigProbRank==1

cosThetaBY_allVSrank1

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component 1: cosThetaBY_allVSrank1

  • Component 2: cosThetaBY_allVSrank1

    cut: sigProbRank==1

Mbc

  • Label: \(Mbc\)

  • Range: (2.5, 7.5)

  • Units: GeV/c^2

dmID

  • Label: \(dmID\)

  • Range: (0, 20)

  • Units:

foxWolframR2

  • Label: \(foxWolframR2\)

  • Range: (0, 1)

  • Units:

get_number_of_signal_for_efficiency(df: DataFrame) float[source]#
class vibe.skim_production_modes.example.offline_skim.OfflineSkim(base_path: str, exp: int | None = None, run_type: str | None = None, processing_id: str | None = None, run_range: Tuple[int, int] | None = None, release: str | None = None, offline_run: bool | None = False)[source]#

Bases: ValidationModeBaseClass

An example template for a full skim->validation pipeline in vibe.

Parameters#

namestr

Unique name of your skim mode class. This must match a key inside the skim_production_modes.JSON file

NOTE#

  • This template in conjunction with the skim_production_modes.JSON file allows the user to submit any number of skims over any number of MC types.

  • The create_basf2_path function is used to construct the basf2 path for analysis reconstruction and validation of the skimmed MC.

  • The customisation allowed to a user is through the get_skim_attributes method. In here, the user must fill out the named tuple SkimAttributes as shown below.

skim_name

The skim_name property must be at least a string containing a valid skim name (this is checked at the beginning of run time). However, skim_name can be overloaded to be a list of skim names in which the user can have multiple skims run at once over the same MC. This is useful say for the fei, combining feiSl and feiHadronic such that: skim_name = [‘feiSL’,’feiHadronic’]

globaltag

The globaltag is an optional property. If the user requires a specific globaltag for their skims then is is vital they input it here. If None is given then the most up-to-date globaltag will be used.

grid_test_mode :

This flag if set to true will reduce the number of events per grid job to 100 events. Note that for skim names with low retentions, there is a chance that no ntuple will be saved to the grid if the retention threshold is not met.

skim_to_analysis_pipeline :

This variable can either be False for purely skimming, however in the case of a full pipeline this variable must return an AnalysisParameters() named tuple and if required the user can fill in the AnalysisParameters with kwargs as shown below Note, AnalysisParameters also has a value called ‘globaltag’ in which a list of globaltags can be passed which will be attached to the analysis basf2 path.

name: str | None = '3offlineSkimExample'#
get_skim_attributes()[source]#
  • Skim Types: BtoXll, BtoXgamma

  • Globaltag: analysis_tools_light-2305-korat

  • Skim to Analysis Pipeline: False

create_basf2_path(treename: str)[source]#

Create the basf2 path for the validation of this mode. Consult the source for specifics on the validation steering

property analysis_validation_histograms: List[Histogram]#

Histograms:

cosThetaBY

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component : cosThetaBY

    cut: sigProbRank==1

cosThetaBY_allVSrank1

  • Label: \(cos\theta_{BY}\)

  • Range: (-5, 5)

  • Units:

  • Component 1: cosThetaBY_allVSrank1

  • Component 2: cosThetaBY_allVSrank1

    cut: sigProbRank==1

Mbc

  • Label: \(Mbc\)

  • Range: (2.5, 7.5)

  • Units: GeV/c^2

dmID

  • Label: \(dmID\)

  • Range: (0, 20)

  • Units:

foxWolframR2

  • Label: \(foxWolframR2\)

  • Range: (0, 1)

  • Units:

get_number_of_signal_for_efficiency(df: DataFrame) float[source]#