read out from a bit pattern from the EDDA data acquisition and we assume that we have taken the correct sign ...... bit definitions for PLX interrupt ...

0 downloads 0 Views 2MB Size

In the period from 2003 till date, the TRIC experiment was alloted a beam time once in September 2004 and another in October 2006. The run in 2004 lasted for 2 weeks, a major part of which was devoted for machine development. It was in this beam time schedule that the new data acquisition was set into operation. This run was a true test of the feasibility of the TRIC experiment. A vector polarized proton beam was scattered by a vector polarized proton target to measure and compare the spin correlation coefficient Ay,y with existing results. The analysis and reduction of the data and the results are presented in this chapter. The main features of the beam time in 2003 is presented in table 5.1. Total Beam-time alloted Total Time for Ay,y Data Beam Momentum Target Polarization Beam Polarization Target Spin Flip Period (Run section) Target Spin Flip Sequence Beam Current Beam Spin Flip Period (Run) Beam Spin Flip Sequence

2 weeks 1 day 1.6 GeV/c 90% 90% 20 min y,-y,x ≈ 0.5mA 1 hour y,-y

Table 5.1: Features of the Beam Time in 2004. During the machine development week, COSY was optimized for the TRIC experiment with respect to beam intensity and cooling. The beam momentum was 1.6 GeV/c. During the actual data taking, the polarized beam was injected, accelerated to the desired momentum and cycled at “flat-top” with this momentum for one hour. At “flat-top” the atomic target was switched on. After one hour of data taking, the target was switched off and the cycling beam in COSY decelerated and dumped finally. During this period, an offset measurement and calibrations with respect to polarizations are made. For the sake of convenience, the following nomenclature and notation will be used in the rest of this chapter. An one hour run will be called as a run and the 20 minute sections will be called a run section. The polarization setup will be defined using two signs. The first sign represents the polarization of the beam and the second sign represents the polarization of the target. Both the signs represent the polarization in the y direction. For the case of the target polarization in the x direction, the second sign is replaced by x. The notations are explained in table 5.2. The ++ and −− setups are called the parallel configurations and the +−, −+ setups are called the anti parallel configurations. The +x and −x setups are called the unpolarized configuration since they generate the unpolarized (spin independent) cross section.

29

CHAPTER 5. DATA ANALYSIS Polarization of Beam +y -y +y -y +y -y

Polarization of Target +y -y -y +y +x +x

Notation of Polarization Setup ++ −− +− −+ +x −x

Configuration Parallel Parallel Anti-Parallel Anti-Parallel Unpolarized Unpolarized

Table 5.2: The notation and the nomenclature used to define the polarization setups.

The beam polarization was flipped between every cycle from y to -y and vice-versa in order to reduce systematic errors. Only the relative beam polarization was available for read out from a bit pattern from the EDDA data acquisition and we assume that we have taken the correct sign of the polarization in our calculations. The target polarization was changed in a specific sequence every 20 minutes. The target polarization sequence started with +y and then flipped to -y and finally to x. The polarization of the target was about 90%. Depending on the beam polarization, the following polarization setups ++, +−, +x or −+, −−, −x are generated. In the absence of any systematic errors, the lifetime for ++ (+−) should be equal to −− (−+) and the lifetime for the +x and -x configuration should be the mean of the lifetimes of the parallel and the anti-parallel configurations. Since the temporal positions of parallel and anti-parallel configurations in an 1 hour run are swapped due to the flipping of the beam spin, this constitutes an inherent test for the presence of systematic errors. Thus, with the given polarization setups, there are two conditions that inherently test the presence of systematic errors, one with the comparison within parallel/anti-parallel lifetimes another with the comparison of the mean of the parallel and anti-parallel lifetimes with that of the +x/-x lifetime. The figure of merit is a quantity that depends on the relative difference of the slope of the beam current between the two parallel and the two anti parallel configurations. Since the accuracy of the slope is inversely proportional to k 1.5 (refer equation C.1), k being the number of data points, it is advantageous to have runs with measuring periods as long as possible. This is however not possible because the beam decay is no more linear for long measurement periods, which can explain the low lifetimes of the last 20 minute section of each run, where the target polarization is set in the x direction. Therefore, an optimal period of 20 minutes was set for each polarization setup and a run was limited to 1 hour. Since the slope depends on the initial beam current, a more relevant quantity is the lifetime of the beam. If the exponential decay of the circulating beam is linearized, then the inverse of the lifetime is given by the slope normalized to the initial current. The lifetime is calculated by fitting the data to a straight line (y=I0 +bt), and taking the ratio of the intercept I0 to the slope b. An equation for Ay,y in terms of the beam lifetime can be derived using the approach followed in chapter 3. The spin correlation coefficient is given as: 1 1 1 Ay,y = [ + − −] (5.1) T 2σρ dνpy py τ τ with pTy as the target polarization and τ +/− is the lifetime for the parallel/anti parallel configuration. The other terms have been described earlier. Thus, from the lifetime difference between the parallel configuration and the anti parallel configuration, Ay,y can be calculated.

30

The output of the BCT has a non-zero offset and the first step in the data analysis was to subtract this offset from the data. From these data, the individual lifetimes and their errors were calculated. The individual errors compared well with the value expected from the precision of the BCT as derived from the manual. Since the accuracy of the mean increases with the square root of the number of measurements, the mean of the lifetimes and the standard deviation of the mean was calculated from the distribution of the lifetimes. From statistical considerations, the standard deviation from the distribution of a set of measurements should compare with the standard deviation of a single measurement. A deviation from this prediction is a possible indication of systematic or non-statistical additional noise components in the data. This deviation was seen in the analysis of the lifetime. The standard deviation of the distribution of the lifetimes was a factor 5 to 10 bigger than the error from a single measurement (cf. Figure 5.1). The intensity of the beam current was found to vary from run to run which has to be taken into consideration in the calculation of the mean and the standard deviation of the lifetimes. It is therefore appropriate to weight the lifetime value by their individual variances. The best estimate of the lifetime is then given by the weighted mean and its weighted error of the lifetimes. Now, the weighted mean and its error became consistent with the expectations from a single lifetime measurement. However, the discrepancy in the standard deviation of the distribution in the unweighted calculations still gave hints on possible additional noise sources. The first observation was that the lifetimes were fluctuating from run to run, far more than the expectations from the standard deviation of a single measurement, which resulted in the widening of the distribution. A FFT of the data revealed substantial 1/f noise components in the data, which caused the slow fluctuations in the data. The slow fluctuations tend to alter the slope which in turn affects the estimate of the lifetime. The following factors were checked and analyzed with respect to their contributions to the 1/f noise. • Fluctuations in the clock signal from the atomic clock. • A current flowing through isolated part of vacuum tube of the ring that passes through the BCT. • Non-Linearities in the BCT or, • The Barkhausen noise due to the domain wall motions in the ferrite core of the BCT. A method to dynamically correct these effects was used, which still did not cure the 1/f noise. Therefore, a new filter based on the Wiener-Khinchin method combined with a global weighted fitting technique was developed to suppress the 1/f noise and simultaneously maintaining the slope. The detailed report of the data analysis is given in the following sections.

5.0.3 Beam Lifetime Analysis The spin correlation coefficient Ay,y is proportional to the difference in the inverse lifetime of the beam for the two opposite polarization settings. The lifetimes and the error in the lifetime were calculated for each run and for the different polarization settings of the beam and target viz.,(++, −−, +−, −+, +x, −x). The analysis showed that the error of the individual lifetime values compared well with the values expected from the precision of the BCT. The statistics were combined to improve the accuracy of the lifetime estimate. Due to this combination, the accuracy

31

CHAPTER 5. DATA ANALYSIS √ should be improved by a factor N , where N is the number of measurements. But, from the analysis it was seen that the accuracy of the lifetime from the combined statistics (i.e, from the distribution of the lifetimes) was worse by a factor 5 to 10 than that expected from a single lifetime measurement. This behavior is seen in all the polarization setups. The discrepancy for the (++) setup is shown in figure 5.1. In fact, the problem of this type of fluctuations in lifetime has been reported in 2004 by a group[37]. The precision level of the measurements of that group was however substantially less than the TRIC measurements.

Figure 5.1: The standard deviation of the distribution of the lifetimes is a factor 5 to 10 worse than the error of the single lifetime measurement. The above plot is for the lifetime values for (++) polarization setup. This behavior is seen in the other polarization setups also. The intensity of the beam current I0 is related to the error in the lifetime στ as: σb b 2 σb =τ I0

στ = τ

(5.2)

where σb is the error in the slope. Due to this dependency of the error on the intensity of the beam, the lifetime measured at a higher intensity has a smaller error. From the analysis of the data it was seen that the intensity values varied between runs (by upto a factor 2) which alters the accuracy of the lifetimes. Therefore, the best estimate of the mean lifetime is given by the weighted mean [38]. The weighted mean lifetime is given as: τmean

P (τi /στ2i ) = P (1/στ2i )

(5.3)

where each lifetime value τi is weighted by its own variance στ2i . The error in the weighted mean is then given by: 1 στmean = P (1/στ2i )

32

(5.4)

The error of the weighted mean of the√lifetime compared well with the statistical predictions (i.e, an improvement by a factor N , N being the number of measurements) from a single lifetime measurement. The values of the unweighted lifetimes is shown in figure 5.2 and the values for the corresponding weighted values are given in table 5.3.

Figure 5.2: The distribution of the unweighted lifetimes of all the polarization setups.

Polarization of Beam/Target -y/+y +y/-y -y/-y +y/+y -y/+x +y/+x

Unweighted Mean of Lifetime [h] 39.92 ± 2.38 39.11 ± 0.86 43.70 ± 1.81 43.01 ± 2.69 36.07 ± 2.69 36.38 ± 0.92

Weighted Mean of Lifetime [h] 37.76 ± 0.18 38.70 ± 0.21 39.94 ± 0.17 37.06 ± 0.19 35.82 ± 0.14 32.92 ± 0.13

Table 5.3: The mean lifetime values for all the polarization setups.

5.0.4 Comparison of Lifetimes of Parallel and Anti-Parallel Polarization Setups The weighted lifetimes are found to be statistically consistent. However, the inherent test of the reliability of the values by comparing the lifetimes of parallel and anti parallel polarization setups (refer Table 5.3) still displays substantial inconsistencies.

33

CHAPTER 5. DATA ANALYSIS The total cross section σtot for scattering a spin target is given as [39]:

1 2

polarized beam by a spin

σtot = σ + σ1tot (PB · PT ) + σ2tot (PB · k)(PT · k)

1 2

polarized

(5.5)

where, PB and PT are beam and target polarizations respectively. k is the unit vector in the direction of the beam. σ is the spin independent total cross section. Both the quantities are positive definite. σ1tot and σ2tot are the spin dependent contributions. For the various polarization setup defined before, the above equation can be written as: σ1tot σtot (++) = σ + P+ P+ B T + − σtot (+−) = σ − PB PT σ1tot σ1tot σtot (−−) = σ + P− P− B T − + σtot (−+) = σ − P P σ1tot (5.6) B

T

and thus, σtot (++) = σtot (−−) and,

(5.7)

σtot (+−) = σtot (−+) Comparing equation 5.6 with equation 3.4, σ1tot is related to the figure of merit Ay,y as: σ1tot = σAy,y

(5.8)

