-
Notifications
You must be signed in to change notification settings - Fork 490
Expand file tree
/
Copy pathTPCLoopersParam.h
More file actions
54 lines (47 loc) · 3.74 KB
/
TPCLoopersParam.h
File metadata and controls
54 lines (47 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright 2024-2025 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
/// \author M+Giacalone - September 2025
#ifndef ALICEO2_EVENTGEN_TPCLOOPERSPARAM_H_
#define ALICEO2_EVENTGEN_TPCLOOPERSPARAM_H_
#include "CommonUtils/ConfigurableParam.h"
#include "CommonUtils/ConfigurableParamHelper.h"
namespace o2
{
namespace eventgen
{
/**
** a parameter class/struct to keep the settings of
** the TPC loopers event-generator and
** allow the user to modify them
**/
struct GenTPCLoopersParam : public o2::conf::ConfigurableParamHelper<GenTPCLoopersParam> {
bool loopersVeto = false; // if true, no loopers are generated
// Current files are set to custom user CCDB paths, TO BE CHANGED
std::string model_pairs = "ccdb://Users/m/mgiacalo/WGAN_ExtGenPair"; // ONNX model for e+e- pair production
std::string model_compton = "ccdb://Users/m/mgiacalo/WGAN_ExtGenCompton"; // ONNX model for Compton scattering
std::string poisson = "${O2_ROOT}/share/Generators/TPCLoopers/poisson_params.csv"; // file with Poissonian parameters
std::string gauss = "${O2_ROOT}/share/Generators/TPCLoopers/gaussian_params.csv"; // file with Gaussian parameters
std::string scaler_pair = "${O2_ROOT}/share/Generators/TPCLoopers/ScalerPairParams.json"; // file with scaler parameters for e+e- pair production
std::string scaler_compton = "${O2_ROOT}/share/Generators/TPCLoopers/ScalerComptonParams.json"; // file with scaler parameters for Compton scattering
std::string nclxrate = "ccdb://Users/m/mgiacalo/ClustersTrackRatio"; // file with clusters/rate information per orbit
std::string colsys = "PbPb"; // collision system (PbPb or pp)
int intrate = -1; // Automatic IR from collision context if -1, else user-defined interaction rate in Hz
bool flat_gas = true; // if true, the gas density is considered flat in the TPC volume
unsigned int nFlatGasLoopers = 500; // number of loopers to be generated per event in case of flat gas [currently unused, kept for possible future debug developments]
float fraction_pairs = 0.08; // fraction of loopers [currently unused, kept for possible future debug developments]
float multiplier[2] = {1., 1.}; // multiplier for pairs and compton loopers for Poissonian and Gaussian sampling
unsigned int fixedNLoopers[2] = {1, 1}; // fixed number of loopers coming from pairs and compton electrons - valid if flat gas is false and both Poisson and Gaussian params files are empty
float adjust_flatgas = 0.f; // adjustment for the number of flat gas loopers per orbit (in percentage, e.g. -0.1 = -10%) [-1, inf)]
O2ParamDef(GenTPCLoopersParam, "GenTPCLoopers");
};
} // end namespace eventgen
} // end namespace o2
#endif // ALICEO2_EVENTGEN_TPCLOOPERSPARAM_H_