NAGASH 0.9.8
Next Generation Analysis System
Loading...
Searching...
No Matches
Introduction to NAGASH

What is NAGASH?

NAGASH is short for "Next Generation Analysis System", which is a collection of useful c++ classes based on ROOT including multi-thread support. It enables you building your analysis easily. All classes and functions are defined within NAGASH namespace. Nagash is the Great Necromancer in popular video game Warhammer.

Installation

Simply run following command in your console

git clone https://gitlab.cern.ch/chenw/nagash.git
cd nagash
make clean
make -j
. config.sh

Then all executables are made in bin directory and libNAGASH.so in lib directory alone with a shell script named setupNAGASH.sh. Use

. setupNAGASH.sh

to setup the enviroment variables.

How to start?

We have several topics now which help you to build your own analysis framework via NAGASH, you can find them in Analysis Classes, Histogram Classes, Result Classes and Tool Classes.

Useful executables

NAGASH provides several useful executables to help you fast develop your framework.

NAGASHMakeClass

Defined in NAGASHMakeClass.cxx

This enables you to quickly make a LoopEvent class based on given Root file and TTree name, you may take the documenation of NAGASH::Analysis as an example.

CodeGenerator

Defined in CodeGenerator.cxx

This allow you to fast generate some code use substitution, see following example:

input.dat:

One Two:
1 2
3 4
5 6
Three Four Five:
11 22 33
44 55 66
Six:
7
8
9
10
One_Two_Three_Four_Five_Six_One_Two_Three
std::string Code

By using command:

CodeGenerator input.dat output.dat

You will get output.dat with following content:

1_2_11_22_33_7_1_2_11
1_2_11_22_33_8_1_2_11
1_2_11_22_33_9_1_2_11
1_2_11_22_33_10_1_2_11
1_2_44_55_66_7_1_2_44
1_2_44_55_66_8_1_2_44
1_2_44_55_66_9_1_2_44
1_2_44_55_66_10_1_2_44
3_4_11_22_33_7_3_4_11
3_4_11_22_33_8_3_4_11
3_4_11_22_33_9_3_4_11
3_4_11_22_33_10_3_4_11
3_4_44_55_66_7_3_4_44
3_4_44_55_66_8_3_4_44
3_4_44_55_66_9_3_4_44
3_4_44_55_66_10_3_4_44
5_6_11_22_33_7_5_6_11
5_6_11_22_33_8_5_6_11
5_6_11_22_33_9_5_6_11
5_6_11_22_33_10_5_6_11
5_6_44_55_66_7_5_6_44
5_6_44_55_66_8_5_6_44
5_6_44_55_66_9_5_6_44
5_6_44_55_66_10_5_6_44

It will substitute the given tokens with replacements with possible combinations.

Development

If you want to contribute to NAGASH, you may fork the repository and make your changes. Or you can submit to the issues if you enconter any problem.