From the above equation, if |PB | = |PT | the lifetimes for the parallel configurations (++, −−) should be equal and the lifetimes for the anti-parallel (+−, −+) configurations should be equal. The lifetime for the target polarization along the x direction, should be equal to the unpolarized cross section and thus should be in between the values of the parallel lifetime and the anti parallel lifetime. Thus the lifetime for the target polarization along the x direction provides a measure of consistency of the other lifetimes. The values of the lifetimes presented in table 5.3, for the unweighted mean suggest that the lifetimes in the respective parallel/anti parallel configurations are almost equal i.e, (++ ≈ −−) and (+− ≈ −+). The significance of the difference between the lifetimes in the same configuration (i.e, parallel/anti parallel) can be tested by a t-test. For a significance level α = 0.05, the values from a t-test suggested that the difference is really significant in the case of the weighted mean. The difference in the case of the unweighted lifetimes was not significant. This is a result of the wider distribution in the case of the unweighted lifetimes. The width of the distribution of the unweighted lifetimes provides information about the variation of the lifetime from run to run. This variation was also seen in parasitic measurements during the COSY 11 and ANKE experiments. The reason for this variation can be attributed to fluctuating slope values. The correlation studies of temperature and pressure in the ring showed that the variations were not related to the fluctuations in these dynamic parameters (cf. Fig 5.3 and 5.4). Another subject of concern is that the lifetimes (weighted and unweighted) for the target polarization in the x direction are much lower than the lifetimes of the other polarization setups. This is in contrary to the expectations from equation 5.5. It can be explained by the non-linear behavior of the beam in the last 20 minutes of the run. This effect was not seen clearly in a single run but could only be verified in the curvature seen in the sum spectrum where all the available datasets are summed up which is shown in figure 5.5. The curvature increases the slope thus decreasing the lifetime.

34

Figure 5.3: Correlation of temperature with lifetime.

35

36

CHAPTER 5. DATA ANALYSIS

Figure 5.4: Correlation of pressure with lifetime.

Figure 5.5: The sum spectrum of all the available runs which shows a slight curvature in the final part of the run. The red line is to guide the eye along a straight line that passes through the first 40 minutes. The reason for this curvature can be attributed to the emittance growth of the beam, which was suggested by previous studies on internal targets [40][41]. The emittance growth function as a function of the turn number is plotted in figure 5.6

37

CHAPTER 5. DATA ANALYSIS

Figure 5.6: The Survival probability (full curve) and the emittance growth function (dashed curve). The dimensionless variable η increases linearly with turn number. The following sections discuss the analysis made to understand the possible causes of the variation in the lifetime values from run to run.

5.0.5 The Sliding Fit Analysis In order to understand the lifetime fluctuations, the behavior of the lifetimes within sections of a single run had to be analysed. A sliding fit was used for this analysis. A window of a specific length moves over the data and a linear fit is made on that specific part. The lifetime is calculated for that specific region of the data. The results showed huge fluctuations in the lifetime (cf. Fig 5.7). Lifetime values fluctuated between negative values and values greater than 1000 hours. Ideally, one would expect a constant line for each polarization setup. This was a vital clue to possible fluctuations found in the data which strongly influence the slope estimation. Slow fluctuations were in fact found in the data as shown in figure 5.8. In order to understand the influence of the beam and target on the slow fluctuations, the FFT of the data with beam and target on was compared with the data taken during the time when the beam and target were switched off. This is the offset of the BCT. The noise content in the offset data was much lower than the noise in the data with beam and target (cf. Fig 5.9). The results from the sliding fit show that due to the presence of the slow fluctuations in the data, the slope values in each window differ substantially from each other. Also, the presence of substantially high and improbable lifetimes indicate that the slow fluctuations can lead to inaccurate estimates of the lifetime. The FFT of the data shows a small increase toward low frequencies which indicates that these slow fluctuations result from 1/f noise present in the data. The RF synchronized atomic clock provides the timing signal for the data acquisition

38

Figure 5.7: Lifetime fluctuations seen from the sliding fit. The red line is an idealization of the expected behavior. A window length of 250s was used for the plot above.

Figure 5.8: The slow fluctuations found in a typical TRIC run. The red line is the smoothed data to guide the eye along the slow fluctuations. The blue line is the linear fit to the data.

39

CHAPTER 5. DATA ANALYSIS

Figure 5.9: The noise spectrum of the data with beam and offset. (cf. Figure 4.1). An instability of the clock would cause improper synchronization of the read-out of the scalers by the computer which could result in fluctuations in the data. This was however ruled out in systematic studies by replacing the clock by a stable (≈ 10−8 ) oscillator with a preset frequency. The vacuum tube of COSY runs electrically isolated through the BCT. A voltage drop across the tube would cause a current through the BCT and thus could influence the BCT readings of the cycling COSY beam. To verify this, a differential amplifier was connected across the beam pipe and the output signal was analyzed. The results showed no relevant voltage drops.

5.0.6 Non-Linearities in the BCT Slow fluctuation can also be caused by non-linearities in the gain of the BCT. To study the non-linearities in the BCT, a modulated current of 1 mA with a precision of ≈ 10−6 was passed through the BCT via the calibration loop (cf. Figure 4.2). The direction of the current flow was flipped periodically. Once the beam is on, the output signal from the BCT would then read I ± δI depending on the direction of the modulated current (cf. Figure 5.10). I is the beam current and δI is the increment in current. The difference between two neighboring data points is thus proportional to 2δI. A change in gain of the BCT would cause this difference to change proportionately and thus would reveal the nonlinearities in the BCT. The circuit diagram of the modulator can be found in Appendix B. The modulator is synchronized with the TRIC timer module to have a systematic readout of the modulated current. The modulator was used in a parasitic measurement during one of the experiments at COSY. The results showed an intensity related change of the BCT gain. The results are plotted in figures 5.10 and 5.11. The effect seen is in the order of 10−4 in amplitude. Using all the available data, an universal gain curve was obtained which was used to correct the gain and thus the data. The universal gain curve is shown in figure 5.12 and the corrected gain curve is shown in figure 5.13. However, the correction did not significantly improve the influence of slow fluctuations.

40

Figure 5.10: The red (lower) and green (upper) lines are due to the addition of a modulated current (±δI) to the beam current. The black (middle) curve is the average of the upper and the lower curves.

Figure 5.11: The difference between two neighboring data points. Non-linearities are revealed in this plot.

41

CHAPTER 5. DATA ANALYSIS

Figure 5.12: The universal gain curve constructed from all available data.

Figure 5.13: The corrected gain curve of figure 5.11 using the universal gain curve.

5.1 Constant Current Analysis To further understand the BCT noise behavior, a constant current (1 mA) was passed through the calibration loop (cf. Figure 4.2) in the absence of the COSY beam. The

42

Figure 5.14: The distribution of the slopes of the individual sections. data was acquired continuously for 16 hours and was analyzed. The data was split into equal intervals and the slope and its error calculated for each of these intervals. From the distribution of the slopes, an estimate of error of the individual slopes can be calculated. The estimated error of the slopes from the distribution is compared with that of the mean of the individual errors. The error from the distribution is a factor 4 greater than the individual errors, an effect which was also seen in the analysis of the lifetimes. The distribution of the slopes and their errors are plotted in figures 5.14 and 5.15. The fact that the distribution width is greater than the individual errors indicates that the slopes vary from interval to interval. A FFT of the entire data was made to understand the underlying frequency components. The FFT showed that the noise in the data is not white but rather has an 1/f behavior. For comparison, a model straight line to which a suitable random number is added to each data point, so that the noise is comparable to the 1mA data was also analyzed. The FFT of this model data was a flat spectrum, the signature of white noise (cf. Figures 5.16 and 5.17). Thus, 1/f noise in the data is the cause of the unexpected discrepancy found in the analysis of the slopes in the constant current analysis. Therefore, 1/f noise in an inherent problem of the measurement method. 1/f noise in physical systems arises due to a property called as the Self Organized Criticality (SOC) [42]. The Barkhausen effect which is due to the dynamics of ferromagnetic domain wall motion is also an effect of (SOC) [43][44]. The magnetic characteristics of a ferromagnet is determined by its magnetic domain distribution and the response of these domains to applied magnetic fields. The domain wall motion in a ferromagnet in response to a change in the externally applied magnetic fields happens in an irregular manner. As a result of this irregular motion, the magnetization changes in bursts, leading to the phenomenon of Barkhausen noise[45]. The stochastic nature of this motion is due to internal stresses in the material, surface defects or impurities in the material. The spectrum analysis of 1/f noise is seen to have an 1/f dependence[43]. The 1/f noise seen in our data can be due to the domain wall motion in the ferrite core of the BCT. The only cure to this problem is to use a non-ferrite core in the magnetic sensor of

43

CHAPTER 5. DATA ANALYSIS

Figure 5.15: The mean individual error of the slope of each section. the BCT [46]. The other alternative is to treat the data in an appropriate manner so as to suppress the influence of the 1/f noise in the data. This is discussed in the following sections.

5.2 FFT Correction Method In view of the problems due to the influence of the 1/f noise on the slope, a correction method is needed to suppress the 1/f. Since this noise spectrum is defined in the frequency domain, it is convenient if the data are also represented in the frequency domain. If the data in the time domain is represented by the straight line y(t)=a+bt, where a is the intercept and b is the slope, then the real and the imaginary parts of the fourier transform (fn ) of y(t) is given by (Refer Appendix F): <(f0 ) = N a +

N (N − 1) b only for n=0 2

N b for n > 0 2 N =(fn ) = − b tan(θn ) for n > 0 2

<(fn ) = −

(5.9)

where, N is the total number of data points in the time domain and n=1,2,3.....N/2 is the harmonic number and θn is the phase part. From these relationships, one can get information of the slope b and the intercept a in the frequency domain. If one uses the above equations as model functions, the intercept value can be derived from the real part and the slope from the imaginary part. These values correspond exactly to the results obtained from a linear fit in the time domain. There are many methods and filters to suppress noise in the frequency domain. The most relevant in our context is the Optimal (Wiener) filtering method. In the Optimal Filtering method, the noise in the high frequency regime where the signal is zero is extrapolated to

44

Figure 5.16: The FFT of the 1 mA data. The red line is a fit to the 1/f model function y = P 1/f P 2 + P 3, where f is the frequency.

Figure 5.17: The FFT of a straight line with added white noise at a noise level at about 0.05 Hz of Figure 5.16. all regions [47]. Using this information of the noise the useful signal can be filtered out from the corrupted signal. The optimal filter is given by: Φ(f ) =

|S(f )|2 |S(f )|2 + |N (f )|2

(5.10)

45

CHAPTER 5. DATA ANALYSIS

Figure 5.18: The FFT spectrum of the data shows a signal peak added to a noise tail. The tail is extrapolated back into the signal region as a ”noise model”. Subtracting gives the ”signal model”.

with S(f) as the true signal and N(f) as the noise in the signal. This is plotted in figure 5.18. The idea of optimal filtering can also be extended to the problem of 1/f noise. As seen from equation 5.9, the slope is found in all the harmonics. But in the case of the optimal filtering method the signal is zero in the high frequency part. Therefore, this method cannot be applied directly to the TRIC data and a new method had to be designed taking this into consideration. The important difference in using the frequency domain fitting is that one can appropriately weight the frequencies so that the effect of the low frequencies can be minimized while simultaneously keeping the slope by construction. Since only the slope of a straight line is obtained from the imaginary part, a direct way to obtain the lifetime value from the slope is to linearize the exponential behavior of the beam decay as follows. From equation (3.3), In = I0 exp(

−t ) τ

