Code: Difference between revisions
Jump to navigation
Jump to search
(70 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
== Building code == | == Building code == | ||
* | * [[End of Life for Scientific Linux 7]] Instructions needed for June 2024 only. | ||
* [[UPS to Spack Transition]] ongoing from spring 2024 | |||
* [[CodeEnvironment]] how to setup the linux environment | |||
setup | * [[GitIntro]] code management preliminaries for newcomers | ||
* [[OfflineStatus]] which branch or tag of Mu2e Offline you should start from | |||
* [[GitHubWorkflow]] - code repository checkout and commit procedures | |||
* [[IncludeFiles]] - where to find include files | |||
- | * [[Muse]] - Mu2e code setup and build scripts | ||
* [[scons]] - internal commercial build tool, called by Muse | |||
* [[Building Offline with cmake]] - DAQ is building Offline using a different commercial tool. | |||
* [[CodeDebugging|Debugging]] code debugging tools and tips | |||
* [https://www.github.com/Mu2e Mu2e github organization] | |||
* [[UPS|UPS]] - using the Fermilab UPS product setup | |||
* [[Redmine]] - a few pieces of code are still in the redmine git repository | |||
* | |||
* [[ | |||
* [[ | |||
* [[ | |||
* [ | |||
* [[ | |||
* [[ | |||
* [[CVS]] - a few pieces of code are still in the CVS repository | * [[CVS]] - a few pieces of code are still in the CVS repository | ||
== Configuring executables == | == Configuring executables == | ||
* [[FclIntro|fcl]] - intro to fcl art job control language | |||
** [[FclPaths|paths]] - which modules and what order | ** [[FclPaths|paths]] - which modules and what order | ||
** [[FclIOModules|I/O modules]] | ** [[FclIOModules|I/O modules]] | ||
Line 47: | Line 24: | ||
* [[SearchPaths|Search paths]] - how data, fcl, and other control files are found | * [[SearchPaths|Search paths]] - how data, fcl, and other control files are found | ||
* [[SimpleConfig|SimpleConfig]] - another way to input parameters to an executable | * [[SimpleConfig|SimpleConfig]] - another way to input parameters to an executable | ||
* Simulation | * [[Simulation|Simulation]] - an overview | ||
** [[ | ** [[SimulationFCL]] - fcl procedures for MDC2020 and later | ||
** [[Generators]] - generating the first particle | ** [[Generators]] - generating the first particle | ||
*** [[CORSIKA]] cosmic ray simulation | |||
** [[Staging|Staging]] - how and why of running the simulation in stages | ** [[Staging|Staging]] - how and why of running the simulation in stages | ||
** [[TimeSim|Time simulation]] - adding lifetimes | ** [[TimeSim|Time simulation]] - adding lifetimes | ||
** [[BunchIntensity|Bunch intensity]] - simulating bunch-to-bunch variations | ** [[BunchIntensity|Bunch intensity]] - simulating bunch-to-bunch variations | ||
** [[Mixing|Mixing]] - mixing background and signal simulation | ** [[Mixing|Mixing]] - mixing background and signal simulation | ||
** [[RunNumbers]] - how run numbers ranges are used | |||
* Other applications | * Other applications | ||
** [[EventDisplays]] | ** [[EventDisplays]] | ||
** [ | ** [[Ntuples]] - data access at the interactive level | ||
** [[MachineLearning|Machine learning]] - neural networks | |||
== Modules, Products, and Services == | == Modules, Products, and Services == | ||
Line 64: | Line 43: | ||
** [[FclIOModules|I/O modules]] | ** [[FclIOModules|I/O modules]] | ||
** [[FilterModules|Filter Modules]] | ** [[FilterModules|Filter Modules]] | ||
* Products | * Products | ||
** [[ReadProducts|Reading products]] | ** [[ReadProducts|Reading products]] | ||
Line 75: | Line 53: | ||
** [[SchemaEvolution| Schema Evolution]] | ** [[SchemaEvolution| Schema Evolution]] | ||
* [[Geometry|Geometry]] | * [[Geometry|Geometry]] | ||
** [http://mu2e-docdb.fnal.gov | ** [http://mu2e-docdb.fnal.gov/cgi-bin/ShowDocument?docid=1120 Units and Coordinate Systems] | ||
* [[Alignment]] | |||
* Random numbers: | * Random numbers: | ||
** [[RandomNumbersBasic|Basic Instructions]] | ** [[RandomNumbersBasic|Basic Instructions]] | ||
Line 81: | Line 60: | ||
* [[MagneticFieldMaps|Magnetic Field Maps]] | * [[MagneticFieldMaps|Magnetic Field Maps]] | ||
* [[ConditionsData|Conditions Data]] | * [[ConditionsData|Conditions Data]] | ||
** [https://mu2einternalwiki.fnal.gov/wiki/CalibrationSets CalibrationSets] | |||
* [[Services|Services]] | * [[Services|Services]] | ||
** [[ArtServices|Framework services]] | ** [[ArtServices|Framework services]] | ||
Line 86: | Line 66: | ||
* [[Exceptions|Exceptions]] | * [[Exceptions|Exceptions]] | ||
* [[MessageLogger|Message logger]] | * [[MessageLogger|Message logger]] | ||
* [[PyWrap]] - wrap compiled c++ code so it can be used in python | |||
* [https://cdcvs.fnal.gov/redmine/projects/art/wiki/ArtExitCodes art error codes] | * [https://cdcvs.fnal.gov/redmine/projects/art/wiki/ArtExitCodes art error codes] | ||
* [[Elastic Analysis Facility (EAF)|Elastic Analysis Facility (EAF)]] | |||
== Code Management == | == Code Management == | ||
* [[Spack]] - setup and build tool to replace UPS and MRB | |||
* [[SpackMaintenance]] - expert procedures and debugging | |||
* [[Legacy_Access_to_SL7]] | |||
* [[MuseMaintenance]] - Muse procedures for experts | |||
* [[ReleaseList]] | * [[ReleaseList]] | ||
* [[Git|git]] - overview and pointers to detailed and mu2e-specific instructions | * [[Git|git]] - overview and pointers to detailed and mu2e-specific instructions | ||
* [[Validation]] - automatic and occasional procedures for validation | * [[Validation]] - automatic and occasional procedures for validation | ||
* [[GeantChecklist]] - validation of new geant versions | |||
* [[Jenkins]] - a central build platform | * [[Jenkins]] - a central build platform | ||
* | * [[Cvmfs|CVMFS]] - a virtual disk mount containing our code | ||
* [[ | * [[Docker]] a portable software container to hold and run our environment and software | ||
* [[CodeDistribution|Download]] - pull a local copy to remote institutions or laptops | * [[CodeDistribution|Download]] - pull a local copy to remote institutions or laptops | ||
* [[Scisoft|scisoft]] - server for product manifests | * [[Scisoft|scisoft]] - server for product manifests | ||
* [[BTrk]] - the | * [[BTrk]] - (deprecated) the Kalman fitter code is in this non-standard product | ||
* [[KinKal]] - a repo and UPS product containing the core track Kalman fit code | |||
* [[CVS]] | * [[CVS]] | ||
* [[CodeDepencyGraph]] - how to make the code dependency graph | |||
* [[DAQ]] [https://cdcvs.fnal.gov/redmine/projects/mu2edaq/wiki DAQ redmine] | * [[DAQ]] [https://cdcvs.fnal.gov/redmine/projects/mu2edaq/wiki DAQ redmine] | ||
* [[RootBuild|building root]] | |||
* [https://cdcvs.fnal.gov/redmine/projects/artutilscripts/repository/revisions/master/raw/tools/checkPrerequisites checkPrerequisites tool] - check linux has rpms needed by art | |||
* [[SconsUPS]] - how to build a new version of scons, packaged for UPS | |||
* [[Pyana]] - setting up python analysis packages | |||
* [[Github_CI_Maintenance|Github CI Maintenance]] - information about the CI repo, used by Jenkins for build tests | |||
== Standards and Practices == | == Standards and Practices == | ||
* [[CodingStandards]] - an overview of code issues | * [[CodingStandards]] - an overview of code issues | ||
* [[CodeTools]] - code formatting and checking tools | |||
* [[MagicNumbers|Magic numbers]] - where to get value of pi, etc. | * [[MagicNumbers|Magic numbers]] - where to get value of pi, etc. | ||
* [[Editors|Editors]] - tips on editors and policy of not using tab characters. | * [[Editors|Editors]] - tips on editors and policy of not using tab characters. | ||
* [[CodeDebugging|Debugging]] | * [[CodeDebugging|Debugging]] | ||
* [[GeantTips]] | |||
* [https://en.wikipedia.org/wiki/ISO_8601 ISO 8601 time format] | |||
* CMS code references: | * CMS code references: | ||
** [https://twiki.cern.ch/twiki/bin/view/CMSPublic/WebHome Home] | ** [https://twiki.cern.ch/twiki/bin/view/CMSPublic/WebHome Home] | ||
Line 115: | Line 112: | ||
** [[LinuxFAQ|linux]] | ** [[LinuxFAQ|linux]] | ||
** [[RootFAQ|root]] | ** [[RootFAQ|root]] | ||
** [http://thbecker.net/articles/rvalue_references/section_01.html move semantics and r-value references] | |||
== External Packages == | == External Packages == | ||
* [[UPS| UPS]] [ | * [[UPS| UPS]] [https://cdcvs.fnal.gov/redmine/projects/ups/wiki/ReferenceManual/ manual] [https://cdcvs.fnal.gov/redmine/projects/ups/wiki/Getting_Started_Using_UPS getting started] | ||
* [https://cdcvs.fnal.gov/redmine/projects/mu2eofflinesoftwaremu2eoffline/repository | * Mu2e [https://github.com/Mu2e github] [https://cdcvs.fnal.gov/redmine/projects/mu2eofflinesoftwaremu2eoffline/repository redmine] [http://cdcvs.fnal.gov/lxr lab LXR] [http://cdcvs.fnal.gov/lxr/mu2eofflinesoftware/index.html Mu2e LXR] [https://lxr.sourceforge.io/en/index.php LXR project] | ||
* [https://web.fnal.gov/project/ArtDoc/Pages/home.aspx art] [https://web.fnal.gov/project/ArtDoc/SitePages/documentation.aspx doc] [https://cdcvs.fnal.gov/redmine/projects/art redmine] [https://cdcvs.fnal.gov/redmine/projects/art/repository/revisions/master/show/art browser] [https://listserv.fnal.gov/scripts/wa.exe?A0=ART-USERS art-users] [https://cdcvs.fnal.gov/redmine/projects/cet-is-public/wiki/AboutQualifiers product flags] [https://cdcvs.fnal.gov/redmine/projects/art/wiki/ArtExitCodes error codes] | * [https://web.fnal.gov/project/ArtDoc/Pages/home.aspx art] [https://web.fnal.gov/project/ArtDoc/SitePages/documentation.aspx doc] [https://github.com/art-framework-suite github] [https://cdcvs.fnal.gov/redmine/projects/art redmine] [https://cdcvs.fnal.gov/redmine/projects/art/repository/revisions/master/show/art browser] [https://listserv.fnal.gov/scripts/wa.exe?A0=ART-USERS art-users] [https://cdcvs.fnal.gov/redmine/projects/cet-is-public/wiki/AboutQualifiers product flags] [https://cdcvs.fnal.gov/redmine/projects/art/wiki/ArtExitCodes error codes] | ||
* [https://gcc.gnu.org/projects/cxx-status.html gcc features development] [https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.iso gcc library dependence] | |||
* [https://indico.fnal.gov/category/1191/ recent art stakeholders meetings]; [https://cdcvs.fnal.gov/redmine/projects/art/wiki/Stakeholder_meeting_presentations older art stakeholders meetings] | |||
* [https://cdcvs.fnal.gov/redmine/projects/artdaq/wiki artdaq wiki] | |||
* [http://rpubs.com/paterno/303233 Paterno memory profiling instructions] | * [http://rpubs.com/paterno/303233 Paterno memory profiling instructions] | ||
* [http://valgrind.org valgrind]] | |||
* [https://cdcvs.fnal.gov/redmine/projects/art/wiki/Getting_started_with_MAP_and_DDT MAP and DDT debuggers] | * [https://cdcvs.fnal.gov/redmine/projects/art/wiki/Getting_started_with_MAP_and_DDT MAP and DDT debuggers] | ||
* [https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuide CMS Framework] [http://cmslxr.fnal.gov/lxr/ LXR] | * [https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuide CMS Framework] [http://cmslxr.fnal.gov/lxr/ LXR] | ||
* [https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/SetupCMSbotScriptsYourOrg CMS github PR] [https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/Maintaining_CMSbot_scripts_and_Jenkins_jobs more info] | |||
* [https://root.cern.ch/root/ root] [https://root.cern.ch/guides/reference-guide docs] | * [https://root.cern.ch/root/ root] [https://root.cern.ch/guides/reference-guide docs] | ||
* [http://geant4.web.cern.ch/geant4/ geant] [https://web.fnal.gov/project/Geant4/SitePages/Home.aspx at Fermilab] [http://www-geant4.kek.jp/Reference/9.4.p01/Geant4 DOxygen(v9.4.p01)] [http://www-geant4.kek.jp/LXR/ LXR] | * [http://geant4.web.cern.ch/geant4/ geant] [https://web.fnal.gov/project/Geant4/SitePages/Home.aspx at Fermilab] [http://www-geant4.kek.jp/Reference/9.4.p01/Geant4 DOxygen(v9.4.p01)] [http://www-geant4.kek.jp/LXR/ LXR] | ||
* [http://public.muonsinc.com/Projects/G4beamline.aspx G4Beamline] [http://mu2e-docdb.fnal.gov | * [[Geant4Examples]] How to run the standard Geant4 examples on the Mu2e interactive machines. | ||
* [http://public.muonsinc.com/Projects/G4beamline.aspx G4Beamline] [http://mu2e-docdb.fnal.gov/cgi-bin/ShowDocument?docid=1490 Mu2e manual] | |||
* [http://proj-clhep.web.cern.ch/proj-clhep/ CLHEP] [http://proj-clhep.web.cern.ch/proj-clhep/doc/CLHEP_2_2_0_4/html/ CLHEP(v.2.2.0.4)] | * [http://proj-clhep.web.cern.ch/proj-clhep/ CLHEP] [http://proj-clhep.web.cern.ch/proj-clhep/doc/CLHEP_2_2_0_4/html/ CLHEP(v.2.2.0.4)] | ||
* [http://lcgapp.cern.ch/project/simu/HepPDT/ HepPDT] | * [http://lcgapp.cern.ch/project/simu/HepPDT/ HepPDT] | ||
* [https://cdcvs.fnal.gov/redmine/projects/fhicl-cpp/repository fhicl-cpp] | * [https://cdcvs.fnal.gov/redmine/projects/fhicl/wiki fhicl] [https://cdcvs.fnal.gov/redmine/projects/fhicl-cpp/repository fhicl-cpp] | ||
* [https://cdcvs.fnal.gov/redmine/projects/cetlib cetlib] [https://cdcvs.fnal.gov/redmine/projects/cetlib/repository browser] | * [https://cdcvs.fnal.gov/redmine/projects/cetlib cetlib] [https://cdcvs.fnal.gov/redmine/projects/cetlib/repository browser] [https://fnalssi.github.io/cetmodules/ cetmodules] | ||
* [https://cdcvs.fnal.gov/redmine/projects/messagefacility Message Facility] [https://cdcvs.fnal.gov/redmine/projects/messagefacility/repository browser] | * [https://cdcvs.fnal.gov/redmine/projects/messagefacility Message Facility] [https://cdcvs.fnal.gov/redmine/projects/messagefacility/repository browser] | ||
* [https://cdcvs.fnal.gov/redmine/projects/cpp0x cpp0x] [https://cdcvs.fnal.gov/redmine/projects/cpp0x/repository browser] | * [https://cdcvs.fnal.gov/redmine/projects/cpp0x cpp0x] [https://cdcvs.fnal.gov/redmine/projects/cpp0x/repository browser] |
Latest revision as of 16:15, 23 August 2024
Building code
- End of Life for Scientific Linux 7 Instructions needed for June 2024 only.
- UPS to Spack Transition ongoing from spring 2024
- CodeEnvironment how to setup the linux environment
- GitIntro code management preliminaries for newcomers
- OfflineStatus which branch or tag of Mu2e Offline you should start from
- GitHubWorkflow - code repository checkout and commit procedures
- IncludeFiles - where to find include files
- Muse - Mu2e code setup and build scripts
- scons - internal commercial build tool, called by Muse
- Building Offline with cmake - DAQ is building Offline using a different commercial tool.
- Debugging code debugging tools and tips
- Mu2e github organization
- UPS - using the Fermilab UPS product setup
- Redmine - a few pieces of code are still in the redmine git repository
- 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
- SimulationFCL - fcl procedures for MDC2020 and later
- 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
- RunNumbers - how run numbers ranges are used
- 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
- PyWrap - wrap compiled c++ code so it can be used in python
- art error codes
- Elastic Analysis Facility (EAF)
Code Management
- Spack - setup and build tool to replace UPS and MRB
- SpackMaintenance - expert procedures and debugging
- Legacy_Access_to_SL7
- MuseMaintenance - Muse procedures for experts
- ReleaseList
- git - overview and pointers to detailed and mu2e-specific instructions
- Validation - automatic and occasional procedures for validation
- GeantChecklist - validation of new geant versions
- Jenkins - a central build platform
- CVMFS - a virtual disk mount containing our code
- Docker a portable software container to hold and run our environment and software
- Download - pull a local copy to remote institutions or laptops
- scisoft - server for product manifests
- BTrk - (deprecated) the Kalman fitter code is in this non-standard product
- KinKal - a repo and UPS product containing the core track Kalman fit code
- CVS
- CodeDepencyGraph - how to make the code dependency graph
- DAQ DAQ redmine
- building root
- checkPrerequisites tool - check linux has rpms needed by art
- SconsUPS - how to build a new version of scons, packaged for UPS
- Pyana - setting up python analysis packages
- Github CI Maintenance - information about the CI repo, used by Jenkins for build tests
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 github redmine lab LXR Mu2e LXR LXR project
- art doc github redmine browser art-users product flags error codes
- gcc features development gcc library dependence
- 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
- Geant4Examples How to run the standard Geant4 examples on the Mu2e interactive machines.
- G4Beamline Mu2e manual
- CLHEP CLHEP(v.2.2.0.4)
- HepPDT
- fhicl fhicl-cpp
- cetlib browser cetmodules
- Message Facility browser
- cpp0x browser
- boost browser
- BTrk browser
- LXR browsers for many Fermilab projects
- scons
- MARS (password protected)