11 #include <top/dbobjects/TOPGeoBarSegment.h>
16 #include <Math/Vector2D.h>
50 double nsy[2] = {0, 0};
51 double nsz[2] = {0, 0};
60 UnfoldedWindow(
const ROOT::Math::XYVector& orig,
const ROOT::Math::XYVector& dir,
61 const ROOT::Math::XYVector& norm,
const ROOT::Math::XYVector& slanted);
82 double exitThickness,
double flatLength,
83 const std::string& material,
84 const std::string& name =
"TOPPrism_"):
106 const std::string& material)
208 std::vector<std::pair<double, double> >
getPeelOffContour(
const PeelOffRegion& region)
const;
241 void print(
const std::string& title =
"Prism geometry parameters")
const override;
249 void setGlue(
double,
const std::string&)
override {}
272 void reflect(
const ROOT::Math::XYVector* points,
const ROOT::Math::XYVector* normals,
273 const ROOT::Math::XYVector& orig,
const ROOT::Math::XYVector& surf,
274 const ROOT::Math::XYVector& norm,
const ROOT::Math::XYVector& slanted,
int k,
275 std::vector<UnfoldedWindow>& result)
const;
Geometry parameters of a quartz bar segment.
float m_glueThickness
glue thickness
float m_thickness
bar segment thickness
std::string m_glueMaterial
glue material name
float m_length
bar segment length
Geometry parameters of prism.
double getFullFlatLength() const
Returns the length of a flat surface at prism bottom including filter.
double getPeelOffCenter(const PeelOffRegion ®ion) const
Returns peel-off offset in x of the given region.
const std::vector< UnfoldedWindow > & getUnfoldedWindows() const
Returns unfolded exit windows.
float m_flatLength
length of the flat part at the bottom
const std::string & getPeelOffMaterial() const
Returns peel-off material.
ClassDefOverride(TOPGeoPrism, 2)
do not write out
void setAngle(double angle)
Recalculates flatLength according to given prism angle.
double getFilterThickness() const
Returns wavelength filter thickness (filter on -z side).
float m_peelOffThickness
thickness of peel-off volume
std::vector< PeelOffRegion > m_peelOffRegions
peel-off regions
float m_peelOffSize
size in x of peel-off volume
double getGlueThickness() const override
Returns glue thickness (no glue on -z side)
double getExitThickness() const
Returns prism thickness at PMT side.
double getAngle() const
Returns prism angle.
double getPeelOffThickness() const
Returns peel-off thickness.
TOPGeoPrism()
Default constructor.
float m_peelOffOffset
offset in x of the peel-off volume ID = 1
void setPeelOffRegions(double size, double offset, double thickness, const std::string &material)
Sets parameters of the peel-off cookie volumes.
double getPeelOffSize() const
Returns cookie size in x (corresponding to 2x2 PMT)
std::string m_peelOffMaterial
material name of peel-off volume
double getFlatLength() const
Returns the length of a flat surface at prism bottom.
int getK0() const
Returns index of true window in a vector of unfolded exit windows.
void setGlueDelamination(double, double, const std::string &) override
Disable setting the glue delamination, since there is no glue.
void setGlue(double, const std::string &) override
Disable setting the glue, since there is none.
TOPGeoPrism(double width, double thickness, double length, double exitThickness, double flatLength, const std::string &material, const std::string &name="TOPPrism_")
Useful constructor.
std::vector< UnfoldedWindow > m_unfoldedWindows
cache for unfolded prism exit windows
const std::vector< PeelOffRegion > & getPeelOffRegions() const
Returns peel-off cookie regions.
float m_exitThickness
thickness at PMT side
const std::string & getFilterMaterial() const
Returns wavelength filter material name (filter on -z side) For backward compatibility,...
double atan(double a)
atan for double
double tan(double a)
tan for double
void appendPeelOffRegion(unsigned ID, double fraction, double angle)
Appends peel-off cookie region.
bool isConsistent() const override
Check for consistency of data members.
static double s_unit
conversion unit for length
void reflect(const ROOT::Math::XYVector *points, const ROOT::Math::XYVector *normals, const ROOT::Math::XYVector &orig, const ROOT::Math::XYVector &surf, const ROOT::Math::XYVector &norm, const ROOT::Math::XYVector &slanted, int k, std::vector< UnfoldedWindow > &result) const
Do unfolding.
std::vector< std::pair< double, double > > getPeelOffContour(const PeelOffRegion ®ion) const
Returns the x-y contour of the peel-off region.
void unfold() const
Unfold prism exit window.
UnfoldedWindow(const ROOT::Math::XYVector &orig, const ROOT::Math::XYVector &dir, const ROOT::Math::XYVector &norm, const ROOT::Math::XYVector &slanted)
constructor
void print(const std::string &title="Prism geometry parameters") const override
Print the content of the class.
Abstract base class for different kinds of events.
Parameters of peel-off cookie region (corresponds to 2x2 PMT's)
float fraction
fraction of peel-off area
float angle
angle of peel-off area
unsigned ID
ID of the region (1-based)
Unfolded prism exit window.
double ny
normal to window surface, y component
double nsz[2]
normals to upper [0] and slanted [1] surfaces, z component
double nz
normal to window surface, z component
double nsy[2]
normals to upper [0] and slanted [1] surfaces, y component
double sz
window surface direction in z
double z0
window origin in z
double sy
window surface direction in y
double y0
window origin in y