SimTransfer: add AllExList and ExID_ReactID_List in output root
This commit is contained in:
parent
4b2598b0b6
commit
1c140d07fc
139
.vscode/settings.json
vendored
139
.vscode/settings.json
vendored
|
@ -1,139 +1,12 @@
|
||||||
{
|
{
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"script.C": "cpp",
|
"detectorGeo.txt": "shellscript",
|
||||||
"SOLARIS_Qt6_DAQ.pro": "makefile",
|
"reactionConfig.txt": "shellscript",
|
||||||
"qlineseries": "cpp",
|
"DWBA": "shellscript",
|
||||||
"cctype": "cpp",
|
"*.C": "cpp"
|
||||||
"clocale": "cpp",
|
|
||||||
"cmath": "cpp",
|
|
||||||
"cstdarg": "cpp",
|
|
||||||
"cstddef": "cpp",
|
|
||||||
"cstdio": "cpp",
|
|
||||||
"cstdlib": "cpp",
|
|
||||||
"cstring": "cpp",
|
|
||||||
"ctime": "cpp",
|
|
||||||
"cwchar": "cpp",
|
|
||||||
"cwctype": "cpp",
|
|
||||||
"array": "cpp",
|
|
||||||
"atomic": "cpp",
|
|
||||||
"bit": "cpp",
|
|
||||||
"*.tcc": "cpp",
|
|
||||||
"chrono": "cpp",
|
|
||||||
"codecvt": "cpp",
|
|
||||||
"compare": "cpp",
|
|
||||||
"concepts": "cpp",
|
|
||||||
"condition_variable": "cpp",
|
|
||||||
"cstdint": "cpp",
|
|
||||||
"deque": "cpp",
|
|
||||||
"list": "cpp",
|
|
||||||
"map": "cpp",
|
|
||||||
"string": "cpp",
|
|
||||||
"unordered_map": "cpp",
|
|
||||||
"unordered_set": "cpp",
|
|
||||||
"vector": "cpp",
|
|
||||||
"exception": "cpp",
|
|
||||||
"algorithm": "cpp",
|
|
||||||
"functional": "cpp",
|
|
||||||
"iterator": "cpp",
|
|
||||||
"memory": "cpp",
|
|
||||||
"memory_resource": "cpp",
|
|
||||||
"numeric": "cpp",
|
|
||||||
"optional": "cpp",
|
|
||||||
"random": "cpp",
|
|
||||||
"ratio": "cpp",
|
|
||||||
"string_view": "cpp",
|
|
||||||
"system_error": "cpp",
|
|
||||||
"tuple": "cpp",
|
|
||||||
"type_traits": "cpp",
|
|
||||||
"utility": "cpp",
|
|
||||||
"future": "cpp",
|
|
||||||
"initializer_list": "cpp",
|
|
||||||
"iomanip": "cpp",
|
|
||||||
"iosfwd": "cpp",
|
|
||||||
"iostream": "cpp",
|
|
||||||
"istream": "cpp",
|
|
||||||
"limits": "cpp",
|
|
||||||
"mutex": "cpp",
|
|
||||||
"new": "cpp",
|
|
||||||
"numbers": "cpp",
|
|
||||||
"ostream": "cpp",
|
|
||||||
"semaphore": "cpp",
|
|
||||||
"span": "cpp",
|
|
||||||
"sstream": "cpp",
|
|
||||||
"stdexcept": "cpp",
|
|
||||||
"stop_token": "cpp",
|
|
||||||
"streambuf": "cpp",
|
|
||||||
"thread": "cpp",
|
|
||||||
"cinttypes": "cpp",
|
|
||||||
"typeinfo": "cpp",
|
|
||||||
"variant": "cpp",
|
|
||||||
"qdatetime": "cpp",
|
|
||||||
"fstream": "cpp",
|
|
||||||
"allocator": "cpp",
|
|
||||||
"qsignalmapper": "cpp",
|
|
||||||
"GeneralSort.C": "cpp",
|
|
||||||
"ChainMonitors.C": "cpp",
|
|
||||||
"GeneralSortAgent.C": "cpp",
|
|
||||||
"readRawTrace.C": "cpp",
|
|
||||||
"readTrace.C": "cpp",
|
|
||||||
"Cleopatra.C": "cpp",
|
|
||||||
"alpha.C": "cpp",
|
|
||||||
"DWBA_compare.C": "cpp",
|
|
||||||
"DWBARatio.C": "cpp",
|
|
||||||
"ExtractXSec.C": "cpp",
|
|
||||||
"ExtractXSecFromText.C": "cpp",
|
|
||||||
"FindThetaCM.C": "cpp",
|
|
||||||
"InFileCreator.C": "cpp",
|
|
||||||
"IsotopeShort.C": "cpp",
|
|
||||||
"knockout.C": "cpp",
|
|
||||||
"PlotSimulation.C": "cpp",
|
|
||||||
"PlotTGraphTObjArray.C": "cpp",
|
|
||||||
"transfer_test.C": "cpp",
|
|
||||||
"Transfer.C": "cpp",
|
|
||||||
"Simulation_Helper.C": "cpp",
|
|
||||||
"Check_Simulation.C": "cpp",
|
|
||||||
"AutoFit.C": "cpp",
|
|
||||||
"__hash_table": "cpp",
|
|
||||||
"__split_buffer": "cpp",
|
|
||||||
"__tree": "cpp",
|
|
||||||
"bitset": "cpp",
|
|
||||||
"stack": "cpp",
|
|
||||||
"Monitor.C": "cpp",
|
|
||||||
"DataHoSei.C": "cpp",
|
|
||||||
"Monitors.C": "cpp",
|
|
||||||
"__bit_reference": "cpp",
|
|
||||||
"__bits": "cpp",
|
|
||||||
"__config": "cpp",
|
|
||||||
"__debug": "cpp",
|
|
||||||
"__errc": "cpp",
|
|
||||||
"__locale": "cpp",
|
|
||||||
"__mutex_base": "cpp",
|
|
||||||
"__node_handle": "cpp",
|
|
||||||
"__nullptr": "cpp",
|
|
||||||
"__string": "cpp",
|
|
||||||
"__threading_support": "cpp",
|
|
||||||
"__tuple": "cpp",
|
|
||||||
"complex": "cpp",
|
|
||||||
"forward_list": "cpp",
|
|
||||||
"ios": "cpp",
|
|
||||||
"locale": "cpp",
|
|
||||||
"__verbose_abort": "cpp",
|
|
||||||
"Monitors_Util.C": "cpp",
|
|
||||||
"Monitor_Util.C": "cpp",
|
|
||||||
"script_single.C": "cpp",
|
|
||||||
"script_multi.C": "cpp",
|
|
||||||
"Isotope.C": "cpp",
|
|
||||||
"classisotope.h": "c",
|
|
||||||
"knockoutSim.C": "cpp",
|
|
||||||
"test.C": "cpp",
|
|
||||||
"SimTransfer.C": "cpp",
|
|
||||||
"httpaccess.C": "cpp",
|
|
||||||
"httpcontrol.C": "cpp",
|
|
||||||
"SimTransfer2.C": "cpp",
|
|
||||||
"haha.C": "cpp",
|
|
||||||
"SimTransfer_2.C": "cpp"
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"C_Cpp.autoAddFileAssociations": false,
|
||||||
"better-comments.multilineComments": true,
|
"better-comments.multilineComments": true,
|
||||||
"better-comments.tags" : [
|
"better-comments.tags" : [
|
||||||
{
|
{
|
||||||
|
|
|
@ -97,6 +97,7 @@ void Transfer(
|
||||||
TMacro dwbaReactList_Used;
|
TMacro dwbaReactList_Used;
|
||||||
|
|
||||||
bool useDWBA[numTransfer];
|
bool useDWBA[numTransfer];
|
||||||
|
for( int i = 0; i < numTransfer; i++ ) useDWBA[i] = false;
|
||||||
|
|
||||||
if( distFile->IsOpen() ) {
|
if( distFile->IsOpen() ) {
|
||||||
printf("\e[32m#################################### Load DWBA input : %s \e[0m\n", ptolemyRoot.Data());
|
printf("\e[32m#################################### Load DWBA input : %s \e[0m\n", ptolemyRoot.Data());
|
||||||
|
@ -182,7 +183,21 @@ void Transfer(
|
||||||
dwbaReactList_Used.Write("DWBA_ReactionList", 1);
|
dwbaReactList_Used.Write("DWBA_ReactionList", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TMacro allExList;
|
||||||
|
allExList.AddLine("#---Ex relative_xsec SF sigma_in_MeV");
|
||||||
|
TMacro exIDReactIDList; //list of all ex and corresponding Reaction ID
|
||||||
|
exIDReactIDList.AddLine("#-- ExID ReactionID");
|
||||||
|
for( int i = 0; i < numTransfer; i++){
|
||||||
|
std::vector<EnergyLevel> tempExList = transfer[i].GetExList()->ExList;
|
||||||
|
for( size_t j = 0; j < tempExList.size(); j++){
|
||||||
|
allExList.AddLine(Form("%9.5f %9.5f %3.1f %5.3f", tempExList[j].Ex, tempExList[j].xsec, tempExList[j].SF, tempExList[j].sigma));
|
||||||
|
exIDReactIDList.AddLine(Form("%ld %d", j, i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allExList.Write("AllExList");
|
||||||
|
exIDReactIDList.Write("ExID_ReactID_List");
|
||||||
|
|
||||||
TMacro hitMeaning;
|
TMacro hitMeaning;
|
||||||
hitMeaning.AddLine("======================= meaning of Hit\n");
|
hitMeaning.AddLine("======================= meaning of Hit\n");
|
||||||
for( int code = -15 ; code <= 1; code ++ ){
|
for( int code = -15 ; code <= 1; code ++ ){
|
||||||
|
@ -372,7 +387,7 @@ void Transfer(
|
||||||
delete [] gx;
|
delete [] gx;
|
||||||
delete gList;
|
delete gList;
|
||||||
|
|
||||||
//--- cal modified f
|
//--- cal E-Z curve with finite detector correction
|
||||||
int numEx = 0;
|
int numEx = 0;
|
||||||
for( int i = 0; i < numTransfer; i++){
|
for( int i = 0; i < numTransfer; i++){
|
||||||
if( !listOfTransfer[i] ) continue;
|
if( !listOfTransfer[i] ) continue;
|
||||||
|
|
|
@ -3,7 +3,7 @@ CFLAG = -O2
|
||||||
|
|
||||||
depend = ClassTransfer.h ClassHelios.h ClassIsotope.h ClassDecay.h constant.h potentials.h
|
depend = ClassTransfer.h ClassHelios.h ClassIsotope.h ClassDecay.h constant.h potentials.h
|
||||||
|
|
||||||
ALL = Isotope InFileCreator ExtractXSec ExtractXSecFromText PlotTGraphTObjArray Cleopatra FindThetaCM SimTransfer SimTransfer_single SimAlpha
|
ALL = Isotope InFileCreator ExtractXSec ExtractXSecFromText PlotTGraphTObjArray Cleopatra FindThetaCM SimTransfer SimAlpha
|
||||||
|
|
||||||
all: $(ALL)
|
all: $(ALL)
|
||||||
|
|
||||||
|
|
48
README.md
48
README.md
|
@ -14,10 +14,36 @@ Analysis
|
||||||
├── root_data // symbolic link to converted root file, created by SetUpNewExp
|
├── root_data // symbolic link to converted root file, created by SetUpNewExp
|
||||||
└── working // working directory, depends on experiment.
|
└── working // working directory, depends on experiment.
|
||||||
|
|
||||||
|
# SOLARIS.sh
|
||||||
|
|
||||||
|
this batch shell script adds few enviroment variables and functions. Add the Armory and Cleopatra into the system PATH.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
>source SOLARIS.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
# Event Builder
|
||||||
|
|
||||||
|
Please download the SOLARIS_DAQ, under the Aux directory, make, and link the EventBuilder to Armory.
|
||||||
|
|
||||||
|
The reason for having EventBuilder in the DAQ code is the Hit.h is original from the DAQ code.
|
||||||
|
|
||||||
# ROOT issue
|
# ROOT issue
|
||||||
|
|
||||||
We are still using TProof for parallel calculation. TProof is not pre-compiled since 6.32+. And 6.30 only precompiled for Ubuntu 22.04. So, for system using Ubuntu 24.04, user must precompiled to root in order to work.
|
We are still using TProof for parallel calculation. TProof is not pre-compiled since 6.32+. And 6.30 only precompiled for Ubuntu 22.04. So, for system using Ubuntu 24.04, user must precompiled to root in order to work.
|
||||||
|
|
||||||
|
## Compilation
|
||||||
|
|
||||||
|
We can manual download the git repository of the root following the instruction. in the cmake
|
||||||
|
|
||||||
|
```sh
|
||||||
|
root_install="/opt/root_v6.32.00_compiled"
|
||||||
|
root_src="root_src"
|
||||||
|
root_build="root_build"
|
||||||
|
cmake -DCMAKE_INSTALL_PREFIX=$root_install $root_src -Dproof=ON -Dmathmore=ON
|
||||||
|
sudo cmake --build . --target install -j <number_of_threads>
|
||||||
|
```
|
||||||
|
|
||||||
# Analysis & Simulation
|
# Analysis & Simulation
|
||||||
|
|
||||||
The Armory/AnalysisLib.h constains many small but handy functions.
|
The Armory/AnalysisLib.h constains many small but handy functions.
|
||||||
|
@ -26,28 +52,30 @@ All class headers are started with Class*.h
|
||||||
|
|
||||||
The classes **DetGeo**** and **ReactionConfig** are fundamental for loading the detectorGeo.txt and reactionConfig.txt.
|
The classes **DetGeo**** and **ReactionConfig** are fundamental for loading the detectorGeo.txt and reactionConfig.txt.
|
||||||
|
|
||||||
Both txt file support empty lines, and up to 2 settings. The reason for that is for dual-array configuration. It has potentail to extend and include more settings. But it is two now, one for upstream array (reaction) and downstream array (reaction).
|
Both txt file support empty lines, can have multiple settings. The reason for that is for many-array configuration.
|
||||||
|
|
||||||
The **TransferReaction** class is only use one of the reaction from the reactionConfig.txt.
|
The **TransferReaction** class is only use one of the reaction from the reactionConfig.txt. This class generates the TLorentzVector for ligh and heavy recoils.
|
||||||
|
|
||||||
```C++
|
```C++
|
||||||
TransferReaction::SetReactionFromFile("reactionConfig.txt", ID); // ID = 0 or 1
|
TransferReaction::SetReactionFromFile("reactionConfig.txt", ID); // ID = 0 or 1
|
||||||
```
|
```
|
||||||
Same for the **Helios** class
|
Same for the **Helios** class, **Helios** class use the detectorGeo.txt. It takes TLorentzVector and calculate does it be detected by the array or recoil detector.
|
||||||
|
|
||||||
```C++
|
```C++
|
||||||
HELIOS::SetDetectorGeometry("detectorGeo.txt", ID); // ID = 0 or 1
|
HELIOS::SetDetectorGeometry("detectorGeo.txt", ID); // ID = 0 or 1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Simulation
|
||||||
|
|
||||||
# Event Builder
|
Simply run
|
||||||
|
```sh
|
||||||
|
>SimTransfer
|
||||||
|
```
|
||||||
|
|
||||||
The EventBuilder is at the armory. It depends on the Hit.h and SolReader.h.
|
it will digest the detectorGeo.txt, reactionConfig.txt, if DWBA.root exist, find the reactions.
|
||||||
|
|
||||||
## Hit.h
|
* it does not have TargetScattering (yet)
|
||||||
|
* for multiple reactions, it will randomly use any and disregard the total Xsec of different reactions. The Xsec only takes effect within same reaction.
|
||||||
|
* the decay of heavy recoil only have isotropic decay.
|
||||||
|
|
||||||
The Hit class stores a hit (or a data block)
|
|
||||||
|
|
||||||
## SolReader.h
|
|
||||||
|
|
||||||
The SolReader class read the sol file. It can be loaded in CERN ROOT alone.
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user