EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Detector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Detector.h
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_DETECTOR_H_
11 #define INCLUDE_EICSMEAR_SMEAR_DETECTOR_H_
12 
13 #include <list>
14 #include <vector>
15 
16 #include <TObject.h>
17 #include <TString.h>
18 
19 namespace erhic {
20 
21 class EventDis;
22 class VirtualParticle;
23 
24 } // namespace erhic
25 
26 namespace Smear {
27 
28 class Event;
29 class ParticleMCS;
30 class Smearer;
31 
44 class Detector : public TObject {
45  public:
49  Detector();
50 
54  Detector(const Detector&);
55 
59  Detector& operator=(const Detector&);
60 
64  virtual ~Detector();
65 
70  void AddDevice(Smearer& device);
71 
81  void SetEventKinematicsCalculator(TString);
82 
86  void DeleteAllDevices();
87 
93  Smearer* GetDevice(int index);
94 
96  UInt_t GetNDevices() const;
97 
111  void FillEventKinematics(Event* event);
112 
122 
126  virtual void Print(Option_t* = "") const;
127 
131  std::list<Smear::Smearer*> Accept(const erhic::VirtualParticle&) const;
132 
137  virtual void SetLegacyMode( const bool mode=true );
138 
142  virtual bool GetLegacyMode() const;
143 
144  protected:
148  std::vector<Smear::Smearer*> CopyDevices() const;
149 
150  bool LegacyMode=false;
151 
152  bool useNM;
153  bool useJB;
154  bool useDA;
155  std::vector<Smearer*> Devices;
156 
157  ClassDef(Smear::Detector, 1)
158 };
159 
160 inline UInt_t Detector::GetNDevices() const {
161  return Devices.size();
162 }
163 
164 } // namespace Smear
165 
166 #endif // INCLUDE_EICSMEAR_SMEAR_DETECTOR_H_