Project

General

Profile

Old LArSoftWiki » History » Version 136

Erica Snider, 09/02/2014 12:18 PM

1 87 Lynn Garren
{{>toc}}
2 87 Lynn Garren
3 29 Erica Snider
h1. LArSoftWiki
4 99 Erica Snider
5 124 Erica Snider
6 125 Erica Snider
7 133 Katherine Lato
The LArSoft software is designed to work for all planned and running liquid argon experiments at Fermilab. It is written in C++ and built on the "ROOT":http://root.cern.ch data analysis software, and the "art":https://cdcvs.fnal.gov/redmine/projects/artdaq analysis framework supported by the Fermilab Scientific Computing Division for intensity frontier experiments.
8 1 Brian Rebel
9 126 Erica Snider
  * *[[ Quick-start guide to using and developing LArSoft code ]]*
10 92 Erica Snider
11 1 Brian Rebel
h1. Preliminaries
12 54 Erica Snider
13 99 Erica Snider
14 64 Erica Snider
* Fermilab computing accounts:  see the [[larsoftsvn:Fermilab Computing Access]] page if you need an account.
15 73 Erica Snider
* See [[larsoftsvn:Load Balanced Access to General Purpose VMs]] for information on accessing experiment VMs at Fermilab (e.g., lbnegpvm0X, uboonegpvm0X, etc., collectively known as GPCF.).
16 133 Katherine Lato
* See the "documentation section":https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/LArSoftWiki#Documentation for information on working with LArSoft, and using git, git flow, mrb and other tools you will need.
17 73 Erica Snider
* *[[ Supported platforms ]]*
18 134 Katherine Lato
* To join the LArSoft mailing list, please follow "these instructions":http://listserv.fnal.gov/users.asp#subscribe%20to%20list using the list name LARSOFT
19 103 Erica Snider
* To get write access to the repositories, send email to rs@fnal.gov, echurch@fnal.gov, greenlee@fnal.gov, trj@fnal.gov.
20 1 Brian Rebel
21 35 Erica Snider
h2. Where to find the software
22 65 Erica Snider
23 91 Erica Snider
* [[ LArSoft repositories, packages and dependencies | What are the repository names and what is in them?]]
24 128 Gianluca Petrillo
* LArSoft module [[ moduleAuthors | authors ]] and [[Librarians|librarians]]
25 97 Erica Snider
* [[ The Fermilab core LArSoft installation | The core LArSoft installation at Fermilab ]]
26 85 Erica Snider
* [[ Experiment-specific code and re-factoring ]]
27 86 Erica Snider
* [[ Sub-package locations ]] (e.g., in which repository can I find the @HitFinder@ sub-package?)
28 81 Erica Snider
* [[ Download instructions ]]
29 110 Lynn Garren
* [[ LArSoft cvmfs ]]
30 65 Erica Snider
31 135 Katherine Lato
h3. "LArSoft Doxygen":http://nusoft.fnal.gov/larsoft/doxsvn/html/index.html - comments in the code are incorporated into documentation by "Doxygen":http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html
32 50 Erica Snider
33 77 Erica Snider
h1. Releases
34 1 Brian Rebel
35 94 Erica Snider
[[LArSoft release list|List of LArSoft releases.]] (Temporarily includes lbnecode and uboonecode)
36 117 Lynn Garren
[[LArSoft release management]] (instructions for the release manager)
37 119 Gianluca Petrillo
[[Breaking Changes]] (or "after the update my code shows 179 compiling errors! HEEELP!!")
38 94 Erica Snider
39 94 Erica Snider
40 1 Brian Rebel
h1. Documentation
41 32 Erica Snider
42 69 Erica Snider
h2. Overview of the user and developer environment
43 69 Erica Snider
44 69 Erica Snider
* [[ The user environment ]] 
45 83 Erica Snider
* [[ The developer environment ]]
46 69 Erica Snider
47 69 Erica Snider
48 69 Erica Snider
49 60 Erica Snider
h2. Working with LArSoft
50 60 Erica Snider
51 107 Erica Snider
h3. How to use the repositories and the build system
52 107 Erica Snider
53 80 Erica Snider
  * *[[ Quick-start guide to using and developing LArSoft code ]]*
