oasis user manual - cern

47
EUROPEAN LABORATORY FOR PARTICLE PHYSICS CERN BE DEPARTMENT Geneva, Switzerland 03/03/2009 CERN-BE-Note-2009-010 OP OASIS User Manual version 1.0 L. Bojtar Abstract The OASIS system has been operational for years now. After a long development the project has reached a state where the number of features it provides exceeds largely what most of its users knows about. The author felt it was time to write a user manual explaining all the functionality of the viewer application. This document is a user manual, concentrating on the functionality of the viewer from the user’s point of view. There are already documents available on the project’s web site about the technical aspects at http://project-oasis.web.cern.ch/project-oasis/presentations.htm . There was an attempt to produce a tutorial on the viewer, but it didn’t get much further than the table of contents, that however is well thought. The structure of this user manual follows the same principle, the basic and most often used features are grouped together. Advanced or less often used features are described in a separate chapter. There is a second organizational principle, features belong to different levels: channel, scope or application level. This makes easier to find information in this manual.

Upload: others

Post on 15-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

EUROPEAN LABORATORY FOR PARTICLE PHYSICS CERN ⎯ BE DEPARTMENT

Geneva, Switzerland 03/03/2009

CERN-BE-Note-2009-010 OP

OASIS User Manual version 1.0

L. Bojtar

Abstract The OASIS system has been operational for years now. After a long development the

project has reached a state where the number of features it provides exceeds largely what most of its users knows about. The author felt it was time to write a user manual explaining all the functionality of the viewer application. This document is a user manual, concentrating on the functionality of the viewer from the user’s point of view. There are already documents available on the project’s web site about the technical aspects at http://project-oasis.web.cern.ch/project-oasis/presentations.htm.

There was an attempt to produce a tutorial on the viewer, but it didn’t get much further than the table of contents, that however is well thought. The structure of this user manual follows the same principle, the basic and most often used features are grouped together. Advanced or less often used features are described in a separate chapter. There is a second organizational principle, features belong to different levels: channel, scope or application level. This makes easier to find information in this manual.

OASIS User Manualversion 1.0

Lajos Bojtar BE-OPFebruary 23, 2009

2

sdubourg
Rectangle

Contents

0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 Basic features 7

1.1 The structure of the application . . . . . . . . . . . . . . . . . . . . . 7

1.2 The virtual scope concept . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Connecting disconnecting and replacing a signal . . . . . . . . . . . . 8

1.4 Controlling the channel settings . . . . . . . . . . . . . . . . . . . . . 10

1.5 Controlling the scope settings . . . . . . . . . . . . . . . . . . . . . . 11

1.6 Selecting a trigger signal and controlling trigger related settings . . . 12

1.7 Changing the PLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.7.1 PLS options . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.8 PLS indicator line and its meaning . . . . . . . . . . . . . . . . . . . 14

1.9 Connecting, disconnecting and saving global settings . . . . . . . . . 15

1.10 Full and partial slave modes and automatic disconnection of signals . 16

1.11 Rulers and scales, measuring amplitudes and intervals . . . . . . . . . 18

1.12 Loading and saving channel settings . . . . . . . . . . . . . . . . . . . 19

1.13 Copying scope and channel settings . . . . . . . . . . . . . . . . . . . 20

1.14 Zooming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.15 Other basic features related to a channel . . . . . . . . . . . . . . . . 22

1.15.1 Temporary storage of a trace . . . . . . . . . . . . . . . . . . 22

1.15.2 Display a reference for a trace . . . . . . . . . . . . . . . . . . 23

1.15.3 Exporting trace data to the clipboard . . . . . . . . . . . . . . 23

1.15.4 Swapping signals . . . . . . . . . . . . . . . . . . . . . . . . . 23

3

sdubourg
Rectangle

4 CONTENTS

1.16 Other scope level features . . . . . . . . . . . . . . . . . . . . . . . . 24

1.16.1 Signal preview . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.17 Other application level features . . . . . . . . . . . . . . . . . . . . . 24

1.17.1 Freeze all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.17.2 Show and hide scopes . . . . . . . . . . . . . . . . . . . . . . . 25

1.17.3 Reporting a bug . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.17.4 The status bar . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Advanced features 27

2.1 Channel acquisition modes . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.1 Normal modes . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.2 Peak detection modes . . . . . . . . . . . . . . . . . . . . . . . 28

2.2 Surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3 Channel options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4 Virtual signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.5 Special ways to change the offset . . . . . . . . . . . . . . . . . . . . 32

2.6 Mountain range mode . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.7 Scrolling mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.8 Trigger options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.9 Saving acquisitions as a movie . . . . . . . . . . . . . . . . . . . . . . 35

2.10 Exporting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.10.1 Export to a file . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.10.2 Export to Labview . . . . . . . . . . . . . . . . . . . . . . . . 37

2.11 The analysis tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.11.1 Define the quantities you want to work with . . . . . . . . . . 37

2.11.2 The history view . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.11.3 Correlating quantities . . . . . . . . . . . . . . . . . . . . . . 40

2.11.4 The waterfall view . . . . . . . . . . . . . . . . . . . . . . . . 41

2.12 Viewer modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.13 Debug options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

sdubourg
Rectangle

2.14 Getting help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.15 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

0.1 Introduction

The OASIS system has been operational for years now. After a long development theproject has reached a state where the number of features it provides exceeds largelywhat most of its users knows about. The author felt it was time to write a usermanual explaining all the functionality of the viewer application. This document is auser manual, concentrating on the functionality of the viewer from the user’s point ofview. There are already documents available on the project’s web site about the tech-nical aspects at http://project-oasis.web.cern.ch/project-oasis/presentations.htm .There was an attempt to produce a tutorial on the viewer, but it didn’t get muchfurther than the table of contents, that however is well thought. The structure ofthis user manual follows the same principle, the basic and most often used featuresare grouped together. Advanced or less often used features are described in a sepa-rate chapter. There is a second organizational principle, features belong to differentlevels: channel, scope or application level. This makes easier to find information inthis manual.

5

6

Chapter 1

Basic features

1.1 The structure of the application

Figure 1.1: Regions in the Oasis Viewer

