Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Data Acquisition with EUDAQ |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Data Acquisition with EUDAQ | ||||||||
Line: 6 to 6 | ||||||||
See EUDAQ official pages for more information and installation instructions. Online documentation is available here. | ||||||||
Changed: | ||||||||
< < | Important points for running | |||||||
> > | Important Points for Running EUDAQImportant points for running EUDAQ (as experienced by user). | |||||||
Open ports | ||||||||
Line: 18 to 20 | ||||||||
>sudo ipfw list this lists all port commands | ||||||||
Changed: | ||||||||
< < | =>sudo ipfw add 44000 allow tcp from any to any dat-port 44000 = this opens port 44000 | |||||||
> > | =>sudo ipfw add 44000 allow tcp from any to any dst-port 44000 = this opens port 44000 | |||||||
Port commands will need to be issued at each session. | ||||||||
Added: | ||||||||
> > | Running EUDAQMake sure order is correct (kill all running eu programs)):>cd /YOURPATH/eudaq/bin this is the directory whee all executables should be opened
>./euRun.exe & opens Run Control window (NB ampersand)
>./euLog.exe & opens Run Log window (NB ampersand)
Now you can run Data Collector/Producer programs. E.g.
>./TestDataCollector & this allows configuration
Device Configuration DataConfiguration information can be added as a header section to the dat files. This can then be retrieved later in analysis (using EUTelescope). For example, when using the RCE system, the parameters from the EUDAQ config file are sent toRceOfflineProducer.cc where they are parsed in the OnConfigure function. The offline producer then configures the frontends.
The plugin (APIX-CT-ConverterPlugin.cc ), used by EUTelescope, gets configured by the RceOfflineProducer in the Initialize function. The BORE function reads a bunch of tags and corresponding values on the first event and sets the configuration of the EUTelescope plugin accordingly.
The header data can be used to check event configuration as well as pass configuration settings to EUTelescope, e.g. device Nrows & Ncols.
Setting Configuration DataConfiguration files can be found in theconf EUDAQ directory i.e. /YOURPATH/eudaq/conf/ .
File can be edited to contain information about the data in the header section of the data files.
Information has the form:
[tile]
tagname = value
Retrieving Configuration DataUsing the EUTelescope plugin (e.g.$EUTELESCOPE/v00-09-02/external/eudaq/tags/v01-00-00/main/src/APIX-CT-ConverterPlugin.cc ) the information contended in the header of the data file can be retrieved.
void APIXCTConverterPlugin::Initialize(const Event & source, const Configuration & config) {
int nFrontends = from_string(source.GetTag("nFrontends"), 0); // get number of modules
m_nFrames = from_string(source.GetTag("consecutive_lvl1"), 1);
char tagname[128]; // used to hold tag name
m_feToSensorid.clear();
m_fepos.clear();
m_sensorids.clear();
m_nFeSensor.clear();
for(int i=0;i<nFrontends;i++){ // loop over modules
sprintf(tagname, "OutLink_%d", i); // set tagname
int link=from_string(source.GetTag(tagname), 0); // return value associated with tagname
...
To see all the header data add config.Print() to the Initialize function. If the function is not present in the Configuration.cc file then add a function to the file:
void Configuration::Print() const {
for (map_t::const_iterator i = m_config.begin(); i = m_config.end(); ++i) {
if (i->first = "") {
std::cout << "[" << i->first << "]\n";
}
for (section_t::const_iterator j = i->second.begin(); j = i->second.end(); ++j) {
std::cout << j->first << " = " << j->second << "\n";
}
std::cout << "\n" << std::endl;
}
}
This should give an output of all header data to the screen at the start of the jobsub convertor step when running EUTelescope analysis. It will look like:
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] >>>KGW: config values...
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] GeoID = 262
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] Name = SLAC_2014_May_UK_167x125_500x25_3000e
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] [DataCollector]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] [LogCollector]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] PrintLevel = INFO
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] SaveLevel = EXTRA
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] [Producer.MimosaNI]
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] Det = MIMOSA26
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] FPGADownload = 0
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] IDOffset = 0
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_1 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_2 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_3 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_4 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_5 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaEn_6 = 1
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_1 = 11
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_2 = 12
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_3 = 19
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_4 = 4
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_5 = 2
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] MimosaID_6 = 20
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] Mode = ZS2
10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] NiIPaddr = 172.27.104.32 | |||||||
Added: | ||||||||
> > | 10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] NiVersion = 1 | |||||||
Added: | ||||||||
> > | 10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] NumBoards = 6 | |||||||
Added: | ||||||||
> > | 10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] OneFrame = 0 | |||||||
Changed: | ||||||||
< < | Running EUdaq (make sure order is correct (kill all running eu programs)): cd /Users/kwraight/eudaq/bin ./euRun.exe & ./euLog.exe & | |||||||
> > | 10:20:32 jobsub.converter(INFO): [ VERBOSE "UNKOWN"] TriggerType = 1 | |||||||
Changed: | ||||||||
< < | config files in: /Users/kwraight/eudaq//conf/ | |||||||
> > | ... | |||||||
-- Kenneth Wraight - 2014-07-31 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
Data Acquisition with EUDAQThis page gives some details on test beam data acquisition using EUDAQ software. See EUDAQ official pages for more information and installation instructions. Online documentation is available here.Important points for runningOpen portsPorts must be opened for different parts of the software to communicate. Specifically port 44000 (Run Control)must be open in order to run the software (in addition ports 44001 (Data Collector) and 44002 (Log Collector) may be opened, see §3.1.2 of the manual for more info). To open ports on Macs with xterm (may be similar for Linux) useipfw commands (see man ipfw fro more info.):
>sudo ipfw list this lists all port commands
=>sudo ipfw add 44000 allow tcp from any to any dat-port 44000 = this opens port 44000
Port commands will need to be issued at each session.
Running EUdaq (make sure order is correct (kill all running eu programs)):
cd /Users/kwraight/eudaq/bin
./euRun.exe &
./euLog.exe &
config files in:
/Users/kwraight/eudaq//conf/
-- Kenneth Wraight - 2014-07-31
Comments |