54 71 Erica Snider
  * [[ LArSoft repositories, packages and dependencies ]]
55 118 Erica Snider
  * [[The rules and guidelines|Coding guidelines]] 
56 1 Brian Rebel
57 107 Erica Snider
h3. The framework and the LArSoft suite
58 107 Erica Snider
59 1 Brian Rebel
  * [[larsoftsvn:Using the Framework]]
60 68 Erica Snider
  * "ART Tutorial":http://oink.fnal.gov/
61 68 Erica Snider
  * [[larsoftsvn:NuSoft and LArSoft|nutools and LArSoft]]
62 68 Erica Snider
  * [[Using LArSoft on the GPVM nodes]]
63 120 Erica Snider
  * [[larsoftsvn:Package Documentation]]
64 107 Erica Snider
  * [[larsoftsvn:Geometry]]
65 107 Erica Snider
  * [[larsoftsvn:Reconstruction]]
66 107 Erica Snider
  * [[larsoftsvn:Simulation]]
67 107 Erica Snider
  * [[larsoftsvn:Space Points]]
68 107 Erica Snider
  * [[larsoftsvn:Seed Finding and Bezier Tracking]]
69 107 Erica Snider
  * [[larsoftsvn:Optical Simulations]]
70 107 Erica Snider
71 108 Erica Snider
  * "Past LArSoft meeting presentations -- A wealth of physics/technical information (some of which may be out of date since the transition to git / mrb / ups).":https://cdcvs.fnal.gov/redmine/projects/larsoftsvn/documents
