PandaRoot
BSEmcErrorMatrixCalculation.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //--------------------------------------------------------------------------
14 // Description:
15 // Class BSEmcErrorMatrixCalculation
16 // Calculate Error Matrix for the given BSEmcRecoHit
17 // with parametrization defined by the given parameter BSEmcErrorCalculationPar
18 //
19 //------------------------------------------------------------------------
20 
21 //#pragma once
22 #ifndef BSEMCERRORMATRIXCALCULATION_HH
23 #define BSEMCERRORMATRIXCALCULATION_HH
24 
25 #include <cstdlib>
26 
27 #include "RtypesCore.h"
28 #include "TMatrixD.h"
29 #include "TMatrixDfwd.h"
30 #include "TString.h"
31 
32 #include "BSEmcRecoHit.h"
33 
35 class BSEmcRecoHit;
36 
48  public:
49  // Constructors
51  // Destructor
53 
55 
56  // Error Matrix for Cluster
57  // 4x4 matrix in E, theta, phi, R
58  TMatrixD CalculateErrorMatrix(const BSEmcRecoHit *t_recoHit) const;
59 
60  // 4x4 matrix in (px, py, pz, E)
61  TMatrixD Get4MomentumErrorMatrix(const BSEmcRecoHit *t_recoHit) const;
62 
63  // 7x7 matrix in (x, y, z, px, py, pz, E)
64  TMatrixD GetErrorP7(const BSEmcRecoHit *t_recoHit) const;
65 
66  protected:
67  Double_t fScaleFactor{-1};
68  Double_t fMinEnergyCutOff{-1};
69  Double_t fMaxEnergyCutOff{-1};
70  Double_t fDetectorPosition{-1};
71 
72  Double_t fEnergyParA{-1};
73  Double_t fEnergyPower{-1};
74  Double_t fEnergyConst{-1};
75  Double_t fEnergyQuadr{-1};
76  Double_t fPosition1ParA{-1};
77  Double_t fPosition1Power{-1};
78  Double_t fPosition1Const{-1};
79  Double_t fPosition2ParA{-1};
80  Double_t fPosition2Power{-1};
81  Double_t fPosition2Const{-1};
82 
83  virtual TMatrixD GetTransformationMatrix(const BSEmcRecoHit *t_recoHit) const;
84  virtual Double_t GetEnergyError(Double_t t_ceiledenergy, Double_t t_recoHitEnergy) const;
85  virtual Double_t GetPosition1Error(Double_t t_energy) const;
86  virtual Double_t GetPosition2Error(Double_t t_energy) const;
87 
88  private:
90  BSEmcErrorMatrixCalculation &operator=(const BSEmcErrorMatrixCalculation & /*unused*/) { return *this; };
91 
92  // helper function to convert error matrix
93  // copied from BbrGeom/BbrError.cc
94  TMatrixD SymmetricMultiplication(const TMatrixD &t_mat, const TMatrixD &t_m1) const;
95 };
96 
97 #endif /*BSEMCERRORMATRIXCALCULATION_HH*/
TMatrixD GetErrorP7(const BSEmcRecoHit *t_recoHit) const
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:43
virtual Double_t GetPosition2Error(Double_t t_energy) const
TMatrixD CalculateErrorMatrix(const BSEmcRecoHit *t_recoHit) const
virtual TMatrixD GetTransformationMatrix(const BSEmcRecoHit *t_recoHit) const
virtual Double_t GetEnergyError(Double_t t_ceiledenergy, Double_t t_recoHitEnergy) const
TMatrixD Get4MomentumErrorMatrix(const BSEmcRecoHit *t_recoHit) const
Container class for EMC error matrix parameter class is inherited from FairParGenericSet.
void SetupParameters(BSEmcErrorCalculationPar *t_par)
Calculate Error Matrix for the given BSEmcRecoHit with parametrization defined by the given parameter...
virtual Double_t GetPosition1Error(Double_t t_energy) const
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:64
virtual ~BSEmcErrorMatrixCalculation()