| 1 | #ifndef MARS_MSimReflector
 | 
|---|
| 2 | #define MARS_MSimReflector
 | 
|---|
| 3 | 
 | 
|---|
| 4 | #ifndef MARS_MTask
 | 
|---|
| 5 | #include "MTask.h"
 | 
|---|
| 6 | #endif
 | 
|---|
| 7 | 
 | 
|---|
| 8 | class MParList;
 | 
|---|
| 9 | class MGeomCam;
 | 
|---|
| 10 | class MPointingPos;
 | 
|---|
| 11 | class MPhotonEvent;
 | 
|---|
| 12 | class MCorsikaEvtHeader;
 | 
|---|
| 13 | 
 | 
|---|
| 14 | class MReflector;
 | 
|---|
| 15 | 
 | 
|---|
| 16 | class MSimReflector : public MTask
 | 
|---|
| 17 | {
 | 
|---|
| 18 | private:
 | 
|---|
| 19 |     MPhotonEvent     *fEvt;        //! Event  storing the photons
 | 
|---|
| 20 |     MPhotonEvent     *fMirror0;    //! Event  storing the photons in the mirror plane (w/o camera shadow)
 | 
|---|
| 21 |     MPhotonEvent     *fMirror1;    //! Event  storing the photons in the mirror plane (w/  camera shadow)
 | 
|---|
| 22 |     MPhotonEvent     *fMirror2;    //! Event  storing the photons in the mirror plane (w/  camera shadow)
 | 
|---|
| 23 |     MPhotonEvent     *fMirror3;    //! Event  storing the photons in the mirror plane (w/  camera shadow)
 | 
|---|
| 24 |     MPhotonEvent     *fMirror4;    //! Event  storing the photons in the mirror plane (w/  camera shadow)
 | 
|---|
| 25 |     //MCorsikaRunHeader *fRunHeader;     //! Header storing event information
 | 
|---|
| 26 |     MCorsikaEvtHeader *fEvtHeader;     //! Header storing event information
 | 
|---|
| 27 | 
 | 
|---|
| 28 |     MReflector        *fReflector;  //!
 | 
|---|
| 29 |     MGeomCam          *fGeomCam;    //!
 | 
|---|
| 30 |     MPointingPos      *fPointing;   //!
 | 
|---|
| 31 | 
 | 
|---|
| 32 |     TString fNameGeomCam;        // Name of the geometry container storing the APD gemeotry
 | 
|---|
| 33 |     TString fNameReflector;      // Name of the container storing the reflector geometry 
 | 
|---|
| 34 | 
 | 
|---|
| 35 |     Double_t fDetectorFrame;     // A disk of radius DetectorFrame around the focal point absorbing photons
 | 
|---|
| 36 |     Double_t fDetectorMargin;    // A margin around the detector (MGeomCam::HitCamera) in which photons are also stored
 | 
|---|
| 37 | 
 | 
|---|
| 38 |     // MParContainer
 | 
|---|
| 39 |     Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
 | 
|---|
| 40 | 
 | 
|---|
| 41 |     // MTask
 | 
|---|
| 42 |     Int_t PreProcess(MParList *pList);
 | 
|---|
| 43 |     Int_t Process();
 | 
|---|
| 44 | 
 | 
|---|
| 45 | public:
 | 
|---|
| 46 |     MSimReflector(const char *name=NULL, const char *title=NULL);
 | 
|---|
| 47 | 
 | 
|---|
| 48 |     // MSimReflector
 | 
|---|
| 49 |     void SetNameGeomCam(const char *name="MGeomCam")     { fNameGeomCam   = name; }
 | 
|---|
| 50 |     void SetNameReflector(const char *name="MReflector") { fNameReflector = name; }
 | 
|---|
| 51 | 
 | 
|---|
| 52 |     void SetDetectorFrame(Double_t cm=0)  { fDetectorFrame  = cm; }
 | 
|---|
| 53 |     void SetDetectorMargin(Double_t mm=0) { fDetectorMargin = mm; }
 | 
|---|
| 54 | 
 | 
|---|
| 55 |     ClassDef(MSimReflector, 0) // Task to calculate reflection on a mirror
 | 
|---|
| 56 | };
 | 
|---|
| 57 | 
 | 
|---|
| 58 | #endif
 | 
|---|