There are a large number of features in the viewer. These are organized ina way which makes it easily accessible by experienced users, but at the same timedoesn’t oblige occasional users to keep in head many details. Each feature is avail-able in a contextual menu right clicking with the mouse on the area where it logicallybelongs to. The same menu item is also available in the menu bar. Using the con-

7

textual menus requires some experience. In the menu bar occasional users are ableto find easily the functionality they want. Fig. 1.1 shows areas of the Oasis Viewer.In this manual we will mention only how to access functionalities in the contextualmenus, but all these menus are also available from the menu bar. Functionalitybelong to the channel, scope or application level. Right click inside a control area(marked as channel, scope or triggerer controls in Fig. 1.1 ) brings up the contextualmenus belonging to that part. There are no contextual menu for application levelfunctionality. Application level features are accessible on the tool bar and also inthe ”General” menu. Like most user friendly application the Oasis Viewer gives anexplication as a tool tip if the mouse is hoovered above some control objects.

1.2 The virtual scope concept

The Oasis Viewer application contains 3 virtual scopes at maximum. It is importantto understand that a virtual scope is different from a physical scope. A virtualscope can group together signals from several physical scopes even with differentcharacteristics. Virtual scopes intend to bring signals together which can be relatedsomehow from the operational point of view. These signals don’t need to be onthe same physical scope, nor these scopes have to be at the same place. Signalskilometers away can be displayed on the same virtual scope, this gives a greatflexibility to the system.

1.3 Connecting disconnecting and replacing a sig-

nal

The signals can be connected to the viewer with the connection dialog, see Fig.(1.3).There are a large number of signals available in the Oasis system. These are or-ganized in hierarchies. First the machine has to be selected, then a machine part.Typical categories are injection, ejection, RF, diagnostics, etc. Then a machine sub-

Figure 1.2: Connect on disconnect buttons on the tool bar

8

part has to be selected, for example inside RF there can be low or high level RFcategory. These categories are usually different for each machine. After the machine,machine part, and machine subparts are selected individual signals become available.

Figure 1.3: Connection dialog

When a signal is chosen the three remainingselection lists are filled up with entries anda default one is selected for each list. Thisautomatic selection of trigger and PLS condi-tions works only if a default configuration issaved for that signal. The first list containsthe available triggers, the other two is for se-lecting a PLS line. The machine part of thePLS is unique, only one can be selected. Sev-eral PLS line can be chosen with holding theSHIFT key down while clicking on the list en-tries with the mouse. When the signal, thetrigger and the PLS conditions are selectedthe connection buttons at the tabbed pane atthe lower left corner become enabled and thesignal can be connected to one of the threescopes. The scope can be selected by the ra-dio buttons. A single left click on a connectionbutton connects the signal with the selectedconditions. Maximum 16 signals can be con-nected to one virtual scope. When a signal isconnected the button corresponding to thatchannel becomes disabled and the name ofthe signal appears on it. The buttons belong-ing to free channels are enabled and marked”FREE”. It is possible to connect a signal toan already connected channel by right click-ing on the channel and selecting the ”Replacesignal” menu item. If the selected scope hasalready a signal connected the trigger signaland the PLS line can’t be changed. There isa convenience button to set the PLS to ALLsince this is the most often used PLS line.

Signals can be searched in the hierarchy if the user can’t remember the path toit. The user can type the part of the signal’s name she remembers and the rest canbe replaced by a % character, which stands for any number of unknown character.The (underscore) stands for exactly one unknown character. The search is not

9

case sensitive. For example the search string de.BHZ7 10% will lead to the signalDE.BHZ7010-1-AS. When the user presses the enter or pushes the ’Search signal”button the machine, machine parts, etc. lists will be updated such, that they willcontain only the entries matching the search query.

The disconnection of signals is very simple. The user has to select the ”Dis-connect signal” mode either by pushing the corresponding button on the tool bar(see Fig. 1.2) or select the menu item from the ”General” menu. The disconnectionmode is indicated by a hand like cursor and also the icon on the tool bar turns tored. Then the user has to click on the signal’s name inside the channel control area.In order to prevent accidental deletion of signals the disconnection mode is canceledafter 30 seconds. A signal can be deleted also by selecting the ”Delete signal” itemfrom the channel contextual menu.

It might happen that the signal can’t be connected, because there is no hard-ware available. In this case the viewer will report a ”No free lane exception” with adetailed description why the exception occurred. It is also possible that the signalis connected but some controls at the channel or scope level are disabled, because itis connected in partial or full slave mode, for details see 1.10

1.4 Controlling the channel settings

Figure 1.4: Channel controls

There are 16 channels for each virtual scope. In the default mode, these areplaced into 4 tabs and 4 channels are visible on a tab. If a signal is connected to achannel belonging to a tab, a plug icon appears on the tab indicating the connection.

10

That is useful when the channel is not visible, because it is on a tab which is notselected. The user can see immediately there is a connection on the scope. If therewould be a connection on a hidden tab and there would be no indication of it theuser might wondered why is it not possible to change the PLS line or the trigger.The two basic channel settings are the sensitivity and the offset. Sensitivity can beselected from a pop-up menu left clicking on the sensitivity value inside a channelcontrol area. The value can be selected from a list of fixed values. The offset valuecan be changed with the offset slider by dragging it, or by opening the offset dialogclicking on the offset label.

1.5 Controlling the scope settings

Figure 1.5: Scope controls

The main scope level settings are indicated on Fig.(1.5). The settings displayedinside the scope settings area are controllable by left clicking on them , but only ifthey are enabled. In slave mode they may be disabled. The time base, the triggeredge and the trigger position are discrete values and can be selected from a list ofvalues. The trigger level and delay are floating point numbers and can be changedsimilarly to the offset. The delay have an additional control, it can be changed witha slider by dragging it. After dragging it will return to the center position. Thetrigger position can be left, center or right, indicated by the L, C, R letters. Theposition of the trigger taking into account the delay is indicated by a small T signin the draw area. The acquisition may be stopped and restarted by the red button

11

in the upper right corner. The trigger indicator led flashes each time the scope istriggered.

