CMS 3D CMS Logo

SensitiveDetectorMakerBase.h
Go to the documentation of this file.
1 #ifndef SimG4Core_SensitiveDetector_SensitiveDetectorMakerBase_h
2 #define SimG4Core_SensitiveDetector_SensitiveDetectorMakerBase_h
3 // -*- C++ -*-
4 //
5 // Package: SensitiveDetector
6 // Class : SensitiveDetectorMakerBase
7 //
8 // Original Author:
9 // Created: Mon Nov 14 11:50:24 EST 2005
10 //
11 
12 // system include files
13 #include <string>
14 #include <memory>
15 
16 // user include files
19 // forward declarations
21 class DDCompactView;
22 class SimTrackManager;
23 
24 namespace edm{
25  class ParameterSet;
26 }
27 
29 {
30 
31 public:
34 
35  // ---------- const member functions ---------------------
36  virtual void make(const std::string& iname,
37  const DDCompactView& cpv,
38  const SensitiveDetectorCatalog& clg,
39  const edm::ParameterSet& p,
40  const SimTrackManager* man,
42  std::auto_ptr<SensitiveTkDetector>& oTK,
43  std::auto_ptr<SensitiveCaloDetector>& oCalo) const =0;
44 
45 protected:
46  //used to identify which type of Sensitive Detector we have
48  std::auto_ptr<SensitiveTkDetector>& oTo,
49  std::auto_ptr<SensitiveCaloDetector>) const{
50  oTo = std::auto_ptr<SensitiveTkDetector>(iFrom);
51  }
52 
54  std::auto_ptr<SensitiveTkDetector>,
55  std::auto_ptr<SensitiveCaloDetector>& oTo) const{
56  oTo = std::auto_ptr<SensitiveCaloDetector>(iFrom);
57  }
58 
59 private:
61  const SensitiveDetectorMakerBase& operator=(const SensitiveDetectorMakerBase&) = delete;
62 };
63 
64 
65 #endif
void convertTo(SensitiveCaloDetector *iFrom, std::auto_ptr< SensitiveTkDetector >, std::auto_ptr< SensitiveCaloDetector > &oTo) const
S make(const edm::ParameterSet &cfg)
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
void convertTo(SensitiveTkDetector *iFrom, std::auto_ptr< SensitiveTkDetector > &oTo, std::auto_ptr< SensitiveCaloDetector >) const
HLT enums.