#ifndef TFndDisplay_H #define TFndDisplay_H /////////////////////////////////////////////////////////////////////////// // // // TFndDisplay // // // // Utility class for the FINUDA Event display (Hits & Tracks) // // // /////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TObject #include #endif class TCanvas; class TPad; class TList; class TSlider; class TButton; class TArc; class TGeometry; class TFile; class TFndHdt; const Int_t kMAXZOOMS = 20; class TFndDisplay : public TObject { private: Int_t fZoomMode; // = 1 if in zoom mode Bool_t fDrawAllViews; // True if AllViews selected Bool_t fDrawTracks; // True if tracks are drawn Bool_t fDrawHits; // True if hits are drawn Float_t fPTcut; // PT cut to select drawn objects Float_t fTheta; // viewing angle Float_t fPhi; // viewing angle Float_t fPsi; // viewing angle Float_t fRrange; // view size along Radius Float_t fZrange; // view size along beam direction Float_t fZoomX0[kMAXZOOMS]; // Low x-range for i-th zoom Float_t fZoomX1[kMAXZOOMS]; // High x-range for i-th zoom Float_t fZoomY0[kMAXZOOMS]; // Low y-range for i-th zoom Float_t fZoomY1[kMAXZOOMS]; // High y-range for i-th zoom Int_t fZooms; // Zooming order Int_t fHitsCuts; // Number of hits surviving cuts TCanvas *fCanvas; // pointer to display canvas TPad *fTrigPad; // pointer to trigger pad; TPad *fMomPad; // pointer to momentum cut pad TPad *fEtaPad; // pointer to rapidity cut pad TPad *fButtons; // pointer to buttons pad TPad *fPad; // pointer to event display main pad /* TSlider *fMomSlider; // pointer to momentum cut slider TSlider *fEtaSlider; // pointer to rapidity cut slider */ TSlider *fRangeSlider; // pointer to Range slider TButton *fPickButton; // button to activate "pick" mode TButton *fZoomButton; // button to activate "zoom" mode TArc *fArcButton; // Green/Red button to show pick/zoom mode TList *fFruits; // List of fruits TGeometry *fnd_geom; // FINUDA Mther Volume Char_t *fHDT; // Hdt input file name TFile *fHdtFile; // Hdt input file TFndHdt *fev; // Hdt Event public: TFndDisplay(); TFndDisplay(Int_t size,Char_t *fHDT = "$FND_DATA/HDT/onl.hdt"); virtual ~TFndDisplay(); virtual Bool_t AllViews() { return fDrawAllViews; } virtual void Clear(Option_t *option=""); virtual void DisableDetector(const char *name); virtual void DisplayButtons(); virtual Int_t DistanceToPrimitive(Int_t px, Int_t py); virtual void Draw(Option_t *option=""); virtual void DrawAllViews(); virtual void DrawHits(); virtual void DrawTitle(Option_t *option=""); virtual void DrawView(Float_t theta, Float_t phi, Float_t psi); virtual void DrawViewGL(); virtual void DrawViewX3D(); virtual void EnableDetector(const char *name); /* TSlider *EtaSlider() { return fEtaSlider; } TSlider *MomSlider() { return fMomSlider; } */ virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); Int_t GetZoomMode() { return fZoomMode; } virtual void LoadPoints(); TPad *Pad() { return fPad; } virtual void Paint(Option_t *option=""); Float_t PTCut() { return fPTcut; } virtual void SetDrawHits(Bool_t draw=kTRUE) { fDrawHits = draw; } virtual void SetDrawTracks(Bool_t draw=kTRUE) { fDrawTracks = draw; } virtual void SetPTcut(Float_t ptcut = 1.5); virtual void SetRange(Float_t rrange = 150., Float_t zrange = 150.); virtual void SetView(Float_t theta, Float_t phi, Float_t psi); virtual void SetPickMode(); virtual void SetZoomMode(); virtual void ShowNextEvent(Int_t delta = 1); virtual void UnZoom(); ClassDef(TFndDisplay,0) // Utility class for the FINUDA Event display (Hits & Tracks) }; #endif