72 1 Brian Rebel
73 1 Brian Rebel
74 1 Brian Rebel
75 68 Erica Snider
76 75 Erica Snider
h2. Links to the tools used to work with the software
77 1 Brian Rebel
78 71 Erica Snider
git and git flow:
79 67 Erica Snider
* [[cet-is-public:git flow quick start]] (edited 2/4/2013).
80 98 Erica Snider
* [[cet-is-public:GitTipsAndTricks|Git Tips and Tricks]] (Note that "git help" works, but "man git" and "git help <command>" does not on any of the gpvm machines. Nor do any of the "git <command> -h" commands.) For the purposes of LArSoft development, please please ignore the workflow advice as anything other than an example of how to use various git commands to do specific tasks.
81 1 Brian Rebel
82 72 Erica Snider
Understanding CMakeLists.txt and product_deps files
83 71 Erica Snider
* [[cet-is-public:Cetbuildtools cmake modules]]:  such as @cet_make@ and @cet_add_compiler_flags@. Used in @CMakeLists.txt@ files throughout LArSoft
84 71 Erica Snider
* [[cet-is-public:Art cmake modules]]: such as @art_make@ and @simple_plugin@. Used in @CMakeLists.txt@ files throughout LArSoft
85 71 Erica Snider
* [[cet-is-public:Defining products in the CET build environment]]: explains the @product_deps@ file
86 71 Erica Snider
* [[cet-is-public:AddingProductDependencies|Adding Product Dependencies]]: how to edit the @product_deps@ and @CMakeLists.txt@ files to add dependencies
87 71 Erica Snider
* [[cet-is-public:CodeTips|Various helpful tips for coding in the CET C++ environment]]: things you hope you never need to know
88 71 Erica Snider
* [[cet-is-public:Building your own code with cmake]]:  pointer to a _really_ simple example
89 67 Erica Snider
90 71 Erica Snider
mrb and ups:
91 32 Erica Snider
*  mrb : the multi-repository build tool
92 129 Erica Snider
** "mrb reference guide":https://cdcvs.fnal.gov/redmine/projects/mrb/wiki/MrbRefereceGuide
93 129 Erica Snider
** mrb calls @buildtool@ (from the @cetbuildtools@ product) to perform the build. "Documentation for buildtool":https://cdcvs.fnal.gov/redmine/projects/cet-is-public/wiki/Buildtool_script
94 129 Erica Snider
*  "Re-locatable" ups. (Documentation in preparation)
95 72 Erica Snider
* [[cet-is-public:AboutQualifiers|About qualifiers]]:  the things after "-q" in setup <prod> <ver> -q <qual>
96 33 Erica Snider
97 33 Erica Snider
98 112 William Seligman
h1. How-to
99 112 William Seligman
100 112 William Seligman
* [[ AnalysisExample | Getting started with an analysis task ]]
101 121 Erica Snider
* [[ Running Jobs ]]
102 33 Erica Snider
103 33 Erica Snider
104 33 Erica Snider
h2. Advanced technical how-to's
105 33 Erica Snider
106 33 Erica Snider
h2. Release procedures
107 110 Lynn Garren
108 110 Lynn Garren
h2. [[ LArSoft cvmfs ]]
109 110 Lynn Garren
110 1 Brian Rebel
111 1 Brian Rebel
h1. Walk-through exercises
112 1 Brian Rebel
113 75 Erica Snider
h1. LArSoft code management and distribution
114 1 Brian Rebel
115 103 Erica Snider
* [[Adding / removing users]]
116 75 Erica Snider
* [[Admin scripts]]
117 1 Brian Rebel
* [[LArSoft release management]] 
118 136 Erica Snider
* [[LArSoft release naming policy]]
119 1 Brian Rebel
* [[Procedure to create a new version of larsoft_data]]
120 1 Brian Rebel
* [[Installation procedures]]
121 1 Brian Rebel
* [[Nightly builds]]
122 1 Brian Rebel
* [[Integration build and test system]]
123 1 Brian Rebel
* [[Release notes template]]
124 125 Erica Snider
125 130 Erica Snider
h1. [[LArSoft continuous integration system]]
126 130 Erica Snider
127 125 Erica Snider
h1. Legacy Redmine project sites
128 125 Erica Snider
129 125 Erica Snider
These were the sites used when LArSoft was developed under cvs and svn + SoftRelTools, respectively:
130 125 Erica Snider
131 125 Erica Snider
[[larsoft-cvs:| LArSoft-cvs wiki for the legacy cvs-based LArSoft project]]
132 125 Erica Snider
[[larsoftsvn:| LArSoft-svn wiki for the legacy svn-based LArSoft project]]
133 125 Erica Snider
134 125 Erica Snider
As of Jan 24, 2014, LArSoft transitioned from svn / SRT to git / mrb / ups, but we retain the legacy projects for historical reasons.
135 33 Erica Snider
136 51 Erica Snider
h1. Working areas
137 34 Erica Snider
138 1 Brian Rebel
139 115 Erica Snider
[[ Detailed documentation on using and developing LArSoft code ]] : under development -- not a resource
140 1 Brian Rebel
141 1 Brian Rebel
[[ Draft quick start revisions ]]
142 1 Brian Rebel
143 116 Gianluca Petrillo
[[ Profiling LArSoft ]]
144 116 Gianluca Petrillo
145 123 Gianluca Petrillo
[[Random number generators in art]]
146 123 Gianluca Petrillo
147 127 Gianluca Petrillo
[[Debugging LArSoft]]
148 127 Gianluca Petrillo
149 115 Erica Snider
Old pages that are no longer relevant or maintainted:
150 1 Brian Rebel
151 115 Erica Snider
* [[Beta re-factoring]]
152 101 Erica Snider
* *Beta testers:  [[ Special instructions for beta testers | read this first ]]*
153 1 Brian Rebel
* *[[ Special instructions for beta testers ]]*
154 115 Erica Snider
* [[LArSoft production transition timeline|Timeline for the production migration to git / mrb / ups]]
155 115 Erica Snider
* [[ Production transition checklist ]]