Project

General

Profile

Old LArSoftWiki » History » Version 37

Erica Snider, 11/30/2013 08:12 PM

1 29 Erica Snider
If you are looking for the legacy cvs LArSoft site, *all content has been moved to "LArSoft cvs (legacy site) ":https://cdcvs.fnal.gov/redmine/projects/larsoft-cvs/wiki.*
2 25 Erica Snider
---------------------------------------------------------------
3 1 Brian Rebel
4 32 Erica Snider
{{toc}}
5 1 Brian Rebel
6 29 Erica Snider
This will be the new home of the LArSoft redmine project. For the current version of this page, please visit the "current wiki":https://cdcvs.fnal.gov/redmine/projects/larsoftsvn/wiki.
7 29 Erica Snider
8 1 Brian Rebel
h1. LArSoftWiki
9 1 Brian Rebel
10 31 Erica Snider
*Under construction...*  Will go live when the migration to git/cmake is completed.
11 31 Erica Snider
12 1 Brian Rebel
13 19 Brian Rebel
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 "FMWK":https://cdcvs.fnal.gov/redmine/wiki/nusoft/FMWK framework for HEP experiments. The releases of the software are managed using an "SRT":http://runiicomputing.fnal.gov/cmgt/SoftRelTools-Manual/SoftRelTools-Manual-chunks/index.html distribution.
14 1 Brian Rebel
15 17 Brian Rebel
To join the LArSoft mailing list, please follow these "instructions":http://listserv.fnal.gov/users.asp#subscribe%20to%20list using the list name LARSOFT.
16 32 Erica Snider
17 32 Erica Snider
18 35 Erica Snider
h1. Getting started
19 1 Brian Rebel
20 35 Erica Snider
h2. Access to Fermilab computing
21 1 Brian Rebel
22 35 Erica Snider
h3. Load balanced access to GPCF VMs
23 1 Brian Rebel
24 35 Erica Snider
h2. Where to find the software
25 1 Brian Rebel
26 35 Erica Snider
At Fermilab, the software lives in a set of re-locatable ups products, each of which corresponds to the code within a git repository. Each product and associated repository contain LArSoft software components (i.e., SoftRelTool "packages") that are at a similar layer of functionality. The reference products and repository urls are the following:
27 35 Erica Snider
28 35 Erica Snider
|*Product 
29 35 Erica Snider
repository
30 35 Erica Snider
name* | *repository url (all in Redmine)* | lxr link 
31 35 Erica Snider
                                            (not yet avail) | Redmine browser |
32 35 Erica Snider
|larcore| ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larcore | -- | 
33 35 Erica Snider
|lardata| ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/lardata | -- |
34 35 Erica Snider
|larevt | ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larevt  | -- |
35 35 Erica Snider
|larsim | ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larsim  | -- |
36 35 Erica Snider
|larreco| ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larreco | -- |
37 35 Erica Snider
|larana | ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larana  | -- |
38 35 Erica Snider
|lareventdisplay| ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/lareventdisplay | -- |
39 35 Erica Snider
|larexamples|     ssh://p-larcore@cdcvs.fnal.gov/cvs/projects/larexamples     | -- |
40 36 Erica Snider
|larsoft | (A product that exists only to set up the others with a single 
41 36 Erica Snider
           command. The larsoft product otherwise has no content.) | -- |
