source: trunk/Cosy/main/MCaos.h@ 20048

Last change on this file since 20048 was 9435, checked in by tbretz, 16 years ago
*** empty log message ***
File size: 2.6 KB
Line 
1#ifndef CAOS_MCaos
2#define CAOS_MCaos
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7#ifndef CAOS_Leds
8#include "Leds.h"
9#endif
10#ifndef CAOS_Ring
11#include "Ring.h"
12#endif
13
14#ifndef COSY_PixClient
15#include "PixClient.h" // byte
16#endif
17
18class TFile;
19class TH1F;
20class TH2F;
21class TGraph;
22
23class MTime;
24class ZdAz;
25
26class MCaos : public MParContainer
27{
28private:
29 TFile *fFile; // File we may write data to
30
31 Leds fPositions;
32
33 Leds *fLeds;
34 Double_t fEvtTime;
35 Double_t fZenithDist;
36 Double_t fAzimuth;
37
38 TH1F *fHistpr;
39 TH2F **fHistled;
40 TH1F *fHistallw;
41 TH1F **fHistw;
42
43 TH2F *fHistprxpry;
44
45 TGraph *fGraphprx;
46 TGraph *fGraphpry;
47 TGraph *fGraphw;
48 TGraph *fGraphr;
49
50 Short_t fMinNumberLeds; // minimum number of detected leds required
51 Double_t fMinRadius; // minimum radius for cut in ring radius
52 Double_t fMaxRadius; // maximum radius for cut in ring radius
53 UShort_t fSizeBox; // Size of the search box (side length in units of pixels)
54 Double_t fCut; // Cleaning level (sigma above noise)
55 Double_t fArcsecPerPixel; // Conversion from arcseconds to pixel
56
57 Int_t fNumDetectedLEDs;
58 Int_t fNumDetectedRings;
59
60public:
61 MCaos(const char *name=0, const char *title=0)
62 : fFile(NULL), fHistpr(NULL), fMinNumberLeds(5),
63 fMinRadius(265), fMaxRadius(268), fSizeBox(19), fCut(3.0)
64 {
65 fLeds = new Leds;
66 }
67
68 ~MCaos()
69 {
70 CloseFile();
71 DeleteHistograms();
72 delete fLeds;
73 }
74
75 void AddPosition(Float_t x, Float_t y, Float_t dx, Float_t dy)
76 {
77 fPositions.Add(x, y, dx, dy);
78 }
79
80 void ReadResources(const char *name="leds.txt");
81
82 void OpenFile();
83 void CloseFile();
84
85 void SetMinNumberLeds(Short_t n)
86 {
87 fMinNumberLeds = n;
88 }
89
90 void SetMinRadius(Double_t min) { fMinRadius=min; }
91 void SetMaxRadius(Double_t max) { fMaxRadius=max; }
92
93 void InitHistograms();
94 void DeleteHistograms();
95 void ShowHistograms();
96 void ResetHistograms();
97
98 Int_t GetNumDetectedLEDs() const { return fNumDetectedLEDs; }
99 Int_t GetNumDetectedRings() const { return fNumDetectedRings; }
100
101 Double_t GetArcsecPerPixel() const { return fArcsecPerPixel; }
102
103 Ring Run(byte *img, bool printl, bool printr, const ZdAz &pos,
104 const MTime &t);
105
106 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
107};
108
109#endif
Note: See TracBrowser for help on using the repository browser.