1 | /*
|
---|
2 | - Creation de NTuple et de courbes de lumieres:
|
---|
3 | nbsreadu_squel fichier.dataccd -prt 1 \
|
---|
4 | -mc 2 -u0 0.01,0.5 -t0 1,-1,-1 -tau 2,10,-1 -tf 2,0,2 -bl 1
|
---|
5 | */
|
---|
6 | #include "sopnamsp.h"
|
---|
7 | #include "machdefs.h"
|
---|
8 | #include <iostream>
|
---|
9 | #include <stdlib.h>
|
---|
10 | #include <math.h>
|
---|
11 | #include <stdio.h>
|
---|
12 | #include <string.h>
|
---|
13 |
|
---|
14 | #include "fsvcache.h"
|
---|
15 | #include "fsvst.h"
|
---|
16 | #include "fmath.h"
|
---|
17 | #include "nbmath.h"
|
---|
18 | #include "nbrandom.h"
|
---|
19 | #include "nbsread.h"
|
---|
20 | #include "nbgene.h"
|
---|
21 |
|
---|
22 | #include "ntuple.h"
|
---|
23 | #include "tvector.h"
|
---|
24 |
|
---|
25 | POutPersist *pos_ = NULL;
|
---|
26 | NTuple *ntsti_[2] = {NULL,NULL};
|
---|
27 |
|
---|
28 | /*================================================================*/
|
---|
29 | void UINIT(void)
|
---|
30 | {
|
---|
31 | printf("UINIT\n");
|
---|
32 | pos_ = new POutPersist("nbsread_ppf.ppf");
|
---|
33 | }
|
---|
34 |
|
---|
35 | /*=================== ============================================*/
|
---|
36 | void UDATCLEAN(int coul)
|
---|
37 | /*
|
---|
38 | Attention ici coul = 1,2
|
---|
39 | donc pour tuer une image pour la couleur coul:
|
---|
40 | date[coul-1][...] = GRAND2;
|
---|
41 | */
|
---|
42 | {
|
---|
43 | int ic = coul - 1;
|
---|
44 | cout<<"UDATCLEAN: couleur "<<coul<<", indice tableau "<<ic<<endl;
|
---|
45 | if(nmes[ic]<=0) return;
|
---|
46 |
|
---|
47 | TVector<r_8> vdate(nmes[ic]); vdate = 0;
|
---|
48 | for(int i=0;i<nmes[ic];i++) {
|
---|
49 | vdate(i) = date[ic][i];
|
---|
50 | if(date[ic][i]<0.) date[ic][i] = GRAND2;
|
---|
51 | if(timeu[ic][i].FgCalib<=0) date[ic][i] = GRAND2;
|
---|
52 | }
|
---|
53 |
|
---|
54 | char str[16]; sprintf(str,"date%d",ic);
|
---|
55 | pos_->PutObject(vdate,str);
|
---|
56 |
|
---|
57 | }
|
---|
58 |
|
---|
59 | /*================================================================*/
|
---|
60 | void UINITCCD(void)
|
---|
61 | {
|
---|
62 | printf("UINITCCD: Debut de l'etude du CCD %d %d\n",numccd,ccdnum);
|
---|
63 |
|
---|
64 | // Fill TimeInfoU into NTuple
|
---|
65 | const int nxtn = 12;
|
---|
66 | const char *nament[nxtn] =
|
---|
67 | {"ts","texp","fd","sfd","sx","sy","rho","dx","dy","absor","amass","fgcal"};
|
---|
68 | r_8 xnt[nxtn];
|
---|
69 | NTuple nttinf(nxtn,nament);
|
---|
70 |
|
---|
71 | for(int ic=0;ic<NCOULMX;ic++) {
|
---|
72 | if(nmesure[ic]<=0) continue;
|
---|
73 | NTuple nttinf(nxtn,nament);
|
---|
74 | for(int j=0;j<nmesure[ic];j++) {
|
---|
75 | int i = indexu[ic][j];
|
---|
76 | xnt[0] = timeu[ic][i].TStart/86400.;
|
---|
77 | xnt[1] = timeu[ic][i].Expose;
|
---|
78 | xnt[2] = timeu[ic][i].Fond;
|
---|
79 | xnt[3] = timeu[ic][i].SigFond;
|
---|
80 | xnt[4] = timeu[ic][i].SigX;
|
---|
81 | xnt[5] = timeu[ic][i].SigY;
|
---|
82 | xnt[6] = timeu[ic][i].Rho;
|
---|
83 | xnt[7] = timeu[ic][i].DelX;
|
---|
84 | xnt[8] = timeu[ic][i].DelY;
|
---|
85 | xnt[9] = timeu[ic][i].Absorption;
|
---|
86 | xnt[10] = timeu[ic][i].AirMass;
|
---|
87 | xnt[11] = timeu[ic][i].FgCalib;
|
---|
88 | nttinf.Fill(xnt);
|
---|
89 | }
|
---|
90 | char str[16]; sprintf(str,"tinf%d",ic);
|
---|
91 | pos_->PutObject(nttinf,str);
|
---|
92 | }
|
---|
93 |
|
---|
94 | // Create NTuple for StarInfo
|
---|
95 | const int nsti = 12;
|
---|
96 | const char *namentsti[nsti] =
|
---|
97 | {"net","xref","fmean","fsig","fref","xp","yp","dm","dm2","dm2r","fgref","nbvois"};
|
---|
98 | for(int ic=0;ic<NCOULMX;ic++) {
|
---|
99 | cout<<"...Creating NTuple for StarInfo ic="<<ic<<endl;
|
---|
100 | if(ntsti_[ic] == NULL) delete ntsti_[ic];
|
---|
101 | ntsti_[ic] = new NTuple(nsti,namentsti);
|
---|
102 | }
|
---|
103 |
|
---|
104 | }
|
---|
105 |
|
---|
106 | /*================================================================*/
|
---|
107 | void UEVT(void)
|
---|
108 | {
|
---|
109 | printf("****> Et=%d (%d) %d (%d) fref=%g %g nmes=%d %d nmesure=%d %d\n"
|
---|
110 | ,iet[0],staru[0].XRef,iet[1],staru[1].XRef,staru[0].FluxRef,staru[1].FluxRef
|
---|
111 | ,nmes[0],nmes[1],nmesure[0],nmesure[1]);
|
---|
112 |
|
---|
113 | // Fill StarInfo information into NTuple
|
---|
114 | for(int ic=0;ic<NCOULMX;ic++) {
|
---|
115 | if(iet[ic]<=0) continue; // pas d'etoile associee
|
---|
116 | int n = ntsti_[ic]->NVar();
|
---|
117 | if(n<=0) continue;
|
---|
118 | r_8 *xnt = new r_8[n];
|
---|
119 | xnt[0] = staru[ic].NumEt;
|
---|
120 | xnt[1] = staru[ic].XRef;
|
---|
121 | xnt[2] = staru[ic].FlxMean;
|
---|
122 | xnt[3] = staru[ic].FlxSig;
|
---|
123 | xnt[4] = staru[ic].FluxRef;
|
---|
124 | xnt[5] = staru[ic].XPos;
|
---|
125 | xnt[6] = staru[ic].YPos;
|
---|
126 | xnt[7] = staru[ic].DisMin;
|
---|
127 | xnt[8] = staru[ic].DisM2;
|
---|
128 | xnt[9] = staru[ic].DisM2R;
|
---|
129 | xnt[10] = staru[ic].FgRef;
|
---|
130 | xnt[11] = staru[ic].NbVois;
|
---|
131 | ntsti_[ic]->Fill(xnt);
|
---|
132 | delete [] xnt;
|
---|
133 | }
|
---|
134 |
|
---|
135 | // Fill light curve into NTuple
|
---|
136 | if(FgSelSt==iet[0]) {
|
---|
137 | cout<<"...Writing light curve for "<<iet[0]<<" "<<iet[1]<<endl;
|
---|
138 |
|
---|
139 | const int nxtn = 15;
|
---|
140 | const char *nament[nxtn] =
|
---|
141 | {"ic",
|
---|
142 | "ts","fd","sx","sy","rho",
|
---|
143 | "f","fb","xi2","ef","efb","fdl","s9p","pxm",
|
---|
144 | "fr"
|
---|
145 | };
|
---|
146 | r_8 xnt[nxtn];
|
---|
147 | NTuple nt(nxtn,nament);
|
---|
148 |
|
---|
149 | for(int ic=0;ic<NCOULMX;ic++) {
|
---|
150 | if(iet[ic]<=0) continue; // pas d'etoile associee
|
---|
151 | if(nmesure[ic]<=0) continue;
|
---|
152 | for(int j=0;j<nmesure[ic];j++) {
|
---|
153 | int i = indexu[ic][j];
|
---|
154 | xnt[0] = ic;
|
---|
155 | xnt[1] = timeu[ic][i].TStart/24.;
|
---|
156 | xnt[2] = timeu[ic][i].Fond;
|
---|
157 | xnt[3] = timeu[ic][i].SigX;
|
---|
158 | xnt[4] = timeu[ic][i].SigY;
|
---|
159 | xnt[5] = timeu[ic][i].Rho;
|
---|
160 | xnt[6] = mesu[ic][i].Flux;
|
---|
161 | xnt[7] = mesu[ic][i].FluxB;
|
---|
162 | xnt[8] = mesu[ic][i].Xi2;
|
---|
163 | xnt[9] = mesu[ic][i].ErrFlux;
|
---|
164 | xnt[10] = mesu[ic][i].ErrFluxB;
|
---|
165 | xnt[11] = mesu[ic][i].Fond;
|
---|
166 | xnt[12] = mesu[ic][i].S9Pix;
|
---|
167 | xnt[13] = mesu[ic][i].PixMax;
|
---|
168 | xnt[14] = staru[ic].FluxRef;
|
---|
169 | nt.Fill(xnt);
|
---|
170 | }
|
---|
171 | }
|
---|
172 | if(nt.NEntry()>0) {
|
---|
173 | char str[64]; sprintf(str,"e%d",iet[0]);
|
---|
174 | pos_->PutObject(nt,str);
|
---|
175 | }
|
---|
176 |
|
---|
177 | }
|
---|
178 |
|
---|
179 | }
|
---|
180 |
|
---|
181 | /*================================================================*/
|
---|
182 | void UENDCCD(void)
|
---|
183 | {
|
---|
184 | printf("UENDCCD: Fin de l'etude du CCD %d %d\n",numccd,ccdnum);
|
---|
185 | if(ntsti_[0]->NEntry()>0) pos_->PutObject(*ntsti_[0],"sti0");
|
---|
186 | if(ntsti_[1]->NEntry()>0) pos_->PutObject(*ntsti_[1],"sti1");
|
---|
187 | if(ntsti_[0]!=NULL) delete ntsti_[0]; ntsti_[0] = NULL;
|
---|
188 | if(ntsti_[1]!=NULL) delete ntsti_[1]; ntsti_[1] = NULL;
|
---|
189 | }
|
---|
190 |
|
---|
191 | /*================================================================*/
|
---|
192 | void UEND(void)
|
---|
193 | {
|
---|
194 | printf("UEND: Fin du job\n");
|
---|
195 | if(pos_!=NULL) delete pos_; pos_ = NULL;
|
---|
196 | }
|
---|
197 |
|
---|
198 |
|
---|
199 | /*
|
---|
200 |
|
---|
201 | openppf nbsread_ppf.ppf
|
---|
202 |
|
---|
203 | zone 1 2
|
---|
204 | n/plot date0.val%n val>0
|
---|
205 | n/plot date1.val%n val>0
|
---|
206 |
|
---|
207 | #### timeinfo
|
---|
208 | zone 1 2
|
---|
209 |
|
---|
210 | n/plot tinf0.fd%ts ! ! "circlemarker3 red"
|
---|
211 | n/plot tinf1.fd%ts ! ! "circlemarker3 blue"
|
---|
212 |
|
---|
213 | n/plot tinf0.sx%ts ! ! "circlemarker3 red"
|
---|
214 | n/plot tinf1.sx%ts ! ! "circlemarker3 blue"
|
---|
215 |
|
---|
216 | n/plot tinf0.sy%ts ! ! "circlemarker3 red"
|
---|
217 | n/plot tinf1.sy%ts ! ! "circlemarker3 blue"
|
---|
218 |
|
---|
219 | n/plot tinf0.rho%ts ! ! "circlemarker3 red"
|
---|
220 | n/plot tinf1.rho%ts ! ! "circlemarker3 blue"
|
---|
221 |
|
---|
222 | n/plot tinf0.dx%ts ! ! "circlemarker3 red"
|
---|
223 | n/plot tinf1.dx%ts ! ! "circlemarker3 blue"
|
---|
224 |
|
---|
225 | n/plot tinf0.dy%ts ! ! "circlemarker3 red"
|
---|
226 | n/plot tinf1.dy%ts ! ! "circlemarker3 blue"
|
---|
227 |
|
---|
228 | n/plot tinf0.absor%ts ! ! "circlemarker3 red"
|
---|
229 | n/plot tinf1.absor%ts ! ! "circlemarker3 blue"
|
---|
230 |
|
---|
231 | n/plot tinf0.amass%ts ! ! "circlemarker3 red"
|
---|
232 | n/plot tinf1.amass%ts ! ! "circlemarker3 blue"
|
---|
233 |
|
---|
234 | n/plot tinf0.fgcal%ts ! ! "circlemarker3 red"
|
---|
235 | n/plot tinf1.fgcal%ts ! ! "circlemarker3 blue"
|
---|
236 |
|
---|
237 | #### starinfo
|
---|
238 | zone
|
---|
239 |
|
---|
240 | n/plot sti0.yp%xp ! ! "nsta red crossmarker5"
|
---|
241 | n/plot sti1.yp%xp ! ! "nsta blue circlemarker5 same"
|
---|
242 |
|
---|
243 | n/plot sti0.log10(fref) fref>0 ! ! "red"
|
---|
244 | n/plot sti1.log10(fref) fref>0 ! ! "blue keepbin same"
|
---|
245 |
|
---|
246 | n/plot sti0.dm xref>0 ! ! "red"
|
---|
247 | n/plot sti1.dm xref>0 ! ! "blue keepbin same"
|
---|
248 |
|
---|
249 | n/plot sti0.dm2 xref>0 ! ! "red"
|
---|
250 | n/plot sti1.dm2 xref>0 ! ! "blue keepbin same"
|
---|
251 |
|
---|
252 | n/plot sti0.nbvois ! ! ! "red"
|
---|
253 | n/plot sti1.nbvois ! ! ! "blue keepbin same"
|
---|
254 |
|
---|
255 | n/plot sti0.dm2%dm xref>0 ! "nsta red crossmarker5"
|
---|
256 | n/plot sti1.dm2%dm xref>0 ! "nsta blue circlemarker5"
|
---|
257 |
|
---|
258 | #### light curve
|
---|
259 | set et 2005
|
---|
260 |
|
---|
261 | zone 1 2
|
---|
262 | n/plot e$et.f%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
263 | n/plot e$et.f%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
264 |
|
---|
265 | n/plot e$et.ef%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
266 | n/plot e$et.ef%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
267 |
|
---|
268 | n/plot e$et.fb%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
269 | n/plot e$et.fb%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
270 |
|
---|
271 | n/plot e$et.efb%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
272 | n/plot e$et.efb%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
273 |
|
---|
274 | n/plot e$et.(f-fb)/f%ts ic==0&&f>0 ! "nsta connectpoints red circlemarker3"
|
---|
275 | n/plot e$et.(f-fb)/f%ts ic==1&&f>0 ! "nsta connectpoints blue circlemarker3"
|
---|
276 |
|
---|
277 | n/plot e$et.fd%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
278 | n/plot e$et.fd%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
279 |
|
---|
280 | n/plot e$et.fdl%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
281 | n/plot e$et.fdl%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
282 |
|
---|
283 | n/plot e$et.s9p%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
284 | n/plot e$et.s9p%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
285 |
|
---|
286 | n/plot e$et.pxm%ts ic==0 ! "nsta connectpoints red circlemarker3"
|
---|
287 | n/plot e$et.pxm%ts ic==1 ! "nsta connectpoints blue circlemarker3"
|
---|
288 |
|
---|
289 | # Distributions
|
---|
290 | zone
|
---|
291 |
|
---|
292 | n/plot e$et.fb ic==0
|
---|
293 | n/plot e$et.f ic==0 ! ! "keepbin same red"
|
---|
294 | n/plot e$et.fb ic==1
|
---|
295 | n/plot e$et.f ic==1 ! ! "keepbin same blue"
|
---|
296 |
|
---|
297 | n/plot e$et.fdl ic==0 ! ! "red"
|
---|
298 | n/plot e$et.fdl ic==1 ! ! "keepbin same blue"
|
---|
299 |
|
---|
300 | n/plot e$et.s9p ic==0 ! ! "red"
|
---|
301 | n/plot e$et.s9p ic==1 ! ! "keepbin same blue"
|
---|
302 |
|
---|
303 | n/plot e$et.pxm ic==0 ! ! "red"
|
---|
304 | n/plot e$et.pxm ic==1 ! ! "keepbin same blue"
|
---|
305 |
|
---|
306 | # Correlations
|
---|
307 | zone
|
---|
308 |
|
---|
309 | n/plot e$et.f%fb ic==0 ! "red circlemarker3"
|
---|
310 | func x 0 1000 10000 "same"
|
---|
311 | n/plot e$et.f%fb ic==1 ! "blue circlemarker3"
|
---|
312 | func x 0 1000 10000 "same"
|
---|
313 |
|
---|
314 | n/plot e$et.s9p%fb ic==0 ! "red circlemarker3"
|
---|
315 | func x 0 1000 10000 "same"
|
---|
316 | n/plot e$et.s9p%fb ic==1 ! "blue circlemarker3"
|
---|
317 | func x 0 1000 10000 "same"
|
---|
318 |
|
---|
319 | n/plot e$et.pxm%fb ic==0 ! "red circlemarker3"
|
---|
320 | func x 0 1000 10000 "same"
|
---|
321 | n/plot e$et.pxm%fb ic==1 ! "blue circlemarker3"
|
---|
322 | func x 0 1000 10000 "same"
|
---|
323 | func x 0 1000 10000 "same"
|
---|
324 |
|
---|
325 | */
|
---|