12#ifndef ROOT_REveCaloData
13#define ROOT_REveCaloData
26namespace Experimental {
28class REveCaloDataSelector;
115 virtual void Dump()
const;
128 virtual void Dump()
const;
176 REveCaloData(
const char*
n=
"REveCaloData",
const char* t=
"");
Int_t AddHistogram(TH2F *hist)
Add new slice to calo tower.
virtual void Rebin(TAxis *ax, TAxis *ay, vCellId_t &in, Bool_t et, RebinData_t &out) const
Rebin.
virtual void GetCellList(Float_t etaMin, Float_t etaMax, Float_t phi, Float_t phiRng, vCellId_t &out) const
Get list of cell IDs in given eta and phi range.
virtual void GetPhiLimits(Double_t &min, Double_t &max) const
Get phi limits.
virtual void GetCellData(const REveCaloData::CellId_t &id, REveCaloData::CellData_t &data) const
Get cell geometry and value from cell ID.
virtual ~REveCaloDataHist()
Destructor.
virtual void GetEtaLimits(Double_t &min, Double_t &max) const
Get eta limits.
virtual void DataChanged()
Update limits and notify data users.
REveCaloDataHist & operator=(const REveCaloDataHist &)=delete
REveCaloDataHist()
Constructor.
virtual ~REveCaloDataSelector()=default
void SetActiveSlice(int s)
void GetCellsFromSecondaryIndices(const std::set< int > &, REveCaloData::vCellId_t &out)
GetCellsFromSecondaryIndices used in implied selection.
void ProcessSelection(REveCaloData::vCellId_t &sel_cells, UInt_t selectionId, Bool_t multi)
Process selection. Called from REveCaloViz object.
void AddSliceSelector(std::unique_ptr< REveCaloDataSliceSelector > s)
std::vector< std::unique_ptr< REveCaloDataSliceSelector > > fSliceSelectors
REveCaloDataSliceSelector(int s)
virtual void ProcessSelection(REveCaloData::vCellId_t &sel_cells, UInt_t selectionId, bool multi)=0
virtual ~REveCaloDataSliceSelector()=default
virtual void GetCellsFromSecondaryIndices(const std::set< int > &idcs, REveCaloData::vCellId_t &out)=0
std::vector< Float_t > & GetSliceVals(Int_t slice)
REveCaloDataVec & operator=(const REveCaloDataVec &)=delete
std::vector< Float_t >::iterator vFloat_i
std::vector< vFloat_t > vvFloat_t
Int_t AddSlice()
Add new slice.
virtual void GetCellList(Float_t etaMin, Float_t etaMax, Float_t phi, Float_t phiRng, vCellId_t &out) const
Get list of cell-ids for given eta/phi range.
Int_t AddTower(Float_t etaMin, Float_t etaMax, Float_t phiMin, Float_t phiMax)
Add tower within eta/phi range.
virtual void Rebin(TAxis *ax, TAxis *ay, vCellId_t &in, Bool_t et, RebinData_t &out) const
Rebin cells.
void SetAxisFromBins(Double_t epsX=0.001, Double_t epsY=0.001)
Set XY axis from cells geometry.
std::vector< Float_t > vFloat_t
virtual void GetPhiLimits(Double_t &min, Double_t &max) const
virtual void DataChanged()
Update limits and notify data users.
std::vector< vFloat_t >::iterator vvFloat_i
virtual ~REveCaloDataVec()
Destructor.
virtual void GetCellData(const REveCaloData::CellId_t &id, REveCaloData::CellData_t &data) const
Get cell geometry and value from cell ID.
virtual void GetEtaLimits(Double_t &min, Double_t &max) const
std::vector< REveCaloData::CellGeom_t > & GetCellGeom()
void FillSlice(Int_t slice, Float_t value)
Fill given slice in the current tower.
Color_t GetSliceColor(Int_t slice) const
Get color for given slice.
void FillImpliedSelectedSet(Set_t &impSelSet) override
Populate set impSelSet with derived / dependant elements.
void SetSelector(REveCaloDataSelector *iSelector)
std::vector< SliceInfo_t > vSliceInfo_t
virtual Float_t GetMaxVal(Bool_t et) const
Char_t GetSliceTransparency(Int_t slice) const
Get transparency for given slice.
virtual void SetPhiBins(std::unique_ptr< TAxis > ax)
bool RequiresExtraSelectionData() const override
void SetWrapTwoPi(Bool_t w)
std::vector< CellId_t >::iterator vCellId_i
void SetSliceThreshold(Int_t slice, Float_t threshold)
Set threshold for given slice.
virtual void GetCellData(const CellId_t &id, CellData_t &data) const =0
virtual void SetEtaBins(std::unique_ptr< TAxis > ax)
virtual TAxis * GetEtaBins() const
std::vector< CellGeom_t >::const_iterator vCellGeom_ci
void SetSliceTransparency(Int_t slice, Char_t t)
Set transparency for given slice.
static Float_t EtaToTheta(Float_t eta)
REveCaloData & operator=(const REveCaloData &)=delete
std::unique_ptr< REveCaloDataSelector > fSelector
std::unique_ptr< TAxis > fEtaAxis
void FillExtraSelectionData(nlohmann::json &, const std::set< int > &) const override
std::string GetHighlightTooltip(const std::set< int > &secondary_idcs) const override
virtual void DataChanged()
Tell users (REveCaloViz instances using this data) that data has changed and they should update the l...
std::unique_ptr< TAxis > fPhiAxis
Bool_t GetWrapTwoPi() const
REveCaloDataSelector * GetSelector()
std::vector< SliceInfo_t >::iterator vSliceInfo_i
virtual Float_t GetEps() const
virtual void Rebin(TAxis *ax, TAxis *ay, vCellId_t &in, Bool_t et, RebinData_t &out) const =0
void ProcessSelection(vCellId_t &sel_cells, UInt_t selectionId, Bool_t multi)
Process newly selected cells with given select-record.
Float_t GetSliceThreshold(Int_t slice) const
Get threshold for given slice.
SliceInfo_t & RefSliceInfo(Int_t s)
virtual void GetEtaLimits(Double_t &min, Double_t &max) const =0
virtual void GetCellList(Float_t etaMin, Float_t etaMax, Float_t phi, Float_t phiRng, vCellId_t &out) const =0
virtual TAxis * GetPhiBins() const
virtual void InvalidateUsersCellIdCache()
Invalidate cell ids cache on back ptr references.
std::vector< CellId_t > vCellId_t
void SetSliceColor(Int_t slice, Color_t col)
Set color for given slice.
std::vector< CellGeom_t >::iterator vCellGeom_i
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Write core json.
virtual void SetEps(Float_t eps)
std::vector< CellGeom_t > vCellGeom_t
virtual void GetPhiLimits(Double_t &min, Double_t &max) const =0
virtual std::string GetHighlightTooltip(const std::set< int > &) const
std::set< REveElement * > Set_t
Class to manage histogram axis.
2-D histogram with a float per channel (see TH1 documentation)}
The Histogram stack class.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
virtual void Dump() const
Print member data.
void Configure(Float_t etaMin, Float_t etaMax, Float_t phiMin, Float_t phiMax)
CellGeom_t(Float_t etaMin, Float_t etaMax, Float_t phiMin, Float_t phiMax)
virtual void Dump() const
Print member data.
Bool_t IsUpperRho() const
Float_t ThetaDelta() const
CellId_t(Int_t t, Int_t s, Float_t f=1.0f)
bool operator<(const CellId_t &o) const
std::vector< Float_t > fSliceData
Float_t * GetSliceVals(Int_t bin)
std::vector< Int_t > fBinData
void Setup(const char *name, Float_t threshold, Color_t col, Char_t transp=101)