ATLAS Offline Software
TileFilterManager.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILERECUTILS_TILEFILTERMANAGER_H
6 #define TILERECUTILS_TILEFILTERMANAGER_H
7 // *************************************************************************************
8 // Filename : TileFilterManager.h
9 // Author : F. Merritt, A. Aurisano
10 // Created : March 2004
11 
12 // DESCRIPTION
13 // Managers filtering of TileDigit objects to produce amplitudes of TileRawChannels.
14 
15 // ************************************************************************************
16 
17 
18 #include "TileRecUtils/TileFitter.h" //member vector template param
19 
20 #include <string>
21 #include <vector>
22 
23 class TileFilterResult;
24 
25 namespace CLHEP{
26  class HepVector;
27  class HepMatrix;
28 }
29 
30 //using namespace CLHEP;
34 {
35  public:
36  // =================================================================================
37  //Constructor
38  TileFilterManager(int mode, int level, int &nPar, int &nSam, int &inTsam, int &jbsam, int &jesam,
39  int &ncr, int &intcr, int &jBcr, int &jEcr, std::vector<double> &Shape, bool lDebug=false);
40  // =================================================================================
41  // Destructor
43  // =================================================================================
44  // Find the crossing with largest amplitude.
45  int findHighestResidual(CLHEP::HepVector &digits) const;
46  // =================================================================================
47  // Find the crossing with lowest residual amplitude.
48  int findLowestCrossing(CLHEP::HepVector &digits) const;
49  // =================================================================================
50  // Fit the in-time amplitude for this digits vector.
51  int fitDigits(TileFilterResult &tRes, bool lDebug = false);
52  // =================================================================================
53  // Fit the in-time amplitude for this digits vector.
54  int fitDigits1(TileFilterResult &tRes, bool lDebug = false);
55  // =================================================================================
56  // Fit the in-time amplitude for this digits vector (alternate method).
57  int fitDigits2(TileFilterResult &tRes, bool lDebug = false);
58  // =================================================================================
59  // Make the table of offsets used to locate Fitter matrices.
61  // =================================================================================
62  // Fill the SPD matrix for a new fit configuration.
63  int makeSPD(bool debug, std::vector<int>& vcross, CLHEP::HepMatrix& SPD);
64  // =================================================================================
65  // Make the TileFitter arrays which hold the solution matrices for each fit
66  int makeFitterArrays();
67  // =================================================================================
68  // Return the vector of crossing for a given fit index.
69  void getVcross(int nPile, int iconfig, std::vector<int>& vcross);
70  // =================================================================================
71  // Return the cuts used in filtering.
72  void getCuts(double& rchisq, double& chi);
73  // =================================================================================
74  std::vector<int>& getNfitIndex();
75  // =================================================================================
76  // Return the FitIndex for a given crossing configuration.
77  int getFitIndex(int nParam, std::vector<int>& vcross);
78  // =================================================================================
79  // Return the FitErr vector for a given crossing configuration.
80  std::vector<double>& getFitterErr(int nParam, int iconfig);
81  // =================================================================================
82 
83 
84  private:
85 
86  std::string m_infoName;
87 
90  bool m_debug;
92  int m_nShape;
94  int m_nDig;
95  int m_inTdig;
96  int m_jBsamp;
97  int m_jEsamp;
98  int m_nCross;
102  double m_rChi2Cut;
103  double m_chiCut;
104 
105  std::vector<int *> m_offsetVector;
106  std::vector<int> m_nFitIndex;
107  std::vector<double *> m_crossShape;
108  int m_ind2icrMap[9];
109  int m_icr2indMap[9];
110  std::vector<TileFitter *> m_vNparam;
111  std::vector<std::vector<TileFitter> > m_vNpFitter;
112 };
113 
114 #endif // TILERECUTILS_TILEFILTERMANAGER_H
TileFilterManager::getCuts
void getCuts(double &rchisq, double &chi)
Definition: TileFilterManager.cxx:566
TileFilterManager::m_vNpFitter
std::vector< std::vector< TileFitter > > m_vNpFitter
Definition: TileFilterManager.h:111
TileFilterManager::findHighestResidual
int findHighestResidual(CLHEP::HepVector &digits) const
Definition: TileFilterManager.cxx:391
TileFilterManager::findLowestCrossing
int findLowestCrossing(CLHEP::HepVector &digits) const
Definition: TileFilterManager.cxx:405
TileFilterManager::m_nCross
int m_nCross
Definition: TileFilterManager.h:98
TileFilterManager::fitDigits
int fitDigits(TileFilterResult &tRes, bool lDebug=false)
Definition: TileFilterManager.cxx:160
TileFilterManager::m_crossShape
std::vector< double * > m_crossShape
Definition: TileFilterManager.h:107
TileFilterManager::m_ind2icrMap
int m_ind2icrMap[9]
Definition: TileFilterManager.h:108
TileFitter.h
TileFilterManager::m_filterLevel
int m_filterLevel
Definition: TileFilterManager.h:89
TileFilterManager::m_jEcross
int m_jEcross
Definition: TileFilterManager.h:101
TileFilterManager::m_inTcross
int m_inTcross
Definition: TileFilterManager.h:99
TileFilterManager::m_chiCut
double m_chiCut
Definition: TileFilterManager.h:103
TileFilterManager::m_infoName
std::string m_infoName
Definition: TileFilterManager.h:86
TileFilterManager
Auxiliary class for TileRawChannelMakerManyAmps.
Definition: TileFilterManager.h:34
TileFilterManager::m_jBsamp
int m_jBsamp
Definition: TileFilterManager.h:96
TileFilterManager::m_offsetVector
std::vector< int * > m_offsetVector
Definition: TileFilterManager.h:105
TileFilterManager::m_rChi2Cut
double m_rChi2Cut
Definition: TileFilterManager.h:102
TileFilterManager::makeSPD
int makeSPD(bool debug, std::vector< int > &vcross, CLHEP::HepMatrix &SPD)
Definition: TileFilterManager.cxx:490
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TileFilterManager::m_jEsamp
int m_jEsamp
Definition: TileFilterManager.h:97
TileFilterManager::TileFilterManager
TileFilterManager(int mode, int level, int &nPar, int &nSam, int &inTsam, int &jbsam, int &jesam, int &ncr, int &intcr, int &jBcr, int &jEcr, std::vector< double > &Shape, bool lDebug=false)
Definition: TileFilterManager.cxx:24
TileFilterManager::m_filterMode
int m_filterMode
Definition: TileFilterManager.h:88
TileFilterManager::m_inTshape
int m_inTshape
Definition: TileFilterManager.h:93
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
TileFilterManager::m_nShape
int m_nShape
Definition: TileFilterManager.h:92
TileFilterManager::makeFitterArrays
int makeFitterArrays()
Definition: TileFilterManager.cxx:525
Preparation.mode
mode
Definition: Preparation.py:95
TileFilterManager::m_vNparam
std::vector< TileFitter * > m_vNparam
Definition: TileFilterManager.h:110
TileFilterManager::fitDigits2
int fitDigits2(TileFilterResult &tRes, bool lDebug=false)
Definition: TileFilterManager.cxx:268
TileFilterManager::m_nDig
int m_nDig
Definition: TileFilterManager.h:94
TileFilterManager::getFitterErr
std::vector< double > & getFitterErr(int nParam, int iconfig)
Definition: TileFilterManager.cxx:630
TileFilterManager::m_nParamMax
int m_nParamMax
Definition: TileFilterManager.h:91
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
TileFilterManager::getVcross
void getVcross(int nPile, int iconfig, std::vector< int > &vcross)
Definition: TileFilterManager.cxx:574
TileFilterManager::getNfitIndex
std::vector< int > & getNfitIndex()
Definition: TileFilterManager.cxx:560
TileFilterManager::getFitIndex
int getFitIndex(int nParam, std::vector< int > &vcross)
Definition: TileFilterManager.cxx:603
TileFilterManager::makeFitterOffsetTables
void makeFitterOffsetTables()
Definition: TileFilterManager.cxx:420
TileFilterManager::~TileFilterManager
~TileFilterManager()
Definition: TileFilterManager.cxx:147
TileFilterManager::m_inTdig
int m_inTdig
Definition: TileFilterManager.h:95
TileFilterManager::m_jBcross
int m_jBcross
Definition: TileFilterManager.h:100
TileFilterResult
Auxiliary class for TileRawChannelMakerManyAmps.
Definition: TileFilterResult.h:22
TileFilterManager::m_nFitIndex
std::vector< int > m_nFitIndex
Definition: TileFilterManager.h:106
TileFilterManager::fitDigits1
int fitDigits1(TileFilterResult &tRes, bool lDebug=false)
Definition: TileFilterManager.cxx:179
TileFilterManager::m_debug
bool m_debug
Definition: TileFilterManager.h:90
TileFilterManager::m_icr2indMap
int m_icr2indMap[9]
Definition: TileFilterManager.h:109