1 #ifndef DDStripSplitter_h
2 #define DDStripSplitter_h 1
3 #include "marlin/Processor.h"
10 #include "UTIL/CellIDDecoder.h"
11 #include "EVENT/CalorimeterHit.h"
12 #include "IMPL/LCCollectionVec.h"
13 #include <IMPL/LCFlagImpl.h>
15 #include "DDRec/DetectorData.h"
17 using namespace lcio ;
18 using namespace marlin ;
49 virtual void processRunHeader( LCRunHeader* run ) ;
53 virtual void processEvent( LCEvent * evt ) ;
55 virtual void check( LCEvent * evt ) ;
57 virtual void setupGeometry();
67 std::string _mcParticleCollectionName{};
69 std::string _ecalCollectionEvenLayers{};
70 std::string _ecalCollectionOddLayers{};
72 std::string _inputRelationsColEven{};
73 std::string _inputRelationsColOdd{};
76 std::string _stripIntersecCollName{};
77 std::string _evenStripEndsCollName{};
78 std::string _oddStripEndsCollName{};
80 std::string _splitEcalCollection{};
81 std::string _unsplitEcalCollection{};
83 std::string _splitEcalRelCol{};
85 std::pair < TVector3, TVector3 > getStripEnds(CalorimeterHit* hit,
int orientation,
bool barrel);
86 TVector3 stripIntersect(CalorimeterHit* hit0, TVector3 axis0, CalorimeterHit* hit1, TVector3 axis1);
87 std::vector <CalorimeterHit*> getVirtualHits(LCEvent* evt, CalorimeterHit* hit,
int orientation,
bool barrel );
89 CellIDDecoder<CalorimeterHit>* _decoder{};
90 CellIDDecoder<CalorimeterHit>* _decoder2{};
94 float _stripAspectRatio{};
98 int _ecalStrip_default_nVirt{};
101 bool _saveIntersections{};
106 int _evenIsTransverse{};
107 enum {TRANSVERSE=0, LONGITUDINAL};
109 dd4hep::rec::LayeredCalorimeterData* _caloGeomData{};
111 LCFlagImpl _flag_rel{};
112 std::string _cellIDLayerString{};
113 std::string _cellIDModuleString{};
114 std::string _cellIDStaveString{};
std::vector< LCCollection * > LCCollectionVec
virtual Processor * newProcessor()