EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
IrtGeoDRICH.h
Go to the documentation of this file.
1// Copyright (C) 2022, 2023, Christopher Dilks
2// Subject to the terms in the LICENSE file found in the top-level directory.
3
4// bind IRT and DD4hep geometries for the dRICH
5#pragma once
6
7#include <DD4hep/Detector.h>
8#include <DDRec/CellIDPositionConverter.h>
9#include <IRT/CherenkovPhotonDetector.h>
10#include <IRT/OpticalBoundary.h>
11#include <IRT/ParametricSurface.h>
12#include <TVector3.h>
13#include <spdlog/logger.h>
14#include <gsl/pointers>
15#include <memory>
16#include <string>
17
18#include "IrtGeo.h"
20
21namespace richgeo {
22class IrtGeoDRICH : public IrtGeo {
23
24public:
25 IrtGeoDRICH(gsl::not_null<const dd4hep::Detector*> det_,
26 gsl::not_null<const dd4hep::rec::CellIDPositionConverter*> conv_,
27 std::shared_ptr<spdlog::logger> log_)
28 : IrtGeo("DRICH", det_, conv_, log_) {
30 }
33
34protected:
35 void DD4hep_to_IRT() override;
36
37private:
38 // FIXME: should be smart pointers, but IRT methods sometimes assume ownership of such raw pointers
39 FlatSurface* m_surfEntrance;
40 CherenkovPhotonDetector* m_irtPhotonDetector;
41 FlatSurface* m_aerogelFlatSurface;
42 FlatSurface* m_filterFlatSurface;
43 SphericalSurface* m_mirrorSphericalSurface;
44 OpticalBoundary* m_mirrorOpticalBoundary;
45 FlatSurface* m_sensorFlatSurface;
46};
47} // namespace richgeo
Definition IrtGeoDRICH.h:22
TVector3 GetSensorSurfaceNorm(CellIDType)
Definition IrtGeoDRICH.cc:214
IrtGeoDRICH(gsl::not_null< const dd4hep::Detector * > det_, gsl::not_null< const dd4hep::rec::CellIDPositionConverter * > conv_, std::shared_ptr< spdlog::logger > log_)
Definition IrtGeoDRICH.h:25
~IrtGeoDRICH()
Definition IrtGeoDRICH.cc:233
void DD4hep_to_IRT() override
Definition IrtGeoDRICH.cc:28
Definition IrtGeo.h:26
Definition ActsGeo.h:18
decltype(edm4hep::SimTrackerHitData::cellID) CellIDType
Definition RichGeo.h:14