view Allan.h @ 10:239f2fe67cc0

Fix slope cancelling following Hg cavity What we really want to do is to keep constant the frequency of the beat note between comb and 1062 nm light from the Hg cavity, acting on the repetition rate by stearing the frequency of the 1542 nm light from the local cavity to which we lock the comb.
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Wed, 04 Jul 2012 14:39:50 +0200
parents d9aae7d7f2c6
children bd28161e5ac2
line wrap: on
line source

#include "YLCStuff.h"

#define ALLAN_MAXPOINTSNUMBER 13			// can compute Allan dev for tau from 1s to 2^13 s =8192 s ~ 2h15' < 10000 s


// Allan_Data : the data of crypto class Allan

typedef struct {
	PanelHandle AllanPanel ;					// le handle sur le graphe
	void (*OnClosePanel)(int);					// pointer on a function to execute when the panel is closed (argument is the panel Handle)	
	double AllanVar[ALLAN_MAXPOINTSNUMBER] ;	// the values of variances for each tau = 2^n.tau_0 (with n from 0 to ALLAN_MAXPOINTSNUMBER)
	double FirstMean[ALLAN_MAXPOINTSNUMBER] ;   // the means of the first block of 2^n data for which averaging was completed
	double LastMean[ALLAN_MAXPOINTSNUMBER] ;    // the means of the last block of 2^n data for which averaging was completed
	int BlocksNumber[ALLAN_MAXPOINTSNUMBER] ;	// the number of blocks of 2^n data (averaged) used for computing AVAR(2^ntau)       
	double CurrentAverage[ALLAN_MAXPOINTSNUMBER] ;  // the sum of the last p data points retrieved (with p<2^2n). used for averaging as soon as p=2^n
	int NbCurrentAverage[ALLAN_MAXPOINTSNUMBER] ;	// number of data point being summed in CurrentAverage (from 0 up to 2^n)
	double Drift, Mean ; // the drift rate of the data (in Hz/s), and the mean value (in Hz) : only usefull for dedrifting...
	} Allan_Data ;


// The functions of crypto class Allan

int Allan_InitPanel(Allan_Data * Instance, char * title, double Normalizer, void (*OnCloseFunc)(int)) ;
int Allan_ClosePanel(Allan_Data * Instance) ;
int Allan_AddFrequency(Allan_Data * Instance, double Freq) ;

int Allan_Reset(Allan_Data * Instance) ;
int Allan_AddFrequency(Allan_Data * Instance, double Freq);
int Allan_Display(Allan_Data * Instance, int ColorPt, int ColorErrorBar);
int Allan_DisplayErrorBars(Allan_Data * Instance, int color);