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.