Taking the logarithm of the above equation, we get,

ln(In ) = ln(I0 ) −

t τ

(5.11)

This is a straight line equation where ln(I0 ) corresponds to the intercept and − τ1 to the slope. In this form, one can directly get the lifetime of the beam from the imaginary part of the FFT 1 1

0

The error in each data point in the linearised data σi is related to the error in the original data σi as σi . Due to the very small slope in the TRIC data, this effect can be neglected. y

46

5.3 The Weighted FFT Fit As discussed above, the advantage of using the FFT fit, in the presence of 1/f noise, is the possibility to weight the individual frequency components appropriately. If the uncertainties in the data points are not all equal (σn 6= σ), we must include the individual standard deviations σn as weighting factors. The usual prescription for introducing weighting is to multiply each term in the sum in the χ2 by 1/σn2 as shown in equation (F.11) [47]. The values of the σn s are not available a priori but have to be deduced in some way. Since, from the previous analysis, we know that the noise has a 1/f behavior, a possible method of suppressing the dominating lower frequencies is to weight the lower frequencies lower than the higher frequencies. Two methods were tried to deduce the weights for the individual frequencies. They are described below.

5.3.1 Weights from the Residuals In this method, the residuals of the imaginary part of the FFT is taken, the residual R is the difference between the imaginary part of the harmonics fn and the model function y(a1, a2, ...) i.e., Rn = =(fn ) − y(a1, a2, ...) (5.12) From the residuals, an idea of the standard deviation of the individual points can be derived. Since the residuals are distributed about zero, the absolute value of the residuals of all the available datasets are taken and the mean at each frequency is calculated. This gives an idea of the standard deviation at each harmonic. The mean values are then fit to an 1/f model function of the form np1 p2 +p3 where p1, p2 and p3 are the fit parameters. The index n, called the harmonic number is used for the sake of convenience in computations and calculations and is related to the frequency ν at the corresponding index by the relation: n (5.13) N ∆t where, N is the number of data points in the time domain and ∆t is the time interval between two datapoints in the time domain. These fit parameters are then used to generate the weights. If we have M datasets, then the mean of the residual at a particular harmonic n is: M 1 X σn ≈ |RnN | (5.14) M ν=

N =1

The plot of σn at each harmonic is shown in figure 5.19

5.3.2 Weights from the Standard Deviation of the Data Since we assume that the lifetime is a constant for a given polarization setup, the imaginary part of all the datasets should have the same value at each harmonic. But, the presence of noise would cause a distribution of these values. From the distribution, one can calculate the standard deviation at each harmonic. The parameters from a 1/f fit to these values are then used to generate the weights. If =(fnN ) is the imaginary part of the n’th harmonic in the N’th dataset then the standard deviation σn corresponding to that harmonic is given by the equation: M X 1 σn2 = (=(fnN ) − µn )2 (5.15) M −1 N =1

47

CHAPTER 5. DATA ANALYSIS

Figure 5.19: The weights from the of mean of residuals. The red line is a fit to the model function np1 p2 + p3, where n is the harmonic number which is related to the frequency as given in equation 5.13. where µn is the mean of the values =(fnN ) at a given harmonic n. M is the number of datasets. The above equation is the usual form for the estimate of the standard deviation of a given set of measurements. The 1/f fit values for all the configurations are presented in the tables 5.4 and 5.5. Using these weights, the lifetimes for each dataset were calculated for the various spin configurations of the beam and target. The mean lifetime obtained from the individual lifetime values are presented in table 5.6. The results for the two weighting methods (viz. Weights from Residuals and Weights from Standard Deviation) are comparable. However, the error of the lifetimes did not improve. Therefore, a more effective fitting method was needed to tackle the 1/f noise problem. In this context, the method of global fitting which has been reported to yield better results in measurements where some of the fit parameters are shared among datasets, was used along with the 1/f weighting method to improve the accuracy of the lifetime values.

Beam/Target - y/ + y + y/ - y - y/ - y + y/ + y

p1 2.40 · 10−4 ± 4 · 10−6 3.00 · 10−4 ± 6 · 10−6 2.60 · 10−4 ± 4 · 10−6 3.40 · 10−4 ± 9 · 10−6

p2 0.28 ± 0.01 0.34 ± 0.01 0.31 ± 0.01 0.50 ± 0.01

p3 3.0 · 10−5 ± 4 · 10−6 −2.0 · 10−5 ± 4 · 10−6 −2.0 · 10−5 ± 4 · 10−6 1.5 · 10−5 ± 1 · 10−6

Table 5.4: The 1/f fit parameters from the mean of residuals method. The fit function is of the form σn = np1 p2 + p3,where n is the harmonic which is related to the frequency as given in equation 5.13.

48

Beam/Target - y/ + y + y/ - y - y/ - y + y/ + y

p1 6.60 · ± 9 · 10−6 −4 4.40 · 10 ± 8 · 10−6 4.00 · 10−4 ± 6 · 10−6 5.60 · 10−4 ± 8 · 10−6 10−4

p2 0.70 ± 0.01 0.43 ± 0.01 0.45 ± 0.01 0.62 ± 0 · 01

p3 1.0 · ± 1 · 10−6 −5 −1.0 · 10 ± 2 · 10−6 −0.6 · 10−5 ± 2 · 10−6 1.0 · 10−5 ± 1 · 10−6 10−5

Table 5.5: The 1/f fit parameters from the standard deviation of the data.The fit function is of the form σn = np1 p2 + p3. Beam/Target - y/ + y + y/ - y - y/ - y + y/ + y

Lifetime [h] Mean of residuals as weights 45.49 ± 4.16 42.39 ± 1.91 43.23 ± 1.70 45.64 ± 3.89

using std.dev as weights 44.99 ± 3.15 42.64 ± 2.21 43.21 ± 1.81 47.07 ± 4.04

Table 5.6: The lifetime values obtained from the two weighting methods.

5.4 The Global Fitting Method The global fitting method can be used to improve the precision of the results, when a parameter is shared among datasets. This method has been used successfully and reported in determining the fluorescence lifetime from a exponential decay curve [48, 49]. The basic idea behind the global fitting method is that the most probable value is best determined when all the available data are considered in the same fit and when extra information is available a priori. In the case of the TRIC experiment, the lifetime can be used as the shared parameter. The lifetime is now calculated taking all the datasets into account and using as an a priori information that the lifetime is constant. As opposed to normal fitting techniques, the global fitting method minimizes the sum of the χ2 (Refer Appendix G). To incorporate the weighting for each dataset due to the varying intensity, the weighting methods previously described had to be modified. From the residual R of the imaginary part given in equation 5.12, the standard deviation of the fit σ can be calculated from the equation below: N 1 X 2 σ2 = Rn (5.16) N n=1

The residual is first binned using a constant window width. The standard deviation σbin is calculated for each bin. Assuming that the 1/f noise behavior to be the same in all the datasets. The ratio σbin /σ gives an idea of the fraction of the total standard deviation present in each of these bins. The ratio σbin /σ was fit to 1/f model function as described in the previous methods. Since σbin /σ is known from the fit parameters and σ is known from the last equation, the weight σn for each frequency can be calculated (σbin ∝ σn ). Since σ is different for different datasets (due to different intensities), σn will also differ accordingly, which takes care of the weighting due to the change in the intensity. The values of p1, p2 and p3 were approximately 5.6, 0.17 and -1.7 respectively for all the spin configurations (cf. Figure 5.20). The global fitting method was also applied to the data with the target polarization in the x direction. This however did not correct the low lifetime values. As shown previously, this effect could be due to the emittance growth inside the ring. This growth is a function

49

CHAPTER 5. DATA ANALYSIS

Figure 5.20: 1/f model fit to the ratio σbin /σ which takes the intensity fluctuations into account. The fit function is of the form σn = np1 p2 +p3, where n is the harmonic which is related to the frequency as given in equation 5.13. of the turn number. The decay curve can thus be corrected from this relationship but this is beyond the scope this work. A simple approximation is to assume that the decay to be parabolic. Each dataset was therefore fit to a parabola and the quadratic part was subtracted from the data. This data was then used in the global fitting method. The results are presented in table 5.7. The results show that the parabolic subtraction has worsened the consistency in the lifetime values for the target ±y polarization. The lifetimes for the data without parabolic subtraction are more consistent within the same polarization configuration. The target x lifetime after the parabolic subtraction seems to be closer to the mean of the parallel and anti parallel lifetimes without parabolic subtraction. This shows that the parabolic subtraction is valid only for the last 20 minutes run section. Using the values in table 5.7 for the data without parabolic subtraction, the value of Ay,y was calculated and found to be −0.09 ± 0.23 which corresponds to a value of −3.6 ± 9.2 mb of σ1tot . The existing results of σ1tot are plotted in figure 5.21. This value was calculated using the following equation: 1 1 + − − Ay,y = 1 τ 1 τ 1 (5.17) + τ − − 2 τ loss τ+ This is similar to equation 5.1 with the denominator now substituted by the sum of the inverse of the lifetimes. This avoids the necessity of knowing the uncertainty in the target thickness. However, the sum of the inverse of the measured lifetimes contains the loss 1 lifetime τ loss (representative of σloss in equation 3.4) which should be subtracted from

50

Beam/Target - y/ + y + y/ - y Mean - y/ - y + y/ + y Mean - y/ +x + y/ +x Mean

Without parabolic subtraction 41.29 ± 0.59 41.54 ± 0.64 41.41 ± 0.43 41.87 ± 0.59 41.38 ± 0.62 41.62 ± 0.42 37.98 ± 0.48 35.46 ± 0.44 36.72 ± 0.33

With parabolic subtraction 41.98 ± 0.54 45.13 ± 0.75 43.56 ± 0.46 44.56 ± 0.67 42.28 ± 0.65 43.42 ± 0.46 41.52 ± 0.54 40.12 ± 0.65 40.82 ± 0.42

Table 5.7: The Lifetime values in hours obtained using the global fitting method. these values to get the actual lifetime τ target [50]. That is, 1 τ target

=

1 1 − loss ± τ τ

(5.18)

The value of the loss lifetime was measured to be 42.67 ± 0.23h. The value of σ1tot is close to the existing results but though the error bar is large. It should be noted that this is due to the fact that the data were taken under poor experimental conditions with very little beam time and very low intensity. The aim of the experiment was to test the achievable precision in the novel method. Therefore, the main concern was on the error budget and the inner consistency tests in the lifetime results namely the comparison of the parallel and anti-parallel configurations and the comparison with the unpolarized configuration. The factors that contribute to the error bar in the value of σ1tot are: • Low Beam Intensity ≈ 0.5mA (an order of magnitude lower than the possiple space charge limit of COSY and that given in the proposal ≈ 50mA.) • Low target density ≈ 2 · 1011 atoms/cm2 (a factor of 600 lower than given in the proposal ≈ 1.2 · 1014 atoms/cm2 .) • Less Beam Time ≈ 1 day (an order of magnitude lower than given in the proposal-10 days). • The presence of 1/f noise in the data which broadens the width of the distribution of lifetimes, which contributes a factor 3. The error bar is a factor 3 worse than the expected value derived from equation 3.13. This is mainly caused by the large unexpected contribution of 1/f noise in the system.

51

CHAPTER 5. DATA ANALYSIS

Figure 5.21: The existing results of σ1tot = Ay,y σ = −3.6 ± 9.2 mb[39].

52

6 Summary and Outlook

