ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSVoxelHistoLateralCovarianceFluctuations.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TFCSVoxelHistoLateralCovarianceFluctuations_h
6#define TFCSVoxelHistoLateralCovarianceFluctuations_h
7
10
11#include "TVectorD.h"
12#include "TMatrixD.h"
13#include "TH2.h"
14
15class TFCS1DFunction;
16class TFile;
17
20public:
21 TFCSVoxelHistoLateralCovarianceFluctuations(const char *name = nullptr,
22 const char *title = nullptr);
24
25 virtual void set_geometry(ICaloGeometry *geo) override { m_geo = geo; };
27
28 bool initialize(TFile *inputfile, const std::string &folder);
29
32 virtual FCSReturnCode
33 simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
34 const TFCSExtrapolationState *extrapol) const override;
35
38 virtual FCSReturnCode
40 const TFCSTruthState *truth,
41 const TFCSExtrapolationState *extrapol) override;
42
43protected:
45
46 static const std::uint32_t
48 static const std::uint32_t
50
51 typedef std::vector<std::vector<float>> weight_t;
52
53 std::vector<std::vector<std::vector<TFCS1DFunction *>>> m_transform;
54
55 // For a 5*5 cell grid, nDim should be 5
56 int m_nDim_x{};
57 int m_nDim_y{};
58 std::vector<TH2 *> m_voxel_template;
59 std::vector<TVectorD> m_parMeans;
60 std::vector<TMatrixD> m_EigenVectors; // Eigen-vectors of covariance
61 std::vector<TVectorD> m_EigenValues; // Eigen-values of covariance
62
63 void MultiGaus(TFCSSimulationState &simulstate, TVectorD &genPars) const;
64
66 1) // TFCSVoxelHistoLateralCovarianceFluctuations
67};
68
69#endif
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
TFCSLateralShapeParametrizationHitBase(const char *name=nullptr, const char *title=nullptr)
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
create one fluctuated shape for a shower to be applied as scale factor to the average shape Store the...
std::vector< std::vector< std::vector< TFCS1DFunction * > > > m_transform
static const std::uint32_t s_layer_hash[CaloCell_ID_FCS::MaxSample]
do not persistify
void MultiGaus(TFCSSimulationState &simulstate, TVectorD &genPars) const
virtual FCSReturnCode simulate_hit(Hit &hit, TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) override
weight the energy of one hit by the fluctuation calculated in simulate(...)
TFCSVoxelHistoLateralCovarianceFluctuations(const char *name=nullptr, const char *title=nullptr)
virtual void set_geometry(ICaloGeometry *geo) override
Method to set the geometry access pointer.
std::vector< std::vector< float > > weight_t
do not persistify
static const std::uint32_t s_layer_hash_geo[CaloCell_ID_FCS::MaxSample]
do not persistify
void initialize()