// ESAF : Euso Simulation and Analysis Framework // $Id: OADBHeader.hh,v 1.8 2005/05/03 21:05:01 thea Exp $ // A.Thea, J.Watts created Mar, 16 2004 #ifndef __OADBHEADER_HH_ #define __OADBHEADER_HH_ #include "TObject.h" class OADBHeader: public TObject { public: // ctor OADBHeader(); // dtor virtual ~OADBHeader(); // copy virtual void Copy( TObject& ) const; Float_t GetX(Int_t i) { return i*GetXYStep();} Float_t GetY(Int_t j) { return ((GetNumRows()-1)/2-j)*GetXYStep();} // getters inline Float_t GetXYStep() { return fXYStep; } inline Float_t GetOpticsRadius() { return fOpticsRadius; } inline Float_t GetEntranceDiscRadius() { return fEntranceDiscRadius; } inline Float_t GetFirstLensBottom() { return fFirstLensBottom; } inline Float_t GetFirstLensTop() { return fFirstLensTop; } inline Float_t GetSecondLensBottom() { return fSecondLensBottom; } inline Float_t GetSecondLensTop() { return fSecondLensTop; } inline Float_t GetEntranceZ() { return fEntranceZ;} inline Float_t GetExitZ() { return fExitZ;} inline Float_t GetPosZ() { return fPosZ;} // angles Int_t GetNumAngles() const { return fNumAngles; } Float_t GetAngle( Int_t ) const; inline const Float_t* GetAngles() const { return fAngles; }; // wavelength Int_t GetNumWavelengths() const { return fNumWavelengths; } Float_t GetWavelength( Int_t ) const; inline const Float_t* GetWavelengths() const { return fWavelengths; } // returns the number of rows inline Int_t GetNumRows() const { return fNumRows; } inline const Int_t* GetRows() const { return fNumCols; } // returns number of columns for each row Int_t GetNumCols( Int_t row ) const; // returns the total number of spots Int_t GetNumPos() const; // setters inline void SetXYStep( Double_t s ) { fXYStep = s; } inline void SetOpticsRadius ( Double_t r ) { fOpticsRadius = r; } inline void SetEntranceDiscRadius ( Double_t r ) { fEntranceDiscRadius = r; } inline void SetFirstLensTop( Double_t z ) { fFirstLensTop = z; } inline void SetFirstLensBottom( Double_t z ) { fFirstLensBottom = z; } inline void SetSecondLensTop( Double_t z ) { fSecondLensTop = z; } inline void SetSecondLensBottom( Double_t z ) { fSecondLensBottom = z; } inline void SetEntranceZ( Double_t z ) { fEntranceZ = z; } inline void SetExitZ( Double_t z ) { fExitZ = z; } inline void SetPosZ( Double_t z ) { fPosZ = z; } // angles void SetNumAngles( Int_t ); void SetAngle( Int_t, Float_t ); // wavelength void SetNumWavelengths( Int_t ); void SetWavelength( Int_t, Float_t ); // position void SetNumRows( Int_t r ); void SetNumCols( Int_t r, Int_t c ); private: Float_t fXYStep; // scan step Float_t fOpticsRadius; // radius of the optics Float_t fFirstLensBottom; Float_t fFirstLensTop; Float_t fSecondLensBottom; Float_t fSecondLensTop; Float_t fEntranceDiscRadius; // radius of the entrance disc Float_t fEntranceZ; // altitude of entrance disc Float_t fExitZ; // altitued of exit disc Float_t fPosZ; // altitude of optics Int_t fNumAngles; // number of angles stored Float_t *fAngles; //[fNumAngles] Int_t fNumWavelengths; // number of wavelengths stored Float_t *fWavelengths; //[fNumWavelengths] Int_t fNumRows; Int_t *fNumCols; //[fNumRows] ClassDef(OADBHeader,1) }; #endif /* __OADBHEADER_HH_ */