00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 00017 00018 #ifndef TGO4POLYCOND_H 00019 #define TGO4POLYCOND_H 00020 #include "TGo4Condition.h" 00021 class TGo4WinCond; 00022 class TH1; 00023 class TH2; 00024 00025 class TGo4PolyCond : public TGo4Condition { 00026 public: 00027 TGo4PolyCond(); 00028 virtual ~TGo4PolyCond(); 00029 TGo4PolyCond(const Text_t * name); 00030 TGo4PolyCond(const Text_t * name, const Text_t * title); 00031 00033 virtual TGo4ConditionPainter* CreatePainter(); 00034 00038 virtual void SetPainter(TGo4ConditionPainter* painter); 00039 00043 void SetValues(Double_t * x, Double_t * y, Int_t len); 00047 void SetValues(TCutG * newcut); 00051 Bool_t Test(Double_t x, Double_t y); 00052 00054 virtual Double_t GetXLow(); 00056 virtual Double_t GetXUp(); 00058 virtual Double_t GetYLow(); 00060 virtual Double_t GetYUp(); 00061 00070 TCutG* GetCut(Bool_t changeowner); 00074 void PrintCondition(Bool_t points); 00078 // virtual void Print(Option_t* opt) const; 00083 Bool_t UpdateFrom(TGo4Condition * cond, Bool_t counts); 00084 00086 virtual Double_t GetIntegral(TH1* histo, Option_t* opt=""); 00087 00089 virtual Double_t GetMean(TH1* histo, Int_t axis=1); 00090 00092 virtual Double_t GetRMS(TH1* histo, Int_t axis=1); 00093 00095 virtual Double_t GetXMax(TH1* histo); 00096 00098 virtual Double_t GetYMax(TH1* histo); 00099 00101 virtual Double_t GetCMax(TH1* histo); 00102 00103 virtual Bool_t IsPolygonType(); 00104 00105 00106 00107 00112 static void CleanupSpecials(); 00113 00114 private: 00119 TCutG * CloneCut(TGo4PolyCond * source); 00120 00121 00125 TH2* CreateCutHistogram(TH1* source); 00126 00130 Double_t fXmin; 00134 Double_t fXmax; 00138 Double_t fYmin; 00142 Double_t fYmax; 00146 Int_t fiPoints; 00150 TCutG* cut; 00151 00152 ClassDef(TGo4PolyCond,6) 00153 }; 00154 #endif //TGO4POLYCOND_H 00155 00156 00157 00158 //----------------------------END OF GO4 SOURCE FILE ---------------------