ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MuonCalib::T0CalibrationMT Class Reference

#include <T0CalibrationMT.h>

Inheritance diagram for MuonCalib::T0CalibrationMT:
Collaboration diagram for MuonCalib::T0CalibrationMT:

Public Types

using MuonSegVec = std::vector< std::shared_ptr< MuonCalibSegment > >
 
using MuonSegIt = MuonSegVec::iterator
 
using MuonSegCit = MuonSegVec::const_iterator
 
using MdtCalibOutputPtr = std::shared_ptr< IMdtCalibrationOutput >
 

Public Member Functions

 T0CalibrationMT (const std::string &name, std::shared_ptr< const T0MTSettings > settings, const std::vector< int > &sort_by, const std::vector< int > &adc_sort_by)
 constructor More...
 
 ~T0CalibrationMT ()
 destructor More...
 
bool handleSegment (MuonCalibSegment &seg)
 fill tube spectra More...
 
void setInput (const IMdtCalibrationOutput *input) override
 unused More...
 
bool analyse ()
 extract parameters from spectra More...
 
bool converged () const
 return m_converged More...
 
virtual IMdtCalibration::MdtCalibOutputPtr getResults () const override
 
virtual IMdtCalibration::MdtCalibOutputPtr analyseSegments (const MuonSegVec &segs) override
 new interface function More...
 
virtual std::string name () const
 returns name (region) of instance More...
 

Private Member Functions

T0MTHistosgetHistos (const MuonFixedId &idtube, unsigned int nr)
 retrieve pointer for tube idtube histograms More...
 
ADCMTHistosgetADCHistos (const MuonFixedId &idtube, unsigned int nr)
 retrieve pointer for tube idtube histograms More...
 
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)
 
bool analyse_adc (const int &nr, std::map< int, MdtTubeFitContainer::SingleTubeFit > &full, std::map< int, MdtTubeFitContainer::SingleTubeCalib > &st)
 
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 More...
 
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 More...
 
T0CalibrationMToperator= (const T0CalibrationMT &right)=delete
 
 T0CalibrationMT (const T0CalibrationMT &)=delete
 

Private Attributes

std::shared_ptr< const T0MTSettingsm_settings
 pointer to the settings More...
 
bool m_converged
 convergence status More...
 
std::string m_name
 calibration region name More...
 
int m_currentItnum
 current iteration (always 1?) More...
 
std::unique_ptr< TFile > m_file
 pointer to the histogram file More...
 
TDirectory * m_regiondir
 pointer to the ROOT directory More...
 
std::vector< std::map< HistogramId, std::unique_ptr< T0MTHistos > > > m_histos
 vector of pointers tube histograms More...
 
std::vector< std::map< HistogramId, std::unique_ptr< ADCMTHistos > > > m_adc_histos
 vector of pointers tube histograms More...
 
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_tube_ids
 
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_adc_tube_ids
 
std::map< int, int > m_nhits_per_tube
 number of hits per tube More...
 
std::map< NtupleStationId, MdtTubeFitContainer * > m_result
 tube constants More...
 
std::map< NtupleStationId, MdtRelativeTubeT0m_rel_tube_t0s
 
const std::vector< int > & m_sort_by
 
const std::vector< int > & m_adc_sort_by
 

Detailed Description

Implementation of a T0 calibration using the MT approach. Copied from T0CalibrationClassic

Author
Felix.nosp@m..Rau.nosp@m.scher.nosp@m.@Phy.nosp@m.sik.U.nosp@m.ni-M.nosp@m.uench.nosp@m.en.D.nosp@m.e
Date
June 2005

Definition at line 40 of file T0CalibrationMT.h.

Member Typedef Documentation

◆ MdtCalibOutputPtr

Definition at line 30 of file IMdtCalibration.h.

◆ MuonSegCit

using MuonCalib::IMdtCalibration::MuonSegCit = MuonSegVec::const_iterator
inherited

Definition at line 29 of file IMdtCalibration.h.