In this work, the feasibility of a novel high precision (10−6 ) test of time reversal invariance has been tested in a measurement of the spin correlation coefficient Ay,y in proton-proton (p-p) scattering. This measurement also tested a novel method to measure total cross section utilizing the optical theorem. The total cross section is measured by the slope of the beam current in forward scattering, the precision of which is governed ultimately by the current measuring device viz. the BCT. The first step in this experiment was the construction of a hard real time data acquisition system under Windows-XP. The special features of the data acquisition are its Graphical User Interface, the Real-Time graphing interface and the remote control via internet. The determinism of the data acquisition was tested under extreme conditions and the operation of the data acquisition in several beam times was stable. Till date, no unconditional stops or crashes were encountered. The data acquisition system with its graphical user interface makes the control of the data acquisition simpler. The remote control feature helped in taking many parasitic measurements during other experiments like COSY11 and ANKE which gave insights into the general noise content and the behavior of the BCT. For the intended precision of this experiment, a minimum of 10 days beam time is needed. The spin correlation coefficient Ay,y is proportional to the difference in the inverse of the lifetime between the parallel and the anti parallel configurations of the polarization (Refer equation 5.1). Considering the noise contributions and the beam decay properties, an optimal measuring period of 1 hour was set for each run which was split into 3 run sections each of 20 minutes for each polarization setup. The lifetime values and their errors were calculated for each of the 20 minute run sections. The accuracy of the lifetime values of the 20 minute run sections compared well with the expected values from the precision of the BCT. But, the accuracy of the mean lifetime obtained from the distribution of all the relevant 20 minute run were not consistent with the predictions from a single lifetime measurement. The error σ from the width of the lifetime distribution was about a factor 5 to 10 worse than the mean error of the lifetime (σ). Due to fluctuating initial intensities of the beam, it is appropriate to consider the weighting of the lifetimes by their individual variances. The error of this weighted lifetime √ showed the improvement by a factor of N that was statistically expected. The reliability of the weighted lifetime values and the unweighted lifetime values was tested by a standard t-test at a significance level of α = 0.05. It was seen that the difference between weighted lifetime of the same configuration (parallel/anti parallel) was very significant. The second inherent check for systematic errors, namely the value of the unpolarized lifetime (+x and -x), was seen to be lower than the other two configurations. This was attributed to the non-linear behavior of the beam decay in the last 20 minutes. The sliding fit analysis revealed slow fluctuations in the data. The slow fluctuations play an important role in the distortion of the slope. The variation of the slope from one run to another can explain the discrepancy between the σ and σ found in the lifetime analysis. Various tests and analysis were made to further understand the cause of the

53

CHAPTER 6. SUMMARY AND OUTLOOK slow fluctuations. A constant current of 1 mA was passed through the calibration loop (cf. Figure 4.2) of the BCT and the analysis of this data also showed a similar discrepancy. The frequency spectrum of the data showed the presence of 1/f noise in the data. The following possible reasons for 1/f noise contributions were investigated: • Fluctuations in the clock signal from the atomic clock. • A current flowing through isolated part of the ring that passes through the BCT. • Non-Linearities in the BCT or, • The Barkhausen noise due to the domain wall motions in the ferrite core of the BCT. The first two contributions were ruled out after systematic studies and analysis of the data. In a study using a modulated current 1 mA with a precision of ≈ 10−6 , non-linearities in the gain of the BCT were revealed. This effect was corrected which still did not cure the effect of slow fluctuations in the noise. Thus the possible dominating cause of the slow fluctuations is the Barkhausen noise due to the domain wall motion in the ferrite core of the BCT. Thus these fluctuations are inherent in the measurements made by the BCT. To suppress the 1/f noise in the data a method similar to the Optimal Filtering (WienerKhinchin) method was developed [47]. The Optimal Filtering method as such cannot be used for the TRIC data as it assumes that the actual signal power in concentrated in the low frequency regime only. In the case of TRIC data, the information of the slope is spread equally amongst all the harmonics. The fourier transform of a straight line was derived analytically. Thus, any deviation due to noise, especially in the low frequency part, can be easily detected. The new method weights each frequency components appropriately in order to suppress the dominating low frequency components. This method did not yield satisfactory results in terms of accuracy and so an alternative method was used. The frequency weighting technique was incorporated into an Global Fitting algorithm to improve the accuracy of the results [48][49]. The Global Fitting algorithm uses all the available data along with a-priori information (constant lifetime, for e.g) to optimize the parameters. The results were convincing in terms of consistency in the lifetimes of the parallel and anti parallel configurations. Though the accuracy is worse by a factor 3 than that was expected from basic statistics, it is substantially better than the accuracy of the unweighted lifetimes (from linear fit values, refer table 5.3). From the values of the lifetimes from the Global Fitting technique, the value of Ay,y was calculated to be −0.09 ± 0.23, which corresponds to a value of −3.6 ± 9.2 mb of σ1tot . The value is close to the existing results. It should be noted however that the large error bar is due to the fact that the data were taken under poor experimental conditions with very little beam time and very low intensity. An improvement in the intensity and the target thickness by a factor 10 would already improve the error by a factor 100 (refer equation C.9). The aim of the experiment was to test the achievable precision in the novel method. In terms of accuracy, a single 20 minute run section compares well with an usual scattering experiment. The main concern was on the error estimates and the inner consistency tests in the lifetime results namely the comparison of the parallel and anti-parallel configurations and the comparison with the unpolarized configuration. It turned out that the error is worse by a factor 3 compared to the expectations from equation 3.13 which relates the accuracy to the experimental parameters and the basic noise from the BCT. The error in the figure of merit is due to the following reasons: • Low Beam Intensity ≈ 0.5mA (an order of magnitude lower than given in the proposal ≈ 50mA.)

54

• Low target density ≈ 2 · 1011 atoms/cm2 (a factor of 600 lower than given in the proposal ≈ 1.2 · 1014 atoms/cm2 .) • Less Beam Time ≈ 1 day (also an order of magnitude lower than given in the proposal (10 days)). • The presence of 1/f noise in the data which broadens the width of the distribution of lifetimes, which contributes a factor 3. The first three contributions can be improved in the days to come which would improve the accuracy of the lifetime to the expectations. These poor conditions can be improved and tackled by well known techniques in the domain of accelerator physics. For instance, the implementation of a target cell, which would improve the target density, needs an installation of a minimum β section to avoid scattering from the cell walls. These factors depend in principle on the monetary support granted to the experiment. However, the presence of 1/f noise is conceptually a subject of concern. The extent of 1/f noise was unforeseen at the time of the planning of the experiment. This problem was later reported by another group but at a much lower precision and with larger 1/f noise contributions [37]. Due to the usage of the best quality BCT available then for the TRIC experiment, the noise contributions were substantially lower than that was reported by [37], which is also proved by the accuracy of the lifetime in the individual runs from our data. Nevertheless, the effect of 1/f noise from the BCT in high precision experiments like TRIC demands for a new avenue in improving the quality of the BCT in terms of the suppression of the 1/f noise. The possible cures to the problem of 1/f noise and its effect on the accuracy are: • Usage of a non-ferrite magnetic core in the BCT. • Usage of a BCT with further improved precision (better ferrites). • Installing BCT’s at multiple places in the ring and thus improving statistics. The present frequency weighted global fitting algorithm yields convincing results with respect to consistency but with a compromise on the accuracy. With the improvements stated above, a better estimate of the figure of merit can be expected in the future. The values of the lifetimes correspond in all aspects to the expectations except for the enlarged error (by a factor 3) due to the 1/f noise contribution. Even this factor will vanish if the suggested improvements in the BCT design are realized.

55

56

A Polarization and Symmetry Properties Vector Polarization Any unequal population of magnetic substates (number of particles in a beam with spin up or spin down) represents a polarization. A proton beam with equal population of spin up and spin down states is unpolarized. A proton beam in only one substate (spin up or spin down) has a maximal vector polarization. In general the vector polarization of a spin 1 2 ensemble can be represented as follows: p=

1 N+ − N− A(θ) N + + N −

(A.1)

with A(θ) being the analysing power discussed in the subsequent sections and N +(−) is the number of particles in the spin up (spin down)substate.

Tensor Polarization A spin 1 particle has 3 (2S+1) sub states namely up, down and zero. Assume all particles in the beam in the spin ”zero” state are eliminated. According to the general definition of polarization given above we know this beam is polarized. On the other hand from the special definition of vector polarized protons we are lead to assume this beam is unpolarized. Therefore, this type of polarization is called tensor polarization. The tensor polarization of rank 2 is given by the difference of the population of the magnetic substates N+ and N- with respect to the population of state N 0 , normalized to the particles in the beam. (N + − N 0 ) + (N − − N 0 ) ptensor = N+ + N− + N0 where, N 0 is the number of particles in the zero substate. Consequently, the vector polarization for a spin 1 particle is extended to pvector =

N+ − N− N+ + N− + N0

Polarization in Quantum Mechanics Polarization is defined to be the expectation value of the spin operator which are expressed by the Pauli spin matrices for spin 12 particles. The polarization of a spin 12 particle is represented by the Pauli spin matrices viz., 1 0 1 1 0 −i 1 1 0 σx = , σy = σz = i 0 2 1 0 2 2 0 −1 A spin 1 particle has 3 spin substates and the polarization is specified by the vector (rank 1) operators Px , Py and Pz and the tensor (rank 2) operators Pxx , Pyy , Pzz , Pxy , Pxz

57

APPENDIX A. POLARIZATION AND SYMMETRY PROPERTIES and Pyz [23][51]. 1 Px = √ 2

The vector polarization components are given below. 0 1 0 0 −i 0 1 0 0 1 1 1 0 1 , Py = √ i 0 −i , Pz = √ 0 0 0 , 2 2 0 1 0 0 i 0 0 0 −1

The tensor polarization components are[23]: 0 −1 0 0 −1 3i 3i 0 0 0 , Pxz = √ 1 0 Pxy = 2 8 0 −1 1 0 0 −1 0 3 −1 0 1 1 0 2 0 , Pyy = 0 2 Pxx = 2 2 3 0 −1 −3 0

0 0 3i 1 , Pyz = √ 1 8 0 0 3 1 1 0 , Pzz = 0 2 −1 0

1 0 0 −1 , −1 0 0 0 −2 0 , 0 1

These set of operators along with the unit matrix form an overcomplete set which are retained as such for the sake of convenience [23].

The Analysing Power and Spin Correlation Coefficient Consider the scattering of the form ~12 + A → ~21 + B. The spinor χi describing the incoming spin 21 particle is related to the spinor χf of the outgoing spin 21 particle by the following relation[23]: χf = M χi where M is a 2 x 2 is the transition matrix whose elements are functions of energy and angle. The density matrix describing the initial state is: ρi =

N X

(n)

(n)

χi [χi ]†

n=1

The final state density matrix can be defined as ρf = M ρ i M † The differential cross is then given by: I(θ, φ) = T r[ρf ] = T r[M ρi M † ] with I(θ, φ) being the differential cross section for a polarized beam. If the beam is unpolarized, the initial state density matrix is given by: 1 1 0 ρi = 2 0 1 The corresponding unpolarized cross section is given by 1 I0 (θ) = T r[M M † ] 2 The density matrix can be expressed in terms of the Paulis matrices σj and their expectation values pj as 3 X 1 ρi = (1 + pj σ j ) 2 j=1

58

and so the final state density matrix can be written as 3

1 1X ρf = M M † + pj M σ j M † 2 2 j=1

This gives, I(θ, φ) = T r[ρf ] = I0 (θ)(1 +

3 X

pj Aj (θ))

j=1

with: T r[M σj M † ] T r[M M † ]

Aj (θ) =

Aj (θ) is called the analysing power. In case the target is polarized the density matrix is written as a direct product of the beam density matrix and the target density matrix and the cross section involves terms containing the analysing power of the target and cross terms. In general the differential cross section can be written as: I(θ, φ) = T r[ρf ] = I0 (θ)(1 +

3 X

pj Aj (θ) +

j=1

3 X

pTj ATj (θ) +

j=1

X

pj pTk Aj,k (θ))

j,k

where, Aj,k (θ) =

T r[M σj σk† M † ] T r[M M † ]

Aj,k is called the spin correlation coefficient.

General Symmetry Rules For Polarization Observables Written in Terms of the Invariant Amplitudes In the simplest case consider the reaction 21 + 0 → written in terms of the invariant amplitudes aj ’s: M (θ) =

X

1 2

+ 0. The scattering matrix can be

aj (θ)σj

(A.2)

j

where, j = 0,x,y,z, σ0 = 1. In general, a polarization observable is denoted by Xpqik , with X defining the observable (eg., A for Analysing Power and C for Spin Correlation Coefficient etc.,) and p,q,i and k define the ejectile, recoil, projectile (beam) and the target polarizations respectively. In the projectile helicity frame, these can take values like x,y,z or 0. In the following definitions, the notation nm refers to the number of times the subscript m occurs in an observable. For the observable Ay,xz nx = ny = nz = 1. The following transformations are obtained under P, T operations [18]. P : σx , σy , σz → −σx , σy , −σz ; T : σx , σy , σz → −σx , σy , σz ;

59

APPENDIX A. POLARIZATION AND SYMMETRY PROPERTIES Thus the M matrix amplitudes in A.2 and in M t =

P j

atj (θ)σj , the M in the inverse

reaction, can be classified according to their P and T symmetries as follows [18]: P : aj = (−1)(nx +nz ) aj T : aj =

(A.3)

(−1)nx atj

Similarly, the observables namely the analysing powers and the spin correlation coefficients, which are usually expressed as a bilinear combination (bicoms) of these amplitudes can be classified according to their P and T symmetry. P : Aj,k = (−1)(nx +nz ) Aj,k nx

T : Aj,k = (−1)

(A.4)

Atk,j

The rules based on these relationships are as follows[23]:

Parity Conservation Conservation of parity requires that an observable vanishes unless the corresponding sum nx + nz is an even number. So PC requires a P-odd observable to be zero.

Time Reversal Invariance Time reversal invariance requires that the polarization transfer coefficients of the inverse reaction be (−1)nx times the corresponding coefficients of the forward reaction, provided the CM helicity frames are used. Thus this rule requires that an observable be equal to (+/−) a different observable in the inverse reaction.

Rotational Invariance Rotation invariance requires an observable to be an odd (even) function of the scattering angle θ if nx + ny is odd (even). Therefore, for an observable to be T-odd, P-even and rotationally invariant, the minimum number of indices required is nx = ny = nz = 1. The figure of merit Ay,xz satisfies this condition.

60

B Circuit Diagrams

61

62

Figure B.1: The TRIC timer module part 1

APPENDIX B. CIRCUIT DIAGRAMS

Figure B.2: The TRIC timer module part 2

63

64

APPENDIX B. CIRCUIT DIAGRAMS

Figure B.3: BCT MODULATOR

C Accuracy of the Figure of Merit in Terms of the Spin Flip Period and Beam Time The accuracy of the figure of merit depends on the accuracy with which the slope of the current is determined. Assuming a linear decay of the beam, an equation that relates the accuracy of the slope of the current to the accuracy of the figure of merit in terms of the beam time and the spin flip period is presented in this appendix. The estimated error in the parameters I0 andq b of a straight line of the form I = I0 + bt √ are given by the σI0 = σI / k and σb = σI / Σt2k , with k being the number of data points and tk s are the independent time values [38]. σI is the standard deviation of a single current measurement (typically 0.5µA in 1s integration time given in the Bergoz Current Transformer (BCT) device manual). The accuracy in the slope can be simplified further by considering that the data points are acquired at equal time intervals so that the independent values of time can be replaced by∆t ∗ k, where ∆t is the time interval between any two consecutive data points and i, the sequential index of the data point. Since Σk 2 ≈ k 3 /3, the accuracy in the slope b can be written as: √ √ 3σI 3σI σb = = √ (Since ∆tk = t) (C.1) 1.5 ∆tk t k If we combine √ N measurements of the slope b then the accuracy of the slope is improved by a factor N . √ 3σI 1 √ σb = (C.2) ∆tk 1.5 N From Chapter 3, the figure of merit is given as: Ay,xz =

1 1 1 − ] [ 2σρ dνpy pxz τ + τ −

(C.3)

From equation (C.3), an estimate of the accuracy δAy,xz of Ay,xz can be derived from error propagation. Assuming that the pre-term in (C.3) to be constant, the accuracy of the figure of merit depends on the accuracy of the inverse of the lifetime σ1/τ . Since τ = I0 /b the error in the inverse of the lifetime is given by 1 s σb2 1 σI20 σ1/τ = + (C.4) τ I0 2 b2 For currents in the order of 50 mA and with the precision of the current measurement used in the experiment, the ratio σI20 /I0 2 can be neglected. The main contribution to the error of the inverse of the lifetime is from the slope of the current and so, σ1/τ ≈ 1

σb I0

(C.5)

Error propagation formulas: If x = au + bv then, σx2 = a2 σu2 + b2 σv2 . σ2 σ2 σ2 If x = au then, xx2 = uu2 + vv2 where, a and b are constants and the covariances are assumed to be zero. v

65

APPENDIX C. ACCURACY OF THE FIGURE OF MERIT IN TERMS OF THE SPIN FLIP PERIOD AND BEAM TIME The accuracy of the figure of merit reduces to: 1 σb δAy,xz = √ ( 2I0 σρdνpy pxz )

(C.6)

√ The factor 2 is due to the addition of two equal uncertainties from the error propagation formulas. If we have a total of H hours of beam time and if the spin is flipped every h hours, so that we have H/2h measurements of the slope for each spin configuration, and if we have k data points in h hours, then using equations (C.2),(C.5) and (C.6), r √ 1 h 3 δAy,xz = σI (C.7) (I0 σρdνpy pxz ) H ∆tk 1.5 p √ Since ∆k = 3600h (in seconds), k = 60 h/∆t and therefore: √ ∆t 8 · 10−6 √ σI δAy,xz = (C.8) (I0 σρdνpy pxz ) h H Where I0 is the current in amperes, σ0 is the cross section in cm2 , ν is the beam circulation frequency in Hz, ρd is the thickness of the target in atoms/cm2 , py , pxz are the polarization of the beam and target respectively. H is the total beam time in hours and h is the spin flip period. ∆t is the time interval between two consecutive data points in seconds. The precision of the BCT is a quantity that is dependent on the integration time and so this factor should also be taken into account in the calculation of the accuracy of the figure of merit. In general, from the resolution of the BCT in 1s integration time, the precision of the BCT in a given integration time ∆t can be written as: 0.5 σI = √ µA ∆t

(C.9)

Using this in equation (21), we get, δAy,xz =

4 · 10−12 1 √ (I0 σρdνpy pxz ) h H

(C.10)

In equation (C.9), the dimension of the noise has the unit of current though it is normalised by the integration time factor. This factor numerically cancels the time factor in the numerator of equation (C.8),but the dimensions stay as such. In equation (C.10), the units for the terms involved is given in the following table. Quantity

Unit

I0 σ ρd ν h and H

A cm2 atoms/cm2 Hz hours

The terms and their units as used in equation (C.10).

66

D The Real-Time Extension Programming The Real time Kernel (RTX) provides an essential set of real-time programming interfaces in the Win32 environment. The RTX interfaces are compatible with the Win32 programming interfaces. In addition, RTX provides extensions to Win32 in order to provide a complete set of real-time functions to the application programmer. RTX application programs can use the real-time extensions in both the Win32 (non-deterministic) and Real-Time Sub System (RTSS) environments (deterministic) and programs can use the Win32-supported API (Application Programming Interface) in the RTSS environment. The RTX API is based on the Win32 API. This approach allowed us to draw upon our Win32 experience, code base, and development tools, thus expediting hard real-time application development. Both Win32 and RTSS processes support the full RTX API, however, with different response times and performance characteristics which allowed us to effortlessly share or move code between environments. RTX supports a subset of Win32 API functions, plus it provides a special set of realtime functions, known as Real-Time API (RTAPI). RTAPI functions are identified by an ”Rt” prefix in their names. Some RTAPI functions are semantically identical to their Win32 counterparts, while others are unique to RTX (i.e., there are no similar Win32 calls). For example, RTAPI real-time IPC (Inter Process Communication) functions differ from Win32 IPC functions only in the IPC name space in which they operate and in the determinism possible with real-time IPC objects. On the other hand, the Win32 API does not include any functions related to interrupt management; therefore, unique interrupt management functions are defined in RTAPI. The RTX API was carefully selected to promote efficient development of real-time application components. RTX intentionally does not include Win32 functions, such as the GUI (Graphical User Interface) related calls, that are normally used by the less time-critical components of an application. In general, Win32 functions that are not essential to real-time programming, and impractical to implement with deterministic behavior, are not included in the RTX API.

67

68

E Encoding and Decoding of Data The data acquired from the TRIC data acquisition system was encoded with unique identification tags to make the source and the time stamp of each individual data point. The encoding procedure enables one to identify the exact origin of the data. The details are presented in this appendix. Each dataset at present contains 18 (time + 12 scaler channels + 5 input/output modules) data of type ULONG (32 bits). The encoded data structure for the time stamp is as follows. If bits 28-31 (4 bits), the identification tags, are all 1’s then this indicates that this data is a time stamp. If bit 27 (1 bit) is 0 the data is from the left scaler, 1 if it is from the right scaler, bit 0-26 are the 27 bits of the time stamp in milliseconds. The encoded data structure for the data from scalers and other input/output modules is as follows. The Identification tag for the data from the CAMAC contains 8 bits but range only from 0-239 in order to avoid mixed use with the Identification tag for the time. The rest 24 bits contain the data from the CAMAC. These are described in the table below Bit(s) Data

31-28 all 1

27 0 (1)for Scaler Left (right)

26-0 Time stamp in milliseconds

Table E.1: The encoded data structure for time

Bit(s) Data

31-24 Identification tag for CAMAC module

23-0 CAMAC data

Table E.2: The encoded data structure for data from the scalers and other CAMAC modules. Bits 31-28 can vary only from 0000 to 1110.

69

70

F FFT of a Straight Line The discrete fourier transform is described by the series [47]: fn =

N −1 X

yk e

2πitn N

(F.1)

k=0

where, y is the time series data and n is the harmonic number. If the data are sampled at regular intervals of time, yk = y(tk ) where, tk ≡ k∆t. ∆t is the sampling interval and k = 0,1,2...N-1. N is the total number of datapoints in the time domain. For a straight line of the form y(t) = a + bt, the fourier transform is given by fn =

N −1 X

(a + bk)e

2πikn N

(F.2)

k=0

The above equation can be derived by substituting yk = a + b · k∆t in equation (F.1) and assuming ∆t to be 1. The above equation is written as a sum of real and imaginary components as: fn =

N −1 X

N −1

(a + bk)cos

k=0

X 2πkn 2πkn (a + bk)sin +i N N

(F.3)

k=0

The DC component in the frequency domain corresponds to n=0. Substituting n = 0 in equation (F.3), the imaginary part becomes zero and so we get: f0 = a + (a + b) + (a + 2b) + ...... + (a + (N − 1)b) = N a +

N (N − 1) b 2

(F.4)

The other components (i.e n 6= 0) can be written as: < {fn } = a = {fn } = a

N −1 X k=0 N −1 X

N −1

cos

sin

k=0

X 2πkn 2πkn +b kcos N N 2πkn +b N

k=0 N −1 X k=0

ksin

2πkn N

(F.5)

The first terms in equation (F.5) are equal to the real and imaginary part of a

N −1 X

e

2πikn N

k=0

respectively. Using formulas (a) and (b) found at the end of this section, we get, (N −1 ) −1) X 2πikn cos 2πn(N sinπn N < e N = πn sin N k=0 (N −1 ) −1) X 2πikn sin 2πn(N sinπn N = e N = πn sin N

(F.6)

k=0

71

APPENDIX F. FFT OF A STRAIGHT LINE sin(πn) is zero for all integral values of n. So the real and imaginary parts in equation (F.6) are zero, which makes the first term (of the real and imaginary part) in equations (F.5) zero). The second term in equations (F.5) are simplified and presented below. The second term in the real part in equation (F.5) reduces to: N cos 2nπ N −N 4sin2 ( nπ N ) =

