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;
186 std::vector<std::string>
CrossesStrips(
const simb::MCParticle& particle);
189 double AngleToTagger(std::string taggerName,
const simb::MCParticle& particle);
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
bool IsInsideModule(const CRTModuleGeo &module, geo::Point_t point)
const geo::AuxDetGeometryCore * fAuxDetGeoCore
Utilities related to art service access.
size_t NumModules() const
const geo::GeometryCore * geometry
process_name opflash particleana ie x
std::map< std::string, CRTModuleGeo > modules
CRTTaggerGeo GetTagger(std::string taggerName) const
bool IsInsideStrip(const CRTStripGeo &strip, geo::Point_t point)
geo::GeometryCore const * fGeometryService
std::map< std::string, CRTModuleGeo > fModules
geo::Point_t StripCrossingPoint(std::string stripName, const simb::MCParticle &particle)
std::map< std::string, CRTStripGeo > strips
bool IsInsideTagger(const CRTTaggerGeo &tagger, geo::Point_t point)
Description of geometry of one set of auxiliary detectors.
CRTModuleGeo GetModule(std::string moduleName) const
Access the description of detector geometry.
object containing MC truth information necessary for making RawDigits and doing back tracking ...
std::map< std::string, CRTTaggerGeo > fTaggers
std::string ChannelToStripName(size_t channel) const
art framework interface to geometry description for auxiliary detectors
bool IsInsideCRT(TVector3 point)
double DistanceDownStrip(geo::Point_t position, std::string stripName) const
CRTStripGeo GetStrip(std::string stripName) const
std::pair< int, int > GetStripSipmChannels(std::string stripName) const
size_t NumTaggers() const
Description of geometry of one entire detector.
std::pair< int, int > sipms
bool CrossesTagger(const CRTTaggerGeo &tagger, const simb::MCParticle &particle)
Definition of data types for geometry description.
std::string GetTaggerName(std::string name) const
std::vector< double > StripLimitsWithChargeSharing(std::string stripName, double x, double ex)
bool CheckOverlap(const CRTModuleGeo &module1, const CRTModuleGeo &module2)
std::vector< std::string > CrossesStrips(const simb::MCParticle &particle)
double AngleToTagger(std::string taggerName, const simb::MCParticle &particle)
std::map< int, CRTSipmGeo > fSipms
geo::Point_t TaggerCrossingPoint(std::string taggerName, const simb::MCParticle &particle)
geo::Point_t ModuleCrossingPoint(std::string moduleName, const simb::MCParticle &particle)
bool EntersVolume(const simb::MCParticle &particle)
stream1 can override from command line with o or output services user sbnd
std::map< std::string, CRTStripGeo > fStrips
std::vector< double > CRTLimits() const
bool CrossesModule(const CRTModuleGeo &module, const simb::MCParticle &particle)
bool StripHasOverlap(std::string stripName)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
geo::Point_t ChannelToSipmPosition(size_t channel) const
bool HasOverlap(const CRTModuleGeo &module)
bool ValidCrossingPoint(std::string taggerName, const simb::MCParticle &particle)
bool CrossesStrip(const CRTStripGeo &strip, const simb::MCParticle &particle)
art framework interface to geometry description
bool CrossesVolume(const simb::MCParticle &particle)
double DistanceBetweenSipms(geo::Point_t position, size_t channel) const