Bachelorarbeit - Desy
Bachelorarbeit - Desy
Bachelorarbeit - Desy
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
26<br />
8 break ;<br />
9 }<br />
10 }<br />
11 f o r ( i = alpha ; i < alpha +100; i ++){<br />
12 int d i f f 3 = buf [ i +1] − buf [ i ] ;<br />
13 // Wenn d i e D i f f e r e n z z w i s c h e n einem Punkt und dem Nächsten k l e i n e r a l s 100 i s t ,<br />
14 // s e t z t e d i e s e n Punkt a l s beta und beende d i e S c h l e i f e .<br />
15 // Dadurch wird der Endpunkt der A n s t i e g s f l a n k e e r k a n n t .<br />
16 i f ( d i f f 3 < 100){<br />
17 beta = i ;<br />
18 break ;<br />
19 }<br />
20 }<br />
Das Verwerfen von Signalen mit Pile-up kann nun durch eine einfache Methode rea-<br />
lisiert werden. Das Eintreffen eines plötzlichen Anstiegs der Datenpunkte in einer Trace<br />
wird durch die Punkte alpha und beta gekennzeichnet. Durch die Forderung, dass nach<br />
Zeitpunkt beta die Differenz zweier Punkte einen vom Benutzer festgelegten Schwel-<br />
lenwert nicht überschreitet, kann Pile-up erkannt werden. Um Traces, in denen Pile-up<br />
auftritt, zu verwerfen, kann von einer Booleschen Variablen 3 Gebrauch gemacht werden.<br />
Diese wird pileup genannt und kann die Werte true und false annehmen. Zu Beginn<br />
des Programms wird sie auf false gesetzt und die Auswertung der Daten einer Trace nur<br />
fortgesetzt, wenn pileup==false erfüllt ist. Wird durch die beschriebene Routine Pile-up<br />
erkannt, wird pileup=true gesetzt, diese Trace also nicht weiter bearbeitet:<br />
1 bool p i l e u p = f a l s e ;<br />
2 int d i f f , int n=4000; // n = Länge der Trace<br />
3 double beta ; // Endpunkt der A n s t i e g s f l a n k e<br />
4 f o r ( i = beta ; i < n ; i ++) {<br />
5 d i f f = ( buf [ i +1] − buf [ i ] ) ;<br />
6 // Wenn h i n t e r der e r s t e n A n s t i e g s f l a n k e e i n e w e i t e r e e i n t r i t t , s e t z e p i l e u p=t r u e<br />
7 i f ( d i f f > 100){<br />
8 p i l e u p = true ;<br />
9 break ;<br />
10 }<br />
11 }<br />
12 // Nur wenn p i l e u p==f a l s e , f a h r e mit der V e r a r b e i t u n g f o r t<br />
13 i f ( p i l e u p == f a l s e ){<br />
14 // H i e r f o l g t d i e V e r a r b e i t u n g der Traces<br />
15 }<br />
Neben dem Auftreten von zwei Signalen in einer Trace kommt es vor, dass in einer<br />
Trace ein Signal beginnt, obwohl das vorige Signal noch nicht auf die Baseline abgefallen<br />
ist. Dies macht sich über eine nicht-konstante Baseline bemerkbar. Um dies zu verhindern,<br />
kann gefordert werden, dass die Baseline, welche durch Mittelwertbildung bestimmt wur-<br />
de, eine gewisse Standardabweichung des Mittelwerts nicht überschreiten darf. Des Wei-<br />
teren kommt es gelegentlich vor, dass ein Signal zunächst abfällt und anschließend wieder<br />
leicht ansteigt. Da solche Signale keinen exponentiellen Abfall über die gesamte Abstiegs-<br />
flanke zeigen, werden solche Traces ebenfalls verworfen. Die letzte Art unerwünschter<br />
Signale sind solche, die unter die Baseline abfallen. Diese Verwerfungsmethoden werden<br />
folgendermaßen durchgeführt:<br />
1 double sd = 0 ; // s t a n d a r d d e v i a t i o n<br />
2 f o r ( i = 0 ; i