◆ MuonSegIt

using MuonCalib::IMdtCalibration::MuonSegIt = MuonSegVec::iterator
inherited

Definition at line 28 of file IMdtCalibration.h.

◆ MuonSegVec

using MuonCalib::IMdtCalibration::MuonSegVec = std::vector<std::shared_ptr<MuonCalibSegment> >
inherited

Definition at line 27 of file IMdtCalibration.h.

Constructor & Destructor Documentation

◆ T0CalibrationMT() [1/2]

MuonCalib::T0CalibrationMT::T0CalibrationMT ( const std::string &  name,
std::shared_ptr< const T0MTSettings settings,
const std::vector< int > &  sort_by,
const std::vector< int > &  adc_sort_by 
)

constructor

Parameters
[in]nameof the region/chamber to be calibrated
[in]pointerto settings vector
[in]sortingcriteria (TUBE, CHAMBER, MULTILAYER...) default is by TUBE

Definition at line 32 of file T0CalibrationMT.cxx.

35  :
37  m_settings(settings),
38  m_converged(false),
39  m_name(name),
40  m_currentItnum(0),
41  m_sort_by(sort_by),
42  m_adc_sort_by(adc_sort_by) {
43 
44  m_settings = std::make_unique<T0MTSettings>();
45  std::string HistoFileName = "T0MT_" + m_name + ".root";
46  m_file = std::make_unique<TFile>(HistoFileName.c_str(), "recreate");
47  m_regiondir = m_file->mkdir(m_name.c_str());
48 
49  m_histos.resize(sort_by.size());
50  m_adc_histos.resize(adc_sort_by.size());
51 
52  m_tube_ids.resize(sort_by.size());
53  m_adc_tube_ids.resize(adc_sort_by.size());
54  }

◆ ~T0CalibrationMT()

MuonCalib::T0CalibrationMT::~T0CalibrationMT ( )

destructor

Definition at line 56 of file T0CalibrationMT.cxx.

56  {
57  m_file->Write();
58  m_file->Close();
59  }

◆ T0CalibrationMT() [2/2]

MuonCalib::T0CalibrationMT::T0CalibrationMT ( const T0CalibrationMT )
privatedelete

Member Function Documentation

◆ analyse()

bool MuonCalib::T0CalibrationMT::analyse ( )

extract parameters from spectra

Definition at line 102 of file T0CalibrationMT.cxx.

102  {
103  MsgStream log(Athena::getMessageSvc(), "T0CalibrationMT");
104  std::map<int, MdtTubeFitContainer::SingleTubeFit> full;
105  std::map<int, MdtTubeFitContainer::SingleTubeCalib> st;
106  std::map<int, std::string> fit_by;
107  if (m_settings->FitTime())
108  for (unsigned int i = 0; i < m_sort_by.size(); i++) { analyse_tdc(i, full, st, fit_by); }
109  for (unsigned int i = 0; i < m_adc_sort_by.size(); i++) { analyse_adc(i, full, st); }
110 
111  for (auto & it : full) {
112  if (it.first == 0) continue;
113  MuonFixedId fId(it.first);
114  NtupleStationId sid(fId);
115  sid.SetMultilayer(0);
118  fi.group_by = fit_by[it.first];
119  int nML = fId.mdtMultilayer();
120  int nL = fId.mdtTubeLayer();
121  int nT = fId.mdtTube();
122  const MdtIdHelper& idHelper{m_result[sid]->idHelperSvc()->mdtIdHelper()};
123  const Identifier tubeId = idHelper.channelID(fId.stationNameString(),
124  fId.eta(), fId.phi(), nML, nL, nT);
125 
126  bool setInfo = m_result[sid]->setCalib(std::move(stc), tubeId, log);
127  if (!setInfo) {
128  log << MSG::WARNING << "T0CalibrationMT::PROBLEM! could not set SingleTubeCalib info" << endmsg;
129  }
130  fi.n_hits = m_nhits_per_tube[fId.getIdInt()];
131  fi.n_hits_above_adc_cut = m_nhits_per_tube[fId.getIdInt()];
132  setInfo = m_result[sid]->setFit(std::move(fi), tubeId, log);
133  if (!setInfo) {
134  MsgStream log(Athena::getMessageSvc(), "T0CalibrationMT");
135  log << MSG::WARNING << "T0CalibrationMT::PROBLEM! could not set SingleTubeFit info" << endmsg;
136  }
137  }
138 
139  m_currentItnum++;
140  m_file->Write();
141  return true;
142  }

