Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AculUtils
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Pavel Sharov
AculUtils
Commits
51fd0664
Commit
51fd0664
authored
Mar 20, 2024
by
Vratislav Chudoba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Compilation by cmake of all libraries added.
parent
72151027
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
66 additions
and
312 deletions
+66
-312
AculCalib.mk
AculCalib/AculCalib.mk
+1
-1
AculCalibLinkDef.h
AculCalib/AculCalibLinkDef.h
+0
-0
CMakeLists.txt
AculCalib/CMakeLists.txt
+31
-0
ConfigDictionary.cpp
AculData/ConfigDictionary.cpp
+0
-243
ConfigDictionary.h
AculData/ConfigDictionary.h
+0
-49
ReturnCodes.h
AculData/ReturnCodes.h
+0
-17
CMakeLists.txt
CMakeLists.txt
+9
-1
README
README
+1
-0
CMakeLists.txt
Utilities/CMakeLists.txt
+23
-0
Utilities.mk
Utilities/Utilities.mk
+1
-1
UtilitiesLinkDef.h
Utilities/UtilitiesLinkDef.h
+0
-0
No files found.
AculCalib/AculCalib.mk
View file @
51fd0664
...
@@ -14,7 +14,7 @@ $(ACULCALIB)/AculCalPars.h \
...
@@ -14,7 +14,7 @@ $(ACULCALIB)/AculCalPars.h \
$(ACULCALIB)/AculCalParsScint.h \
$(ACULCALIB)/AculCalParsScint.h \
$(ACULCALIB)/AculCalParsScintFile.h \
$(ACULCALIB)/AculCalParsScintFile.h \
$(ACULCALIB)/AculCalParsSi.h \
$(ACULCALIB)/AculCalParsSi.h \
$(ACULCALIB)/
linkd
ef.h
$(ACULCALIB)/
AculCalibLinkD
ef.h
ACULCALIBCPP_SRCS += \
ACULCALIBCPP_SRCS += \
$(ACULCALIB)/AculCalib.cpp \
$(ACULCALIB)/AculCalib.cpp \
...
...
AculCalib/
linkd
ef.h
→
AculCalib/
AculCalibLinkD
ef.h
View file @
51fd0664
File moved
AculCalib/CMakeLists.txt
0 → 100644
View file @
51fd0664
############################################################################
# CMakeLists.txt file for building AculCalib package
############################################################################
ROOT_STANDARD_LIBRARY_PACKAGE
(
AculCalib
HEADERS
AculCalib.h
AculCalibScint.h
AculCalibSi.h
AculCalPars.h
AculCalParsScintFile.h
AculCalParsScint.h
AculCalParsSi.h
SOURCES
AculCalib.cpp
# AculCalibDict.cpp
AculCalibScint.cpp
AculCalibSi.cpp
AculCalPars.cpp
AculCalParsScint.cpp
AculCalParsScintFile.cpp
AculCalParsSi.cpp
# DEPENDENCIES
# MathCore
# Matrix
# RIO
LINKDEF
AculCalibLinkDef.h
)
ROOT_ADD_TEST_SUBDIRECTORY
(
test
)
\ No newline at end of file
AculData/ConfigDictionary.cpp
deleted
100644 → 0
View file @
72151027
#include "ConfigDictionary.h"
ClassImp
(
ConfigDictionary
);
//////////////////////////////////////////////////////////////////////////////
// BEGIN_HTML
// <p><font size="4"><b>Config(uration)Dictionary class</b></font></p>
// <br>
// <i>Author: Bartlomiej Hnatio 2012-08-06</i>
// <br><br>
// This is very useful class to convert strings containing pairs "key"="value"
// into fast dictionaries. This strings are often read from external files.
// From dictionary created in such way one can easily
// extract values in few supported formats (integer, double, boolean, string)
// It can also be used in opposite direction: when dictionary is created with
// given values and keys, one can create config string, which is most
// convenient to write in external files.
// <br><br><br>
// <u>Most simple example of usage:</u>
// <br><br>Suppose you have two variables fD and fI:
// <pre>-------------------
// Double_t fD;
// Int_t fI;
//
//fD = 3.14;
//fI = 2012;
//-----------------------</pre>
// To save its parameters into file you can create ConfigDictionary class
// instance and use <b>SetDouble</b> and <b>SetInt</b> functions to
// insert parameters values with arbitrarly defined keys (let them be
// really long and descriptive in this example):
// <pre>---------------------
//ConfigDictionary CD;
//CD.SetDouble("Most important variable D",fD);
//CD.SetInt("Equally important integer I",fI);
//---------------------</pre>
// Now configuration string saved in <b>ConfigDictionary</b> CD
// can be obtained with <b>ToString</b> method and should look like:
//<pre>
//"Most important variable D"="3.14" "Equally important integer I"="2012"
//</pre>
// <br> It can be easily saved to a file using simplest <i>fstream</i>
// methods. And the advantage is that as a key one can use any string,
// so configuration file created in such way is very self-explanatory.
// <br>
// <br>
// Now lets suppose the opposite action - loading config from file.
// Imagine, that you have 1000 objects of A class, which config was saved
// to file - one object per line:
// <pre>-----------------
//"Most important variable D"="3.14" "Equally important integer I"="2012"
//"Equally important integer I"="1011" "Most important variable D"="8.15"
//"Most important variable D"="13.16" "Equally important integer I"="10"
//(...)
//----------------</pre>
// Please notice that order in which pairs of keys and values are placed
// in file doesn't make any difference to the ConfigDictionary class.
// To recreate objects, you just read each line containing single
// config string and then create with it ConfigDictionary object
// using special constructor with string as argument,
// or using <b>FromString</b> method. After this, you can
// extract parameters (using <b>GetDouble</b> and <b>GetInt</b> methods)
// with using same keys as were used for saving, and ConfigDictionary
// will return their values:
// <pre>----------------------
//string line;//This line you read from file
//ConfigDictionary CD(line);
//fD = CD.GetDouble("Most important variable D");
//fI = CD.GetInt("Equally important integer I");
//--------------------</pre>
//<br>
// And last but not least: what happens, if key requested by user doesn't
// exist in dictionary? (This can be caused by many reasons, mostly errors on
// user side, but not always).
// When you try to extract non-existent key using <b>Get</b> functions,
// an exception is risen. In normal program it should end execution and print
// some information about where program stopped working.
// But lets say that you don't want that, i.e. program may use default
// configs instead of those from files, or not all keys were that important.
// You can surround all uses of <b>Get</b> methods with try/catch clause.
// So when exception is risen, you will catch it, and decide, if you want
// the program to stop running, or anything else. Simple example is
// shown below:
//<pre>-------------------
//ConfigDictionary CD(some_string);
//try{//try to read important variables:
// double d = CD.GetDouble("crucial var");
// bool b = CD.GetBool("most important b");
// int i = CD.GetInt("unique ID");
// //...and so on
//}catch(std::string & e){//catch any kind of exception
// Error("Some crucial variable wasn't read, ending program!");
// return SOME_REALLY_BAD_ERROR_CODE;
//}
//try{//now less important, or optional:
// string name = CD.GetString("least important variable");
// double p = CD.GetDouble("optional parameter");
// //...and so on
//}catch(std::string & f){
// Info("Some optional variables wasn't read!");
//}
//--------------------</pre>
// END_HTML
//////////////////////////////////////////////////////////////////////////////
//_____________________________________________________________________________
ConfigDictionary
::
ConfigDictionary
(){
//just empty map...
}
//_____________________________________________________________________________
ConfigDictionary
::
ConfigDictionary
(
std
::
string
params
){
//Just creates dictionary using FromString method
FromString
(
params
);
}
//_____________________________________________________________________________
std
::
string
ConfigDictionary
::
ToString
(){
//Builds string that can be easily saved to file.
//Same format that can be read from files or from QtGui
//This should work same way for all uses
std
::
map
<
std
::
string
,
std
::
string
>::
iterator
it
;
//Iterator to map elements
std
::
stringstream
ss
;
//stream helpful with adding strings
//iterate whole dictionary:
for
(
it
=
configMap
.
begin
();
it
!=
configMap
.
end
();
++
it
){
//insert pairs "key"="value":
ss
<<
"
\"
"
<<
it
->
first
<<
"
\"
"
<<
"="
<<
"
\"
"
<<
it
->
second
<<
"
\"
"
<<
" "
;
}
return
ss
.
str
();
}
//_____________________________________________________________________________
void
ConfigDictionary
::
FromString
(
std
::
string
params
){
//params - TString containing list of key=value pairs
//
//Changes string formatted:
//"key1"="value1" "key2"="value with spaces 2" ...
//into map with keys and values
//Useful in lots of I/O functions,
//when we want to have a nice, readable format of data
std
::
stringstream
loading
(
params
);
std
::
string
k
,
v
;
while
(
!
loading
.
fail
()){
getline
(
loading
,
k
,
'\"'
);
//removes everything to first "
getline
(
loading
,
k
,
'\"'
);
//All chars between first two "" are the key
getline
(
loading
,
v
,
'\"'
);
//removes all until third "
getline
(
loading
,
v
,
'\"'
);
//All between another pair of "" is the value
if
(
!
loading
.
fail
())
configMap
[
k
]
=
v
;
}
}
//_____________________________________________________________________________
std
::
string
ConfigDictionary
::
GetString
(
std
::
string
key
)
throw
(
std
::
string
){
//Extracts string from given key
//(if it exist, otherwise raises exception)
if
(
configMap
.
find
(
key
)
==
configMap
.
end
()){
Error
(
"ConfigDictionary::GetString"
,
"Couldn't find the key: %s!"
,
key
.
c_str
());
throw
(
key
);
}
return
configMap
[
key
];
}
//_____________________________________________________________________________
int
ConfigDictionary
::
GetInt
(
std
::
string
key
)
throw
(
std
::
string
){
//Extracts integer from given key
//(if it exist, otherwise raises exception)
if
(
configMap
.
find
(
key
)
==
configMap
.
end
()){
Error
(
"ConfigDictionary::GetInt"
,
"Couldn't find the key: %s!"
,
key
.
c_str
());
throw
(
key
);
}
int
returned
=
0
;
//Convert string to int:
std
::
stringstream
ss
(
configMap
[
key
]);
ss
>>
returned
;
return
returned
;
}
//_____________________________________________________________________________
double
ConfigDictionary
::
GetDouble
(
std
::
string
key
)
throw
(
std
::
string
){
//Extracts integer from given key
//(if it exist, otherwise raises exception)
if
(
configMap
.
find
(
key
)
==
configMap
.
end
()){
Error
(
"ConfigDictionary::GetDouble"
,
"Couldn't find the key: %s!"
,
key
.
c_str
());
throw
(
key
);
}
double
returned
=
0.0
;
//Convert string to double:
std
::
stringstream
ss
(
configMap
[
key
]);
ss
>>
returned
;
return
returned
;
}
//_____________________________________________________________________________
bool
ConfigDictionary
::
GetBool
(
std
::
string
key
)
throw
(
std
::
string
){
//Extracts boolean from given key
//(if it exist, otherwise raises exception)
if
(
configMap
.
find
(
key
)
==
configMap
.
end
()){
Error
(
"ConfigDictionary::GetBool"
,
"Couldn't find the key: %s!"
,
key
.
c_str
());
throw
(
key
);
}
//Convert string to bool:
if
(
configMap
[
key
].
compare
(
"true"
)
==
0
)
return
true
;
else
return
false
;
}
//_____________________________________________________________________________
void
ConfigDictionary
::
SetString
(
std
::
string
key
,
std
::
string
value
){
//Sets value to key, no comments needed here...
configMap
[
key
]
=
value
;
}
//_____________________________________________________________________________
void
ConfigDictionary
::
SetDouble
(
std
::
string
key
,
double
value
){
//Sets value to key, converts double to string first
std
::
stringstream
ss
;
ss
<<
value
;
configMap
[
key
]
=
ss
.
str
();
}
//_____________________________________________________________________________
void
ConfigDictionary
::
SetInt
(
std
::
string
key
,
int
value
){
//Sets value to key, converts int to string first
std
::
stringstream
ss
;
ss
<<
value
;
configMap
[
key
]
=
ss
.
str
();
}
//_____________________________________________________________________________
void
ConfigDictionary
::
SetBool
(
std
::
string
key
,
bool
value
){
//Sets value to key, converts bool to string first
if
(
value
==
true
)
configMap
[
key
]
=
"true"
;
else
configMap
[
key
]
=
"false"
;
}
AculData/ConfigDictionary.h
deleted
100644 → 0
View file @
72151027
#ifndef CONFIGDICTIONARY_H
#define CONFIGDICTIONARY_H
#include "TObject.h"
#include "ReturnCodes.h"
#include "TStopwatch.h"
#include "TROOT.h"
#include <string>
#include <map>
#include <sstream>
#include "TLorentzVector.h"
#include <iostream>
#include "TMath.h"
#include "TString.h"
#include "TTree.h"
class
ConfigDictionary
{
public
:
typedef
std
::
map
<
std
::
string
,
std
::
string
>::
iterator
CDIter
;
ConfigDictionary
();
ConfigDictionary
(
std
::
string
);
virtual
~
ConfigDictionary
(){};
//empty virtual destructor
ClassDef
(
ConfigDictionary
,
1
);
std
::
string
ToString
();
void
FromString
(
std
::
string
);
//These throw errors if couldn't find key:
std
::
string
GetString
(
std
::
string
)
throw
(
std
::
string
);
int
GetInt
(
std
::
string
)
throw
(
std
::
string
);
double
GetDouble
(
std
::
string
)
throw
(
std
::
string
);
bool
GetBool
(
std
::
string
)
throw
(
std
::
string
);
//These will always set 'something' into map:
void
SetString
(
std
::
string
,
std
::
string
);
void
SetDouble
(
std
::
string
,
double
);
void
SetInt
(
std
::
string
,
int
);
void
SetBool
(
std
::
string
,
bool
);
CDIter
Begin
(){
return
configMap
.
begin
();};
CDIter
End
(){
return
configMap
.
end
();};
private
:
std
::
map
<
std
::
string
,
std
::
string
>
configMap
;
};
#endif
AculData/ReturnCodes.h
deleted
100644 → 0
View file @
72151027
#ifndef RETURN_CODES_H
#define RETURN_CODES_H
//Some useful return codes
const
static
int
SUCCESS
=
0
;
const
static
int
IOEXCEPTION
=
-
1
;
const
static
int
NOTFOUND
=
-
2
;
const
static
int
NULLPOINTER
=
-
3
;
const
static
int
UNKNOWN
=
-
4
;
const
static
int
FAILURE
=
-
5
;
const
static
int
CDEXCEPTION
=
-
6
;
const
static
int
EMPTYCONTAINER
=
-
7
;
const
static
int
NOTDEFINED
=
-
8
;
const
static
int
EXCEPTION
=
-
11
;
#endif
CMakeLists.txt
View file @
51fd0664
...
@@ -11,9 +11,17 @@ message(STATUS "ROOT include directories: ${ROOT_INCLUDE_DIRS}")
...
@@ -11,9 +11,17 @@ message(STATUS "ROOT include directories: ${ROOT_INCLUDE_DIRS}")
# Add the subdirectories
# Add the subdirectories
add_subdirectory
(
TELoss
)
add_subdirectory
(
TELoss
)
add_subdirectory
(
AculCalib
)
add_subdirectory
(
AculData
)
add_subdirectory
(
AculData
)
add_subdirectory
(
Utilities
)
# Set the output directory for the dictionary files
# Set the output directory for the dictionary files
set
(
GEN_DICT_OUTPUT_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
)
set
(
GEN_DICT_OUTPUT_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
)
message
(
STATUS
"CMAKE_CURRENT_BINARY_DIR:
${
CMAKE_CURRENT_BINARY_DIR
}
"
)
message
(
STATUS
"CMAKE_CURRENT_BINARY_DIR:
${
CMAKE_CURRENT_BINARY_DIR
}
"
)
message
(
STATUS
"CMAKE_BINARY_DIR:
${
CMAKE_BINARY_DIR
}
"
)
message
(
STATUS
"GEN_DICT_OUTPUT_DIR:
${
GEN_DICT_OUTPUT_DIR
}
"
)
message
(
STATUS
"GEN_DICT_OUTPUT_DIR:
${
GEN_DICT_OUTPUT_DIR
}
"
)
message
(
STATUS
"CMAKE_COMMAND:
${
CMAKE_COMMAND
}
"
)
# add_custom_target(clean_all
# COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/*
# )
\ No newline at end of file
README
View file @
51fd0664
Tested with
Tested with
root_6.28_04 (precompiled binaries for Ubuntu 20.04)
root_6.28_04 (precompiled binaries for Ubuntu 20.04)
root-6.22.08 (compiled from source at nra161: /LynxOS/mbsusr/mbsdaq/analysis/root/root-6.22.08)
I. Use with GNU make
I. Use with GNU make
...
...
Utilities/CMakeLists.txt
0 → 100644
View file @
51fd0664
############################################################################
# CMakeLists.txt file for building Utilities package
############################################################################
ROOT_STANDARD_LIBRARY_PACKAGE
(
Utilities
HEADERS
CalPars.h
ConfigDictionary.h
CsICalib.h
ReturnCodes.h
SOURCES
CalPars.cpp
ConfigDictionary.cpp
CsICalib.cpp
# DEPENDENCIES
# MathCore
# Matrix
# RIO
LINKDEF
UtilitiesLinkDef.h
)
ROOT_ADD_TEST_SUBDIRECTORY
(
test
)
\ No newline at end of file
Utilities/Utilities.mk
View file @
51fd0664
...
@@ -11,7 +11,7 @@ UTILITIES_HEADERS += \
...
@@ -11,7 +11,7 @@ UTILITIES_HEADERS += \
$(UTILITIES)/CalPars.h \
$(UTILITIES)/CalPars.h \
$(UTILITIES)/CsICalib.h \
$(UTILITIES)/CsICalib.h \
$(UTILITIES)/ConfigDictionary.h \
$(UTILITIES)/ConfigDictionary.h \
$(UTILITIES)/
linkd
ef.h
$(UTILITIES)/
UtilitiesLinkD
ef.h
UTILITIESCPP_SRCS += \
UTILITIESCPP_SRCS += \
$(UTILITIES)/CalPars.cpp \
$(UTILITIES)/CalPars.cpp \
...
...
Utilities/
linkd
ef.h
→
Utilities/
UtilitiesLinkD
ef.h
View file @
51fd0664
File moved
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment