star-travex
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StiHitFilters.h
Go to the documentation of this file.
1 #ifndef StiHitFilters_h
2 #define StiHitFilters_h
3 
4 #include <boost/regex.hpp>
5 
6 #include "StEvent/StEnumerations.h"
7 #include "Sti/Base/Filter.h"
8 #include "Sti/StiHit.h"
9 
10 
11 
12 class StiHitFilterByDetectorGroup : public Filter<StiHit>
13 {
14 public:
15 
16  StiHitFilterByDetectorGroup(StDetectorId detGroupId) : Filter(), fDetGroupId(detGroupId) {}
17 
18  virtual bool accept(const StiHit *hit) const {
19  return (hit && hit->detector() && hit->detector()->getGroupId() == fDetGroupId);
20  }
21 
22 private:
23 
24  StDetectorId fDetGroupId;
25 };
26 
27 
28 
29 class StiHitFilterByVolumeName : public Filter<StiHit>
30 {
31 public:
32 
33  StiHitFilterByVolumeName(const std::set<boost::regex>& patterns) : Filter(),
34  fVolNamePattern(patterns) {}
35 
36  virtual bool accept(const StiHit *hit) const
37  {
38  for (const auto& volNamePattern : fVolNamePattern)
39  {
40  if ( hit && hit->detector() && boost::regex_match(std::string(hit->detector()->getName()), volNamePattern) )
41  return true;
42  }
43  }
44 
45 private:
46 
47  const std::set<boost::regex>& fVolNamePattern;
48 };
49 
50 #endif
const std::set< boost::regex > & fVolNamePattern
Sti detector.
Definition: StiHitFilters.h:47
StiHitFilterByVolumeName(const std::set< boost::regex > &patterns)
Definition: StiHitFilters.h:33
StiHitFilterByDetectorGroup(StDetectorId detGroupId)
Definition: StiHitFilters.h:16
StDetectorId fDetGroupId
Detector group id used in this study.
Definition: StiHitFilters.h:24
virtual bool accept(const StiHit *hit) const
Definition: StiHitFilters.h:36
virtual bool accept(const StiHit *hit) const
Definition: StiHitFilters.h:18