◆ analyse_adc()

bool MuonCalib::T0CalibrationMT::analyse_adc ( const int &  nr,
std::map< int, MdtTubeFitContainer::SingleTubeFit > &  full,
std::map< int, MdtTubeFitContainer::SingleTubeCalib > &  st 
)
private

Definition at line 167 of file T0CalibrationMT.cxx.

168  {
169  for (std::map<HistogramId, std::unique_ptr<ADCMTHistos>>::iterator it = m_adc_histos[nr].begin(); it != m_adc_histos[nr].end();
170  ++it)
171  if (m_settings->FitADC()) { doAdcFit(it->second.get(), m_adc_tube_ids[nr][it->first], full, st); }
172  return true;
173  }

◆ analyse_tdc()

bool MuonCalib::T0CalibrationMT::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 
)
private

Definition at line 144 of file T0CalibrationMT.cxx.

145  {
146  if (m_settings->VerboseLevel() > 1) {
147  MsgStream log(Athena::getMessageSvc(), "T0CalibrationMT");
148  log << MSG::VERBOSE << "T0CalibrationMT::analyse iteration " << m_currentItnum << endmsg;
149  }
150  std::string fit_by("UNKNOWN");
151  switch (m_sort_by[nr]) {
152  case HistogramId::TUBE: fit_by = "TUBE"; break;
153  case HistogramId::LAYER: fit_by = "LAYER"; break;
154  case HistogramId::MULTILAYER: fit_by = "MULTILAYER"; break;
155  case HistogramId::CHAMBER: fit_by = "CHAMBER"; break;
156  case HistogramId::MEZZ_CARD: fit_by = "MEZZ_CARD"; break;
157  }
158 
159  for (std::map<HistogramId, std::unique_ptr<T0MTHistos>>::iterator it = m_histos[nr].begin(); it != m_histos[nr].end(); ++it)
160  // loop over m_histos histograms
161  {
162  doTimeFit(it->second.get(), m_tube_ids[nr][it->first], full, st, fit_by_map, fit_by);
163  }
164  return true;
165  }

◆ analyseSegments()

IMdtCalibration::MdtCalibOutputPtr MuonCalib::T0CalibrationMT::analyseSegments ( const MuonSegVec segs)
overridevirtual

new interface function

Implements MuonCalib::IMdtCalibration.

Definition at line 175 of file T0CalibrationMT.cxx.

175  {
176  for (const auto & seg : segs) handleSegment(*seg);
177  analyse();
178  return getResults();
179  }

◆ converged()

bool MuonCalib::T0CalibrationMT::converged ( ) const

return m_converged

Definition at line 300 of file T0CalibrationMT.cxx.

300 { return m_converged; }

◆ doAdcFit()

void MuonCalib::T0CalibrationMT::doAdcFit ( ADCMTHistos T0h,
const std::set< MuonFixedId > &  tube_ids,
std::map< int, MdtTubeFitContainer::SingleTubeFit > &  fim,
std::map< int, MdtTubeFitContainer::SingleTubeCalib > &  stcm 
)
private

fit adc spectrum

Definition at line 237 of file T0CalibrationMT.cxx.

