#ifndef EDARRAY_H #define EDARRAY_H #include #include #include #include #include #include #include #include #include #include #include #include "AugerIoSd.h" #include "Er.h" #define SIZE 350 //#define BORDER 4000 #define FDSIZE 15000 #define SDPLENGTH 50000 #define MAXSTAT (4096 + 2048) //because of use of LsId>2048 indexes // Colors #define IST5 8 #define IST2 3 #define IST1 5 #define HASNODATA 38 #define ISBADLS 2 #define ISBADCOMMS 46 #define ISDOWN 1 #define ISSILENT 7 #define ISLIGHTN 94 #define NOT2 15 #define AMBIGUOUS 23 #define COLORDEFAULT 10 class EDArrayFD { private: TLine *fLine[6]; public: EDArrayFD(double, double, double); ~EDArrayFD() { for(int i=0;i<6;i++) if (fLine[i]) delete fLine[i]; } void Draw() { for(int i=0;i<6;i++) fLine[i]->Draw(); } }; class EDArrayCanvas : public TRootEmbeddedCanvas { private: TCanvas *fCanvasArray; TEllipse *fStation[kIoSd::NPMT][MAXSTAT]; TMarker *fMarker[MAXSTAT]; TMarker fShowerCore, fPlus, fMinus; TLine fShowerDirection, fSDPLL, fSDP[4]; TLine fShowerShadow; TText fPlusT, fMinusT; std::vector fLines; std::vector fFD; void DrawFD(double, double, double, double); void SetDefault(int STAT) { Set(STAT,COLORDEFAULT); for(int j=0;jcd(); } void Update(); void UnTrigAll(); void Clear(TErEvent *rec) { if(rec) for (unsigned int i=0;iTrigger.NumberOfStation;i++) SetDefault(rec->Stations[i].Id); SetShower(NULL); } void SetShower(TErEvent *); void SetSignal(int,int, double,double); void Set(int STAT, int color); void Select(int); void Clear(); bool HandleButton(Event_t *); void DrawSDP(IoSdT3Trigger &); void DrawSDP(std::vector &list); double Aspect() { return GetHeight()*1./GetWidth(); } }; #endif