1.6 Selecting a trigger signal and controlling trig-

ger related settings

Figure 1.6: Trigger controls

There are many trigger signals available. These are distributed to each physicalscope through a multiplexer. The user can select the trigger by left clicking on thetrigger signal name button showed on Fig.(1.6). The trigger might be delayed bytwo counters. The two counters are connected in series. The train for each counteris selectable from a list of trains. With the use of the counters it is possible tosynchronize signals with a high precision. The effect of the counters is similar to thescope delay. While the scope delay is limited by the amount of available memory,delaying the trigger is limited only by the counter value, which is large enough formost practical use, 65535. The counters use trains, which allows synchronizationwith the machine. For example with the counters it it easy to delay the trigger byexactly one turn.

12

Figure 1.7: PLS dialog

1.7 Changing the PLS

When a signal is connected the PLS line becomes determined, but it is possible tochange it later by the PLS button on the tool bar. It opens the PLS dialog showedon Fig.(1.7). The user can change the PLS line for any scope, by selecting the scopefirst with the radio buttons, then the machine and the user from the lists. The userlist allows multiple selection by holding down the Ctrl key while clicking on the listentries. The current selection is showed in the PLS field as a string for each scope.The format is MACHINE:USER1+USER2+.... .

In the upper part of the PLS dialog for each scope there are two buttons forcopying the PLS condition to the other two scopes. There are two conveniencebuttons available to select and deselect all users.

13

1.7.1 PLS options

If only a single PLS user is selected for a scope, it is possible to define the PLScondition more precisely by the PLS options. Clicking on the ”Options” button fora scope the dialog showed on Fig.(1.8) will open. By default the scope will trigger oneach cycle matching the PLS condition. There can be more than one instances of thesame user in the super cycle and it is necessary to distinguish between the instances.With the PLS options it is possible to specify which instance of a given user lineshould trigger the scope. By default the scope will trigger on all instances. Whenthe ”All cycles” check box is deselected the ”Cycle tag” spinner becomes enabledand the occurrence of the USER line can be specified. When the ”Spare” check boxis selected the scope will trigger not on the normal occurrence of the cycle, but onthe spare one.

Figure 1.8: PLS options dialog

1.8 PLS indicator line and its meaning

Figure 1.9: PLS indicator line showing two different cycle tags

14

When a physical scope is triggered a cycle tag information is attached to thetrace data. This cycle tag contains the PLS machine, the PLS line, the basic periodin the super cycle when the trigger occurred and also if it was a normal cycle ora spare one. All this information it displayed at the left upper corner inside thescope’s draw area. The format is MACHINE:USER (BP), where BP is the basicperiod. If the PLS label is white it means the cycle was a normal one, if it is yellowit was a spare one. Since a virtual scope can have connections from several physicalscopes, it is possible that the cycle tag for one or more signals are different. Thereforthere are at maximum 4 PLS indicator label available in the Oasis Viewer for eachvirtual scope. In theory there can be as many cycle tags as the number of channels,but in practice 4 PLS indicator is enough. Fig.(1.9) shows a case when a signal fromthe AD machine and a signal from the PS are connected to the same virtual scope.The PLS label shows that the trigger occurred when the MTG executed the userADE:NORMAL during the basic period 11, which is the same moment when theMTG executed the user CPS:AD during the basic period 19 in the CPS super cycle.

1.9 Connecting, disconnecting and saving global

settings

Figure 1.10: Connect, disconnect and save global buttons on the tool bar.

The first three icons on the tool bar are related to global configurations. Thefirst one opens the global connection dialog box, the second disconnects all connec-tions on all scopes and the third one opens a dialog for saving a global configuration.Fig.(1.11) shows the global connection dialog, it is rather self explaining. For eachmachine there is a list of global configurations. When one is selected a preview willappear for the three scopes. These are the last acquisitions before the global wassaved. It helps to identify a global easily, but may serve also as a reference. Thenames of the signals appear next to the preview with the same color as the signal.

15

Figure 1.11: The global connection di-alog

There is a possibility to search a global.Unlike in the case of single signal connec-tion dialog, here the search string is in-terpreted literally, the % and characterscan not be used to replace unknown char-acters at the moment. When the searchphrase is found the selection in the list ofglobals jumps to the first occurence of thesearch phrase, then to the next, finally itwraps around and starts from the begining.The connect button connects the global,the delete button deletes it, not very sur-prising. It is possible to connect the globalpartially. For example the user wants toconnect the first scope configuration in agiven global to the the second scope. Shehas to left click onto the preview image ofthe first scope in the global connection dia-log. The cursor will change to a hand sign,then she has to click on the draw area of thescope she wants the signals to be connectedto. The cursor will change back to thestandard look. This mechanism might bereplaced with the standard drag and dropmethod in the future. Fig.(1.12) shows the”Save Global” dialog. It can be opened byclicking on the third icon in the tool bar. Before saving the global setting a namehas to be written in the text field at the middle. Saving a global configuration isonly possible if every connected signal has already an acquisition. A descriptionshould be given it the text area below, it helps other users later.

1.10 Full and partial slave modes and automatic

disconnection of signals

Oasis is a distributed system with many users accessing it at the same time. Thehardware resources are limited, there is a given number of scope cards. It can happenthat different users want to observe signals which require the same hardware. Thefull and partial slave modes have been included into OASIS in order to obtain abetter use of the hardware.

16

Figure 1.12: The ”Save Global” dialog

When a given scope card has already a connection all the scope level propertiesare set. If an other user needs the same hardware she can’t change the scope levelsettings, her virtual scope in the Oasis Viewer will be in partial slave mode. It ispartial, because she still has control of the channel level properties.

When a scope card has many connections it might have no free channels and ifa second user ask a connection of an already connected signal, the channel propertieswill be disabled on the second user’s virtual scope. This is called full slave mode.

Oasis clients can have different priorities, computers in the CCC have thehighest priority. If a user want to connect a signal from the CCC it might causea user with lower priority been disconnected. In this case the disconnected user isnotified by a message dialog.