239  {
240  if (T0h->FitAdc() && m_settings->MinEntriesADC() <= T0h->GetADCSpec()->GetEntries()) {
241  const TF1 *fun(T0h->GetAdcFunction());
242  if (fun == nullptr) return;
243  for (auto tube_id : tube_ids) {
244  if (tube_id.getIdInt() == 0) continue;
246  MdtTubeFitContainer::SingleTubeCalib &stc(stcm[tube_id.getIdInt()]);
247 
248  stc.adcCal = fun->GetParameter(1);
249  for (int i = 0; (i < fun->GetNpar() && i < 4); i++) {
250  fi.adc_par[i] = fun->GetParameter(i);
251  fi.adc_err[i] = fun->GetParError(i);
252  }
253  fi.adc_chi2 = fun->GetChisquare() / fun->GetNDF();
254  }
255  }
256  }

◆ doTimeFit()

void MuonCalib::T0CalibrationMT::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 
)
private

fit time spectrum

Definition at line 181 of file T0CalibrationMT.cxx.

184  {
185  TDirectory *cwd = gDirectory;
186  m_regiondir->cd();
187  // do t0 fit
189  if (fit_by == "CHAMBER")
190  theGroup = MdtRelativeTubeT0::CHAMBER;
191  else if (fit_by == "MULTILAYER")
193  else if (fit_by == "LAYER")
194  theGroup = MdtRelativeTubeT0::LAYER;
195  else if (fit_by == "MEZZ_CARD")
196  theGroup = MdtRelativeTubeT0::MEZZ_CARD;
197  if (T0h->FitT0() && m_settings->MinEntriesTime() <= T0h->GetTSpec()->GetEntries()) {
198  const TF1 *fun(T0h->GetT0Function());
199  for (auto tube_id : tube_ids) {
200  if (tube_id.getIdInt() == 0) continue;
201  NtupleStationId stId(tube_id);
202  stId.SetMultilayer(0);
203  double rel_t0(0.0);
204  if (m_settings->T0Settings()->CorrectRelT0s()) rel_t0 = m_rel_tube_t0s[stId].GetRelativeOffset(tube_id, theGroup);
206  MdtTubeFitContainer::SingleTubeCalib &stc(stcm[tube_id.getIdInt()]);
207  // store parameters
208  fi.statistics = static_cast<int>(T0h->GetTSpec()->GetEntries());
209  fi.chi2Tdc = T0h->T0Chi2();
210  fi.par[0] = fun->GetParameter(T0MTHistos ::T0_PAR_NR_BACK);
211  fi.cov[0] = fun->GetParError(T0MTHistos ::T0_PAR_NR_BACK);
212  fi.par[4] = fun->GetParameter(T0MTHistos ::T0_PAR_NR_T0) + rel_t0;
213  fi.cov[4] = fun->GetParError(T0MTHistos ::T0_PAR_NR_T0);
214  fi.par[6] = fun->GetParameter(T0MTHistos ::T0_PAR_NR_T);
215  fi.cov[6] = fun->GetParError(T0MTHistos ::T0_PAR_NR_T);
216  stc.t0 = fun->GetParameter(T0MTHistos ::T0_PAR_NR_T0) + rel_t0;
217  stc.statusCode = T0h->StatusCode();
218  m_converged = true;
219  fit_by_map[tube_id.getIdInt()] = fit_by;
220  }
221  }
222  if (T0h->FitTmax() && m_settings->MinEntriesTime() <= T0h->GetTSpec()->GetEntries()) {
223  const TF1 *fun(T0h->GetTMaxFunction());
224  // store parameters
225  for (auto tube_id : tube_ids) {
226  if (tube_id.getIdInt() == 0) continue;
228  // MdtTubeFitContainer::SingleTubeCalib &stc(stcm[*it]);
229  fi.par[5] = fun->GetParameter(T0MTHistos ::TMAX_PAR_NR_TMAX);
230  fi.cov[5] = fun->GetParError(T0MTHistos ::TMAX_PAR_NR_TMAX);
231  fi.chi2TdcEnd = fun->GetChisquare() / fun->GetNDF();
232  }
233  }
234  cwd->cd();
235  }

