Development
Git commands
- initial download of the project
git clone git@github.com:BoostedColliderAnalysis/BoCA.git
- downloading updates from the server
git pull
- save changes of specific files
git commit FILES
- save changes in to all files
git commit -a
- upload changes to server
git push
- change branches
git checkout BRANCH
- create new branch
git checkout -b NEWBRANCH
- merge branches
git merge BRANCH
- save unfinished work on stash
git stash
- get stash changes back
git stash pop
Coding style
- use standard library when possible
- avoid heap allocation
new
- prefer references
&
over pointers*
- Classes and Functions are written in CamelCase
- variables are written small_with_underscore
- member_variables_ and TemplateParamter_ end on an underscore
Dynamic program analysis with Valgrind
Valgrind
is a framework for dynamic program analysis. The most usefull tools are
The callgraph generator
Callgrind
.Which can be called via
valgrind --tool=callgrind program
The output file can be analysed with
KCachegrind
. In order to dump intermediate results callcallgrind_control -d
The memory error detector
Memcheck
.Which can be called via
valgrind --suppressions=$ROOTSYS/etc/valgrind-root.supp program
The suppression file suppresses false positive hits from
ROOT
. The output can be analysed withValkyrie
.