42 1 Brian Rebel
43 36 Erica Snider
(The SoftRelTools-based packages in each product/repository can be found "here":https://cdcvs.fnal.gov/redmine/projects/larsoft-alpha/wiki/LarSoft_Product_List along with the approximate order of dependency.)
44 1 Brian Rebel
45 36 Erica Snider
You can use the @git clone <repository url>@ command to download a copy of each repository to your local area. Additional steps are needed to use, build or develop the software. These steps are described in the "How to use and develop LArSoft code" section below.
46 35 Erica Snider
47 35 Erica Snider
48 33 Erica Snider
h2. Accessing LArSoft
49 32 Erica Snider
50 33 Erica Snider
* Repositories
51 1 Brian Rebel
* Browsing the software
52 1 Brian Rebel
53 1 Brian Rebel
h2. Release notes
54 1 Brian Rebel
55 1 Brian Rebel
| *Release* | *Date* | *Purpose* | *Changes / notes* | *Full release notes* |
56 1 Brian Rebel
| v0.00.04| 9/15/2013| "alpha" release | First release of git/cmake/ups-based LArSoft products
57 33 Erica Snider
                                       Used for mrb, configuration and re-factoring
58 33 Erica Snider
                                       development and testing | N/A |
59 35 Erica Snider
| v0.00.09| 11/25/2013| "beta" pre-release | Second full release under new system. First full re-factoring
60 35 Erica Snider
                                       of experiment-specific and core LArSoft code in the larcore,
61 35 Erica Snider
                                       lardata, larevt, and larsim products. Preparation for expert
62 35 Erica Snider
                                       user testing of beta release.| N/A|
63 35 Erica Snider
| v0.0x.0y| 12/02/2013| "beta" limited release | Beta suitable for expert testing | N/A |
64 35 Erica Snider
| v1.00.00| Jan 2014 | First production 
65 33 Erica Snider
                       release | Replica of final svn-based release. Future LArSoft development 
66 33 Erica Snider
                                 proceeds from this release. | xxx |
67 33 Erica Snider
68 1 Brian Rebel
h1. Documentation
69 32 Erica Snider
70 1 Brian Rebel
h2. LArSoft
71 1 Brian Rebel
72 36 Erica Snider
h2. How to use and develop LArSoft code
73 1 Brian Rebel
74 36 Erica Snider
h3. Overview of the user environment
75 36 Erica Snider
76 36 Erica Snider
LArSoft releases are distributed via "re-locatable" ups products. (A "re-locatable" ups product has a simplified structure compared to that of legacy ups products, and do not require that they be "declared" to a ups database. These features make it easier to distribute and install re-locatable products that is was with legacy ups products.) People interested in using the core LArSoft software, but who have no need to modify or develop that software can in principle simply perform the appropriate ups @setup <product> <version> -q <qualifier>@ commands, then build their code against those products by reference to the corresponding $<PRODUCT_NAME>_INC and $<PRODUCT_NAME>_LIB environment variables. In addition to the individual products, there is a @larsoft@ product that can be used to set up all other products with a single command:  
77 36 Erica Snider
<pre>
78 36 Erica Snider
setup larsoft <version> -q <qualifiers>
79 36 Erica Snider
</pre>
80 36 Erica Snider
The qualifiers will be one of the following:
81 36 Erica Snider
* debug:e2
82 36 Erica Snider
* prof:e2
83 36 Erica Snider
* opt:e2
84 37 Erica Snider
85 36 Erica Snider
where:
86 37 Erica Snider
87 36 Erica Snider
* debug = debugging symbols available
88 36 Erica Snider
* opt = compiler optimizations enabled
89 36 Erica Snider
* prof = compiler optimizations enabled, generate profiling code
90 36 Erica Snider
* e2 = built witih gcc 4.7.1 and -std=c++0x
91 36 Erica Snider
In general, only @debug@ and @prof@ will be provided, since there is no run-time performance penalty for code that has the profiling code present.
92 36 Erica Snider
93 36 Erica Snider
The recommended way to work with LArSoft is to use @mrb@, the multi-repository build tool, to check out and build your own code. 
94 36 Erica Snider
95 36 Erica Snider
96 36 Erica Snider
h3. Overview of the developer environment
97 32 Erica Snider
98 32 Erica Snider
99 32 Erica Snider
h2. General user workflow
100 32 Erica Snider
101 32 Erica Snider
h2. Tools for working with the software
102 32 Erica Snider
103 32 Erica Snider
*  git
104 32 Erica Snider
*  git flow
105 32 Erica Snider
*  mrb : the multi-repository build tool
106 32 Erica Snider
*  
107 32 Erica Snider
108 32 Erica Snider
109 32 Erica Snider
110 32 Erica Snider
* Basic workflow
111 32 Erica Snider
* Using git
112 32 Erica Snider
* Multi-repository build
113 33 Erica Snider
114 33 Erica Snider
115 33 Erica Snider
h1. How to
116 33 Erica Snider
117 33 Erica Snider
118 33 Erica Snider
h2. Advanced technical how-to's
119 33 Erica Snider
120 33 Erica Snider
h2. Release procedures
121 33 Erica Snider
122 33 Erica Snider
h1. Walk-through exercises
123 34 Erica Snider
124 34 Erica Snider
125 34 Erica Snider
h1. Working areas
126 34 Erica Snider
127 34 Erica Snider
[[Beta re-factoring]]