]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RALICE/AliAstrolab.h
train ready for Pilot integration with all wagons
[u/mrichter/AliRoot.git] / RALICE / AliAstrolab.h
index ca85cd1d09a103819303b50b8d3c4ec479809a49..910e3a40131cdca6c704b1333ad105aebfc68c11 100644 (file)
@@ -8,20 +8,26 @@
 
 #include <math.h>
 
-#include "TNamed.h"
+#include "TTask.h"
 #include "TString.h"
 #include "TRotMatrix.h"
 #include "TObjArray.h"
 #include "TArrayI.h"
+#include "TCanvas.h"
+#include "TEllipse.h"
+#include "TLine.h"
+#include "TText.h"
+#include "TH2.h"
+#include "TMarker.h"
 
 #include "AliTimestamp.h"
 #include "AliPosition.h"
 #include "AliSignal.h"
  
-class AliAstrolab : public TNamed,public AliTimestamp
+class AliAstrolab : public TTask,public AliTimestamp
 {
  public:
-  AliAstrolab(const char* name="",const char* title="");       // Constructor
+  AliAstrolab(const char* name="AliAstrolab",const char* title="Generic lab"); // Constructor
   virtual ~AliAstrolab();                                      // Destructor
   AliAstrolab(const AliAstrolab& t);                           // Copy constructor
   virtual TObject* Clone(const char* name="") const;           // Make a deep copy and provide its pointer
@@ -64,6 +70,10 @@ class AliAstrolab : public TNamed,public AliTimestamp
   Double_t GetDifference(Int_t jref,TString au,Double_t& dt,TString tu,Int_t mode=1,Int_t* ia=0,Int_t* it=0); // Provide space and time difference
   Double_t GetDifference(TString name,TString au,Double_t& dt,TString tu,Int_t mode=1);// Provide space and time difference
   TArrayI* MatchRefSignal(Double_t da,TString au,Double_t dt,TString tu,Int_t mode=1); // Provide space and time matching reference signals
+  void DisplaySignal(TString frame,TString mode,AliTimestamp* ts,Int_t jref=0,TString proj="ham",Int_t clr=0); // Display stored signal
+  void DisplaySignal(TString frame,TString mode,AliTimestamp* ts,TString name,TString proj="ham",Int_t clr=0); // Display stored signal
+  void DisplaySignals(TString frame,TString mode,AliTimestamp* ts,TString proj="ham",Int_t clr=0);             // Display all stored signals
+  void SetCentralMeridian(Double_t phi,TString u="deg"); // Set central meridian for the sky display
  
  protected:
   AliPosition fLabPos;   // Position of the lab in the terrestrial longitude-latitude frame
@@ -88,7 +98,19 @@ class AliAstrolab : public TNamed,public AliTimestamp
   void SetHmatrix(AliTimestamp* ts); // Set the equatorial to horizontal conversion matrix
   void Precess(Ali3Vector& r,AliTimestamp* ts1,AliTimestamp* ts2); // Correct RA and decl. for earth's precession
   void Nutate(Ali3Vector& r,AliTimestamp* ts); // Correct RA and decl. for earth's nutation
+
+  // The skymap display facilities of Garmt
+  Double_t fMeridian;  //! Central meridian (in rad) for the sky display
+  TString fProj;       //! Projection which is currently in use
+  TCanvas* fCanvas;    //! The canvas for the skymap
+  TH1* fHist;          //! Temp. histogram for the sky display
+  TObjArray* fMarkers; //! Temp. array to hold the markers for the signal display
+  void Project(Double_t l,Double_t b,TString proj,Double_t& x,Double_t& y);// Projection of (l,b) pair
+  void ProjectCylindrical(Double_t l,Double_t b,Double_t& x,Double_t& y);  // Cylindrical projection of (l,b) pair
+  void ProjectHammer(Double_t l,Double_t b,Double_t& x,Double_t& y);       // Hammer-Aitoff projection of (l,b) pair
+  void ProjectAitoff(Double_t l,Double_t b,Double_t& x,Double_t& y);       // Aitoff projection of (l,b) pair
+  void ProjectMercator(Double_t l,Double_t b,Double_t& x,Double_t& y);     // Mercator projection of (l,b) pair
  
- ClassDef(AliAstrolab,1) // Virtual lab to relate measurements with astrophysical phenomena
+ ClassDef(AliAstrolab,3) // Virtual lab to relate measurements with astrophysical phenomena
 };
 #endif