ATLAS Offline Software
Loading...
Searching...
No Matches
Interface.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_Interface_H
11#define LArSamples_Interface_H
12
14#include "LArCafJobs/CaloId.h"
15#include "LArCafJobs/CellInfo.h"
22#include "TString.h"
23#include <vector>
24#include <memory>
25
26class IdentifierHash;
27class TH1I;
28class TFile;
29
30namespace LArSamples {
31
32 class Data;
33 class FilterParams;
34 class DataTweaker;
36
38
39 public:
40
42 Interface(std::unique_ptr<const Accessor> accessor);
43 Interface(const Interface& ) = delete;
44 Interface& operator = (const Interface& ) = delete;
45
46 static std::unique_ptr<Interface> open(const TString& fileName);
47 static std::unique_ptr<Interface> open(const std::vector<TString>& fileNames);
48 static std::unique_ptr<Interface> openList(const TString& fileList);
49 static std::unique_ptr<Interface> openWild(const TString& wcName);
50
51 virtual ~Interface();
52
53 unsigned int nEvents() const { return accessor().nEvents(); }
54 unsigned int nRuns() const { return accessor().nRuns(); }
55
56 const EventData* eventData(unsigned int i) const { return accessor().eventData(i); }
57 const RunData* runData(unsigned int i) const { return accessor().runData(i); }
58
59 unsigned int historySize(unsigned int i) const { return accessor().historySize(i); }
60 unsigned int historySizeSC(unsigned int i) const { return accessor().historySizeSC(i); }
61
62 HistoryIterator begin(unsigned int pos = 0, double eMin = -1, double adcMaxMin = -1) const;
63 unsigned int end() const { return nChannels(); }
64
65 unsigned int size() const;
66 unsigned int nFilledChannels() const;
67 void printFilledRanges(unsigned int skip = 0) const;
68
69 bool highEData(double eCut, TArrayI& hashes, TArrayI& indices) const;
70
71 HistoryIterator findEtaPhi(CaloId calo, short layer, short iEta, short iPhi, short region = 0) const;
72 HistoryIterator findFebChannel(CaloId calo, short feb, short channel) const;
73 HistoryIterator findFTSlotChannel(CaloId calo, short ft, short slot, short channel) const;
74
75 bool neighbors(const CellInfo& cell, double dRCut, std::vector<unsigned int>& hashes) const;
76 bool firstNeighbors(unsigned int hash, std::vector<unsigned int>& hashes, short layer = -2) const;
77 bool data(const std::vector<unsigned int>& hashes,const EventData& event, std::vector<const Data*>& data) const;
78
79 std::unique_ptr<Interface> merge(const Interface& other, const TString& fileName) const;
80 std::unique_ptr<Interface> merge(const Interface& other, const TString& fileName, const TString& LBFile) const;
81#ifndef __GCCXML__
82 static std::unique_ptr<Interface> merge(const std::vector<const Interface*>& interfaces, const TString& fileName);
83 static std::unique_ptr<Interface> merge(const std::vector<const Interface*>& interfaces, const TString& fileName, const TString& LBFile);
84#endif
85 static std::unique_ptr<Interface> merge(const TString& listFileName, const TString& fileName);
86 static std::unique_ptr<Interface> merge(const TString& listFileName, const TString& fileName, const TString& LBFile);
87 static bool filterAndMerge(const TString& listFileName, const TString& outFile, const TString& filters, const TString& tweaks = "");
88
89 std::unique_ptr<Interface> filter(const TString& sel, const TString& fileName, const TString& tweaks = "") const;
90 std::unique_ptr<Interface> filter(const FilterParams& filterParams, const DataTweaker& tweaker, const TString& fileName) const;
91
92 std::unique_ptr<Interface> makeTemplate(const TString& fileName) const;
93
94 std::unique_ptr<Interface> refit(const TString& newFileName, Chi2Params pars = DefaultChi2) const;
95
96 const Accessor& accessor() const { return *m_accessor; }
97 bool isValid() const;
98
99 TH1D* Draw(const TString& var, int nBins, double xMin, double xMax, const TString& sel = "", const TString& opt = "") const;
100 TH2D* Draw(const TString& varList, int nBinsX, double xMin, double xMax, int nBinsY, double yMin, double yMax,
101 const TString& sel = "", const TString& opt = "") const;
102 TH2D* DrawPartition(PartitionId partition, const TString& var, const TString& sel = "", const TString& opt = "",
103 CombinationType comb = TotalValue) const;
104 TH2D* DrawEtaPhi(CaloId calo, short layer, const TString& var, const TString& sel = "", const TString& opt = "",
105 CombinationType comb = TotalValue) const;
106 bool Scan(const TString& vars, const TString& sel = "", unsigned int verbosity = 1) const;
107 bool Scan(const TString& vars, CombinationType comb, const TString& sel = "", const TString& ranges = "", unsigned int verbosity = 1) const;
108
109 bool Show(unsigned int hash, unsigned int verbosity = 1) const;
110 bool Show(const TString& sel = "", unsigned int verbosity = 1) const;
111 bool ShowEvents(const TString& sel = "", unsigned int verbosity = 1) const;
112 bool ShowRuns(unsigned int verbosity = 1) const;
113
114 bool ShowStats(const TString& varList, const TString& sel = "", bool withErrors = false) const;
115
117 DigitMonitor digitMonitor() const { return DigitMonitor(*this); }
118 FitMonitor fitMonitor() const { return FitMonitor(*this); }
119
120 bool dumpEventTuple(const TString& variables, const TString& fileName) const;
121
122 void setShapeErrorGetter(const AbsShapeErrorGetter* err);
123 void setShapeError(double k);
124 void setShapeError(const TString& fileName);
126
127 bool writeToFile(const TString& fileName) const { return accessor().writeToFile(fileName); }
128
129 static TString addSuffix(const TString& fileName, const TString& suffix);
130
131 const History* cellHistory(unsigned int i) const;
132 const History* getCellHistory(unsigned int i) const;
133 const History* getSCHistory(unsigned int i) const;
134 const CellInfo* getCellInfo(unsigned int i) const;
135
136 private:
137
138 std::unique_ptr<const Accessor> m_accessor;
140 std::unique_ptr<const AbsShapeErrorGetter> m_ownedShapeErrorGetter;
141
142 using CacheEntry_t = std::pair<bool, std::vector<unsigned int> >;
143 mutable std::vector<CacheEntry_t> m_neighborCache;
144 mutable std::vector<unsigned int> m_neighborHistoryPos;
145 mutable std::vector<std::unique_ptr<const History> > m_neighborHistories;
146 };
147}
148
149#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
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
This is a "hash" representation of an Identifier.
virtual unsigned int nChannels() const
Definition AbsLArCells.h:34
storage of the time histories of all the cells
storage of the time histories of all the cells
Definition FitMonitor.h:19
storage of the time histories of all the cells
OccupancyMonitor occupancyMonitor() const
Definition Interface.h:116
std::pair< bool, std::vector< unsigned int > > CacheEntry_t
Definition Interface.h:142
Interface(std::unique_ptr< const Accessor > accessor)
Constructor.
Definition Interface.cxx:74
const Accessor & accessor() const
Definition Interface.h:96
const AbsShapeErrorGetter * m_shapeErrorGetter
Definition Interface.h:139
static std::unique_ptr< Interface > openWild(const TString &wcName)
Definition Interface.cxx:64
const AbsShapeErrorGetter * shapeErrorGetter() const
Definition Interface.h:125
bool writeToFile(const TString &fileName) const
Definition Interface.h:127
FitMonitor fitMonitor() const
Definition Interface.h:118
unsigned int nRuns() const
Definition Interface.h:54
std::vector< unsigned int > m_neighborHistoryPos
Definition Interface.h:144
static std::unique_ptr< Interface > open(const TString &fileName)
Definition Interface.cxx:35
std::vector< std::unique_ptr< const History > > m_neighborHistories
Definition Interface.h:145
std::unique_ptr< const AbsShapeErrorGetter > m_ownedShapeErrorGetter
Definition Interface.h:140
unsigned int historySizeSC(unsigned int i) const
Definition Interface.h:60
Interface(const Interface &)=delete
DigitMonitor digitMonitor() const
Definition Interface.h:117
const EventData * eventData(unsigned int i) const
Definition Interface.h:56
unsigned int end() const
Definition Interface.h:63
std::vector< CacheEntry_t > m_neighborCache
Definition Interface.h:143
unsigned int nEvents() const
Definition Interface.h:53
std::unique_ptr< const Accessor > m_accessor
Definition Interface.h:138
static std::unique_ptr< Interface > openList(const TString &fileList)
Definition Interface.cxx:54
unsigned int historySize(unsigned int i) const
Definition Interface.h:59
const RunData * runData(unsigned int i) const
Definition Interface.h:57
storage of the time histories of all the cells
@ DefaultChi2
Definition Chi2Calc.h:24
Definition merge.py:1