VHESelfVeto C++ API Reference¶
-
class BadStringRemover : public I3PacketModule¶
-
class Clipper : public virtual ClipperLib::ClipperBase¶
- #include <clipper.h>
Public Functions
-
Clipper()¶
-
~Clipper()¶
-
bool Execute(ClipType clipType, Polygons &solution, PolyFillType subjFillType = pftEvenOdd, PolyFillType clipFillType = pftEvenOdd)¶
-
bool Execute(ClipType clipType, ExPolygons &solution, PolyFillType subjFillType = pftEvenOdd, PolyFillType clipFillType = pftEvenOdd)¶
-
virtual void Clear()¶
-
inline bool ReverseSolution()¶
-
inline void ReverseSolution(bool value)¶
Private Functions
-
void DisposeScanbeamList()¶
-
void CopyAELToSEL()¶
-
void ProcessHorizontals()¶
-
void IntersectEdges(TEdge *e1, TEdge *e2, const IntPoint &pt, IntersectProtects protects)¶
-
void DisposeAllPolyPts()¶
-
void DisposeOutRec(PolyOutList::size_type index)¶
-
void ProcessIntersectList()¶
-
void BuildResultEx(ExPolygons &polys)¶
-
void DisposeIntersectNodes()¶
-
bool FixupIntersections()¶
-
void ClearJoins()¶
-
void ClearHorzJoins()¶
-
void JoinCommonEdges(bool fixHoleLinkages)¶
Private Members
-
PolyOutList m_PolyOuts¶
-
HorzJoinList m_HorizJoins¶
-
IntersectNode *m_IntersectNodes¶
-
bool m_ExecuteLocked¶
-
PolyFillType m_ClipFillType¶
-
PolyFillType m_SubjFillType¶
-
bool m_ReverseOutput¶
-
Clipper()¶
-
class ClipperBase¶
- #include <clipper.h>
Subclassed by ClipperLib::Clipper
Protected Functions
-
void DisposeLocalMinimaList()¶
-
void PopLocalMinima()¶
-
virtual void Reset()¶
-
void InsertLocalMinima(LocalMinima *newLm)¶
-
void DisposeLocalMinimaList()¶
-
class DetectorShrinker : public I3PacketModule¶
-
struct DOMCache¶
Public Functions
-
inline DOMCache(const I3OMGeo &g, const I3RecoPulseSeries &ps)¶
Public Members
-
const I3Position &pos¶
-
I3RecoPulseSeries::const_iterator cbegin¶
-
I3RecoPulseSeries::const_iterator cend¶
-
inline DOMCache(const I3OMGeo &g, const I3RecoPulseSeries &ps)¶
-
class FiducialVolumeEntryPointFinder : public I3ConditionalModule¶
-
class HomogenizedQTot : public I3ConditionalModule¶
-
class I3TrackVeto : public I3ConditionalModule¶
- #include <I3TrackVeto.h>
Down-going muon track veto of the MESE selection.
This module loops over a series of track hypotheses. For each hypothesis, the number and total charge of direct hits is calculate. The hypothesis that gives the largest total charge is stored in the frame.
-
class LayerVeto : public I3ConditionalModule¶
Public Functions
-
void Configure()¶
-
void Physics(I3FramePtr)¶
-
void Geometry(I3FramePtr)¶
-
void Calibration(I3FramePtr)¶
-
void DetectorStatus(I3FramePtr)¶
Private Functions
-
double GetVetoCharge(const I3RecoPulseSeriesMap&, std::vector<I3RecoPulseSeriesMap>&, double&)¶
-
void ConstructVetoLayers()¶
-
void Configure()¶
-
class PolyOffsetBuilder¶
Public Functions
Private Functions
-
inline void DoSquare(double mul = 1.0)¶
-
inline void DoMiter()¶
-
inline void DoRound()¶
Private Members
-
std::vector<DoublePoint> normals¶
-
double m_delta¶
-
double m_RMin¶
-
double m_R¶
-
size_t m_i¶
-
size_t m_j¶
-
size_t m_k¶
Private Static Attributes
-
static const int buffLength = 128¶
-
inline void DoSquare(double mul = 1.0)¶
-
struct reducedgeo_t¶
- #include <VHESelfVetoUtils.h>
A representation of the boundary of the detector geometry as an extruded polygon, aligned with the z-axis.
Public Members
-
double maxz¶
The top of the extruded polygon.
-
double minz¶
The bottom of the extruded polygon.
-
std::vector<std::pair<double, double>> polygon¶
The ordered collection of x,y coordinate pairs which define the horizontal boundary polygon.
-
double topBoundaryWidth¶
The distance by which a point must be beneath maxz to be considered inside the detector.
-
double bottomBoundaryWidth¶
The distance by which a point must be above minz to be considered inside the detector.
-
double sideBoundaryWidth¶
The distance by which a point must be inside the polygon to be considered inside the detector.
-
double maxz¶
-
class TauGeneratesMuon : public I3ConditionalModule¶
-
class VertexInFiducialVolume : public I3ConditionalModule¶
Public Functions
-
void Configure()¶
-
void Physics(I3FramePtr frame)¶
-
void Geometry(I3FramePtr frame)¶
-
inline void DetectorStatus(I3FramePtr frame)¶
Private Functions
-
bool IsPositionBad(const I3Position &position)¶
Private Members
-
double topBoundaryWidth_¶
-
double bottomBoundaryWidth_¶
-
double sideBoundaryWidth_¶
-
double dustLayer_¶
-
double dustLayerWidth_¶
-
VHESelfVetoUtils::reducedgeo_t reducedgeo_¶
-
I3GeometryConstPtr geo_¶
-
void Configure()¶
-
class VHESelfVeto : public I3ConditionalModule¶
Public Functions
-
void Configure()¶
-
void Physics(I3FramePtr frame)¶
-
void Geometry(I3FramePtr frame)¶
-
inline void DetectorStatus(I3FramePtr frame)¶
Private Functions
-
bool IsPositionBad(const I3Position &position)¶
-
void Configure()¶
-
namespace [anonymous]¶
-
namespace [anonymous]¶
-
namespace [anonymous]¶
-
namespace [anonymous]¶
-
namespace [anonymous]¶
-
namespace ClipperLib¶
-
Enums
-
enum ClipType¶
Values:
-
enumerator ctIntersection¶
-
enumerator ctUnion¶
-
enumerator ctDifference¶
-
enumerator ctXor¶
-
enumerator ctIntersection¶
-
enum PolyFillType¶
Values:
-
enumerator pftEvenOdd¶
-
enumerator pftNonZero¶
-
enumerator pftPositive¶
-
enumerator pftNegative¶
-
enumerator pftEvenOdd¶
Functions
-
bool SlopesEqual(const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, bool UseFullInt64Range)¶
-
bool SlopesEqual(const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, const IntPoint pt4, bool UseFullInt64Range)¶
-
bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, IntPoint pt2b, IntPoint &pt1, IntPoint &pt2)¶
-
bool ProcessParam1BeforeParam2(IntersectNode &node1, IntersectNode &node2)¶
-
void SwapIntersectNodes(IntersectNode &int1, IntersectNode &int2)¶
-
DoublePoint GetUnitNormal(const IntPoint &pt1, const IntPoint &pt2)¶
-
void OffsetPolygons(const Polygons &in_polys, Polygons &out_polys, double delta, JoinType jointype, double MiterLimit)¶
-
void SimplifyPolygon(const Polygon &in_poly, Polygons &out_polys, PolyFillType fillType)¶
-
void SimplifyPolygons(const Polygons &in_polys, Polygons &out_polys, PolyFillType fillType)¶
-
void SimplifyPolygons(Polygons &polys, PolyFillType fillType)¶
-
enum ClipType¶
-
namespace std
STL namespace.
-
namespace VHESelfVetoUtils¶
Functions
-
bool IsInReducedGeometry(const I3Position &pos, const reducedgeo_t &reducedgeo)¶
-
bool IsInReducedGeometryPolygon(const I3Position &pos, const reducedgeo_t &reducedgeo)¶
-
I3GeometryPtr TrimI3Geometry(const I3Geometry &geo, const reducedgeo_t &reducedgeo)¶
-
I3GeometryPtr TrimI3Geometry(const I3Geometry &geo, const std::set<int> &badStrings)¶
-
reducedgeo_t FindReducedGeometry(const I3Geometry &geo, I3DetectorStatusConstPtr status, double topBoundaryWidth, double bottomBoundaryWidth, double sideBoundaryWidth)¶
-
reducedgeo_t RemoveBoundariesFromReducedGeometry(const reducedgeo_t &input)¶
-
std::vector<I3Position> FindIntersectionsWithReducedGeometryBoundary(const VHESelfVetoUtils::reducedgeo_t &reducedgeo, const I3Position &from, const I3Position &to)¶
-
std::set<int> FindMissingStrings(const std::vector<OMKey> &badDOMs, const I3Geometry &geo, double missingDOMFractionForBadString = 0.9, bool ignoreDeepCoreStrings = true)¶
-
std::vector<I3Position> IntersectionsWithInstrumentedVolume(const I3Geometry &geo, const I3Particle &particle)¶
Find the intersection points of a particle’s path with the boundaries of the detector volume.
- Parameters:
geo – The relevant detector geometry
particle – The particle whose intersection points are to be found
- Returns:
A vector of all points where the (forward and backward) projected path of particle passes through the detector boundary. Note that these points may not be within the particle’s length.
-
std::vector<I3Position> IntersectionsWithInstrumentedVolume(const reducedgeo_t &geo, const I3Particle &particle)¶
Find the intersection points of a particle’s path with the boundaries of the detector volume.
- Parameters:
geo – The relevant detector geometry.
particle – The particle whose intersection points are to be found
- Returns:
A vector of all points where the (forward and backward) projected path of particle passes through the detector boundary. Note that these points may not be within the particle’s length.
- Pre:
geo must have all boundary widths set to zero, which can be accomplished using RemoveBoundariesFromReducedGeometry.
-
bool IsInReducedGeometry(const I3Position &pos, const reducedgeo_t &reducedgeo)¶
- file BadStringRemover.cxx
- #include <icetray/I3PacketModule.h>#include <icetray/I3Bool.h>#include <icetray/I3Int.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3RecoPulse.h>#include <dataclasses/I3MapOMKeyMask.h>#include <dataclasses/I3Double.h>#include <boost/foreach.hpp>#include <algorithm>#include <VHESelfVeto/VHESelfVetoUtils.h>
Functions
-
I3_MODULE(BadStringRemover)¶
-
I3_MODULE(BadStringRemover)¶
- file clipper.cxx
- #include “clipper/clipper.h”#include <cmath>#include <vector>#include <algorithm>#include <stdexcept>#include <cstring>#include <cstdlib>#include <ostream>
- file clipper.h
- #include <vector>#include <stdexcept>#include <cstring>#include <cstdlib>#include <ostream>#include <stdint.h>
- file DetectorShrinker.cxx
- #include <icetray/I3PacketModule.h>#include <icetray/I3Bool.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3RecoPulse.h>#include <dataclasses/I3MapOMKeyMask.h>#include <dataclasses/I3Double.h>#include <boost/foreach.hpp>#include <algorithm>#include <VHESelfVeto/VHESelfVetoUtils.h>
Functions
-
I3_MODULE(DetectorShrinker)¶
-
I3_MODULE(DetectorShrinker)¶
- file FiducialVolumeEntryPointFinder.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Bool.h>#include <dataclasses/I3Double.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3MCTree.h>#include <dataclasses/physics/I3MCTreeUtils.h>#include <boost/foreach.hpp>#include <algorithm>#include “recclasses/I3ParticleIntersections.h”#include “VHESelfVeto/VHESelfVetoUtils.h”
Functions
-
I3_MODULE(FiducialVolumeEntryPointFinder)¶
-
I3_MODULE(FiducialVolumeEntryPointFinder)¶
- file HomogenizedQTot.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Units.h>#include <dataclasses/calibration/I3Calibration.h>#include <dataclasses/physics/I3RecoPulse.h>#include <dataclasses/I3Double.h>#include <boost/foreach.hpp>
Functions
-
I3_MODULE(HomogenizedQTot)¶
-
static double CalculateHomogenizedQtot(I3RecoPulseSeriesMapConstPtr pulses, I3CalibrationConstPtr cal, I3DoubleConstPtr vertexTime, double maxChargePerDom)¶
-
I3_MODULE(HomogenizedQTot)¶
- file I3TrackVeto.cxx
- #include <cmath>#include <limits>#include <list>#include <utility>#include <boost/make_shared.hpp>#include <icetray/I3ConditionalModule.h>#include <icetray/I3Context.h>#include <icetray/I3Factory.h>#include <icetray/I3Frame.h>#include <icetray/I3Int.h>#include <icetray/I3Logging.h>#include <icetray/I3Units.h>#include <dataclasses/I3Constants.h>#include <dataclasses/I3Double.h>#include <dataclasses/I3Position.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/geometry/I3OMGeo.h>#include <dataclasses/physics/I3Particle.h>#include <dataclasses/physics/I3RecoPulse.h>#include <gulliver/I3EventHypothesis.h>#include <gulliver/I3SeedServiceBase.h>#include “VHESelfVeto/I3TrackVeto.h”
Copyright (C) 2018 Kai Krings <kkrings>
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SPDX-License-Identifier: BSD-2-Clause
Implementation of down-going muon track veto
- Version
$Revision$
- Date
$Date$
- Author
Kai Krings
Functions
-
I3_MODULE(I3TrackVeto)¶
- file I3TrackVeto.h
- #include <map>#include <string>#include <utility>#include <icetray/I3ConditionalModule.h>#include <icetray/I3Context.h>#include <icetray/I3Frame.h>#include <dataclasses/I3Position.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/geometry/I3OMGeo.h>#include <dataclasses/physics/I3RecoPulse.h>#include <gulliver/I3EventHypothesis.h>#include <gulliver/I3SeedServiceBase.h>
SPDX-FileCopyrightText: 2024 The IceTray Contributors SPDX-License-Identifier: BSD-2-Clause
- Author
Kai Krings <kkrings>
- file LayerVeto.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/calibration/I3Calibration.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3RecoPulse.h>#include <dataclasses/I3MapOMKeyMask.h>#include <dataclasses/I3Constants.h>#include <dataclasses/I3Vector.h>#include <dataclasses/I3Double.h>#include <boost/python/object.hpp>#include <boost/foreach.hpp>#include <boost/make_shared.hpp>#include <boost/next_prior.hpp>
Functions
-
double TotalCharge(const I3RecoPulseSeriesMap &pmap)¶
-
I3RecoPulseSeriesMapConstPtr RemovePulses(I3FramePtr frame, const std::string &key, const I3RecoPulseSeriesMap &selection)¶
-
void AddPulses(I3FramePtr frame, const std::string &key, I3RecoPulseSeriesMap &lhs, const I3RecoPulseSeriesMap &rhs)¶
-
double TotalCharge(const I3RecoPulseSeriesMap &pmap)¶
- file TauGeneratesMuon.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Bool.h>#include <icetray/I3Units.h>#include <dataclasses/physics/I3MCTree.h>#include <dataclasses/physics/I3MCTreeUtils.h>#include <vector>#include <boost/foreach.hpp>#include <algorithm>
Functions
-
I3_MODULE(TauGeneratesMuon)¶
-
I3_MODULE(TauGeneratesMuon)¶
- file VertexInFiducialVolume.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Bool.h>#include <dataclasses/I3Double.h>#include <icetray/I3Int.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3MCTree.h>#include <dataclasses/physics/I3MCTreeUtils.h>#include <vector>#include <boost/foreach.hpp>#include <algorithm>#include <VHESelfVeto/VHESelfVetoUtils.h>
Functions
-
I3_MODULE(VertexInFiducialVolume)¶
-
I3_MODULE(VertexInFiducialVolume)¶
- file VHESelfVeto.cxx
- #include <icetray/I3ConditionalModule.h>#include <icetray/I3Bool.h>#include <icetray/I3Units.h>#include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3RecoPulse.h>#include <dataclasses/I3Double.h>#include <boost/foreach.hpp>#include <algorithm>#include <VHESelfVeto/VHESelfVetoUtils.h>
Typedefs
-
typedef boost::tuple<OMKey, I3Position, I3RecoPulse> OMKeyPulsePair¶
-
typedef std::vector<OMKeyPulsePair> OMKeyPulseVector¶
Functions
-
I3_MODULE(VHESelfVeto)¶
-
static bool operator<(const OMKeyPulsePair &a, const OMKeyPulsePair &b)¶
-
typedef boost::tuple<OMKey, I3Position, I3RecoPulse> OMKeyPulsePair¶
- file VHESelfVetoUtils.cxx
- #include <boost/foreach.hpp>#include <algorithm>#include <cmath>#include <VHESelfVeto/VHESelfVetoUtils.h>#include “clipper/clipper.h”
- file VHESelfVetoUtils.h
- #include <dataclasses/geometry/I3Geometry.h>#include <dataclasses/status/I3DetectorStatus.h>#include <dataclasses/physics/I3Particle.h>#include <vector>#include <map>#include <set>
- dir clipper
- dir icetray
- dir private
- dir public
- dir VHESelfVeto
- dir VHESelfVeto
- dir VHESelfVeto