Code
Jump to navigation
Jump to search
Building code
- Basic recipe for creating a satellite release based on 'Mu2e_release' installed in cvmfs
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups setup mu2e /cvmfs/mu2e.opensciencegrid.org/Offline/'Mu2e_release'/SLF6/prof/Offline/bin/createSatelliteRelease cd Satellite source setup.sh [add content] scons -j 4
- Basic recipe for setup, full checkout and build (GitHub) (For more details see GitHubWorkflow). The following will produce a working directory that CANNOT be used to update the remote repository. It is useful only for running tests, not for developing code.
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups setup mu2e git clone https://github.com/mu2e/Offline cd Offline git checkout -b work source setup.sh scons -j 4
- Basic recipe for setup, full checkout and build (Redmine)
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups setup mu2e - The following will produce a working directory that CANNOT be used to update the remote repository. It is useful only for running tests, not for developing code. - git clone http://cdcvs.fnal.gov/projects/mu2eofflinesoftwaremu2eoffline/Offline.git - For a read-write working directory appropriate for developing code.- git clone ssh://p-mu2eofflinesoftwaremu2eoffline@cdcvs.fnal.gov/cvs/projects/mu2eofflinesoftwaremu2eoffline/Offline.git cd Offline git checkout -b work source setup.sh scons -j 4
- for building options (debug,trigger,visualization) see
./buildopts --help
- ReleaseList - notes on purpose for each published release
- UPS - notes on using the UPS product setup
- git - code repository management
- scons - primary code build tool
- Link Lists
- LXR - cross-linked code browser
- pgit - git partial checkout for building only the part of the code base you need
- Satellite Releases - for building only the part of the code base you need
- Debugging
- CVS - a few pieces of code are still in the CVS repository
Configuring executables
- fcl - intro to fcl art job control language
- paths - which modules and what order
- I/O modules
- Message logger
- Search paths - how data, fcl, and other control files are found
- SimpleConfig - another way to input parameters to an executable
- Simulation - an overview
- RunNumbers - how run numbers ranges are used
- Generators - generating the first particle
- CORSIKA cosmic ray simulation
- Staging - how and why of running the simulation in stages
- Time simulation - adding lifetimes
- Bunch intensity - simulating bunch-to-bunch variations
- Mixing - mixing background and signal simulation
- Generators - generating the first particle
- Other applications
- EventDisplays
- Ntuples - data access at the interactive level
- Machine learning - neural networks
Modules, Products, and Services
- Modules
- Products
- Geometry
- Alignment
- Random numbers:
- Magnetic Field Maps
- Conditions Data
- Services
- SimpleConfig
- Exceptions
- Message logger
- art error codes
Code Management
- ReleaseList
- git - overview and pointers to detailed and mu2e-specific instructions
- Validation - automatic and occasional procedures for validation
- Jenkins - a central build platform
- CVMFS
- Download - pull a local copy to remote institutions or laptops
- scisoft - server for product manifests
- BTrk - the KalMan fitter code is in this non-standard product
- CVS
- CodeDepencyGraph - how ot make the code dependency graph
- DAQ DAQ redmine
- building root
- checkPrerequisites tool - check linux has rpms needed by art
Standards and Practices
- CodingStandards - an overview of code issues
- CodeTools - code formatting and checking tools
- Magic numbers - where to get value of pi, etc.
- Editors - tips on editors and policy of not using tab characters.
- Debugging
- GeantTips
- ISO 8601 time format
- CMS code references:
- FAQs
External Packages
- UPS manual getting started
- Mu2e code lab LXR Mu2e LXR LXR project
- art doc redmine browser art-users product flags error codes
- recent art stakeholders meetings; older art stakeholders meetings
- artdaq wiki
- Paterno memory profiling instructions
- valgrind]
- MAP and DDT debuggers
- CMS Framework LXR
- CMS github PR more info
- root docs
- geant at Fermilab DOxygen(v9.4.p01) LXR
- G4Beamline Mu2e manual
- CLHEP CLHEP(v.2.2.0.4)
- HepPDT
- fhicl fhicl-cpp
- cetlib browser
- Message Facility browser
- cpp0x browser
- boost browser
- BTrk browser
- LXR browsers for many Fermilab projects
- scons
- MARS (password protected)