◆ getADCHistos()

ADCMTHistos * MuonCalib::T0CalibrationMT::getADCHistos ( const MuonFixedId idtube,
unsigned int  nr 
)
private

retrieve pointer for tube idtube histograms

Definition at line 260 of file T0CalibrationMT.cxx.

260  {
261  HistogramId id;
262  id.Initialize(idtube, m_adc_sort_by[nr]);
263  if (!m_adc_histos[nr][id]) {
264  TDirectory *cwd = gDirectory;
265  m_regiondir->cd();
266  m_adc_histos[nr][id] = std::make_unique<ADCMTHistos>(id.getIdInt(), m_settings.get(), id.HistogramName().c_str());
267  cwd->cd();
268  }
269  m_adc_tube_ids[nr][id].insert(idtube);
270  return m_adc_histos[nr][id].get();
271  }

◆ getHistos()

T0MTHistos * MuonCalib::T0CalibrationMT::getHistos ( const MuonFixedId idtube,
unsigned int  nr 
)
private

retrieve pointer for tube idtube histograms

Definition at line 273 of file T0CalibrationMT.cxx.

273  {
274  HistogramId id;
275  id.Initialize(idtube, m_sort_by[nr]);
276  if (!m_histos[nr][id]) {
277  TDirectory *cwd = gDirectory;
278  m_regiondir->cd();
279  m_histos[nr][id] = std::make_unique<T0MTHistos>(id.getIdInt(), m_settings.get(), id.HistogramName().c_str());
280  cwd->cd();
281  }
282  m_tube_ids[nr][id].insert(idtube);
283  return m_histos[nr][id].get();
284  }

◆ getResults()

IMdtCalibration::MdtCalibOutputPtr MuonCalib::T0CalibrationMT::getResults ( ) const
overridevirtual
Returns
the calibration results

Implements MuonCalib::IMdtCalibration.

Definition at line 258 of file T0CalibrationMT.cxx.

258 { return std::make_shared<T0CalibrationOutput>(m_result); }

◆ handleSegment()

bool MuonCalib::T0CalibrationMT::handleSegment ( MuonCalibSegment seg)

fill tube spectra

Definition at line 61 of file T0CalibrationMT.cxx.

61  {
62  for (const MuonCalibSegment::MdtHitPtr& hit : seg.mdtHOT()) {
63  MuonFixedId id = hit->identify();
64  m_nhits_per_tube[id.getIdInt()]++;
65  // get the T0 originally subtracted for this hit
66  int nML = id.mdtMultilayer();
67  int nL = id.mdtTubeLayer();
68  int nT = id.mdtTube();
69  const MdtTubeFitContainer::SingleTubeCalib *stc(nullptr);
70  NtupleStationId sid(id);
71  sid.SetMultilayer(0);
72  std::map<NtupleStationId, MdtTubeFitContainer *>::const_iterator res_it(m_result.find(sid));
73  if (res_it != m_result.end()) {
74  const MdtIdHelper& idHelper{res_it->second->idHelperSvc()->mdtIdHelper()};
75  const Identifier tubeId = idHelper.channelID(id.stationNameString(),
76  id.eta(), id.phi(), nML, nL, nT);
77  stc = res_it->second->getCalib(tubeId);
78  }
79  double oldT0 = 0;
80  if (stc)
81  oldT0 = stc->t0;
82  else {
83  MsgStream log(Athena::getMessageSvc(), "T0CalibrationMT");
84  log << MSG::WARNING << "no Single Tube Calib info found for ML=" << nML << " L=" << nL << " T=" << nT << endmsg;
85  }
86 
87  // get histos
88  for (unsigned int i = 0; i < m_sort_by.size(); i++) {
89  T0MTHistos *histos = getHistos(id, i);
90  histos->GetTSpec()->Fill(hit->driftTime() + oldT0 + hit->tubeT0());
91  }
92  for (unsigned int i = 0; i < m_adc_sort_by.size(); i++) {
93  ADCMTHistos *adc_histos = getADCHistos(id, i);
94  adc_histos->GetADCSpec()->Fill(hit->adcCount());
95  }
96  // relative t0 offsets
97  m_rel_tube_t0s[sid].AddHit(*hit);
98  }
99  return true;
100  }

