source: trunk/MagicSoft/include-Classes/MMcFormat/MMcConfigRunHeader.h@ 2399

Last change on this file since 2399 was 1632, checked in by tbretz, 22 years ago
*** empty log message ***
File size: 2.5 KB
Line 
1#ifndef MARS_MMcConfigRunHeader
2#define MARS_MMcConfigRunHeader
3
4#ifndef ROOT_TClonesArray
5#include <TClonesArray.h>
6#endif
7
8#ifndef MARS_MGeomMirror
9#include "MGeomMirror.h"
10#endif
11#ifndef MARS_MGeomPMT
12#include "MGeomPMT.h"
13#endif
14
15class MGeomMirror;
16class MGeomPMT;
17
18class MMcConfigRunHeader : public MParContainer
19{
20private:
21 // Mirror Information
22 UShort_t fNumMirrors;
23 Float_t fRadiusMirror;// [cm] Radius of a single mirror
24 TClonesArray *fMirrors; // FIXME: Change TClonesArray away from a pointer?
25
26 // Magic Def Parameters
27 Float_t fFocalDist; // [cm] Focal distance
28 Float_t fFocalStdev; // [cm] Standard deviation of focal distance
29 Float_t fPointSpread; // [cm] Point spread function
30 Float_t fPointStdev; // [cm] Standard deviation of point spread function
31 Float_t fDevAdjust; // [cm] Standard deviation of the adjustment value
32 Float_t fBlackSpot; // [cm] Radius of black spot in the mirror center
33 Float_t fCameraWidth; // [cm] Radius on the camera plain
34 // inside which the phe are kept.
35
36 // QE Information
37 UInt_t fNumPMTs;
38 TClonesArray *fPMTs;
39
40 // Light Guides Information
41 TArrayF fIncidentTheta; // [deg]
42 TArrayF fLightGuidesFactor;// []
43
44public:
45 MMcConfigRunHeader(const char *name=NULL, const char *title=NULL);
46 ~MMcConfigRunHeader() { delete fMirrors; delete fPMTs; }
47
48 void SetMagicDef(Float_t radius, Float_t focal, Float_t stdfocal, Float_t point,
49 Float_t stdpoint, Float_t adjust, Float_t spot, Float_t camwidth);
50 void SetLightGuides(const TArrayF &theta, const TArrayF &factor);
51
52 UInt_t GetNumMirror() const { return fNumMirrors; }
53 void InitSizeMirror(UInt_t num) { fMirrors->Expand(num); }
54
55 UInt_t GetNumPMTs() const { return fNumPMTs; }
56 void InitSizePMTs(UInt_t num) { fPMTs->Expand(num); }
57
58 void AddMirror(Int_t id)
59 {
60 new ((*fMirrors)[fNumMirrors++]) MGeomMirror(id);
61 }
62
63 void AddPMT(Int_t id)
64 {
65 new ((*fPMTs)[fNumPMTs++]) MGeomPMT(id);
66 }
67
68 MGeomMirror &GetMirror(int i) { return *(MGeomMirror*)(fMirrors->UncheckedAt(i)); }
69 MGeomMirror &GetMirror(int i) const { return *(MGeomMirror*)(fMirrors->UncheckedAt(i)); }
70
71 MGeomPMT &GetPMT(int i) { return *(MGeomPMT*)(fPMTs->UncheckedAt(i)); }
72 MGeomPMT &GetPMT(int i) const { return *(MGeomPMT*)(fPMTs->UncheckedAt(i)); }
73
74 ClassDef(MMcConfigRunHeader, 1) // class for monte carlo configuration information
75};
76
77#endif
78
Note: See TracBrowser for help on using the repository browser.