In order to avoid unnecessary reservation of hardware the connections areremoved after 4 hours by default. This feature is specially useful when a viewer isleft open with connections in a local control room and a similar set of signal has tobe observed in the CCC. The time counter is reset each time the viewer detects someuser activity. This activity detection feature has been implemented at the requestof the operation, because during night shifts it is not exceptional that somebodyworking longer than 4 hours with the same set of signals. The default behavior canbe changed by adding additional 4 hours or disabling completely the disconnectionmechanism. Right clicking on the channel control area the channel contextual pop-

17

up menu appears. Under the menu ”Time to live” the user can see the remainingtime, add additional 4 hours or select the signal to live indefinitely.

1.11 Rulers and scales, measuring amplitudes and

intervals

Figure 1.13: A scope with scales and rulers displayed.

The user can calculate the amplitude of signals from the sensitivity of thechannels, but it is far more convenient to measure it using the rulers. Vertical rulersbelong to a channel. At any time only one pair of vertical rulers can be displayedby selecting the ”Show vertical ruler” item from the channel contextual menu. Therulers appear always in pair, because often the difference between some parts of thesignal is interesting. The horizontal pair of rulers belong to the scope because thetime it measures is common for all signals. It can be displayed by selecting the”Show horizontal ruler” from the scope contextual menu. At the top of the drawarea the difference for the horizontal and the vertical pair of rulers are displayed.The value of any individual ruler is displayed close to its actual position.

Scales can be put onto the vertical and horizontal axes. Similarly to the rulersthe vertical scale belongs to one signal and the horizontal scale is valid for all. Thechannel belonging to the vertical rulers can be identified by the channel numberon the rulers. There is place only for one digit, so the number is displayed inhexadecimal format, which is the same up to 9 and after continues with A, B.. Fletters. The vertical scale has the same color as the channel it belongs to. Changingthe channel which the scale or the ruler belongs to is easy, it is enough to select

18

”Show vertical ruler” or ”Show vertical scale” on the contextual menu of the newchannel.

The time difference between the horizontal rulers is displayed on the top ofthe scope draw area marked as dH, similarly the amplitude difference between thevertical rulers is also displayed and marked as dV.

1.12 Loading and saving channel settings

Figure 1.14: The load signal configuration dialog

Individual signals can have different configurations saved in Oasis, not onlyglobals. The same physical element can have different use, for example a kicker canhave different settings for different cycles. In these cases it is useful to have prede-fined settings saved to signals. Configurations can be loaded by the dialog showedon Fig.(1.14). It appears when the user select the ”Load signal config” item fromthe channel contextual menu. The list on the left side shows all available config-urations. The right hand side list shows all the settings belonging to the selectedconfiguration in the left list. The plot at the bottom shows the last acquisition of

19

the channel before the configuration was saved. The user can delete an outdatedconfiguration with the delete button.

Fig.(1.15) shows the ”Save signal settings” dialog. It can be accessed from thechannel contextual menu by selecting the ”Save signal config” item. The list containsall the names of the already existing settings. The name of the configuration hasto be given in the text area. At least one acquisition must arrive before the systemallows a configuration be saved, if not an error message is given.

There is one default setting, which can be saved directly from the contextualmenu by selecting the ”Save config as default”. The ”Save signal settings” dialogdoes not open when a default setting is saved. It is a good practice to save a defaultsetting, it reduces the number of clicks at single signal connection. In the signalconnection dialog the trigger signal and the PLS settings are automatically selectedwhen there is a default for the signal.

Figure 1.15: The save signal configuration dialog

1.13 Copying scope and channel settings

Some times it is useful to have the same settings on several channels or severalscopes. Changing each property one by one would be a long process. The scope andchannel copy features are provided to help in that case. The settings copy dialogbutton is available on the tool bar or from the ”General” menu. There are twotabs in the dialog, see Fig.(1.16) . One source scope has to be selected and oneor more destination scope is allowed. There are two lists, the left one contains allthe properties of the source scope and the right one is initially empty. The user

20

Figure 1.16: The scope and channel settings copy tabs

can put all those properties in the right list which she would like to copy from thesource scope to all the destination scopes. Both lists allow multiple properties tobe selected by holding the Ctrl key. The button with the > sign copies the selectedproperties to the right list and the button with the < sign removes them. The buttonwith the >> sign copies all properties to the right list and the button with the <<

sign removes all. The ”Copy” button initiates the copy.

Fig.(1.16) shows the channel copy tab. The combo box at the left side containsthe list of all connected channels. The source channel has to be chosen. At the upperright side the destination list contains also all connected channels. Any number ofchannels can be selected. The lower left list contains all the source channel propertiesand the lower right list is initially empty. The user can put all those properties inthe lower right list which she would like to copy from the source channel to all thedestination channels. Both lists allow multiple properties to be selected by holdingthe Ctrl key.

1.14 Zooming

Multi level zoom is available by the two small buttons in the right upper corner ofthe draw area. The zoom out button initially disabled. The zoom can be initiated

21

Figure 1.17: Zooming in action

by clicking on the zoom in button. The zoom window can be selected by pressingand holding the left mouse button while dragging it. The actual zoom window isindicated by a dashed yellow rectangle. The zoom window selection ends when theleft mouse button is released. The zoom in can be repeated any number of times.The only limitation is the capability of the hardware. When the hardware limitationis reached the dashed yellow rectangle can’t be set smaller than that limit. Whenthe scope is in a zoomed in state the zoom out button is enabled. Clicking on thezoom out button sets the previous zoom window. The time base and the sensibilityare recalculated according to the zoom.

1.15 Other basic features related to a channel

1.15.1 Temporary storage of a trace

Sometimes the user wants to compare the current acquisition with a previous one.Any acquisition can be stored selecting the ”Store trace” item from the channelcontextual menu by right clicking inside the channel area. The stored trace willappear with white color and with a sign Mx next to it, where x is the channelnumber. The temporary storage of traces is not exclusive, there can be as manytemporary trace as channels. The temporary traces are stored in the viewer memoryand will be lost if the user exits the application. The temporary trace can be removedby the ”Remove stored trace” from the channel contextual menu.

22

Figure 1.18: Temporary and reference traces

1.15.2 Display a reference for a trace

