1 #ifndef CRTGEOALG_H_SEEN
2 #define CRTGEOALG_H_SEEN
13 #include "art/Framework/Principal/Event.h"
14 #include "art/Framework/Core/ModuleMacros.h"
15 #include "fhiclcpp/ParameterSet.h"
16 #include "art/Framework/Principal/Handle.h"
17 #include "canvas/Persistency/Common/Ptr.h"
18 #include "canvas/Persistency/Common/PtrVector.h"
19 #include "art/Framework/Services/Registry/ServiceHandle.h"
20 #include "messagefacility/MessageLogger/MessageLogger.h"
28 #include "nusimdata/SimulationBase/MCParticle.h"
36 #include "TGeoManager.h"
80 std::map<std::string, CRTStripGeo>
strips;
94 std::map<std::string, CRTModuleGeo>
modules;
116 size_t NumModules(std::string taggerName)
const;
123 size_t NumStrips(std::string moduleName)
const;
127 size_t NumStrips(
size_t tagger_i,
size_t module_i)
const;
190 std::vector<double>
StripOverlap(std::string strip1Name, std::string strip2Name);
206 std::vector<std::string>
CrossesStrips(
const simb::MCParticle& particle);
209 double AngleToTagger(std::string taggerName,
const simb::MCParticle& particle);
geo::Point_t ModuleCrossingPoint(std::string moduleName, const simb::MCParticle &particle)
bool CrossesStrip(const CRTStripGeo &strip, const simb::MCParticle &particle)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
std::map< std::string, CRTModuleGeo > fModules
geo::Point_t ChannelToSipmPosition(size_t channel) const
size_t NumTaggers() const
Utilities related to art service access.
bool StripHasOverlap(std::string stripName)
const geo::GeometryCore * geometry
process_name opflash particleana ie x
bool CrossesVolume(const simb::MCParticle &particle)
bool IsInsideModule(std::string moduleName, geo::Point_t point)
double AngleToTagger(std::string taggerName, const simb::MCParticle &particle)
bool HasOverlap(const CRTModuleGeo &module)
std::map< std::string, CRTTaggerGeo > fTaggers
std::string GetTaggerName(std::string name) const
bool IsInsideStrip(std::string stripName, geo::Point_t point)
Description of geometry of one set of auxiliary detectors.
std::map< std::string, CRTModuleGeo > modules
std::map< std::string, CRTStripGeo > fStrips
std::map< int, CRTSipmGeo > fSipms
geo::Point_t TaggerCrossingPoint(std::string taggerName, const simb::MCParticle &particle)
Access the description of detector geometry.
object containing MC truth information necessary for making RawDigits and doing back tracking ...
std::pair< int, int > sipms
bool IsInsideTagger(std::string taggerName, geo::Point_t point)
bool IsInsideCRT(TVector3 point)
art framework interface to geometry description for auxiliary detectors
CRTModuleGeo GetModule(std::string moduleName) const
std::string ChannelToStripName(size_t channel) const
std::vector< double > StripLimitsWithChargeSharing(std::string stripName, double x, double ex)
Description of geometry of one entire detector.
Definition of data types for geometry description.
bool EntersVolume(const simb::MCParticle &particle)
std::map< std::string, CRTStripGeo > strips
double DistanceDownStrip(geo::Point_t position, std::string stripName) const
double DistanceBetweenSipms(geo::Point_t position, size_t channel) const
bool CrossesTagger(const CRTTaggerGeo &tagger, const simb::MCParticle &particle)
geo::GeometryCore const * fGeometryService
CRTTaggerGeo GetTagger(std::string taggerName) const
std::pair< int, int > GetStripSipmChannels(std::string stripName) const
geo::Point_t StripCrossingPoint(std::string stripName, const simb::MCParticle &particle)
const geo::AuxDetGeometryCore * fAuxDetGeoCore
bool CheckOverlap(const CRTModuleGeo &module1, const CRTModuleGeo &module2)
CRTStripGeo GetStrip(std::string stripName) const
std::vector< double > StripOverlap(std::string strip1Name, std::string strip2Name)
bool ValidCrossingPoint(std::string taggerName, const simb::MCParticle &particle)
std::vector< double > CRTLimits() const
std::vector< std::string > CrossesStrips(const simb::MCParticle &particle)
bool CrossesModule(const CRTModuleGeo &module, const simb::MCParticle &particle)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
size_t NumModules() const
art framework interface to geometry description