ATLAS Offline Software
Loading...
Searching...
No Matches
History.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
9
10#ifndef LArSamples_History_H
11#define LArSamples_History_H
12
14#include "LArCafJobs/CellInfo.h"//member
15#include "LArSamplesMon/Chi2Calc.h" //for defaulted value
16#include "LArCafJobs/EventData.h"//implemented method
17#include "TVectorD.h" //typedef
18#include <vector>
19#include <memory>
20
21class TString;
22
23namespace LArSamples {
24
25 class Interface;
26 class Data;
27 class Averager;
28 class GraphShape;
30 class ShapeErrorData;
31 class ScaledErrorData;
32 class Residual;
33 class Residuals;
34 class HistoryContainer;
35
37
38 public:
39
42 std::vector<std::unique_ptr<const EventData> >&& eventData, unsigned int hash,
44
45 History(std::vector<std::unique_ptr<const Data> >&& data,
46 const CellInfo& info,
47 std::vector<std::unique_ptr<const EventData> >&& eventData,
48 unsigned int hash, const AbsShapeErrorGetter* shapeErrorGetter = 0);
49
50 virtual ~History();
51
52 std::unique_ptr<HistoryContainer> dissolve();
53
54 unsigned int nData() const { return m_data.size(); }
55 const Data* data(unsigned int i) const;
56 const Data* data_for_event(int event, int run = -1) const;
57 const Data* data_for_event(const EventData& eventData) const;
58
59 const CellInfo* cellInfo() const { return &m_cellInfo; }
60
61 const std::vector<std::unique_ptr<const EventData> >& eventData() const { return m_eventData; }
62
63 bool sum(std::unique_ptr<SimpleShape>& sum,
64 std::unique_ptr<SimpleShape>& reference) const;
65 bool allShape(std::unique_ptr<GraphShape>& allData,
66 std::unique_ptr<SimpleShape>& allRef) const;
67 double allChi2(Chi2Params pars) const;
68
69 // helpers
70 double chi2(int i, int lwb = -1, int upb = -1, int chi2Params = DefaultChi2, ShapeErrorType shapeErrorType = BestShapeError, unsigned int* nDof = 0) const;
71 double chi2_k(int i, double k, int lwb = -1, int upb = -1, int chi2Params = DefaultChi2) const;
72 double maxChi2(int lwb = -1, int upb = -1, int chi2Params = DefaultChi2) const;
73
74 std::unique_ptr<OFC> ofc(unsigned int i, int lwb = -1, int upb = -1, double time = Definitions::none, bool useCorrs = true) const;
75 std::unique_ptr<History> refit(Chi2Params pars = DefaultChi2) const;
76 std::unique_ptr<History> adjust() const;
77 std::unique_ptr<History> filter(const TString& cuts) const;
78
79 bool refVal(unsigned int i, unsigned int sample, double& val, double& err) const;
80 bool delta(unsigned int i, unsigned int sample, double& del) const;
81 TVectorD deltas(unsigned int i, int lwb = -1, int upb = -1, bool correct = true) const;
82 bool isValid() const;
83
84 TString description(unsigned int verbosity = 1) const;
85
86 std::unique_ptr<SimpleShape> referenceShape(unsigned int k, double adcMax = -1, double time = Definitions::none,
87 bool samplesOnly = false) const;
88
89 std::unique_ptr<SimpleShape> deltaShape(unsigned int k, int lwb = -1, int upb = -1) const;
90
91 unsigned int hash() const { return m_hash; }
92 //cppcheck-suppress danglingLifetime
95 std::unique_ptr<const ShapeErrorData> shapeErrorData(CaloGain::CaloGain gain, ShapeErrorType shapeErrorType = BestShapeError, const Residual* res = 0) const;
96 std::unique_ptr<const ScaledErrorData> scaledErrorData(unsigned int i, double adcMax = -1, double time = Definitions::none, ShapeErrorType shapeErrorType = BestShapeError) const;
97
98 bool residualOffset(unsigned int i, short sample, double& offset, double adcMax = -1, double time = Definitions::none) const;
99 bool residualError(unsigned int i, short sample1, short sample2, double& offset, double adcMax = -1, double time = Definitions::none) const;
100
101 bool drawWithReference(int i, const TString& atlasTitle = "") const;
102 bool drawSumWithReference() const;
103 bool drawAllWithReference(bool refit = false) const;
104 bool drawResiduals(int k = -1, bool errors = true, bool rescale = true) const;
105
106 std::unique_ptr<Averager> calculatePedestal(int i) const;
107 std::unique_ptr<Residual> residual(unsigned int k, bool correct = true, bool zeroTime = false) const;
108 std::unique_ptr<Residuals> residuals(CaloGain::CaloGain gain = CaloGain::LARNGAIN, double absResTrunc = -1, bool correct = true, bool zeroTime = false) const;
109
110 double upstreamEnergy(unsigned int k) const;
111 double chi2Anomaly(double chi2Cut, unsigned int nDof = 3) const;
112
113 void setInterface(const Interface* interface) const { m_interface = interface; }
114
115 private:
116
117 std::vector<std::unique_ptr<const Data> > m_data;
119 std::vector<std::unique_ptr<const EventData> > m_eventData;
120 unsigned int m_hash;
122 mutable const Interface* m_interface = nullptr;
123 };
124}
125#endif
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
std::pair< std::vector< unsigned int >, bool > res
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
storage of the time histories of all the cells
Definition Averager.h:23
std::vector< std::unique_ptr< const EventData > > m_eventData
Definition History.h:119
std::unique_ptr< HistoryContainer > dissolve()
Definition History.cxx:76
CellInfo m_cellInfo
Definition History.h:118
History(const HistoryContainer &container, std::vector< std::unique_ptr< const EventData > > &&eventData, unsigned int hash, const AbsShapeErrorGetter *shapeErrorGetter=0)
Constructor.
const AbsShapeErrorGetter * shapeErrorGetter() const
Definition History.h:94
unsigned int m_hash
Definition History.h:120
const Interface * m_interface
Definition History.h:122
const CellInfo * cellInfo() const
Definition History.h:59
const AbsShapeErrorGetter * m_shapeErrorGetter
Definition History.h:121
const Data * data(unsigned int i) const
Definition History.cxx:88
void setShapeErrorGetter(const AbsShapeErrorGetter *err) const
Definition History.h:93
unsigned int nData() const
Definition History.h:54
std::vector< std::unique_ptr< const Data > > m_data
Definition History.h:117
unsigned int hash() const
Definition History.h:91
void setInterface(const Interface *interface) const
Definition History.h:113
const std::vector< std::unique_ptr< const EventData > > & eventData() const
Definition History.h:61
double chi2(TH1 *h0, TH1 *h1)
std::string description
glabal timer - how long have I taken so far?
Definition hcg.cxx:91
@ LARNGAIN
Definition CaloGain.h:19
@ DefaultChi2
Definition Chi2Calc.h:24
int run(int argc, char *argv[])