◆ name()

virtual std::string MuonCalib::IMdtCalibration::name ( ) const
inlinevirtualinherited

returns name (region) of instance

Definition at line 49 of file IMdtCalibration.h.

49 { return m_name; }

◆ operator=()

T0CalibrationMT& MuonCalib::T0CalibrationMT::operator= ( const T0CalibrationMT right)
privatedelete

◆ setInput()

void MuonCalib::T0CalibrationMT::setInput ( const IMdtCalibrationOutput input)
overridevirtual

unused

Implements MuonCalib::IMdtCalibration.

Definition at line 286 of file T0CalibrationMT.cxx.

286  {
287  // This method is called both by the event loop and by the tool.
288  // Only the call from the tool is relevant for this implementation
289  // and should be performed only once.
290 
291  if (m_result.size()) return;
292 
293  const T0CalibrationOutput *t0Input = dynamic_cast<const T0CalibrationOutput *>(calib_in);
294  if (!calib_in || !t0Input) return;
295  m_result = t0Input->GetMap();
296  for (auto & it : m_result)
297  it.second->setImplementation("T0CalibrationMT");
298  }

Member Data Documentation

◆ m_adc_histos

std::vector<std::map<HistogramId, std::unique_ptr<ADCMTHistos> > > MuonCalib::T0CalibrationMT::m_adc_histos
private

vector of pointers tube histograms

Definition at line 93 of file T0CalibrationMT.h.

◆ m_adc_sort_by

const std::vector<int>& MuonCalib::T0CalibrationMT::m_adc_sort_by
private

Definition at line 100 of file T0CalibrationMT.h.

◆ m_adc_tube_ids

std::vector<std::map<HistogramId, std::set<MuonFixedId> > > MuonCalib::T0CalibrationMT::m_adc_tube_ids
private

Definition at line 95 of file T0CalibrationMT.h.

◆ m_converged

bool MuonCalib::T0CalibrationMT::m_converged
private

convergence status

Definition at line 86 of file T0CalibrationMT.h.

◆ m_currentItnum

int MuonCalib::T0CalibrationMT::m_currentItnum
private

current iteration (always 1?)

Definition at line 88 of file T0CalibrationMT.h.

◆ m_file

std::unique_ptr<TFile> MuonCalib::T0CalibrationMT::m_file
private

pointer to the histogram file

Definition at line 89 of file T0CalibrationMT.h.

◆ m_histos

std::vector<std::map<HistogramId, std::unique_ptr<T0MTHistos> > > MuonCalib::T0CalibrationMT::m_histos
private

vector of pointers tube histograms

Definition at line 92 of file T0CalibrationMT.h.

◆ m_name

std::string MuonCalib::T0CalibrationMT::m_name
private

calibration region name

Definition at line 87 of file T0CalibrationMT.h.

◆ m_nhits_per_tube

std::map<int, int> MuonCalib::T0CalibrationMT::m_nhits_per_tube
private

number of hits per tube

Definition at line 96 of file T0CalibrationMT.h.

◆ m_regiondir

TDirectory* MuonCalib::T0CalibrationMT::m_regiondir
private

pointer to the ROOT directory

Definition at line 90 of file T0CalibrationMT.h.

◆ m_rel_tube_t0s

std::map<NtupleStationId, MdtRelativeTubeT0> MuonCalib::T0CalibrationMT::m_rel_tube_t0s
private

Definition at line 98 of file T0CalibrationMT.h.

◆ m_result

std::map<NtupleStationId, MdtTubeFitContainer *> MuonCalib::T0CalibrationMT::m_result
private

tube constants

