// ESAF : Euso Simulation and Analysis Framework // $Id: EAnglePixelMap.hh,v 1.3 2004/06/11 15:12:36 thea Exp $ // Alessandro Thea created Jun, 2 2004 #ifndef __EANGLEPIXELMAP_HH_ #define __EANGLEPIXELMAP_HH_ #include "TObject.h" #include "ERunParsFiller.hh" class EAnglePixelMap : public TObject { public: EAnglePixelMap(); EAnglePixelMap( Int_t ); EAnglePixelMap( const EAnglePixelMap& ); virtual ~EAnglePixelMap(); virtual void Clear( Option_t* = "" ); virtual void Copy( TObject& ) const; // getters inline Int_t GetNumPixels() const { return fNumPixels; } inline const Float_t* GetThetaFOV() const { return fThetaFOV; } inline const Float_t* GetSigmaThetaFOV() const { return fSigmaThetaFOV; } inline const Float_t* GetPhiFOV() const { return fPhiFOV; } inline const Float_t* GetSigmaPhiFOV() const { return fSigmaPhiFOV; } inline Float_t GetSigmaThetaFOV( Int_t ) const; inline Float_t GetThetaFOV( Int_t ) const; inline Float_t GetPhiFOV( Int_t ) const; inline Float_t GetSigmaPhiFOV( Int_t ) const; // setters inline void SetNumPixels( Int_t n ) { Resize(n); } inline void SetThetaFOV( Float_t, Int_t ); inline void SetSigmaThetaFOV( Float_t, Int_t ); inline void SetPhiFOV( Float_t, Int_t ); inline void SetSigmaPhiFOV( Float_t, Int_t ); Bool_t IsValid( Int_t ) const; ClassDef(EAnglePixelMap,1) private: Int_t Resize( Int_t ); // resize the map Int_t fNumPixels; // number of pixels in the map Float_t *fThetaFOV; //[fNumPixels] theta in FOV Float_t *fSigmaThetaFOV; //[fNumPixels] sigma theta in FOV Float_t *fPhiFOV; //[fNumPixels] phi in FOV Float_t *fSigmaPhiFOV; //[fNumPixels] sigma phi in FOV ERunParsVisitable() }; inline Bool_t EAnglePixelMap::IsValid( Int_t uid ) const { return !( uid < 1 || uid > GetNumPixels() ); } inline Float_t EAnglePixelMap::GetThetaFOV( Int_t i ) const { if ( IsValid( i ) ) return fThetaFOV[i-1]; else Error("GetThetaFOV(i)","bad index (%d) returning 0",i); return 0.; } inline Float_t EAnglePixelMap::GetSigmaThetaFOV( Int_t i ) const { if ( IsValid( i ) ) return fSigmaThetaFOV[i-1]; else Error("GetSigmaThetaFOV(i)","bad index (%d) returning 0",i); return 0.; } inline Float_t EAnglePixelMap::GetPhiFOV( Int_t i ) const { if ( IsValid( i ) ) return fPhiFOV[i-1]; else Error("GetPhiFOV(i)","bad index (%d) returning 0",i); return 0.; } inline Float_t EAnglePixelMap::GetSigmaPhiFOV( Int_t i ) const { if ( IsValid( i ) ) return fSigmaPhiFOV[i-1]; else Error("GetSigmaPhiFOV(i)","bad index (%d) returning 0",i); return 0.; } inline void EAnglePixelMap::SetThetaFOV( Float_t th, Int_t i) { if ( !IsValid( i ) ) { Error("SetThetaFOV(i)","bad index (%d) returning 0",i); return; } fThetaFOV[i] = th; } inline void EAnglePixelMap::SetSigmaThetaFOV( Float_t sth, Int_t i) { if ( !IsValid( i ) ) { Error("SetSigmaThetaFOV(i)","bad index (%d) returning 0",i); return; } fSigmaThetaFOV[i] = sth; } inline void EAnglePixelMap::SetPhiFOV( Float_t phi, Int_t i) { if ( !IsValid( i ) ) { Error("SetPhiFOV(i)","bad index (%d) returning 0",i); return; } fPhiFOV[i] = phi; } inline void EAnglePixelMap::SetSigmaPhiFOV( Float_t sphi, Int_t i) { if ( !IsValid( i ) ) { Error("SetSigmaPhiFOV(i)","bad index (%d) returning 0",i); return; } fSigmaPhiFOV[i] = sphi; } #endif /* __EANGLEPIXELMAP_HH_ */