eicplot  trunk
EIC ROOT plotting utilities
/Users/thomasburton/Documents/projects/eic/Utilities/eicplot/trunk/include/eicplot/Credits.h
00001 
00008 #ifndef _EICPLOT_CREDITS_H_
00009 #define _EICPLOT_CREDITS_H_
00010 
00011 #include <list>
00012 #include <string>
00013 #include <utility>
00014 
00015 #include <Rtypes.h> // For ClassDef macro
00016 
00017 class TH1;
00018 class TPave;
00019 class TText;
00020 class TVirtualPad;
00021 
00022 namespace erhic {
00023    
00031    class Credits {
00032    public:
00033       
00035       virtual ~Credits() { }
00036 
00049       static TText* Draw(TVirtualPad* = NULL);
00050       
00052       static std::string Text();
00053       
00057       static double MinimumMargin();
00058       
00060       static void SetMinimumMargin(double);
00061       
00063       static TVirtualPad* Test();
00064       
00065    protected:
00066       
00072       static std::pair<double, double> ComputeCoordinates(TVirtualPad&);
00073 
00075       static std::list<TH1*> GetHists(TVirtualPad&);
00076       
00081       static bool InterferesWithCredits(TPave*);
00082       
00083       static std::string smText;
00084       static double smMinMargin;
00085 
00086       ClassDef(erhic::Credits, 1)
00087    };
00088    
00089    inline std::string Credits::Text() {
00090       return smText;
00091    }
00092    
00093    inline double Credits::MinimumMargin() {
00094       return smMinMargin;
00095    }
00096    
00097    inline void Credits::SetMinimumMargin(double val) {
00098       smMinMargin = val;
00099    }
00100    
00101 } // namespace erhic
00102 
00103 #endif