Definition at line 97 of file T0CalibrationMT.h.

◆ m_settings

std::shared_ptr<const T0MTSettings> MuonCalib::T0CalibrationMT::m_settings
private

pointer to the settings

Definition at line 85 of file T0CalibrationMT.h.

◆ m_sort_by

const std::vector<int>& MuonCalib::T0CalibrationMT::m_sort_by
private

Definition at line 99 of file T0CalibrationMT.h.

◆ m_tube_ids

std::vector<std::map<HistogramId, std::set<MuonFixedId> > > MuonCalib::T0CalibrationMT::m_tube_ids
private

Definition at line 94 of file T0CalibrationMT.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
generateReferenceFile.fun
fun
Definition: generateReferenceFile.py:18
MuonCalib::T0CalibrationMT::m_result
std::map< NtupleStationId, MdtTubeFitContainer * > m_result
tube constants
Definition: T0CalibrationMT.h:97
test_pyathena.eta
eta
Definition: test_pyathena.py:10
MuonCalib::T0CalibrationMT::m_file
std::unique_ptr< TFile > m_file
pointer to the histogram file
Definition: T0CalibrationMT.h:89
MuonCalib::IMdtCalibration::IMdtCalibration
IMdtCalibration(const std::string &name)
constructor, string used to identify the instance
Definition: IMdtCalibration.h:34
SingleTubeCalib
MuonCalib::MdtTubeCalibContainer::SingleTubeCalib SingleTubeCalib
Definition: MdtCalibrationTool.cxx:30
MuonCalib::T0CalibrationMT::m_adc_tube_ids
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_adc_tube_ids
Definition: T0CalibrationMT.h:95
MuonCalib::T0CalibrationMT::m_currentItnum
int m_currentItnum
current iteration (always 1?)
Definition: T0CalibrationMT.h:88
MuonCalib::T0CalibrationMT::m_settings
std::shared_ptr< const T0MTSettings > m_settings
pointer to the settings
Definition: T0CalibrationMT.h:85
MuonCalib::SingleTubeFit
MdtTubeFitContainer::SingleTubeFit SingleTubeFit
Definition: MdtTubeFitContainer.cxx:7
MuonCalib::MdtRelativeTubeT0::CHAMBER
@ CHAMBER
Definition: MdtRelativeTubeT0.h:17
MuonCalib::MdtRelativeTubeT0::MULTILAYER
@ MULTILAYER
Definition: MdtRelativeTubeT0.h:17
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
skel.it
it
Definition: skel.GENtoEVGEN.py:396
MuonCalib::T0CalibrationMT::getResults
virtual IMdtCalibration::MdtCalibOutputPtr getResults() const override
Definition: T0CalibrationMT.cxx:258
MuonCalib::T0CalibrationMT::m_nhits_per_tube
std::map< int, int > m_nhits_per_tube
number of hits per tube
Definition: T0CalibrationMT.h:96
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:167
MuonCalib::MdtRelativeTubeT0::UNKNOWN
@ UNKNOWN
Definition: MdtRelativeTubeT0.h:17
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
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:237
MuonCalib::T0CalibrationMT::m_sort_by
const std::vector< int > & m_sort_by
Definition: T0CalibrationMT.h:99
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
MuonCalib::T0MTHistos::T0_PAR_NR_T
static constexpr int T0_PAR_NR_T
Definition: T0MTHistos.h:57
MuonCalib::T0CalibrationMT::handleSegment
bool handleSegment(MuonCalibSegment &seg)
fill tube spectra
Definition: T0CalibrationMT.cxx:61
calibdata.tube_id
tube_id
Definition: calibdata.py:30
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:181
MuonCalib::T0MTHistos::T0_PAR_NR_BACK
static constexpr int T0_PAR_NR_BACK
Definition: T0MTHistos.h:57
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:93
ParseInputs.gDirectory
gDirectory
Definition: Final2012/ParseInputs.py:133
MuonCalib::HistogramId::MEZZ_CARD
static const int MEZZ_CARD
Definition: HistogramId.h:45
lumiFormat.i
int i
Definition: lumiFormat.py:85
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
MuonCalib::T0CalibrationMT::m_tube_ids
std::vector< std::map< HistogramId, std::set< MuonFixedId > > > m_tube_ids
Definition: T0CalibrationMT.h:94
MuonCalib::T0CalibrationMT::getADCHistos
ADCMTHistos * getADCHistos(const MuonFixedId &idtube, unsigned int nr)
retrieve pointer for tube idtube histograms
Definition: T0CalibrationMT.cxx:260
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonCalib::IMdtCalibration::m_name
std::string m_name
Definition: IMdtCalibration.h:52
MuonCalib::T0CalibrationMT::m_adc_sort_by
const std::vector< int > & m_adc_sort_by
Definition: T0CalibrationMT.h:100
MuonCalib::T0CalibrationMT::m_histos
std::vector< std::map< HistogramId, std::unique_ptr< T0MTHistos > > > m_histos
vector of pointers tube histograms
Definition: T0CalibrationMT.h:92
MuonCalib::T0MTHistos::T0_PAR_NR_T0
static constexpr int T0_PAR_NR_T0
parameter numbers in t0 fit
Definition: T0MTHistos.h:57
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:87
MuonCalib::HistogramId::TUBE
static const int TUBE
valid values of the sort_by argument of the Initialize function
Definition: HistogramId.h:45
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
MuonCalib::T0CalibrationMT::getHistos
T0MTHistos * getHistos(const MuonFixedId &idtube, unsigned int nr)
retrieve pointer for tube idtube histograms
Definition: T0CalibrationMT.cxx:273
find_data.full
full
Definition: find_data.py:27
MuonCalib::MdtRelativeTubeT0::TubeGroup
TubeGroup
Definition: MdtRelativeTubeT0.h:17
MuonCalib::MdtRelativeTubeT0::MEZZ_CARD
@ MEZZ_CARD
Definition: MdtRelativeTubeT0.h:17
cwd
std::string cwd
Definition: listroot.cxx:38
MuonCalib::T0CalibrationMT::analyse
bool analyse()
extract parameters from spectra
Definition: T0CalibrationMT.cxx:102
MuonCalib::HistogramId::LAYER
static const int LAYER
Definition: HistogramId.h:45
MuonCalib::T0CalibrationMT::m_regiondir
TDirectory * m_regiondir
pointer to the ROOT directory
Definition: T0CalibrationMT.h:90
MuonCalib::T0CalibrationMT::m_rel_tube_t0s
std::map< NtupleStationId, MdtRelativeTubeT0 > m_rel_tube_t0s
Definition: T0CalibrationMT.h:98
MuonCalib::MdtRelativeTubeT0::LAYER
@ LAYER
Definition: MdtRelativeTubeT0.h:17
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
MuonCalib::HistogramId::MULTILAYER
static const int MULTILAYER
Definition: HistogramId.h:45
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:144
checkFileSG.fi
fi
Definition: checkFileSG.py:65
MuonCalib::T0MTHistos::TMAX_PAR_NR_TMAX
static constexpr int TMAX_PAR_NR_TMAX
parameters numbers for tmax fit
Definition: T0MTHistos.h:61
checkCorrelInHIST.histos
dictionary histos
Definition: checkCorrelInHIST.py:413
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
MuonCalib::T0CalibrationMT::m_converged
bool m_converged
convergence status
Definition: T0CalibrationMT.h:86
MuonCalib::HistogramId::CHAMBER
static const int CHAMBER
Definition: HistogramId.h:45
MuonCalib::MuonCalibSegment::MdtHitPtr
std::shared_ptr< MdtCalibHitBase > MdtHitPtr
typedef for a collection of MdtCalibHitBase s
Definition: MuonCalibSegment.h:44
Identifier
Definition: IdentifierFieldParser.cxx:14