Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DApplication.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DApplication.h
4 // Created: Mon Jul 3 21:46:01 EDT 2006
5 // Creator: davidl (on Darwin Harriet.local 8.6.0 powerpc)
6 //
7 
8 #ifndef _DApplication_
9 #define _DApplication_
10 
11 #include <deque>
12 #include <map>
13 #include <set>
14 #include <algorithm>
15 
16 #include "TF1.h"
17 
18 #include <JANA/jerror.h>
19 #include <JANA/JApplication.h>
20 using namespace jana;
21 using namespace std;
22 
23 #include "HDGEOMETRY/DGeometry.h"
24 #include "DIRC/DDIRCLutReader.h"
25 
26 class DMagneticFieldMap;
28 class DGeometry;
29 //class DMaterialMap;
30 class DRootGeom;
31 class DDIRCLutReader;
32 
33 class DApplication:public JApplication{
34 
35 /// The DApplication class extends the JApplication class
36 /// by adding the default event source generators and
37 /// factory generators that are HAll-D specific.
38 
39  public:
40  DApplication(int narg, char* argv[]);
41  virtual ~DApplication();
42  virtual const char* className(void){return static_className();}
43  static const char* static_className(void){return "DApplication";}
44 
45  jerror_t Init(void);
46 
47  DMagneticFieldMap* GetBfield(unsigned int run_number=1);
48  DLorentzDeflections *GetLorentzDeflections(unsigned int run_number=1);
49  DGeometry* GetDGeometry(unsigned int run_number);
50  DRootGeom *GetRootGeom(unsigned int run_number);
51  void CopySQLiteToLocalDisk(void);
52  DDIRCLutReader *GetDIRCLut(unsigned int run_number);
53 
54  pthread_rwlock_t* GetReadWriteLock(string &name) {
55  return rw_locks.count( name ) == 0 ? nullptr : rw_locks[name];
56  }
57  pthread_rwlock_t* GetRootReadWriteLock() {
58  return root_rw_lock;
59  }
60  pthread_rwlock_t* GetRootFillLock( JEventProcessor *proc ) {
61  return root_fill_rw_lock.count( proc ) == 0 ? nullptr : root_fill_rw_lock[proc];
62  }
63 
64  protected:
65 
68  JEventSourceGenerator *event_source_generator;
69  JFactoryGenerator *factory_generator;
71  vector<DGeometry*> geometries;
73 
74  pthread_mutex_t mutex;
75 };
76 
77 #endif // _DApplication_
78 
DLorentzDeflections * lorentz_def
Definition: DApplication.h:67
DDIRCLutReader * dircLut
Definition: DApplication.h:72
DRootGeom * RootGeom
Definition: DApplication.h:70
pthread_mutex_t mutex
Definition: DApplication.h:74
DMagneticFieldMap * bfield
Definition: DApplication.h:66
virtual const char * className(void)
Definition: DApplication.h:42
pthread_rwlock_t * GetRootReadWriteLock()
Definition: DApplication.h:57
pthread_rwlock_t * GetReadWriteLock(string &name)
Definition: DApplication.h:54
JEventSourceGenerator * event_source_generator
Definition: DApplication.h:68
static const char * static_className(void)
Definition: DApplication.h:43
vector< DGeometry * > geometries
Definition: DApplication.h:71
JFactoryGenerator * factory_generator
Definition: DApplication.h:69
pthread_rwlock_t * GetRootFillLock(JEventProcessor *proc)
Definition: DApplication.h:60