2 πn N (cos2 ( πn N ) − sin ( N ) − 1) 4sin2 ( πn N )

=

−2N sin2 ( πn N ) πn 2 4sin ( N )

which implies, N b (n 6= 0) 2 The second term in the imaginary part in equation (F.5) reduces to: < {fn } = −

(F.7)

−N sin 2nπ N 4sin2 ( nπ N ) =

nπ −2N sin nπ N cos N 4sin2 ( nπ N )

which gives, = {fn } = −

N tan(θn )b (n 6= 0) 2

(F.8)

(in degrees). where θn = 90 + n·180 N The sampling interval ∆t is a constant and so the above results are equally valid even if ∆t 6= 1 except that the slope b is multiplied by this sampling interval. The resulting equations are N < {fn } = − b∆t (n 6= 0) (F.9) 2 and N = {fn } = − tan(θn )b∆t (n 6= 0) (F.10) 2 The following formulas were useful in deriving the above results. (a)

(b)

(c)

(d)

N X n=0 N X

cos N2x sin (N +1)x 2 sin x2

sin N2x sin (N +1)x 2 sinnx = sin x2

n=0 N −1 X

k=0 N −1 X k=0

72

cosnx =

kcos

2nkπ 2n(N − 1)π nπ = 1/4((1 − N )cos(2nπ) − 1 + N cos( ))cosec( )2 N N N

ksin

2nkπ 2n(N − 1)π nπ = −1/4((N − 1)sin(2nπ) + N sin( ))cosec( )2 N N N

The Most Probable Slope Using equation (F.8) as the model function, the most probable slope can be found by minimizing the χ2 with respect to the slope b, i.e. if the imaginary part of the fourier transform of our data is given by Yn , then χ2 =

N/2 X (Yn − =(fn ))2

σn2

n=0

(F.11)

where, =(fn ) is the imaginary part of the fourier transform as defined in equation (F.8) and σn is the uncertainty of a single datapoint and N the total number of datapoints in the time domain. Due to the symmetric behavior of the fourier components, the summation is restricted to N/2. The most probable value of the slope b is obtained by solving, N/2

∂χ2 X (Yn + b · tan θn )tanθn = =0 ∂b σn2

(F.12)

n=0

Assuming all the uncertainties σn to be equal to σ we get: P (Yn tan θn ) −b = P tan θn2

(F.13)

and the uncertainty in the slope σb is obtained by using the error propagation formula in equation (F.13) [38]. Thus one gets: σb = pP

σ tan θn2

(F.14)

In the above equation σ is the standard deviation of the fit given by the equation: σ2 =

1X (Yn − fn )2 ν

(F.15)

where ν is the number of degrees of freedom given by the difference between the total number of data points and the number of parameters to be determined.

73

74

G The Global Fitting Method In the usual fitting methods, the data Di with errors σi is compared to theoretical predictions Ti from a theoretical model with unknown parameters ai . The merit function is given as [38]: N X Di − Ti 2 χ2 = (G.1) σi i=1

The best estimate for each unknown parameter ai is obtained by minimizing the merit function with respect to each of the unknowns. If the errors are randomly distributed, then the standard statistical methods can be used to minimize χ2 to obtain the unknowns and the associated uncertainty. However, cases arise in which above methods cannot be useful. This is especially true when the data points do not come from uniform sets of measurements, the noise of which is different in each set. Studies have shown that in special cases, when parameters are shared amongst data sets, the accuracy can be improved [48, 49]. The sharing of a parameter is an a priori information which is fed into the fitting routine. In the case of the TRIC data, the lifetime for a specific polarization setup is assumed to be constant and so this parameter can be shared among all the relevant datasets. In the normal fitting method, one dataset is fitted to one equation and χ2 is minimized. In the global fitting method, N datasets are fitted to N curves simultaneously (i.e., the shared parameter is optimized with respect to all the datasets and not only to a single one), and so the sum of the individual χ2 values has to be minimized. Now for the global fitting method, the merit function becomes, 2

χ =

N X

χ2n

(G.2)

n=1

χ2n

=

m X Dni − Tni (a) 2 i=1

σni

(G.3)

Where N is the number of datasets and m is the number of data points in each dataset. a is the shared parameter.

75

76

H Software Source Code //******************************************************************************** ********************************************* //This code was written for the development and testing stage of the TRIC data acquisition system under Windows XP and Real Time //Kernel RTX. The code via register programming, accesses a Meilhaus 8100 Digital Input/Output card as well as a CAMAC CC32 PCI //controller card. The Write_CAMAC_RTX, Read_CAMAC_RTX and Read_Scalers_Twelve_RTX functions are self contained and can be simply //copied across and used in other programs on condition that the correct mapping of memory and base register addressing is set up. //The Macro:#define MAKE_CC32_OFFSET(N,A,F) (int)((N<<10) + (A<<6) + ((F & 0xF)<<2)) must also always be included // //This code has NOT been optimized as of yet and improvements can and need to be made for possible performance improvements //as well as better portability as far as the functional code is concerned. // //More information on the function calls used and register programming can be found in the CAMAC and Meilhaus manuals and detailed //information of the RTX kernel functions are also supplied in the RTX help files. // //Deepak Samuel [email protected] //12/8/2003 // /************************************************************************************ ****************************************** /Header files needed for the code.

( ( ( ( ( ( ( (

BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T)

+ + + + + + + +

0x00) 0x00) 0x02) 0x04) 0x06) 0x08) 0x0a) 0x0a)

77

APPENDIX H. SOFTWARE SOURCE CODE

#define #define #define #define #define #define #define #define

ME8100_ID_REG_B(T) ME8100_CONTROL_REG_B(T) ME8100_RESET_INT_REG_B(T) ME8100_DI_REG_B(T) ME8100_DO_REG_B(T) ME8100_PATTERN_REG_B(T) ME8100_MASK_REG_B(T) ME8100_INT_INPUT_REG_B(T)

( ( ( ( ( ( ( (

BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T)

+ + + + + + + +

0x0c) 0x0c) 0x0e) 0x10) 0x12) 0x14) 0x16) 0x16)

// ME8100 82C54 Counter Registers // 82C54 registers are addressed as 8-bit registers, so // offset is in bytes. #define ME8100_COUNTER_REG_0(T) ( BASE_ADDR(T) + #define ME8100_COUNTER_REG_1(T) ( BASE_ADDR(T) + #define ME8100_COUNTER_REG_2(T) ( BASE_ADDR(T) + #define ME8100_COUNTER_CONTROL_REG(T) ( BASE_ADDR(T) + // ME8100 Bit definitions #define ME8100_SET_SOURCE_MODE(T) #define ME8100_INT_ON_BIT_CHANGE(T) #define ME8100_ENABLE_INT(T) #define ME8100_TRISTATE_OFF(T)

( ( ( (

BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T) BASE_ADDR(T)

+ + + +

the 0x18) 0x1A) 0x1C) 0x1E)

0x0000) 0x0000) 0x0000) 0x0000)

// // // //

Bit Bit Bit Bit

4 5 6 7

To To To To

use use use use

write write write write

// // // // // // // //

Bit Bit Bit Bit Bit Bit Bit Bit

0 1 2 3 4 5 6 7

0x0010 0x0020 0x0040 0x0080

// PLX register and individual bit definitions // Offset Interrupt Control/Status Register PLX #define PLX_INTCSR(T) (BASE_ADDR_PLX(T) + 0x4C) // bit definitions for PLX interrupt status register #define PLX_INT_I1_ENABLE(T) (BASE_ADDR_PLX(T) + #define PLX_INT_I1_POLARITY(T) (BASE_ADDR_PLX(T) + #define PLX_INT_I1_STATUS(T) (BASE_ADDR_PLX(T) + #define PLX_INT_I2_ENABLE(T) (BASE_ADDR_PLX(T) + #define PLX_INT_I2_POLARITY(T) (BASE_ADDR_PLX(T) + #define PLX_INT_I2_STATUS(T) (BASE_ADDR_PLX(T) + #define PLX_PCI_ENABLE(T) (BASE_ADDR_PLX(T) + #define PLX_SOFTWARE_IRQ(T) (BASE_ADDR_PLX(T) +

0x0000) 0x0000) 0x0000) 0x0000) 0x0000) 0x0000) 0x0000) 0x0000)

// // // // // // // //

// Offset Initialization Control Register PLX #define PLX_ICR(T) (BASE_ADDR_PLX(T) + 0x50) #define TEST_PLX(T)

0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80

//Originally 0x50 but now multiplied //by 2 asworking in bytes not words

(BASE_ADDR_PLX(T) + 0x3C)

// ME8100 82C54 Counter Registers // 82C54 registers are addressed as 8-bit registers, so // offset is in bytes. //#define ME8100_COUNTER_REG_0(T) (BASE_ADDR(T) + //#define ME8100_COUNTER_REG_1(T) (BASE_ADDR(T) + //on Meilhaus card if needed //#define ME8100_COUNTER_REG_2(T) (BASE_ADDR(T) + //#define ME8100_COUNTER_CONTROL_REG(T) (BASE_ADDR(T) +

the 0x18) 0x1A)

//Registers for the Counters

0x1C) 0x1E)

// Definitions for the CAMAC Crate #define LCR_BASE(T) ((USHORT)(T + 0x00009400)) #define MAKE_CC32_OFFSET(N,A,F) (int)((N<<10) + (A<<6) + ((F & 0xF)<<2))//Macro for calculating // the correct offset for CAMAC from NAF #define LSR_CNTRL (LCR_BASE + 0x28)//Base address for CAMAC Control Register #define LSR_INT (LCR_BASE + 0x26)// Base address for CAMAC Interrupt Register /**************************************************************************************** ************************************** /Global variables used for the code / /**************************************************************************************** *************************************/

78

UCHAR pBuffer,Int_Stat; //Pbuffer is used both in main and ISR, Int_Stat is used only in ISR // but declared here to avoid calling it in ISR VOID *hHandle;//Is the pointer returned from mapmemory function used in several different procedures ULONG PLX; ULONG CONT_REG;

