source: trunk/MagicSoft/Cosy/main/MStargHistograms.cc@ 7936

Last change on this file since 7936 was 7767, checked in by tbretz, 18 years ago
*** empty log message ***
File size: 4.5 KB
Line 
1#include "MStargHistograms.h"
2
3#include <iostream>
4#include <iomanip>
5
6#include <TSystem.h>
7#include <TFile.h>
8#include <TTree.h>
9#include <TH1.h>
10#include <TH2.h>
11#include <TGraph.h>
12#include <TCanvas.h>
13
14#include "MTime.h"
15
16#include "Led.h"
17#include "Leds.h"
18#include "Ring.h"
19#include "Rings.h"
20#include "FilterLed.h"
21#include "MStarList.h"
22
23#include "coord.h"
24
25void MStargHistograms::OpenFile()
26{
27 int i=0;
28 char name[100];
29 while (1)
30 {
31 sprintf(name, "data/starg%03d.root", i++);
32 if (gSystem->AccessPathName(name, kFileExists))
33 break;
34 }
35
36 if (fFile)
37 delete fFile;
38
39 fFile = new TFile(name, "RECREATE");
40
41 if (!fFile->IsOpen())
42 {
43 delete fFile;
44 fFile = NULL;
45
46 cout << "Error: Cannot open file '" << name << "'" << endl;
47 }
48
49 TTree *tree = new TTree("Data", "Real Starg Data");
50
51
52 fEvtTime = 0;
53
54
55 // Tracking Position Zd, Az in deg
56 tree->Branch("PosZd.", &fZenithDist, "fZenithDist/D");
57 tree->Branch("PosAz.", &fAzimuth, "fAzimuth/D");
58 // Event time, arbitrary start
59 tree->Branch("EvtTime.", &fEvtTime, "fEvtTime/D");
60 // Pointing Position Zd, Az in deg
61 tree->Branch("SaoZd.", &fNomZd, "fNomZd/D");
62 tree->Branch("SaoAz.", &fNomAz, "fNomAz/D");
63 // Misspointing from Starguider Zd, Az in deg
64 tree->Branch("MisZd.", &fdZd, "fdZd/D");
65 tree->Branch("MisAz.", &fdAz, "fdAz/D");
66 // LED Offset from StargLEDFinder, obsolete
67 tree->Branch("LEDOffsetX.", &fOffsetX, "fOffsX/D");
68 tree->Branch("LEDOffsetY.", &fOffsetY, "fOffsY/D");
69 // Center of Camera, offset from arb coords, in pix
70 tree->Branch("CenterX.", &fCenterX, "fCenterX/D");
71 tree->Branch("CenterY.", &fCenterY, "fCenterY/D");
72 // Center of Camera, offset from arb coords, in Zd, Az, deg
73// tree->Branch("CenterZd.", &fCenterZd, "fCenterZd/D");
74// tree->Branch("CenterAz.", &fCenterAz, "fCenterAz/D");
75 // Position of Star in Camera in Zd, Az
76 tree->Branch("StarZd.", &fStarZd, "fStarZd/D");
77 tree->Branch("StarAz.", &fStarAz, "fStarAz/D");
78 // number of spots found
79 tree->Branch("Spots.", &fSpots, "fSpots/D");
80 // number of stars expected
81 tree->Branch("Stars.", &fStars, "fStars/D");
82 tree->Branch("Bright.", &fBright, "fBright/D");
83
84
85 cout << "Root file '" << name << "' open." << endl;
86}
87
88void MStargHistograms::CloseFile()
89{
90 if (!fFile)
91 return;
92
93 const TString name = fFile->GetName();
94 const Double_t n = ((TTree*)fFile->Get("Data"))->GetEntries();
95
96 fFile->Write();
97 delete fFile;
98 fFile = NULL;
99
100 cout << "Root file closed (n=" << n << ")" << endl;
101
102 if (n<1)
103 {
104 gSystem->Unlink(name);
105 cout << "Root file deleted - no entries." << endl;
106 }
107}
108
109void MStargHistograms::InitHistograms()
110{
111
112}
113
114void MStargHistograms::DeleteHistograms()
115{
116
117}
118
119void MStargHistograms::ShowHistograms()
120{
121
122}
123
124void MStargHistograms::ResetHistograms()
125{
126
127}
128
129void MStargHistograms::Fill(Leds &spots, MStarList &stars, ZdAz &d, ZdAz sao, Ring &center, ZdAz &star, Double_t bright, const ZdAz &pos, const MTime &t)
130{
131 // FIXME!
132 static const MTime t0(t);
133 fEvtTime = t-t0;
134
135 // cout << "@ evttime " << fEvtTime << endl;
136
137 if (fFile && spots.GetEntries()>0)
138 {
139 fZenithDist = pos.Zd(); //fCosy ? fCosy->GetPointingPos().Zd() : 0
140 fAzimuth = pos.Az(); //fCosy ? fCosy->GetPointingPos().Az() : 0;
141 fNomZd = sao.Zd();
142 fNomAz = sao.Az();
143 fdZd = d.Zd();
144 fdAz = d.Az();
145
146 fCenterX = center.GetX();
147 fCenterY = center.GetY();
148 //fCenterZd = centerzdaz.Zd();
149 //fCenterAz = centerzdaz.Az();
150 fStarZd = star.Zd();
151 fStarAz = star.Az();
152 fStars = stars.GetRealEntries();
153 fSpots = spots.GetEntries();
154 fBright = bright;
155
156 // cout << " Evttime=" << fEvtTime
157// << " ZD=" << fZenithDist
158// << " Az=" << fAzimuth
159// << " NomZd=" << fNomZd
160// << " NomAz=" << fNomAz
161// << " dZd=" << fdZd
162// << " dAz=" << fdAz
163// << " OffsX=" << fOffsetX
164// << " OffsY=" << fOffsetY
165// <<endl;
166
167 TTree *t = (TTree*)fFile->Get("Data");
168 t->Fill();
169 }
170
171}
Note: See TracBrowser for help on using the repository browser.