2424
2525#include " ALICE3/Core/DelphesO2TrackSmearer.h"
2626#include " ALICE3/Core/FastTracker.h"
27+
2728#include " TGraph.h"
2829
30+ #include < string>
31+
2932namespace o2 ::fastsim
3033{
3134class DelphesO2LutWriter
@@ -34,34 +37,56 @@ class DelphesO2LutWriter
3437 DelphesO2LutWriter () = default ;
3538 virtual ~DelphesO2LutWriter () = default ;
3639
37- o2::fastsim::FastTracker fat;
38- void diagonalise (lutEntry_t& lutEntry);
39- float etaMaxBarrel = 1 .75f ;
40- bool usePara = true ; // use fwd parameterisation
41- bool useDipole = false ; // use dipole i.e. flat parametrization for efficiency and momentum resolution
42- bool useFlatDipole = false ; // use dipole i.e. flat parametrization outside of the barrel
43-
44- int mAtLeastHits = 4 ;
45- int mAtLeastCorr = 4 ;
46- int mAtLeastFake = 0 ;
40+ // Setters
41+ void setBinningNch (bool log, int nbins, float min, float max) { mNchBinning = {log, nbins, min, max}; }
42+ void setBinningRadius (bool log, int nbins, float min, float max) { mRadiusBinning = {log, nbins, min, max}; }
43+ void setBinningEta (bool log, int nbins, float min, float max) { mEtaBinning = {log, nbins, min, max}; }
44+ void setBinningPt (bool log, int nbins, float min, float max) { mPtBinning = {log, nbins, min, max}; }
45+ void setEtaMaxBarrel (float eta) { etaMaxBarrel = eta; }
4746 void SetAtLeastHits (int n) { mAtLeastHits = n; }
4847 void SetAtLeastCorr (int n) { mAtLeastCorr = n; }
4948 void SetAtLeastFake (int n) { mAtLeastFake = n; }
50-
51- void printLutWriterConfiguration ();
5249 bool fatSolve (lutEntry_t& lutEntry,
5350 float pt = 0.1 ,
5451 float eta = 0.0 ,
5552 const float mass = 0.13957000 ,
56- int itof = 0 ,
57- int otof = 0 ,
53+ size_t itof = 0 ,
54+ size_t otof = 0 ,
5855 int q = 1 ,
5956 const float nch = 1 );
57+
58+ void Print () const ;
6059 bool fwdSolve (float * covm, float pt = 0.1 , float eta = 0.0 , float mass = 0.13957000 );
6160 bool fwdPara (lutEntry_t& lutEntry, float pt = 0.1 , float eta = 0.0 , float mass = 0.13957000 , float Bfield = 0.5 );
62- void lutWrite (const char * filename = " lutCovm.dat" , int pdg = 211 , float field = 0.2 , int itof = 0 , int otof = 0 );
61+ void lutWrite (const char * filename = " lutCovm.dat" , int pdg = 211 , float field = 0.2 , size_t itof = 0 , size_t otof = 0 );
6362 TGraph* lutRead (const char * filename, int pdg, int what, int vs, float nch = 0 ., float radius = 0 ., float eta = 0 ., float pt = 0 .);
6463
64+ o2::fastsim::FastTracker fat;
65+
66+ private:
67+ void diagonalise (lutEntry_t& lutEntry);
68+ float etaMaxBarrel = 1 .75f ;
69+ bool usePara = true ; // use fwd parameterisation
70+ bool useDipole = false ; // use dipole i.e. flat parametrization for efficiency and momentum resolution
71+ bool useFlatDipole = false ; // use dipole i.e. flat parametrization outside of the barrel
72+
73+ int mAtLeastHits = 4 ;
74+ int mAtLeastCorr = 4 ;
75+ int mAtLeastFake = 0 ;
76+
77+ // Binning of the LUT to make
78+ struct LutBinning {
79+ bool log;
80+ int nbins;
81+ float min;
82+ float max;
83+ std::string toString () const ;
84+ };
85+ LutBinning mNchBinning = {true , 20 , 0 .5f , 3 .5f };
86+ LutBinning mRadiusBinning = {false , 1 , 0 .0f , 100 .0f };
87+ LutBinning mEtaBinning = {false , 80 , -4 .0f , 4 .0f };
88+ LutBinning mPtBinning = {true , 200 , -2 .0f , 2 .0f };
89+
6590 ClassDef (DelphesO2LutWriter, 1 );
6691};
6792} // namespace o2::fastsim
0 commit comments