The reference trace is different from the temporary trace, it is stored permanently.The reference trace is stored when a default signal configuration is stored. For savinga default setting of a signal see 1.12. The reference trace has the same color as thesignal. It can be distinguished by the sign Rx next to it, where x is the channelnumber. The reference trace can be removed by selecting the ”Hide reference trace”item from the contextual menu.

1.15.3 Exporting trace data to the clipboard

The trace data can be copied to the clipboard in a text format. This functionality isavailable in the channel’s contextual menu by selecting the ”Copy trace to clipboard”item. The data is one line in text format and data points are separated by comas.The first entry in the line is the name of the signal. The data can be copied intoany text editor or any other application having a paste command for text.

1.15.4 Swapping signals

Sometimes it is useful to rearrange the signals between different scopes. Oasis givesthe possibility to drag and drop signals between virtual scopes or signals on the samevirtual scope. It is the standard drag and drop mechanism provided by Java. Thechange in the mouse pointer icon indicates the valid drop places, in this case channelareas. If a signal is dropped onto a channel where there is already a signal connectedthe two signals will be swapped. A signal can be dropped on a free channel too. In

23

some rare cases it might happen the user want to swap signals on the same scope,but the signals are on different tabs. Since only one tab is visible this is not possibledirectly in the default mode, but the user can change to 16 channel viewer mode,see 2.12 . If the Ctrl key is held during the drag the source signal will be copied tothe destination channel instead of being swapped.

1.16 Other scope level features

1.16.1 Signal preview

When a signal is connected the default channel and scope parameters may not givethe best view of the signal. The user often needs to change many parameters. If thescope is triggered rarely, lets say once in a super cycle in the PS or in each AD cyclewhich is about 1 minute long, the user would had to wait a lot to see the effect ofher changes. In order to avoid that rather inconvenient behavior the Oasis Viewercalculates a preview of the scope or channel parameter changes. There is a previewfor the change of sensibility, timebase, offset, delay and trigger position.

1.17 Other application level features

Figure 1.19: The freeze-unfreeze and show-hide scope buttons on the tool bar

1.17.1 Freeze all

All scopes can be stopped at the same time with the freeze/unfreeze button on thetool bar showed on Fig.(1.19). This icon is a toggle button with two states. Eachstate is indicated with an icon. When the traffic light icon is red it means a useraction will put OFF all scopes. If the traffic light icon is green it means a user’saction will put ON all scopes which have signal connections. The states of the

24

individual scopes are indicated by the ON/OFF buttons in the upper right cornerof the trigger control area.

1.17.2 Show and hide scopes

The size of the Oasis Viewer can be reduced by hiding the scopes not having con-nections in order to save some space on the screen. The show-hide panel on thetool bar is shown on Fig.(1.19). It has tree toggle buttons corresponding to the treescopes. When the user clicks on one of those buttons the corresponding scope willbe hidden and the button becomes gray. At the second click the scope becomesvisible and the button becomes green. At least one scope is always visible, it is notpossible to hide all of them. This button is only available in 3x4 mode, for detailssee 2.12 .

1.17.3 Reporting a bug

Figure 1.20: The bug report dialog

The bug report window is accessible from the help menu by selecting the ”Bugreport” item. The report will be sent to the Oasis support mailing list. Afterevaluation the problem will be registered in the OASIS repository of the JIRA issuetracking system. It is a good practice to describe the problem accurately and giveyour name, the person who will work on the solution might need more information.

1.17.4 The status bar

The status bar is located at the bottom of the application window. It reportsmessages and errors to the user. It is the standard CO component with somecustomization. A click on the arrow opens the console window for a detailed viewof the message. The second click on the arrow hides the console. Also the console

25

Figure 1.21: The status bar

window has an additional ”Report” button. If the user pushes it the bug reportdialog appears already containing the messages in the console.

26

Chapter 2

Advanced features

2.1 Channel acquisition modes

Channels have several modes of operation belonging to two groups: normal and peakdetection modes. The main difference between the peak detection and the normalmodes is the sampling rate. In normal modes the sampling rate is determined bythe timebase and the number of points (see channel options, 2.3). In peak detectionmodes the sampling rate is set to the maximum allowed by the hardware and thenumber of samples taken by the hardware is usually much higher than the numberof points set in the channel options. In normal modes the number of samples takenby the hardware is the same as the number of points for the channel. The channelacquisition mode can be set in the channel contextual menu by selecting one of themodes in the ”Channel acquisition mode” menu. The default mode is ”Normal”.

2.1.1 Normal modes

The default one simply called ”Normal”. The trace in this mode is represented bya 16 bit array. The length of the array is determined by the ”number of points” inthe channel options. The number of samples taken by the hardware is the same asthe length of the array.

In the ”Normal minimum” mode subsequent acquisitions are compared andfor each data point in the data array the smallest one is kept and displayed, fromthe moment the user selected this mode. This comparison process can be reset orrestarted by changing the channel acquisition mode to anything else and comingback to this mode.

In the ”Normal maximum” mode the procedure is similar, but instead of the

27

minimum the maximum value is kept and displayed.

In the ”Normal average” mode subsequent acquisitions are averaged and dis-played from the moment the user selected this mode.

2.1.2 Peak detection modes

Figure 2.1: The peak detection trace

Peak detection modes as the name suggest are mostly used to detect peaks ina signal. When there is a narrow peak compared to the timebase in the signal itmight be not easy to find where it is. The Oasis Viewer can display 350 pixels inthe default mode. Let’s assume the number of points for the channel is the same. Ifthe ratio between the timebase and the width of the peak is more than 350 the peakmay be not visible on the screen. In peak detection modes this number is muchhigher, because it is not the number of pixels on the screen are important but thenumber of samples taken by the hardware during the duration corresponding to thetimebase. In peak detection modes the number of samples is the highest possibleallowed by the hardware. Let’s see an example. The timebase is 1 ms. In normalmode peaks narrower than 1 ms /350 = 2.85 µs might be not visible on the screen.Let’s assume the scope card is able to sample at 100 Mega samples/s. If the card hasenough memory to store it, during 1 ms it can take 100000 samples. The narrowestvisible peak is now 1 ms /100000 =10 ns. There is 100000/350 = 285 samples foreach pixel. There is an important question here. Which 350 data points are sent tothe Oasis Viewer from the 100000 samples ? It depends which peak detection modethe user has chosen. There are 3 peak detection modes.