ULONG Scaler_Value[1000][12];//2D array used to sort data ULONG Scal_Result_12[12];//1D array passed to Read_Scalers_Twelve_RTX to store all 12 // values from one read of all channels /******************************************************************************* *********************************************** /FUNCTION::::to WRITE to CAMAC - Parameters: Pointer to base memory address obtained after mapmemory call, NAF values, data to / write. / /************************************************************************************** ***************************************/ void Write_CAMAC_RTX(ULONG *BASE_MEM_CONST, int N, int A, int F, ULONG data) { ULONG *BASE_MEM; BASE_MEM = BASE_MEM_CONST + (MAKE_CC32_OFFSET(N,A,F)/4); *BASE_MEM = data; }

/******************************************************************************************* *********************************** /FUNCTION::::to READ from CAMAC - Parameters: Pointer to base memory address obtained after mapmemory call, NAF values. returns /read value to type ULONG / /********************************************************************************************* ********************************/ ULONG Read_CAMAC_RTX(ULONG *BASE_MEM_CONST, int N, int A, int F) { ULONG *BASE_MEM; ULONG Scal_Result; BASE_MEM = BASE_MEM_CONST + (MAKE_CC32_OFFSET(N,A,F)/4); Scal_Result = *BASE_MEM & 0x00FFFFFF; return Scal_Result; } /******************************************************************************************* *********************************** /FUNCTION::::to READ from all 12 scalers on CAMAC - Parameters: Pointer to base memory address obtained after mapmemory call, / N value from NAF. 1D array with 12 positions passed to procedure to store read channel values. / /************************************************************************************************ *****************************/ void Read_Scalers_Twelve_RTX(ULONG *BASE_MEM_CONST, int N,ULONG Scal_Result[12]) { ULONG *BASE_MEM; int i; for (i = 0; i<12; i++) { BASE_MEM = BASE_MEM_CONST + (MAKE_CC32_OFFSET(N,i,0)/4); Scal_Result[i] = *BASE_MEM & 0x00FFFFFF; } } /******************************************************************************************** ********************************** /FUNCTION::::Interupt Service Thread(IST). This function is called on response to interrupt from the Meilhaus card,

79

APPENDIX H. SOFTWARE SOURCE CODE

//NULL passed /******************************************************************************************** *********************************/ BOOLEAN RTFCNDCL InterruptHandler(PVOID past) { int i; Write_CAMAC_RTX(hHandle, 22, 0, 16, 0xff); Read_Scalers_Twelve_RTX(hHandle, 20, Scal_Result_12); for (i = 0; i<12; i++) { if (Scal_Result_12[i]<1000) //To prevent data overflow and thread crash due to limited //size of data structure { Scaler_Value[Scal_Result_12[i]][i] = Scaler_Value[Scal_Result_12[i]][i] + 1; } } Read_CAMAC_RTX(hHandle, 20, 11, 2); Write_CAMAC_RTX(hHandle, 22, 0, 16, 0x0); return TRUE; }

/********************************************************************* ********************************************************* / FUNCTION::::Interupt Service Routine(ISR). This function is called to determine which hardware device on a shard interrupt //line generated the interrupt and then calls the corresponding IST, NULL passed /************************************************************************ *****************************************************/ INTERRUPT_DISPOSITION RTFCNDCL Isr_ME (PVOID past) { Int_Stat = RtReadPortUchar(PLX_INTCSR(PLX)); Int_Stat = Int_Stat && 0x00000024; if(Int_Stat != 0){ pBuffer = RtReadPortUchar(ME8100_RESET_INT_REG_A(CONT_REG)); return CallInterruptThread; } else return PassToNextDevice; } /********************************************************************************* ********************************************* / FUNCTION:::Main Function /********************************************************************************** *******************************************/ int main( int argc, PCHAR *argv ) { //******************************** //Local variables to Main function //******************************** HANDLE interrupt; ULONG sn; // logical slot number for the PCI adapter ULONG f; // function number on the specified adapter ULONG bytesWritten; // return value from RtGetBusDataByOffset ULONG bus; // bus number BOOLEAN flag; LARGE_INTEGER BAR0; // base port address of the MITE quadpart of LARGE_INTEGER used LARGE_INTEGER BAR1; // base port address of the board registers quadpart of LARGE_INTEGER used int i,j;//index for read loop for scaler

80

ULONG IrqLevel; // interrupt level ULONG IrqVectr; // interrupt vector ULONG intbusnumb; // Interrupt bus number PCI_SLOT_NUMBER SlotNumber; PPCI_COMMON_CONFIG PciData;// data structure to hold PCI card information see MSDN for declarations UCHAR buffer[PCI_COMMON_HDR_LENGTH]; BOOLEAN Release;// return variable for released Interrupt vector procedure call LARGE_INTEGER physAddr;//Conatins address space to be mapped. ULONG Length = 0x88b8; //32K size of mapped memory //*********************************** //Initialization of local variables //********************************** BAR0.QuadPart = 0; BAR1.QuadPart = 0; PciData = (PPCI_COMMON_CONFIG) buffer; SlotNumber.u.bits.Reserved = 0; flag = TRUE; //****************************************************************************************************** // Search for the Meilhaus Card and CAMAC PCI Card. Here correct base addresses for registers are found //****************************************************************************************************** for (bus = 0; flag; bus++) { for (sn = 0; sn < PCI_MAX_DEVICES && flag; sn++) { SlotNumber.u.bits.DeviceNumber = sn; for (f = 0; f < PCI_MAX_FUNCTION; f++) { SlotNumber.u.bits.FunctionNumber = f; bytesWritten = RtGetBusDataByOffset (PCIConfiguration, bus, SlotNumber.u.AsULONG, PciData, 0,PCI_COMMON_HDR_LENGTH ); if (bytesWritten == 0) { flag = FALSE;

// out of PCI buses

break; } if (PciData->VendorID == PCI_INVALID_VENDORID) { // no device at this slot number, skip to next slot break;

81

APPENDIX H. SOFTWARE SOURCE CODE

}

//**************************************************************** // A device is found, if this is our card, then // print out all the PCI configuration information to screen // and set the variables. //****************************************************************** if (((PciData->VendorID == 0x1402) && (PciData->DeviceID == 0x810B)) || ((PciData->VendorID == 0x10B5) && (PciData->DeviceID == 0x2258))) //For the Meilhaus card and //CAMAC { // Set IRQ values for attaching interrupt below IrqLevel = PciData->u.type0.InterruptLine; // interrupt level IrqVectr = IrqLevel; // interrupt IRQ // Put the BusAddresses into other variables BAR0.QuadPart = PciData->u.type0.BaseAddresses[0]; // MITE address BAR1.QuadPart = PciData->u.type0.BaseAddresses[1]; // new board address intbusnumb = bus; if ((PciData->VendorID == 0x1402) && (PciData->DeviceID == 0x810B)) { printf("Meilhaus 8100:\n"); } else { if ((PciData->VendorID == 0x10B5) && (PciData->DeviceID == 0x2258)) { printf("CAMAC PCI:\n"); } else printf("Other PCI device:\n"); } printf("------------------------------------------\n"); printf("BusNumber:\t\t%d\n", bus); printf("DeviceNumber:\t\t%d\n", sn); printf("FunctionNumber:\t\t%d\n", f); printf("VendorID:\t\t0x%x\n", PciData->VendorID); printf("DeviceID:\t\t0x%x\n", PciData->DeviceID);

82

printf("Command:\t\t0x%x\n", PciData->Command); printf("Status:\t\t\t0x%x\n", PciData->Status); printf("RevisionID:\t\t0x%x\n", PciData->RevisionID); printf("ProgIf:\t\t\t0x%x\n", PciData->ProgIf); printf("SubClass:\t\t0x%x\n", PciData->SubClass); printf("BaseClass:\t\t0x%x\n", PciData->BaseClass); printf("CacheLineSize:\t\t0x%x\n", PciData->CacheLineSize); printf("LatencyTimer:\t\t0x%x\n", PciData->LatencyTimer); printf("HeaderType:\t\t0x%x\n",PciData->HeaderType); printf("BIST:\t\t\t0x%x\n", PciData->BIST); printf("BaseAddresses[0]:\t0x%08x\n",PciData->u.type0.BaseAddresses[0] & 0xFFFFFFF0); printf("BaseAddresses[1]:\t0x%08x\n",PciData->u.type0.BaseAddresses[1] & 0xFFFFFFF0); printf("BaseAddresses[2]:\t0x%08x\n",PciData->u.type0.BaseAddresses[2] & 0xFFFFFFF0); //Mask out first bit for all addresses as always 1 to big printf("BaseAddresses[3]:\t0x%08x\n",PciData->u.type0.BaseAddresses[3] & 0xFFFFFFF0); printf("BaseAddresses[4]:\t0x%08x\n",PciData->u.type0.BaseAddresses[4] & 0xFFFFFFF0); printf("BaseAddresses[5]:\t0x%08x\n",PciData->u.type0.BaseAddresses[5] & 0xFFFFFFF0); printf("ROMBaseAddress:\t\t0x%08x\n",PciData->u.type0.ROMBaseAddress); printf("InterruptLine:\t\t%d\n",PciData->u.type0.InterruptLine); printf("InterruptPin:\t\t%d\n",PciData->u.type0.InterruptPin); printf("MinimumGrant:\t\t%d\n",PciData->u.type0.MinimumGrant); printf("MaximumLatency:\t\t%d\n",PciData->u.type0.MaximumLatency); printf("\n"); if ((PciData->VendorID == 0x10B5) && (PciData->DeviceID == 0x2258)) { physAddr.QuadPart = PciData->u.type0.BaseAddresses[3] & 0xFFFFFFF0; }

//The address of the physical memory to //map to process space. Stored in QuadPart //of LARGE_INTEGER always obtained from BaseAddresses[3] if ((PciData->VendorID == 0x1402) && (PciData->DeviceID == 0x810B))

{ PLX = PciData->u.type0.BaseAddresses[1] & 0xFFFFFFF0; CONT_REG = PciData->u.type0.BaseAddresses[2] & 0xFFFFFFF0; } }// dio 96 } // max_function } // max_devices } // flag //*********************************************************** ////Initilization of data structure for stored scaler values //************************************************************ for (i = 0; i<= 999; i++) { for (j = 0; j<= 11; j++)

83

APPENDIX H. SOFTWARE SOURCE CODE

{ Scaler_Value[i][j] = 0; } } //**************************************************************** // Initilization stage of Meilhaus card as well as CAMAC crate //****************************************************************** RtEnablePortIo((PUCHAR)LCR_BASE(0),0xea807fff); RtWritePortUshort(((PUSHORT) LCR_BASE(0x50)), 0x4186);//Initilization of control register CAMAC hHandle = RtMapMemory(physAddr, Length, TRUE);//Maps the physical memory to // address space a Handle to mapped memory returned Write_CAMAC_RTX(hHandle, 31, 0, 0, 0x0);//Reset of CAMAC Write_CAMAC_RTX(hHandle, 0, 0, 0, 0x0);//CAMAC clear Write_CAMAC_RTX(hHandle, 0, 1, 0, 0x0);//CAMAC Initialize Write_CAMAC_RTX(hHandle, 30, 2, 0, 0x0c00);//CAMAC fast access for station N24..N17 Write_CAMAC_RTX(hHandle, 30, 0, 0, 0x00c0);//CAMAC fast access for station N8..N1 RtEnablePortIo(BASE_ADDR(CONT_REG),1280);//Set range of ports that can be used pBuffer = RtReadPortUchar(ME8100_RESET_INT_REG_A(CONT_REG)); RtWritePortUchar(ME8100_TRISTATE_OFF(CONT_REG), 0x90); RtWritePortUchar(ME8100_ENABLE_INT(CONT_REG) , 0xD0); RtWritePortUchar(ME8100_PATTERN_REG_A(CONT_REG), 0x01); RtWritePortUchar(ME8100_MASK_REG_A(CONT_REG) , 0x00); RtWritePortUchar(PLX_INTCSR(PLX), 0x43); // Here we have set PLX_I1_STATUS, // I2_ENABLE, I2_STATUS and PCI_ENABLE to HIGH pBuffer = RtReadPortUchar(PLX_INTCSR(PLX)); printf("RESPONDING TO INTERRUPTS\n"); Write_CAMAC_RTX(hHandle, Write_CAMAC_RTX(hHandle, Write_CAMAC_RTX(hHandle, Write_CAMAC_RTX(hHandle,

