1 #ifndef hybridRecoProcessor_h
2 #define hybridRecoProcessor_h 1
3 #include "marlin/Processor.h"
14 #include "UTIL/CellIDDecoder.h"
15 #include "EVENT/CalorimeterHit.h"
16 #include "IMPL/LCCollectionVec.h"
18 using namespace lcio ;
19 using namespace marlin ;
64 virtual void processRunHeader( LCRunHeader* run ) ;
68 virtual void processEvent( LCEvent * evt ) ;
70 virtual void check( LCEvent * evt ) ;
72 virtual void setupGeometry();
83 std::vector <std::string> _ecalCollectionsCells{};
84 std::vector <std::string> _ecalCollectionsTranStrips{};
85 std::vector <std::string> _ecalCollectionsLongStrips{};
87 std::pair < TVector3, TVector3 > getStripEnds(CalorimeterHit* hit,
int orientation,
bool barrel);
88 TVector3 stripIntersect(CalorimeterHit* hit0, TVector3 axis0, CalorimeterHit* hit1, TVector3 axis1);
89 std::vector <CalorimeterHit*> getVirtualHits(LCEvent* evt, CalorimeterHit* hit,
int orientation,
bool barrel );
91 CellIDDecoder<CalorimeterHit>* _decoder{};
92 CellIDDecoder<CalorimeterHit>* _decoder2{};
97 float _stripAspectRatio{};
101 int _ecalStrip_default_nVirt{};
103 bool _saveIntersections{};
109 TH2F* h_phiModuleCheck{};
110 TH2F* h_phiThetaMC{};
112 TH1F* h_stripDist_intercept{};
113 TH1F* h_stripDist_nointercept{};
115 TH2F* h_stavemodule[2]{};
122 TH2F* h_moduleX[2]{};
123 TH2F* h_moduleY[2]{};
124 TH2F* h_moduleZ[2]{};
127 TH2F* h_cth_phi[2][10][10]{};
128 TH2F* h_XY[2][10][10]{};
virtual Processor * newProcessor()
std::vector< LCCollection * > LCCollectionVec