1 #ifndef SimDigitalGeom_h
2 #define SimDigitalGeom_h
6 #include <marlin/Processor.h>
7 #include <IMPL/LCCollectionVec.h>
9 #include <UTIL/CellIDEncoder.h>
10 #include <UTIL/CellIDDecoder.h>
12 #include <EVENT/SimCalorimeterHit.h>
13 #include <EVENT/LCGenericObject.h>
14 #include <IMPL/CalorimeterHitImpl.h>
16 #include "CalorimeterHitType.h"
17 #include "marlinutil/LCGeometryTypes.h"
20 #include "DD4hep/Factories.h"
21 #include "DD4hep/DD4hepUnits.h"
22 #include "DDRec/DetectorData.h"
23 #include "DD4hep/DetType.h"
24 #include "DDRec/DetectorData.h"
25 #include "DDRec/DDGear.h"
26 #include "DDRec/MaterialManager.h"
27 #include "DDRec/DetectorSurfaces.h"
72 std::vector<StepAndCharge>
decode(SimCalorimeterHit* hit ,
bool link) ;
78 void linkSteps(std::vector<StepAndCharge>& vec) ;
81 virtual std::unique_ptr<CalorimeterHitImpl>
encode(
int delta_I ,
int delta_J) = 0 ;
83 int I()
const {
return _Iy ; }
84 int J()
const {
return _Jz ; }
126 static void bookTuples(
const marlin::Processor* proc) ;
154 virtual std::unique_ptr<CalorimeterHitImpl>
encode(
int delta_I ,
int delta_J) ;
162 std::vector<std::string>
_encodingString = {
"layer",
"stave",
"module",
"tower",
"x",
"y" } ;
164 dd4hep::rec::LayeredCalorimeterData*
_caloData = nullptr ;
177 virtual std::unique_ptr<CalorimeterHitImpl>
encode(
int delta_I ,
int delta_J) ;
190 #endif //SimDigitalGeom_h
static void bookTuples(const marlin::Processor *proc)
virtual void processGeometry(SimCalorimeterHit *hit)
void fillDebugTupleGeometryStep(SimCalorimeterHit *hit, const std::vector< StepAndCharge > &stepsInIJZcoord)
virtual void processGeometry(SimCalorimeterHit *hit)
dd4hep::long64 _cellIDvalue
virtual float getCellSize()=0
std::vector< std::string > _encodingString
const LCVector3D & Jaxis() const
SimDigitalGeomCellId(LCCollection *inputCol, LCCollectionVec *outputCol)
void setCellSize(float size)
const float * _hitPosition
const LCVector3D & normalToRPCPlane() const
CellIDDecoder< SimCalorimeterHit > _decoder
bool operator<(const PotentialSameTrackID &b) const
std::vector< StepAndCharge > decode(SimCalorimeterHit *hit, bool link)
virtual float getCellSize()
static AIDA::ITuple * _tupleStep
void operator=(const SimDigitalGeomCellIdLCGEO &toCopy)=delete
void createStepAndChargeVec(SimCalorimeterHit *hit, std::vector< StepAndCharge > &vec, bool link)
virtual std::unique_ptr< CalorimeterHitImpl > encode(int delta_I, int delta_J)
virtual float getCellSize()
virtual ~SimDigitalGeomCellIdLCGEO()
virtual void processGeometry(SimCalorimeterHit *hit)=0
void operator=(const SimDigitalGeomCellId &toCopy)=delete
bool operator==(const PotentialSameTrackID &b) const
static AIDA::ITuple * _tupleHit
SimDigitalGeomCellIdLCGEO(LCCollection *inputCol, LCCollectionVec *outputCol)
virtual void setLayerLayout(CHT::Layout layout)
CellIDEncoder< CalorimeterHitImpl > _encoder
void operator=(const SimDigitalGeomCellIdPROTO &toCopy)=delete
std::string _cellIDEncodingString
virtual std::unique_ptr< CalorimeterHitImpl > encode(int delta_I, int delta_J)
void fillDebugTupleGeometryHit()
virtual void setLayerLayout(CHT::Layout layout)=0
std::vector< LCCollection * > LCCollectionVec
dd4hep::rec::LayeredCalorimeterData * _caloData
std::vector< std::string > _encodingString
virtual std::unique_ptr< CalorimeterHitImpl > encode(int delta_I, int delta_J)=0
virtual ~SimDigitalGeomCellId()
virtual ~SimDigitalGeomCellIdPROTO()
PotentialSameTrackID(int _pdgStep, int _pdgParent)
CHT::Layout _currentHCALCollectionCaloLayout
SimDigitalGeomCellIdPROTO(LCCollection *inputCol, LCCollectionVec *outputCol)
virtual void setLayerLayout(CHT::Layout layout)
const LCVector3D & Iaxis() const
void setCellSize(float size)
void linkSteps(std::vector< StepAndCharge > &vec)