5#ifndef VP1CALOSYSTEMS_VP1CALOCELL_H
6#define VP1CALOSYSTEMS_VP1CALOCELL_H
10#include "Identifier/Identifier.h"
14#include "GeoModelKernel/GeoDefinitions.h"
15#include "GaudiKernel/SystemOfUnits.h"
109typedef std::map<VP1CC_SeparatorTypes, VP1ExtraSepLayerHelper*, std::less<VP1CC_SeparatorTypes> >
VP1CC_SeparatorMap;
177 const QPair<bool,double>& scale,
185 const QPair<bool,double>& scale,
189 double cellDepth(
const QPair<bool,double>& scale,
const double& energy)
190 {
return std::max(1.0*Gaudi::Units::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); }
201 virtual std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"") = 0;
238 const QPair<bool,double>& scale,
242 std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"");
260 const QPair<bool,double>& scale,
264 std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"");
282 const QPair<bool,double>& scale,
286 std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"");
323 const QPair<bool,double>& scale,
331 std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"");
361 const QPair<bool,double>& scale,
369 std::vector<std::string>
ToString(
const CaloCell_ID* calo_id,
const std::string& extrainfos=
"");
417 SoSeparator* separator,
430 std::vector<std::string>
ToString();
std::map< VP1CC_SelectionTypes, VP1CCUi2Manager * > VP1CCSelectionType2GuiMap
std::map< int, VP1CC_MbtsScinInfo *, std::less< int > > VP1CC_MbtsScinInfoMap
@ VP1CC_SepTileNegativeDown
@ VP1CC_SepTilePositiveDown
@ VP1CC_SepTilePositiveNeg
@ VP1CC_SepTilePositiveUp
@ VP1CC_SepTileNegativePos
@ VP1CC_SepTileNegativeUp
std::map< SoNode *, VP1Mbts *, std::less< SoNode * > > VP1CC_SoNode2MbtsMap
QPair< VP1Interval, VP1Interval > VP1CCIntervalPair
std::map< VP1CC_SeparatorTypes, VP1ExtraSepLayerHelper *, std::less< VP1CC_SeparatorTypes > > VP1CC_SeparatorMap
QMap< VP1CC_SelectionTypes, VP1CCIntervalPair > VP1CCIntervalMap
std::map< SoNode *, VP1CaloCell *, std::less< SoNode * > > VP1CC_SoNode2CCMap
std::map< int, GeoTrf::Transform3D, std::less< int > > VP1CC_MbtsXfMap
std::set< VP1CC_SeparatorTypes > VP1CC_SeparatorTypesSet
Helper class for offline cell identifiers.
Data object for each calorimeter readout cell.
Liquid Argon digit base class.
Helper class for TileCal online (hardware) identifiers.
Helper class for TileCal offline identifiers.
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
QList< VP1Interval > allowedPhi
bool operator==(const VP1CC_GlobalCuts &other) const
VP1CC_LArEMB(const CaloCell *caloCell, const VP1CC_SeparatorMap *separators)
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)
std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")
virtual ~VP1CC_LArEMECHEC()
VP1CC_LArEMECHEC(const CaloCell *caloCell, const CaloCell_ID *calo_id, const VP1CC_SeparatorMap *separators)
std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)
std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")
VP1CC_LArFCAL(const CaloCell *caloCell, const VP1CC_SeparatorMap *separators)
VP1ExtraSepLayerHelper * m_helper
VP1CC_LAr(const CaloCell *caloCell)
virtual void remove3DObjects(VP1CC_SoNode2CCMap *node2cc)
int GetFragChannel(const TileHWID *tile_hw_id, bool up, int &frag, int &channel)
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)
virtual void remove3DObjects(VP1CC_SoNode2CCMap *node2cc)
VP1ExtraSepLayerHelper * m_helperUp
VP1CC_TileBarEc(const CaloCell *caloCell, const TileID *tile_id, const VP1CC_SeparatorMap *separators)
std::string id2name(Identifier &id)
bool isInsideClipVolume(const VP1CC_GlobalCuts &globalCuts)
std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")
virtual ~VP1CC_TileBarEc()
VP1ExtraSepLayerHelper * m_helperDown
virtual void remove3DObjects(VP1CC_SoNode2CCMap *node2cc)
VP1CC_TileCrack(const CaloCell *caloCell, const TileID *tile_id, const VP1CC_SeparatorMap *separators)
int GetFragChannel(const TileHWID *tile_hw_id, bool up, int &frag, int &channel)
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)
VP1ExtraSepLayerHelper * m_helper
virtual ~VP1CC_TileCrack()
bool isInsideClipVolume(const VP1CC_GlobalCuts &globalCuts)
std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")
virtual int GetFragChannel(const TileHWID *tile_hw_id, bool up, int &frag, int &channel)=0
VP1CC_Tile(const CaloCell *caloCell, const TileID *tile_id)
void updateScene(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &globalCuts)
const CaloCell * m_caloCell
VP1CaloCell(const CaloCell *caloCell)
double energyToTransverse(const double &) const
virtual void remove3DObjects(VP1CC_SoNode2CCMap *node2cc)=0
virtual bool isInsideClipVolume(const VP1CC_GlobalCuts &globalCuts)
const CaloCell * getCaloCell()
double cellDepth(const QPair< bool, double > &scale, const double &energy)
virtual std::vector< std::string > ToString(const CaloCell_ID *calo_id, const std::string &extrainfos="")=0
bool cutPassed(const VP1CC_GlobalCuts &globalCuts)
virtual void build3DObjects(VP1CC_SoNode2CCMap *node2cc, bool useEt, const QPair< bool, double > &scale, bool outline, const VP1CC_GlobalCuts &)=0
std::vector< std::string > ToString()
SoSeparator * m_separator
bool UpdateScene(VP1CC_MbtsScinInfoMap *drawinfo, VP1CC_SoNode2MbtsMap *node2mbts, double energy, bool outline, double clipRadius)
const TileTBID * m_idhelper
VP1Mbts(const TileCell *cell, const TileTBID *idhelper, SoSeparator *separator, bool run2Geo)
const QCheckBox * upperThreshOffCB
const QCheckBox * globalEnableCB
const QCheckBox * showNegativeCB
const QDoubleSpinBox * lowerThresholdSB
QDoubleSpinBox * upperThresholdSB
VP1CC_MbtsXfMap cTransforms
VP1CC_MbtsXfMap aTransforms