| 1 | /* ======================================================================== *\ | 
|---|
| 2 | !  $Name: not supported by cvs2svn $:$Id: MCameraTH.h,v 1.7 2007-02-01 15:56:17 tbretz Exp $ | 
|---|
| 3 | \* ======================================================================== */ | 
|---|
| 4 | #ifndef MARS_MCameraTH | 
|---|
| 5 | #define MARS_MCameraTH | 
|---|
| 6 |  | 
|---|
| 7 | #ifndef MARS_MParContainer | 
|---|
| 8 | #include "MParContainer.h" | 
|---|
| 9 | #endif | 
|---|
| 10 | #ifndef MARS_MCamEvent | 
|---|
| 11 | #include "MCamEvent.h" | 
|---|
| 12 | #endif | 
|---|
| 13 |  | 
|---|
| 14 | #ifndef ROOT_TArrayC | 
|---|
| 15 | #include <TArrayC.h> | 
|---|
| 16 | #endif | 
|---|
| 17 |  | 
|---|
| 18 | class MCameraTH : public MParContainer, public MCamEvent | 
|---|
| 19 | { | 
|---|
| 20 | friend class MReportCC; | 
|---|
| 21 | private: | 
|---|
| 22 | TArrayC fTH;      // [au] discriminator thresholds | 
|---|
| 23 | Bool_t  fIsValid; // fTH contains valid information | 
|---|
| 24 |  | 
|---|
| 25 | public: | 
|---|
| 26 | MCameraTH(Int_t size=577, const char *name=NULL, const char *title=NULL); | 
|---|
| 27 |  | 
|---|
| 28 | Byte_t operator[](Int_t i) { return fTH[i]; } | 
|---|
| 29 |  | 
|---|
| 30 | Byte_t GetMin() const; | 
|---|
| 31 | Byte_t GetMax() const; | 
|---|
| 32 |  | 
|---|
| 33 | void Print(Option_t *opt=NULL) const; | 
|---|
| 34 |  | 
|---|
| 35 | void Invalidate() { fTH.Reset(); fIsValid=kFALSE; } | 
|---|
| 36 |  | 
|---|
| 37 | void SetValid(Bool_t v=kTRUE) { fIsValid=v; } | 
|---|
| 38 | Bool_t IsValid() const { return fIsValid; } | 
|---|
| 39 |  | 
|---|
| 40 | Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const | 
|---|
| 41 | { | 
|---|
| 42 | if (idx>=fTH.GetSize()) | 
|---|
| 43 | return kFALSE; | 
|---|
| 44 |  | 
|---|
| 45 | // FIXME: This is a stupid workaround to describe the trigger area | 
|---|
| 46 | //        and only valid for the MAGIC-I camera! | 
|---|
| 47 | if (idx>=397 || | 
|---|
| 48 | (idx>=339 && idx<=345) || | 
|---|
| 49 | (idx>=279 && idx<=283) || | 
|---|
| 50 | (idx>=331 && idx<=334) || | 
|---|
| 51 | (idx>=394 && idx<=396) || | 
|---|
| 52 | (idx>=271 && idx<=273) || | 
|---|
| 53 | (idx>=329 && idx<=330) || | 
|---|
| 54 | (idx>=383 && idx<=389) || | 
|---|
| 55 | (idx>=319 && idx<=323) || | 
|---|
| 56 | (idx>=289 && idx<=293) || | 
|---|
| 57 | (idx>=350 && idx<=356) || | 
|---|
| 58 | (idx>=299 && idx<=303) || | 
|---|
| 59 | (idx>=361 && idx<=367) || | 
|---|
| 60 | (idx>=309 && idx<=313) || | 
|---|
| 61 | (idx>=372 && idx<=378)) | 
|---|
| 62 | return kFALSE; | 
|---|
| 63 |  | 
|---|
| 64 | val = fTH[idx]; | 
|---|
| 65 | return val>0; | 
|---|
| 66 | } | 
|---|
| 67 | void DrawPixelContent(Int_t num) const | 
|---|
| 68 | { | 
|---|
| 69 | } | 
|---|
| 70 |  | 
|---|
| 71 | ClassDef(MCameraTH, 2) // Storage Container for the discriminator thresholds | 
|---|
| 72 | }; | 
|---|
| 73 |  | 
|---|
| 74 | #endif | 
|---|