/
baselineBeforeTarget.cc
52 lines (46 loc) · 1.58 KB
/
baselineBeforeTarget.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "main.ih"
size_t baselineBeforeTarget(string filename, string& eye2read, size_t interval4baseline)
{
cout << "Computing baseline before AUDIO target onset\n";
ifstream eyetrackingFile(eye2read);
if (!eyetrackingFile.is_open())
cout << "Unable to open " << eye2read << " \n";
else
{
ofstream outputfile;
string otherBitFilename = "averageBeforeTarget" +
to_string(interval4baseline) + ".asc";
filename.append(otherBitFilename);
outputfile.open(filename);
outputfile << "pp" << '\t' << "tr" << '\t' << "psize" << '\n';
string eyeData;
getline(eyetrackingFile, eyeData); // read header separately to not
// include in the vector which will be averaged
// now read data
vector<double> psize;
while(getline(eyetrackingFile, eyeData)){
string pp, condition, item, exp;
double clockTime, time, pupilSize, target, competitor, d1, d2, fix;
// size_t bin,
size_t trial;
istringstream linedata(eyeData);
linedata >> pp >> clockTime >> time >> //bin >>
condition >> trial >> item >> exp >> pupilSize >>
target >> competitor >> d1 >> d2 >> fix;
if ((time > 0.0) && (time <= 4.0))
{
outputfile << pp << '\t' << trial << '\t' <<
vectorMean(psize) << '\n';
vector<double>().swap(psize);
}
psize.push_back(pupilSize);
size_t nSamplesPerLine = 4;
size_t lines2include = interval4baseline / nSamplesPerLine;
if (psize.size() >= lines2include)
psize.erase(psize.begin());
} // end "while(getline(eyetrackingFile, subID))"
eyetrackingFile.close();
outputfile.close();
}
return 1;
}