1 #ifndef ALIEMCALCORRECTIONCELLEMULATECROSSTALK_H 2 #define ALIEMCALCORRECTIONCELLEMULATECROSSTALK_H 55 #if !(defined(__CINT__) || defined(__MAKECINT__)) 59 void SetProperty(
Float_t val[][fgkNsm], std::vector<double> & property,
unsigned int iSM,
const std::string & name);
60 void SetProperty(
Float_t val[fgkNsm], std::vector<double> & property,
unsigned int iSM,
const std::string & name);
104 #if !(defined(__CINT__) || defined(__MAKECINT__)) 113 template <
typename T>
116 std::string taskName = GetName();
117 std::map <std::string, std::vector<double>> values;
119 for (
auto& val : properties) {
120 AliDebugStream(1) <<
"Processing value " << val.first <<
"\n";
121 bool enabled =
false;
124 AliDebugStream(1) << val.first <<
" enabled.\n";
127 auto property = values.find(
"all");
128 if (property != values.end()) {
130 AliDebugStream(1) <<
"Retrieving all SM settings for property " << val.first <<
"\n";
131 for (
unsigned int iSM = 0; iSM <
fgkNsm; iSM++) {
132 SetProperty(val.second, property->second, iSM, val.first);
137 AliDebugStream(1) <<
"Retrieving per SM settings for property " << val.first <<
"\n";
138 for (
auto && property : values) {
139 unsigned int iSM = std::stoul(property.first);
142 SetProperty(val.second, property.second, iSM, val.first);
145 AliWarningStream() <<
"SM " << iSM <<
" requested for property " << val.first <<
" is out of range. Please check your configuration!\n";
Float_t fTCardCorrInduceEnerFracP1[4][fgkNsm]
Induced energy loss gauss fraction param1 on 0-same row, diff col, 1-up/down cells left/right col 2-l...
void AddInducedEnergiesToNewCells()
Bool_t fTCardCorrCellsNew[fgkNEMCalCells]
Array with induced cell energy in T-Card neighbour cells, that before had no signal.
Bool_t fPrintOnce
Print once analysis parameters.
Bool_t fRandomizeTCard
Use random induced energy.
virtual void ResetArrays()
Float_t fTCardCorrMaxInduced
Maximum induced energy signal on adjacent cells.
static const Int_t fgkNsm
Total number of super-modules.
Float_t fTCardCorrMinInduced
Minimum induced energy signal on adjacent cells, sum of induced plus original energy, use same as cell energy clusterization cut.
static const Int_t fgkNEMCalCells
Total number of cells in the calorimeter, 10*48*24 (EMCal) + 4*48*8 (EMCal/DCal 1/3) + 6*32*24 (DCal)...
TRandom3 fRandom
Random generator.
Correction component to emulate cell-level crosstalk in the EMCal correction framework.
Bool_t fTCardCorrClusEnerConserv
When making correlation, subtract from the reference cell the induced energy on the neighbour cells...
virtual ~AliEmcalCorrectionCellEmulateCrosstalk()
Float_t fTCardCorrInduceEnerProb[fgkNsm]
Probability to induce energy loss per SM.
void SetProperty(Float_t val[][fgkNsm], std::vector< double > &property, unsigned int iSM, const std::string &name)
AliAODCaloCells * fAODCellsTmp
! Temporal array of cells copy
void MakeCellTCardCorrelation()
UShort_t T(UShort_t m, UShort_t t)
Float_t fTCardCorrMaxInducedELeak
Maximum value of induced energy signal that is always leaked, ~5-10 MeV.
Float_t fTCardCorrInduceEnerFrac[4][fgkNsm]
Induced energy loss gauss fraction param0 on 0-same row, diff col, 1-up/down cells left/right col 2-l...
Float_t fTCardCorrMinAmp
Minimum cell energy to induce signal on adjacent cells.
Float_t fTCardCorrInduceEnerFracWidth[4][fgkNsm]
Induced energy loss gauss witdth on 0-same row, diff col, 1-up/down cells left/right col 2-left/righ ...
void AddInducedEnergiesToExistingCells()
Base class for correction components in the EMCal correction framework.
Float_t fTCardCorrCellsEner[fgkNEMCalCells]
Array with induced cell energy in T-Card neighbour cells.
Float_t fTCardCorrInduceEnerFracMin[fgkNsm]
In case fTCardCorrInduceEnerFracP1 is non null, restrict the minimum fraction of induced energy per S...
void UserCreateOutputObjects()
TH1F * fCellEnergyDistBefore
! cell energy distribution, before energy smearing
TH1F * fCellEnergyDistAfter
! cell energy distribution, after energy smearing
AliEmcalCorrectionCellEmulateCrosstalk & operator=(const AliEmcalCorrectionCellEmulateCrosstalk &)
Bool_t AcceptCell(Int_t absID)
Float_t fTCardCorrInduceEner[4][fgkNsm]
Induced energy loss gauss constant on 0-same row, diff col, 1-up/down cells left/right col 2-left/rig...
static RegisterCorrectionComponent< AliEmcalCorrectionCellEmulateCrosstalk > reg
PWG::Tools::AliYAMLConfiguration fYAMLConfig
Contains the YAML configuration used to configure the component.
Float_t fTCardCorrInduceEnerFracMax[fgkNsm]
In case fTCardCorrInduceEnerFracP1 is non null, restrict the maximum fraction of induced energy per S...
AliEmcalCorrectionCellEmulateCrosstalk()
void CalculateInducedEnergyInTCardCell(Int_t absId, Int_t absIdRef, Int_t sm, Float_t ampRef, Int_t cellCase)
void RetrieveAndSetProperties(const T &properties)