In ”Peak detection maximum” the highest value is chosen from each 285 con-secutive samples and in the ”Peak detection minimum” the smallest. The third

28

mode is simply called ”Peak detection”. In this case both the highest and lowestvalue are selected from each 285 consecutive samples. This implies tha data arrayis two dimensional and also the graphical representation of the trace must be alsodifferent. The trace represents an envelope in which all samples are included. Theupper and lower limits are drawn with the color of the trace and the interior be-tween is filled with a half transparent version of the same color. Fig.(2.1) shows anexample.

The peak detection mode may be not available for some hardware.

2.2 Surveillance

Figure 2.2: Signal under surveillance

Oasis signals can be put under surveillance. This feature is useful when theuser wants to observe rarely occurring problems. Using the surveillance setup dialogshown on Fig.(2.3) an envelope can be defined around the signal as is it shown onFig.(2.2). When an acquisition is outside the envelope the user will be notified.The setup dialog is accessible from the channel contextual menu by selecting the”Surveillance” item. The user can put an upper limit or a lower limit or bothfor a signal by selecting the check boxes. The spinners determine the distance ofthe limits from the signal. The distances are in pixels. The distances are neithervertical or horizontal, but a mixture of the two. A vertical distance would work wellfor amplitude but would not give any space for time jitters. On the other hand ahorizontal distance would not give any space for amplitude difference. The algorithmused to define the envelope is like rolling a circle on the upper or lower surface of thesignal and drawing the center points of the circles. The distances are the radiuses

29

of the circles. The starting and end points on the time axis can be defined by thesliders. The user can select the type of action when the signal goes out of the limitby the check boxes at the lower part of the dialog. The surveillance can be putON/OFF by selecting the ”Alarm on” check box. When an alarm happens a dialogpops up and give the time of the alarm as it is shown on Fig.(2.4). If the ”Freeze”check box is selected the acquisition will be stopped after an alarm. The ”Beep”check box selected will make the Oasis Viewer produce a beep when the signal isout of the envelope. The ”Load reference” button will take the last acquisition as areference for the envelope calculation, the envelop will be recalculated each time itis pushed.

Figure 2.3: Dialog for the surveillance setup

Figure 2.4: Surveillance alarm message

2.3 Channel options

The options dialog for a channel shown on Fig.(2.5) can be opened by selectingthe ”Channel options” item from channel contextual menu. The number of pointswheel switch allows to set the number of samples coming from the hardware. Thedefault value is 500. There is no point to put this value high, since the numberof pixels in the default mode is less than that, it would increase only the network

30

Figure 2.5: The channel options dialog

load. The maximum value for the number of points depends on the hardware andthe timebase.

If the number of points is small the trace is not smooth anymore due to thesampling. It is useful to know which points in the trace are real samples and whichpoints are interpolated. If the distance between samples in pixels in the draw areais biger than 5 dots are drawn on the trace in order to indicate the location of thesamples, see Fig.(2.6). This distance is fixed at the moment.

Figure 2.6: Dots on the trace correspond to samples

The channel coupling combo box allows the selection of the input coupling forthe channel. It is typically a combination of fixed input impedance, which dependson the signal and the type of coupling which might be chosen freely if the hardwareallows, which are DC or AC.

31

If the hardware allows to change the bandwith of the channel it can be set bythe ”Channel bandwidth” combo box.

There are five lines of information given in the dialog, these can’t be changed,they are characteristics of the signal.

1. Unit: In Oasis signals might have other units than Volts.

2. Inverted : Boolean value telling if the signal is inverted or not.

3. Offset: This can be seen as a systematic hardware error, declared in thedatabase. The system takes this value into account, so the user can ignoreit. The displayed signal is equal to the input signal plus this offset. Please notconfuse it with the channel property ”offset” which can be changed.

4. Scaling factor: As the name suggests it is a scaling factor. The displayed signalis equal the input signal amplitude multiplied by this factor.

5. Expression: This is for virtual signals, see 2.4

2.4 Virtual signals

Virtual signals are some combination of data from one or more physical signals.One example when this is useful is the pickup signals. For the user it is moreinteresting to know the beam position in millimeters at a given pickup locationthan seeing the sum and difference pickup signals and calculating the position by acalculator, taking into account a scaling factor for each pickup. Using virtual signals,data taken from several channels can be combined by mathematical expressions.These expressions are in the database and cannot be changed. The expressionbehind a virtual signal can be seen in the channel options dialog. If a virtualsignal is connected to a channel the ”Configure virtual signal” item in the channel’scontextual menu becomes enabled. It allows to open a scope window with all theparent signals connected. The parent signals are the signals which a virtual signalis derived from. The parent signals can be physical or virtual. Parent signals canhave parents too, there can be a whole hierarchy of signals in a tree structure.

2.5 Special ways to change the offset

The Oasis Viewer provides special ways to change the channel’s offset tailored for theneeds of operation. Sometimes the user wants to change the offset in such a way that

32

some part of the signal is visible only. This can be done of course with the standardway, but it may takes many iterations before the desired setting is obtained and witha slow trigger rate that takes time. One example for this when the operator wantsto see how much a kicker signal amplitude fluctuates. In order to measure that shewants to see only the plateau of the kicker signal. For precision the sensitivity has tobe high and the offset has to be accurately set to see the plateau. The user can tellto the Oasis Viewer to put the offset slider to the maximum amplitude of the signal.Then when the sensitivity is increased the offset is recalculated that the offset sliderand the signal maximum stay at the same place after the sensitivity change. Thisspecial mode can be selected by right clicking on the offset slider and selecting the”Put slider at signal maximum” item. Selecting the ”Put slider at signal minimum”item the behavior is similar but the signal minimum stays at the same place. Thedefault behavior can be set by selecting the ”Put slider to ground level”. There is afourth item for convenience, ”Set offset to zero”, which is self explaining enough.

2.6 Mountain range mode

Figure 2.7: The scope in mountain range mode

