// ESAF : Euso Simulation and Analysis Framework // $Id: EShowerPainter.hh,v 1.8 2005/04/18 22:50:20 thea Exp $ // Naumov Dmitry created Jun, 28 2004 #ifndef __ESHOWERPAINTER_HH__ #define __ESHOWERPAINTER_HH__ #include "EAnimator.hh" #include "TVector3.h" class TGeoManager; class TGeoVolume; class TGeoBBox; class TGeoTube; class EShower; class TGeoMedium; class TSeqCollection; class TH2F; class TH3F; class EShowerPainter : public EAnimator { public: // ctor EShowerPainter( EShower* ); // dtor virtual ~EShowerPainter(); virtual void DefineBox(); virtual void Draw( Option_t* =""); virtual void DrawXY(); virtual void DrawXYZ(); TH2F* GetShowerHisto2D(const char *name, const char *title); TH3F* GetShowerHisto3D(const char *name, const char *title); void UpdateVisibility( Option_t *opt=""); TSeqCollection* GetListOfHistos() {return fHistoContainer;} virtual void Animate(); virtual void NextFrame(); virtual inline void Rewind() { fFrame = 0; UpdateVisibility(); } virtual inline Bool_t IsEnded() { return (fFrame > fNumFrames-1); } inline Bool_t IsWorldBuilt() { return fWorldBuild;} inline Bool_t IsBoxDefined() { return fBoxDefined;} void Build(); void BuildWorld(); private: Bool_t fWorldBuild; Bool_t fBoxDefined; EShower *fShower; TGeoVolume *fShowerVolume; TGeoVolume *fFoVVolume; TGeoVolume *fShowerBox; TGeoVolume *fTOP; TGeoMedium *fVacuum; TVector3 fCenter; Float_t fDx; Float_t fDy; Float_t fDz; Float_t fXmin; Float_t fXmax; Float_t fYmin; Float_t fYmax; Float_t fZmin; Float_t fZmax; Float_t fNmax; Float_t fThreshold; TSeqCollection *fHistoContainer; ClassDef(EShowerPainter,1); }; #endif /* __ESHOWERPAINTER_HH__ */