ATLAS Offline Software
T0CalibrationMT.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef T0CALIBRATIONMT_H
6 #define T0CALIBRATIONMT_H
7 
8 #include <iostream>
9 #include <map>
10 #include <set>
11 #include <string>
12 #include <vector>
13 
17 
18 class TH1;
19 class TFile;
20 class TDirectory;
21 
22 namespace MuonCalib {
23 
24  class MuonCalibSegment;
25  class IMdtCalibrationOutput;
26  class MuonFixedId;
27  class T0MTSettings;
28  class T0MTHistos;
29  class T0ADCHistos;
30  class ADCMTHistos;
31  class HistogramId;
32  class MdtRelativeTubeT0;
33 
41  public:
48  T0CalibrationMT(const std::string& name, const T0MTSettings *settings, const std::vector<int> &sort_by,
49  const std::vector<int> &adc_sort_by);
50 
53 
54  bool handleSegment(MuonCalibSegment &seg);
55 
56  void setInput(const IMdtCalibrationOutput *input) override;
57 
58  bool analyse();
59 
60  bool converged() const;
61 
64  virtual IMdtCalibration::MdtCalibOutputPtr getResults() const override;
65 
66  virtual IMdtCalibration::MdtCalibOutputPtr analyseSegments(const MuonSegVec &segs) override;
67 
68  private:
69  T0MTHistos *getHistos(const MuonFixedId &idtube, unsigned int nr);
70  ADCMTHistos *getADCHistos(const MuonFixedId &idtube, unsigned int nr);
71  bool analyse_tdc(const int &nr, std::map<int, MdtTubeFitContainer::SingleTubeFit> &full,
72  std::map<int, MdtTubeFitContainer::SingleTubeCalib> &st, std::map<int, std::string> &fit_by_map);
73  bool analyse_adc(const int &nr, std::map<int, MdtTubeFitContainer::SingleTubeFit> &full,
74  std::map<int, MdtTubeFitContainer::SingleTubeCalib> &st);
75 
76  void doTimeFit(T0MTHistos *T0h, const std::set<MuonFixedId> &tube_ids, std::map<int, MdtTubeFitContainer::SingleTubeFit> &fim,
77  std::map<int, MdtTubeFitContainer::SingleTubeCalib> &stcm, std::map<int, std::string> &fit_by_map,
78  const std::string &fit_by);
79 
80  void doAdcFit(ADCMTHistos *T0h, const std::set<MuonFixedId> &tube_ids, std::map<int, MdtTubeFitContainer::SingleTubeFit> &fim,
81  std::map<int, MdtTubeFitContainer::SingleTubeCalib> &stcm);
82 
84  bool m_converged;
85  std::string m_name;
87  std::unique_ptr<TFile> m_file;
88  TDirectory *m_regiondir;
89 
90  std::vector<std::map<HistogramId, std::unique_ptr<T0MTHistos>>> m_histos;
91  std::vector<std::map<HistogramId, std::unique_ptr<ADCMTHistos>>> m_adc_histos;
92  std::vector<std::map<HistogramId, std::set<MuonFixedId>>> m_tube_ids;
93  std::vector<std::map<HistogramId, std::set<MuonFixedId>>> m_adc_tube_ids;
94  std::map<int, int> m_nhits_per_tube;
95  std::map<NtupleStationId, MdtTubeFitContainer *> m_result;
96  std::map<NtupleStationId, MdtRelativeTubeT0> m_rel_tube_t0s;
97  const std::vector<int> &m_sort_by;
98  const std::vector<int> &m_adc_sort_by;
100 
101  // hidden assignment operator and copy constructor
102  T0CalibrationMT &operator=(const T0CalibrationMT &right) = delete;
103  T0CalibrationMT(const T0CalibrationMT &) = delete;
104  };
105 } // namespace MuonCalib
106 
107 #endif
MuonCalib::IMdtCalibration::MdtCalibOutputPtr
std::shared_ptr< IMdtCalibrationOutput > MdtCalibOutputPtr
Definition: IMdtCalibration.h:30
MuonCalib::T0CalibrationMT::m_result
std::map< NtupleStationId, MdtTubeFitContainer * > m_result
tube constants
Definition: T0CalibrationMT.h:95
MuonCalib::T0CalibrationMT::m_file
std::unique_ptr< TFile > m_file
pointer to the histogram file
Definition: T0CalibrationMT.h:87
MuonCalib::T0CalibrationMT::m_adc_tube_ids
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_adc_tube_ids
Definition: T0CalibrationMT.h:93
MuonCalib::T0CalibrationMT::m_currentItnum
int m_currentItnum
current iteration (always 1?)
Definition: T0CalibrationMT.h:86
MuonCalib::T0CalibrationMT::m_delete_settings
bool m_delete_settings
Definition: T0CalibrationMT.h:99
MuonCalib::T0CalibrationMT::~T0CalibrationMT
~T0CalibrationMT()
destructor
Definition: T0CalibrationMT.cxx:59
MuonCalib::IMdtCalibration
Definition: IMdtCalibration.h:25
MuonCalib::MuonCalibSegment
Definition: MuonCalibSegment.h:39
MuonCalib::T0CalibrationMT::getResults
virtual IMdtCalibration::MdtCalibOutputPtr getResults() const override
Definition: T0CalibrationMT.cxx:262
MdtTubeFitContainer.h
MuonCalib::T0CalibrationMT::m_nhits_per_tube
std::map< int, int > m_nhits_per_tube
number of hits per tube
Definition: T0CalibrationMT.h:94
MuonCalib::T0CalibrationMT::analyse_adc
bool analyse_adc(const int &nr, std::map< int, MdtTubeFitContainer::SingleTubeFit > &full, std::map< int, MdtTubeFitContainer::SingleTubeCalib > &st)
Definition: T0CalibrationMT.cxx:171
NtupleStationId.h
MuonCalib::T0CalibrationMT::doAdcFit
void doAdcFit(ADCMTHistos *T0h, const std::set< MuonFixedId > &tube_ids, std::map< int, MdtTubeFitContainer::SingleTubeFit > &fim, std::map< int, MdtTubeFitContainer::SingleTubeCalib > &stcm)
fit adc spectrum
Definition: T0CalibrationMT.cxx:241
MuonCalib::T0CalibrationMT::m_sort_by
const std::vector< int > & m_sort_by
Definition: T0CalibrationMT.h:97
MuonCalib::T0CalibrationMT::operator=
T0CalibrationMT & operator=(const T0CalibrationMT &right)=delete
MuonCalib::T0CalibrationMT::handleSegment
bool handleSegment(MuonCalibSegment &seg)
fill tube spectra
Definition: T0CalibrationMT.cxx:65
MuonCalib::T0MTHistos
Definition: T0MTHistos.h:40
MuonCalib::T0CalibrationMT::T0CalibrationMT
T0CalibrationMT(const std::string &name, const T0MTSettings *settings, const std::vector< int > &sort_by, const std::vector< int > &adc_sort_by)
constructor
Definition: T0CalibrationMT.cxx:33
MuonCalib::T0CalibrationMT::doTimeFit
void doTimeFit(T0MTHistos *T0h, const std::set< MuonFixedId > &tube_ids, std::map< int, MdtTubeFitContainer::SingleTubeFit > &fim, std::map< int, MdtTubeFitContainer::SingleTubeCalib > &stcm, std::map< int, std::string > &fit_by_map, const std::string &fit_by)
fit time spectrum
Definition: T0CalibrationMT.cxx:185
MuonCalib::T0CalibrationMT::m_adc_histos
std::vector< std::map< HistogramId, std::unique_ptr< ADCMTHistos > > > m_adc_histos
vector of pointers tube histograms
Definition: T0CalibrationMT.h:91
MuonCalib::T0CalibrationMT::converged
bool converged() const
return m_converged
Definition: T0CalibrationMT.cxx:304
MuonCalib::T0CalibrationMT::m_tube_ids
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_tube_ids
Definition: T0CalibrationMT.h:92
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
MuonCalib::T0CalibrationMT::getADCHistos
ADCMTHistos * getADCHistos(const MuonFixedId &idtube, unsigned int nr)
retrieve pointer for tube idtube histograms
Definition: T0CalibrationMT.cxx:264
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
MuonCalib::T0CalibrationMT::m_adc_sort_by
const std::vector< int > & m_adc_sort_by
Definition: T0CalibrationMT.h:98
MuonCalib::T0CalibrationMT::analyseSegments
virtual IMdtCalibration::MdtCalibOutputPtr analyseSegments(const MuonSegVec &segs) override
new interface function
Definition: T0CalibrationMT.cxx:179
MuonCalib::T0CalibrationMT::m_histos
std::vector< std::map< HistogramId, std::unique_ptr< T0MTHistos > > > m_histos
vector of pointers tube histograms
Definition: T0CalibrationMT.h:90
MuonCalib::ADCMTHistos
Definition: ADCMTHistos.h:44
MuonCalib::IMdtCalibration::name
virtual std::string name() const
returns name (region) of instance
Definition: IMdtCalibration.h:49
MuonCalib::T0CalibrationMT::m_name
std::string m_name
calibration region name
Definition: T0CalibrationMT.h:85
MuonCalib::T0CalibrationMT::T0CalibrationMT
T0CalibrationMT(const T0CalibrationMT &)=delete
MuonCalib::T0CalibrationMT::getHistos
T0MTHistos * getHistos(const MuonFixedId &idtube, unsigned int nr)
retrieve pointer for tube idtube histograms
Definition: T0CalibrationMT.cxx:277
MuonCalib::T0CalibrationMT::setInput
void setInput(const IMdtCalibrationOutput *input) override
unused
Definition: T0CalibrationMT.cxx:290
IMdtCalibration.h
MuonCalib::MuonFixedId
Definition: MuonFixedId.h:50
MuonCalib::IMdtCalibrationOutput
Definition: IMdtCalibrationOutput.h:28
find_data.full
full
Definition: find_data.py:27
MuonCalib::T0CalibrationMT::analyse
bool analyse()
extract parameters from spectra
Definition: T0CalibrationMT.cxx:106
MuonCalib::T0CalibrationMT
Definition: T0CalibrationMT.h:40
MuonCalib::T0CalibrationMT::m_regiondir
TDirectory * m_regiondir
pointer to the ROOT directory
Definition: T0CalibrationMT.h:88
MuonCalib::T0CalibrationMT::m_rel_tube_t0s
std::map< NtupleStationId, MdtRelativeTubeT0 > m_rel_tube_t0s
Definition: T0CalibrationMT.h:96
TH1
Definition: rootspy.cxx:268
MuonCalib::T0CalibrationMT::analyse_tdc
bool analyse_tdc(const int &nr, std::map< int, MdtTubeFitContainer::SingleTubeFit > &full, std::map< int, MdtTubeFitContainer::SingleTubeCalib > &st, std::map< int, std::string > &fit_by_map)
Definition: T0CalibrationMT.cxx:148
MuonCalib::IMdtCalibration::MuonSegVec
std::vector< std::shared_ptr< MuonCalibSegment > > MuonSegVec
Definition: IMdtCalibration.h:27
MuonCalib::T0CalibrationMT::m_settings
const T0MTSettings * m_settings
pointer to the settings
Definition: T0CalibrationMT.h:83
MuonCalib::T0CalibrationMT::m_converged
bool m_converged
convergence status
Definition: T0CalibrationMT.h:84
MuonCalib::T0MTSettings
Definition: T0MTSettings.h:28