The Oasis Viewer allows mountain range views of consecutive acquisitions.Fig.2.7 shows an example. Consecutive acquisitions are stored in a 2D circular bufferand displayed in the drawing area. The number of traces displayed is increasinguntil it is equal to the number given in the mountain range options tab in the scopeoptions dialog shown in Fig. 2.8, then the oldest trace goes out from the bufferand all others are shifted back by one to make place for the new acquisition. Theseparation between the traces can be adjusted by the spinners called ”x increment”and ” y increment”. These values can go negative or can be disabled by removing

33

Figure 2.8: The mountain range options tab in the scope options dialog

selection of the check boxes next to them. Positive x increment makes the tracesdisplaced towards the right direction and positive y increments make it displacedtowards the bottom of the draw area. The number of traces and number of triggerscan be adjusted by the user. If the number of triggers is bigger than 1, acquisitionsarrive grouped. For example if the number of triggers is 50, 50 acquisition willarrive at the same time. The number of traces must be at least as big as the numberof triggers. The maximum number of traces is set to 1000, which is an arbitrarynumber. Too many traces can’t be distinguished on the screen, but for generatinganimated gif files (see. 2.9 ) it might be useful to have this limit large.

2.7 Scrolling mode

The scrolling mode can be selected from the scope contextual menu under the ”Setscope mode” sub menu. The scrolling mode of the scope is used when a slow signalhas to be observed continuously, like the main magnetic field for a super cycle.In scrolling mode the trigger signal is a special one called OASIS.SCROLL, it hasa given repetition rate. This mode is available only for signals in the PS complex,because the scrolling trigger signal is distributed only in the PS complex. In scrollingmode the data comes regularly in smaller pieces. The data is stored in a 1D circularbuffer. The first piece of data is drawn at the left side of the draw area, then eachnew piece of data is concatenated to it from the right side until it fills up the width ofthe draw area. Then when a new piece of data arrives the oldest piece is overwrittenin the circular buffer by the newest piece and the pointer marking the start of datain the buffer is moved by the length of data pieces. Visually this corresponds to ascrolling towards the left. The time base can be changed in csrolling mode too, inorder to allow different scrolling rates.

34

2.8 Trigger options

Figure 2.9: The trigger options tab in the scope options dialog

In the scope options dialog the second tab is for the trigger signal. It is shownon Fig.(2.9). The upper combo box allows to set the trigger signal coupling. This istypically composed of two parts like the channel coupling option, input impedanceand DC or AC coupling. The second combo box allows to set the trigger mode,which can be ”Normal’ or ”Single shot”, if the hardware supports it. The ”Normal”is the default one, each time a trigger arrives satisfying the conditions like triggerlevel and edge, the scope is triggered. In ”Single shot” mode as the name suggestsonly the first arrival of the trigger signal will make the scope trigger. At the bottomof the dialog the type of the trigger source is given, it can be external or internaltrigger. If the trigger is internal the number of the channel is given, on which thescope is triggered.

2.9 Saving acquisitions as a movie

Figure 2.10: Dialog asking for the delay between gif frames

The mountain range mode gives a possibility to observe the evolution of asignal in a larger time scale, but in some cases with a large number of traces thedisplay might look messy. The Oasis Viewer allows to save a mountain range trace

35

Figure 2.11: Gif encoding progress bar

as an animated gif file. It can be viewed later as a movie with any software capablehandling a gif file. A typical use is to observe instabilities. The ”Save animatedgif” item in the channel contextual menu brings up a file selection dialog to give thelocation and name of the gif file. The name have to be given with the extension, like”instability.gif”. Then a dialog will appear asking for the delay between the framesin milliseconds, the default value is 100 ms. Finally a progress bar will appearindicating the encoding progress. For a large number of traces this can take sometime.

2.10 Exporting data

2.10.1 Export to a file

Figure 2.12: Format choice dialog for exporting data

The last acquisition of all channels of a scope can be exported into a textfile. The data format can be chosen by the user, it might be the raw data format,which is short integers, or it can be real numbers. If the raw format is selected someinformation is lost, because it tells only how the data is displayed on the scope, butthe user can’t determine later what was the sensitivity and offset of the channels.On the other hand if the data is saved in a real number format, the sensitivity andoffset is already taken into account. The feature is available in the scope menuunder the Export sub menu only and not from the scope contextual menu, this willbe corrected later. When the ”Export last acquisition as CSV” item is selected the

36

dialog on Fig.(2.12) will appear. The ”Export” button is initially disabled. Firstthe user have to select a file in which the data will be saved by pressing the ”Choosefile” button. A file selection dialog will appear. When the user selected an outputfile the ”Export” button is enabled. With the radio buttons she can select the dataformat. Pressing the ”Export” button will actually save the file. The format of thetext file is the following. The first line contains the name of the signal. Each datapoints are in separate lines. The first number in the line is the time, the second isthe amplitude. If the data array contains more than one trace, there can be morenumbers in a line separated by comas. This is the case for a trace in peak detectionmode, or a trace in mountain range mode if the number of triggers is bigger thanone. It doesn’t matter the number of traces for a mountain range mode trace, thedimension of the data array coming from the server is determined by the number oftriggers given in the scope option dialog, see 2.8.

2.10.2 Export to Labview

Oasis allows also to export data toward a labview server. Labview clients can connectto that server. This functionality is available in the scope menu in the menu barunder the Export sub menu. When the check box is selected the data is transferedcontinuously to the Labview server each time new data arrives .

2.11 The analysis tools

The analysis features are available in the dialog showed on Fig. 2.13. There arethree analysis features at the moment: correlation, history and waterfall views. Thedialog has four tabs. The first tab serves to define quantities for the correlation andhistory views, the waterfall view works directly with the signals. The dialog can beopened from the tool bar with the rightmost button. It is enabled only when atleast one scope has a connection.

The screen shots showing the analysis tools were taken during the shut down,when only some test signal were available. Don’t be surprised if the name and formof the signals are not the familiar ones.

2.11.1 Define the quantities you want to work with

The correlation and history views are working with numbers and analog signals arerepresented by an array of numbers. In order to correlate signals or create a historyview the user has to define how a single number is obtained from an analog signal.