22, 22, 20, 20,

0, 26, 0, 16, 11, 9, 0, 24,

0xff);//Activate output CAMAC Cassette 0x0);//Initialize output to zero 0xff);//Clear scalers 0xff);//Disable Look-At-Me scalers

//********************************************************************************************* //RtAttachInterruptVectorEx attaches the correct vector to the interrupt of the Meilhaus card. //Creates background child thead with maximum priority //********************************************************************************************** interrupt = RtAttachInterruptVectorEx(NULL,0,InterruptHandler,NULL,RT_PRIORITY_MAX,2,intbusnumb,I rqLevel,IrqVectr, TRUE, LevelSensitive, Isr_ME); if( interrupt == NULL) { printf("Could not register interrupt handler\n"); } //******************************************************************************************* //Sets output bit high and then low to start interrupt generation //****************************************************************************************** Write_CAMAC_RTX(hHandle, 22, 0, 16, 0xff);//Set output high //The high and low starts the interrupt cycle Write_CAMAC_RTX(hHandle, 22, 0, 16, 0x0); //Set output low Sleep(40000);//Parent thread to sleep Release = RtReleaseInterruptVector(interrupt);//Release interrupt vector for Meilhaus card

84

for (i = 0; i<=60 ; i++) { if (i%5 == 0) { printf("\n"); } printf("%02d ",i); for (j = 0; j< 12; j++) { printf(" %07d",Scaler_Value[i][j]);//Print to screen of stored scaler values } printf("\n"); } printf("I AM AT THE END\n\n"); return 0; }//end of main

85

86

Bibliography [1] G. L¨ uders, Annals of Physics 2, 1 (1957). [2] J. Schwinger, Proc Natl Acad Sci U S A. 44, 223 (1958). [3] W. Pauli, L. Rosenfeld, and V. Weisskopf, Niels Bohr and the Development of Physics, McGraw-Hill Newyork, 1955. [4] C. S. Wu, E. Ambler, R. W. Hayward, D. D. Hoppes, and R. P. Hudson, Phys. Rev. 105, 1413 (1957). [5] M. Gell-Mann and A. Pais, Phys. Rev. 97, 1387 (1955). [6] A. D. Sakharov, Zhurnal Eksperimental noi i Teoreticheskoi Fiziki 76, 1172 (1979). [7] G. R. Farrar, Nuclear Physics B Proceedings Supplements 43, 312 (1995). [8] N. Ramsey, Phys. Rep 43, 409 (1978). [9] N. Ramsey, Ann. Rev. Nucl. Sci (1982). [10] S. Lamoreaux, Nuclear Instruments and Methods in Physics Research A 284, 43 (1989). [11] A. Angelopoulos et al., First direct observation of time-reversal violation, in American Institute of Physics Conference Series, volume 549, pages 957–960, 2000. [12] J. W. Cronin, Rev. Mod. Phys. 53, 373 (1981). [13] E. D. Commins, S. B. Ross, D. DeMille, and B. C. Regan, Phys. Rev. A 50, 2960 (1994). [14] D. Cho, K. Sangster, and E. A. Hinds, Phys. Rev. A 44, 2783 (1991). [15] M. Beyer, Nuclear Physics A 560, 895 (1993). [16] M. Simonius, Physics Letters B 58, 147 (1975). [17] W. C. Haxton and A. H¨oring, Nuclear Physics A 560, 469 (1993). [18] H. E. Conzett, Phys. Rev. C 52, 1041 (1995). [19] P. D. Eversheim et al., Physics Letters B 256, 11 (1991). [20] F. Arash, M. J. Moravcsik, and G. R. Goldstein, Phys. Rev. Lett. 54, 2649 (1985). [21] H. E. Conzett, Phys. Rev. C 48, 423 (1993). [22] J. Bystricky, F. Lehar, and P. Winternitz, J. Phys. (France) 39, 1 (1978). [23] G. G. Ohlsen, Rep. Prog. Phys. 35, 717 (1972).

87

Bibliography [24] P. R. Huffman et al., Phys. Rev. C 55, 2684 (1997). [25] M. Beyer, Nuclear Physics A 493, 335 (1989). [26] N. K. Cheung, H. E. Henrikson, and F. Boehm, Phys. Rev. C 16, 2381 (1977). [27] C. F. Hwang, T. R. Ophel, E. H. Thorndike, and R. Wilson, Phys. Rev. 119, 352 (1960). [28] E. Blanke et al., Phys. Rev. Lett. 51, 355 (1983). [29] V. E. Bunakov, Phys. Rev. Lett. 60, 2250 (1988). [30] Y. Yamaguchi, J. Phys. Soc. Jpn. 57, 1518 (1988). [31] P.D.Eversheim, Proposal for Measurement of the Total Correlation Coefficient Ay,y by the TRIC Collaboration. [32] M. Glende, Die Speicherzelle f¨ ur das EDDA-und das TRI-Experiment am Cooler Synchrotron COSY-J¨ ulich, PhD thesis, University of Bonn, 2000. [33] M. Altmeier, Die Entwicklung und der Bau des polarisierten Wasserstoffatomstrahlteils f¨ ur das EDDA-Experiment an COSY-J¨ ulich, PhD thesis, University of Bonn, 1998. [34] K. Unser, CERN SL/91-42 (1991). [35] M. Blumenthal, Improvements of a precision voltage to frequency converter system and the developments of a real-time data acquisition system under windows xp, Master’s thesis, University of Bonn, 2003. [36] http://www.windowsitpro.com/Article/ArticleID/4500/4500.html. [37] A. Peters, H. Schmickler, and K. Wittenburg., Proceedings of Workshop on DC Current Transformers and Beam-Lifetime Evaluations, 2004. [38] P. Bevington and K. Robinson, Data Reduction and Error Analysis for the Physical Sciences, McGraw-Hill, 2000. [39] F. Perrot et al., Nuclear Physics B 278, 881 (1986). [40] F. Hinterberger and D. Prasuhn, Nuclear Instruments and Methods in Physics Research A 279, 413 (1989). [41] F. Hinterberger, T. Mayer-Kuckuk, and D. Prasuhn, Nuclear Instruments and Methods in Physics Research A 275, 239 (1989). [42] P. Bak, C. Tang, and K. Wiesenfeld, Phys. Rev. Lett. 59, 381 (1987). [43] P. J. Cote and L. V. Meisel, Phys. Rev. Lett. 67, 1334 (1991). [44] P. Cizeau, S. Zapperi, G. Durin, and H. E. Stanley, Phys. Rev. Lett. 79, 4669 (1997). [45] O. Narayan, Phys. Rev. Lett. 77, 3855 (1996). [46] A. S. Edelstein and G. A. Fischer, Journal of Applied Physics 91, 7795 (2002).

88

[47] William H. Press, Brian P. Flannery, Saul A. Teukolsky, and William T. Vetterling, Numerical recipes in C, Cambridge University Press, 1993. [48] J. Pumplin, D. R. Stump, and W. K. Tung, Phys. Rev. D 65, 014011 (2002). [49] S. Pelet, M. J. R. Previte, L. H. Laiho, and P. T. C. So, Biophys. J. 87, 2807 (2004). [50] R. E. Pollock et al., Nuclear Instruments and Methods in Physics Research A 330, 380 (1993). [51] Paetz gen.Schieck, Lecture Notes on Nuclear Physics with Polarized Particles, University of Cologne, Germany, 2004.

89

Acknowledgments I owe much to many. Dr.Dieter Eversheim, my “Doktorvater” has been an excellent mentor providing consistently good advice and helpful criticisms. He has been instrumental in improving and honing my scientific skills and I am thankful for his friendly and caring attitude and his gentle approach in times of trouble. I thank Prof.Dr.K.Maier for kindly accepting to be the co-referee of this work and for devoting his time to read my thesis. I thank the Forschungszentrum J¨ ulich for all their support offered for my research work. I would also like to thank the COSY crew for their suppport offered from the technical and accelerator side of the experiment. Dr.Olaf Felden and Dr.Ralph Gebel deserve special mention for their assistance during our beam time and in running the remote version of our data acquisition system. I thank the committee members of the Bonn International Graduate School for accepting my application to the graduate school and for the wonderful assistance provided during my initial days in Bonn. I had spent a significant part of my life in the serene campus of the Madras Christian College School, the place that nurtured me with all goodness of life. Dr.Clement J. Felix, former Head Master and Correspondent of the MCC School, has been a great inspiration right from my childhood. I have always admired his impeccable command over the English language. I consider myself to be fortunate for having been educated by wonderful teachers in my life so far. I would specially like to acknowledge my teachers Mr.Mytran, Dr.P.Chandran and Dr.Samuel Cornelius for the impact they made in my life. Bonn has been a very delightful place to live and work. It has introduced me to new friends and to an entirely different lifestyle. Mrs&Mr. Chandran Tucker were an awesome host and I cherish the time I spent with them. Saravanan and Preethi, people without whom my days in Bonn would not have been enjoyable, deserve more than just an acknowledgment. I am truly proud of my dear friends N.S.Anand, Rajiv, Santhosh and Shincy and my loving sister Daisy and I am thankful for their love and support. I am also thankful to my uncle Yesupatham and his family for their timely help and for their encouragement. I thank God for his abundant blessings and I would like to thank the members of the church for keeping me in their prayers. My parents Clarence and Pushpa shoulder most of the blame for my being who I am.

91

Curriculum Vitae Personal Data Name Nationality

: :

Deepak Samuel Indian. e-mail: [email protected]

Academic Profile •

•

•

Helmholtz Institut f¨ ur Strahlen- und Kernphysik Bonn,Germany Ph.D Physics Sep 2002-Dec 2007 – Research Work: Test of Feasibility of a Novel High Precision Test of Time Reversal Invariance – Research Supervisor: P.D.Dr.Dieter Eversheim Madras Christian College Chennai, India M.Phil Physics Aug 2001- Sep 2002 – Project Work: Ab-initio molecular orbital calculations on group III elements and their halides – Research Supervisor: Prof.Dr.P.Chandran Madras Christian College Chennai, India M.Sc Physics Jun 1999- May 2001 – Project Work: Self Consistent Field theory calculations on Boron Halides – Research Supervisor: Prof.Dr.P.Chandran

•

Madras Christian College B.Sc Physics

Chennai, India Jun 1996- May1999

•

Madras Christian College Higher Secondary School Chennai, India Schooling Jun 1989- May1996

93