logo

basf2 release-08-02-06 documentation

  • 1. What’s New
  • 2. Installation and Setup
    • 2.1. Setup of the Belle II Software
    • 2.2. Belle II Software Tools
    • 2.3. Local Installation
    • 2.4. b2venv : Using basf2 in a virtual environment
  • 3. Beginners’ tutorials
    • 3.1. Welcome!
      • 3.1.1. Collaborative Tools.
    • 3.2. Fundamentals
      • 3.2.1. Introduction
      • 3.2.2. Data Taking
      • 3.2.3. Simulation: The Monte Carlo
      • 3.2.4. Reconstruction
      • 3.2.5. Analysis
    • 3.3. Software Prerequisites
      • 3.3.1. Command Line Tutorial (Bash)
      • 3.3.2. SSH - Secure Shell
      • 3.3.3. Python
      • 3.3.4. Version Control with Git
    • 3.4. Working with Belle II software.
      • 3.4.1. The basics.
      • 3.4.2. First steering file
      • 3.4.3. The Rest of Event (ROE)
      • 3.4.4. Various additions
      • 3.4.5. Flavor tagging
      • 3.4.6. Vertex fitting
      • 3.4.7. Event display
      • 3.4.8. Generating Monte Carlo
      • 3.4.9. Full Event Interpretation
      • 3.4.10. Continuum Suppression (CS)
      • 3.4.11. B2BII
      • 3.4.12. Skimming
      • 3.4.13. A simple python module
    • 3.5. Offline analysis
      • 3.5.1. ROOT
      • 3.5.2. Pandas
      • 3.5.3. Fitting
      • 3.5.4. Reproducibility
      • 3.5.5. Topology analysis
    • 3.6. Data model and computing
      • 3.6.1. Analysis model
      • 3.6.2. The computing system
      • 3.6.3. Gbasf2
      • 3.6.4. Batch submission
      • 3.6.5. htcondor
    • 3.7. Workflow Management
      • 3.7.1. b2luigi
        • Offline Analysis
        • Reconstruction on KEKcc Batch System
        • Skim using gbasf2
        • Full Workflow Execution
      • 3.7.2. snakemake
        • Workflow Logic Code in the Snakefile
        • Separate Scripts for the Snakemake Workflow
        • Full Workflow Execution
    • 3.8. Join us
      • 3.8.1. We want YOU to contribute to this book!
      • 3.8.2. How to contribute
  • 4. Command Line Tools
    • 4.1. basf2 : The Main Belle2 Software Executable
    • 4.2. Tools for file handling
    • 4.3. Testing Tools
    • 4.4. Tools which will provide you help
    • 4.5. Tools to help with debugging and checking code quality
    • 4.6. b2conditionsdb : Conditions DB interface
    • 4.7. Tools for luminosity
  • 5. Belle II Python Interface
    • 5.1. Modules and Paths
    • 5.2. Logging
    • 5.3. Module Statistics
    • 5.4. Conditions Database
    • 5.5. Additional Functions
    • 5.6. Other Modules
      • 5.6.1. basf2.utils - Helper functions for printing basf2 objects
      • 5.6.2. basf2.pickle_path - Functions necessary to pickle and unpickle a Path
      • 5.6.3. B2Tools
      • 5.6.4. b2test_utils - Helper functions useful for test scripts
      • 5.6.5. conditions_db
      • 5.6.7. hep_ipython_tools
      • 5.6.8. iov_conditional - Functions to Execute Paths Depending on Experiment Phases
      • 5.6.9. pdg - access particle definitions
      • 5.6.10. rundb - Helper classes for retrieving information from the RunDB
      • 5.6.11. terminal_utils - Helper functions for input from/output to a terminal
  • 6. List of Core Modules
  • 7. Analysis
    • 7.1. Particles
      • 7.1.1. Standard Particles
      • 7.1.2. DecayString
      • 7.1.3. Cut strings and selections
    • 7.2. Modular analysis convenience functions
      • 7.2.1. ModularAnalysis
      • 7.2.2. Photon functions
    • 7.3. Variables
    • 7.4. Output for offline analysis
      • 7.4.1. Variable Manager Output
      • 7.4.2. (Advanced) user mDST files
    • 7.5. Vertex (and kinematic) fitting
      • 7.5.1. Tree Fitter
      • 7.5.2. Other vertex (and kinematic) fitters in basf2
      • 7.5.3. Vertex-fitting convenience functions
      • 7.5.4. Kinematic-fitting convenience functions
    • 7.6. Event based analysis
    • 7.7. Truth-matching
    • 7.8. Advanced Topics
      • 7.8.1. Rest Of Event
      • 7.8.2. How to Veto
      • 7.8.3. Flavor Tagger
      • 7.8.4. Deep Flavor Tagger
      • 7.8.5. Full event interpretation
      • 7.8.6. EventShape
      • 7.8.7. Continuum suppression
      • 7.8.8. Basf2 MVA interface
      • 7.8.9. PID Prior Probabilities
      • 7.8.10. ksSelector
      • 7.8.11. PID Calibration Weights
      • 7.8.12. Signal Embedding
    • 7.9. Full list of analysis modules
  • 8. B2BII
    • 8.1. Overview
    • 8.2. B2BII Analysis
    • 8.3. Converted data objects and other information
    • 8.4. Belle MDST samples
    • 8.5. FAQ
    • 8.6. b2bii functions
  • 9. Background module
  • 10. Calibration
    • 10.1.1. The Calibration Framework (CAF)
    • 10.2.1. Prompt Calibration Tools
  • 11. The Belle II Event Display
  • 12. Event Generators
    • 12.1. Generators python modules
    • 12.2. Modules in the Generators Package
    • 12.3. Selective background simulation using graph neural networks
    • 12.4. Validation
  • 13. Tools for Validation of the SoftwareTrigger
  • 14. KLM ( \(K_{L}^0\) and Muon Detector)
    • 14.3.1. Track extrapolation
    • 14.4.1. Creation of default payloads
  • 15. Belle II File Format
  • 16. MVA package
  • 17. PXD
    • 17.1. Background Generator
  • 18. Reconstruction
  • 19. Simulation
    • Belle2 Physics List
    • 19.3.1. Secondary Particles
    • 19.4.1. FullSim
  • 20. Skims
    • 20.1. Systematics skims
    • 20.2. Physics skims
    • 20.3. Standard skim lists
    • 20.4. Information for skim experts
  • 21. SVD
    • 21.1. SVD Reconstruction
    • 21.2. SVD Offline Calibration
    • 21.3. SVD Simulation
    • 21.4. SVD Tools
    • 21.5. SVD Utility Functions
    • 21.6. SVD DQM
    • 21.7. SVD DataStore
    • 21.8. SVD DBStore
    • 21.9. Documentation To Do List
  • 22. Tracking
    • 22.1. Track Parameterization
    • 22.2. Track Finding Algorithms
      • 22.2.1. SVD Track Finding
      • 22.2.2. CDC Track Finding
      • 22.2.3. Inter-Detector Hit Finding
      • 22.2.4. Track Quality Indicator
    • 22.3. Track Fitting
    • 22.4. Tracking for Special Classes of Tracks
    • 22.5. Track Refining
    • 22.6. Track Matching
    • 22.7. Time Extraction
    • 22.8. PXD ROI Finding
    • 22.9. Tracking Calibrations
    • 22.10. Tracking Utility Functions
    • 22.11. Tools
    • 22.12.1. Tracking DataStore (dataobjects)
    • 22.12.2. Database Objects
    • 22.12.3. Data Quality Monitoring Utilities
    • 22.12.4. Documentation of the tracking modules
    • 22.12.5. Space Point Creation
    • 22.12.6. SVD Region of Interest Finder
    • 22.12.7. Tests for the tracking package
    • 22.12.8. The tracking validation package
    • 22.12.9. VXD Cellular Automaton Tracking
    • 22.12.10. VXD Momentum Estimation
  • 23. TRG
  • 24. Tools for Physics Validation of the Software
  • 25. Fitting training
    • 25.1. Before you start
    • 25.2. Fitting examples
      • 25.2.1. Simple 1D fit
      • 25.2.2. Efficiency fit
      • 25.2.3. Lifetime 2D fit
      • 25.2.4. Dalitz fit
    • 25.3. Basic introduction to Minuit
      • 25.3.1. Installation instructions
      • 25.3.2. What is Minuit?
    • 25.4. Basic introduction to Hydra
      • 25.4.1. Installation instructions
      • 25.4.2. What is Hydra?
    • 25.5. Basic introduction to BAT
      • 25.5.1. Installation instructions
      • 25.5.2. What is BAT?
      • 25.5.4. Simple 1D Fit with Bat
      • 25.5.5. Simple 1D Model Comparison with BAT
      • 25.5.6. Lifetime 2D Fit with Bat
  • 26. Software development
    • 26.1. How to write basf2 code (coding conventions)
    • 26.2. Updating the main globaltag
  • 27. How to document your code with Sphinx
    • 27.1. Documentation of Python Code
    • 27.2. Referencing Components
    • 27.3. Inserting Figures
    • 27.4. Documentation of Variables and Modules in C++
    • 27.5. Google Style Docstrings
    • 27.6. Add basf2 Modules Documentation to Sphinx
    • 27.7. Add basf2 Variables Documentation to Sphinx
    • 27.8. Additional Features
    • 27.9. Additional boxes for the online lessons
    • 27.10. How to test locally
    • 27.11. Previewing documentation changes in a pull request
Theme by the Executable Book Project
  • .rst

Software development

26. Software development#

This section collects some relevant information about the software development within basf2.

  • 26.1. How to write basf2 code (coding conventions)
    • 26.1.1. General rules
    • 26.1.2. Directories structure
    • 26.1.3. Naming conventions
    • 26.1.4. Namespaces
    • 26.1.5. Classes
    • 26.1.6. Order of class members
    • 26.1.7. Initialisation
    • 26.1.8. Data objects
    • 26.1.9. Random numbers
    • 26.1.10. Error handling
    • 26.1.11. Files
    • 26.1.12. Code Formatting Style
    • 26.1.13. Documentation
    • 26.1.14. Further Suggestions
  • 26.2. Updating the main globaltag
    • 26.2.1. Preparation of payloads
      • Create a new payload
      • Update a payload to contain new contents without changing its definition
      • Modify an existing payload definition
    • 26.2.2. Testing of all changes
    • 26.2.3. Update procedure

previous

25.5.6. Lifetime 2D Fit with Bat

next

26.1. How to write basf2 code (coding conventions)

By Belle II Software Group
© Copyright Belle II Collaboration.