37

Figure 2.13: The quantity definition tab of the analysis dialog

At the moment there are two ways to do that. The user can define a place onthe time axis and the amplitude of the signal at that time is taken each time anacquisition arrives. For example a point on the plateau of the kicker signal reflectswell the strength of the kicker. The second way to generate a single number from asignal is to take the amplitude difference between two points.

In order to define a quantity from an analog signal first the user has to selectthe scope by the radio buttons, see Fig. 2.13. The ”Connected signals” list is filledup when a scope radio button is selected. Then one of the signal has to be selectedfrom the list. When a signal is selected one or two sliders will appear in the drawarea with the same color as the signal trace have, see Fig. 2.14. If the ”Interval”check box is selected two sliders will appear, because in order to define a difference inamplitude on the signal two place on the time scale has to be given. The name of thesignal is written next to the slider(s). The user now has to drag the slider(s) to thepoint(s) where she wants the amplitude of the signal or the difference between theamplitudes to be taken. Then she can push the ”Add new analog quantity” buttonand a dialog box will appear asking for a name and description for the quantity.The name is obligatory, the description is optional. After pushing the ”Ok” button,

38

Figure 2.14: The horizontal green sliders define where the amplitudes of the signalare taken.

the new quantity will appear in the ”Defined quantities” list and can be used forthe history or the correlation views. When a quantity is selected in the ”Definedquantities” list a description will be given in the ”Quantity description” text field.It gives information about the details, like the name of the signal was used to defineit and what was the position on the time axis and is it an amplitude or a differenceof amplitudes.

Sometimes is it useful to correlate a quantity derived from an analog signalwith a numerical value obtained from the controls system, like an AQN propertyof some device. The ”Add new digital quantity” button opens the standard ASCdevice selector dialog, which allows the user to select devices and properties.

The ”Delete quantity” button removes an already defined quantity from the”Defined quantities” list.

2.11.2 The history view

Once the user defined at least one quantity, she can observe its evolution in thehistory tab showed on Fig. 2.15. A quantity from the list on the left side has tobe selected. Each time an acquisition arrives a data point will be added to thehistory plot. When the number of points is bigger than the number given in the”Nb. of points” text field the plot start to scroll. The selection of a quantity fromthe list deletes the existing points from the history plot. Selecting or deselecting the”Observe” check box starts or stops the addition of new data points to the plot.

39

Figure 2.15: The history tab in the analysis dialog

2.11.3 Correlating quantities

Sometimes it is useful to correlate signals. Imagine the following situation. Youobserve a fluctuating intensity on the ejection transformer and you suspect it is dueto the ejection kicker, which might have a not very stable plateau. You can definean analog quantity at the plateau of the kicker and a digital quantity which is justthe AQN of the ejection transformer. You put these two on the correlation plot andsee the if they are related. If you see a plot like the one shown on Fig. 2.16, whichlooks like some random scattering, it means the two quantities are not related. Ifthe quantities have some correlation the points will have a tendency to lie on a line.

In order to correlate quantities two items have to be selected from the list onthe left side by holding down the Ctrl button while clicking on them with the mouse.Like in the history view the number of points can be given in a text field and theaddition of new points can be started or stopped by the ”Observe” check box.

40

Figure 2.16: The correlation tab in the analysis dialog

2.11.4 The waterfall view

The waterfall view is similar to the mountain range view in the sense that both serveto observe the long term evolution of a signal by adding an additional dimension tothe display, but the waterfall view encodes the amplitudes as colors. The waterfallview works directly with a signal and not with a quantity derived from it as thehistory and correlation views. The signal can be selected from the left side list,which contains all the connected signals to all 3 scopes. When a signal is selectedthe already accumulated acquisitions are deleted from the plot. The coloring of thedisplay can be changed by the ”Color exponent” slider at the lower left corner. Itis often necessary to adjust it in order to clearly distinguish the interesting part ofthe signal. Fig. 2.17 shows an example from the AD operation, when it was used todetect a supposed time jitter in the ejected bunch (there was no significant jitter).

41

Figure 2.17: The waterfall tab in the analysis dialog

2.12 Viewer modes

The Oasis Viewer has 3 scopes and each scopes has 16 channels. In the default modeall 3 scopes are visible. The Oasis system is foreseen to handle not only signal datafrom scope cards, but it should allow to display data from other type of hardware,like the ADCs or calculated data evolving in time. In operation often many signalsare observed at the same time. In these cases the display area can become crowded,it might be better to have only one scope visible, but with a bigger display area. Theviewer has 2 additional display modes, when 8 or 16 channel controls are availableat the same time and the display area is bigger. These modes can be selected fromthe ”General” menu. Fig. 2.18 shows the mode when 8 channels are available ona tab and Fig. 2.19 shows the mode when 16 channels are available. The modescan be changed with signals connected to the scopes. In these additional modes theshow/hide scope button on the tool bar is disabled.

42

Figure 2.18: The viewer in 8 channel mode

2.13 Debug options

Every not trivial software has bugs. Oasis has a built in logging facility based on alibrary called log4j to find them more easily. Many part of the code has logging, butduring normal usage these logging lines don’t produce any output. When a problemoccurs some logging output can be very helpful for the developers to identify theproblem. The dialog showed on Fig. 2.20 allows to set the logging level for eachclass having logging instructions. It can be opened from the ”General” menu byselecting the ”Show debug options” item. It contains a list of classes at the left sideand the corresponding combo boxes at the right side. The ”Debug” item is a goodchoice to get more info in case of problem.

43

Figure 2.19: The viewer in 16 channel mode

2.14 Getting help

In the ”Help” menu the user can open a web browser showing the Oasis project website by selecting the ”Oasis web site” item. The ”Oasis user manual” item brigs upthe latest version of this document. The ”About” item gives information about theversion numbers of the viewer and all the libraries it uses. The ”Bug report” itembrings up the same bug report dialog which is described in 1.17.3.

44

Figure 2.20: The debug options dialog

2.15 Acknowledgments

I would like to thank Claude-Henri Sicard and Stephane Deghaye for reading throughthis document and giving useful suggestions.

45