ROOT logo
Int_t readUa1() 
{
// read UA1 data from file
//

cout << endl;
cout << "================================" << endl;
cout << endl;
cout << "read UA1 YIELD data from file" <<endl;
cout << "Number of bins: " << binsUa1 <<endl;
cout << "Filename:       " << filenameUa1 <<endl;
cout << endl;
cout << "================================" << endl;
cout << endl;

ifstream fileCrossUa1;
fileCrossUa1.open(filenameUa1);

Int_t i = 0;
while(!fileCrossUa1.eof()) {
    if(i == binsUa1) break;
    // textfile content: pt:cross_yield:(stat + syst error added linerarly)
    fileCrossUa1 >> centerPtUa1[i] >> crossUa1[i] >> errCrossUa1[i];
    
    ptUa1[i]          = centerPtUa1[i];
    
    // the width of the pt bins, currently hardwired....
    widthPtUa1[i] = 0.1;
    if (centerPtUa1[i] > 4) widthPtUa1[i] = 0.2;
    if (centerPtUa1[i] > 6) widthPtUa1[i] = 1.0;
    
    errPtUa1[i]       = widthPtUa1[i] / 2.0;              
    lowPtUa1[i]       = centerPtUa1[i] - errPtUa1[i];
    highPtUa1[i]      = centerPtUa1[i] + errPtUa1[i];
    
    /*
    lowStatCrossUa1[i]  = crossUa1[i] - statCrossUa1[i];
    highStatCrossUa1[i] = crossUa1[i] + statCrossUa1[i];
    relStatCrossUa1[i]  = statCrossUa1[i] / crossUa1[i];    
    lowSystCrossUa1[i]  = crossUa1[i] - systCrossUa1[i];
    highSystCrossUa1[i] = crossUa1[i] + systCrossUa1[i];
    relSystCrossUa1[i]  = systCrossUa1[i] / crossUa1[i];    
    */    
    lowErrCrossUa1[i]   = crossUa1[i] - errCrossUa1[i];
    highErrCrossUa1[i]  = crossUa1[i] + errCrossUa1[i];
    relErrCrossUa1[i]   = errCrossUa1[i] / crossUa1[i];
    err2CrossUa1[i]     = errCrossUa1[i];
    lowErr2CrossUa1[i]  = lowErrCrossUa1[i];
    highErr2CrossUa1[i] = highErrCrossUa1[i];
    relErr2CrossUa1[i]  = relErrCrossUa1[i];
    
    yieldUa1[i]         = crossUa1[i] * (avgToHadr / sigmaInelUa1);
    /*
    statYieldUa1[i]     = 
    lowStatYieldUa1[i]  = 
    highStatYieldUa1[i] = 
    relStatYieldUa1[i]  = 
    systYieldUa1[i]     = 
    lowSystYieldUa1[i]  = 
    highSystYieldUa1[i] = 
    relSystYieldUa1[i]  = 
    */
    errYieldUa1[i]      = errCrossUa1[i] * (avgToHadr / sigmaInelUa1);
    lowErrYieldUa1[i]   = yieldUa1[i] - errYieldUa1[i];
    highErrYieldUa1[i]  = yieldUa1[i] + errYieldUa1[i];
    relErrYieldUa1[i]   = errYieldUa1[i] / yieldUa1[i];
    err2YieldUa1[i]     = errYieldUa1[i];
    lowErr2YieldUa1[i]  = lowErrYieldUa1[i];
    highErr2YieldUa1[i] = highErrYieldUa1[i];
    relErr2YieldUa1[i]  = relErrYieldUa1[i];
        
    cout << "ptUa1[" << i << "]               = " << ptUa1[i] <<endl;
    cout << "   centerPtUa1[" << i << "]      = " << centerPtUa1[i] <<endl;
    cout << "   widthPtUa1[" << i << "]       = " << widthPtUa1[i] <<endl;
    cout << "   errPtUa1[" << i << "]         = " << errPtUa1[i] <<endl;
    cout << "   lowPtUa1[" << i << "]         = " << lowPtUa1[i] <<endl;
    cout << "   highPtUa1[" << i << "]        = " << highPtUa1[i] <<endl;
    cout << "crossUa1[" << i << "]            = " << crossUa1[i] <<endl;
    /*
    cout << "   statCrossUa1[" << i << "]     = " << statCrossUa1[i] <<endl;
    cout << "   lowStatCrossUa1[" << i << "]  = " << lowStatCrossUa1[i] <<endl;
    cout << "   highStatCrossUa1[" << i << "] = " << highStatCrossUa1[i] <<endl;
    cout << "   relStatCrossUa1[" << i << "]  = " << relStatCrossUa1[i] <<endl;
    cout << "   systCrossUa1[" << i << "]     = " << systCrossUa1[i] <<endl;
    cout << "   lowSystCrossUa1[" << i << "]  = " << lowSystCrossUa1[i] <<endl;
    cout << "   highSystCrossUa1[" << i << "] = " << highSystCrossUa1[i] <<endl;
    cout << "   relSystCrossUa1[" << i << "]  = " << relSystCrossUa1[i] <<endl;
    */
    cout << "errCrossUa1[" << i << "]         = " << errCrossUa1[i] <<endl;
    cout << "   lowErrCrossUa1[" << i << "]   = " << lowErrCrossUa1[i] <<endl;
    cout << "   highErrCrossUa1[" << i << "]  = " << highErrCrossUa1[i] <<endl;
    cout << "   relErrCrossUa1[" << i << "]   = " << relErrCrossUa1[i] <<endl;
    cout << "err2CrossUa1[" << i << "]        = " << err2CrossUa1[i] <<endl;
    cout << "   lowErr2CrossUa1[" << i << "]  = " << lowErr2CrossUa1[i] <<endl;
    cout << "   highErr2CrossUa1[" << i << "] = " << highErr2CrossUa1[i] <<endl;
    cout << "   relErr2CrossUa1[" << i << "]  = " << relErr2CrossUa1[i] <<endl;

    cout << "yieldUa1[" << i << "]            = " << yieldUa1[i] <<endl;
    /*
    cout << "   statYieldUa1[" << i << "]     = " << statYieldUa1[i] <<endl;
    cout << "   lowStatYieldUa1[" << i << "]  = " << lowStatYieldUa1[i] <<endl;
    cout << "   highStatYieldUa1[" << i << "] = " << highStatYieldUa1[i] <<endl;
    cout << "   relStatYieldUa1[" << i << "]  = " << relStatYieldUa1[i] <<endl;
    cout << "   systYieldUa1[" << i << "]     = " << systYieldUa1[i] <<endl;
    cout << "   lowSystYieldUa1[" << i << "]  = " << lowSystYieldUa1[i] <<endl;
    cout << "   highSystYieldUa1[" << i << "] = " << highSystYieldUa1[i] <<endl;
    cout << "   relSystYieldUa1[" << i << "]  = " << relSystYieldUa1[i] <<endl;
    */
    cout << "errYieldUa1[" << i << "]         = " << errYieldUa1[i] <<endl;
    cout << "   lowErrYieldUa1[" << i << "]   = " << lowErrYieldUa1[i] <<endl;
    cout << "   highErrYieldUa1[" << i << "]  = " << highErrYieldUa1[i] <<endl;
    cout << "   relErrYieldUa1[" << i << "]   = " << relErrYieldUa1[i] <<endl;
    cout << "err2YieldUa1[" << i << "]        = " << err2YieldUa1[i] <<endl;
    cout << "   lowErr2YieldUa1[" << i << "]  = " << lowErr2YieldUa1[i] <<endl;
    cout << "   highErr2YieldUa1[" << i << "] = " << highErr2YieldUa1[i] <<endl;
    cout << "   relErr2YieldUa1[" << i << "]  = " << relErr2YieldUa1[i] <<endl;
    cout << endl;
     
   i++;
} // while(!fileCrossUa1.eof())
fileCrossUa1.close();
//if (fileCrossUa1) { delete fileCrossUa1; }
//fileCrossUa1=0;

cout << "================================" << endl;
cout << endl;
cout << "Finished reading UA1 YIELD data" <<endl;
cout << "Number of bins read: " << i <<endl;
cout << endl;
cout << "================================" << endl;
cout << endl;

return i;
 readUa1.C:1
 readUa1.C:2
 readUa1.C:3
 readUa1.C:4
 readUa1.C:5
 readUa1.C:6
 readUa1.C:7
 readUa1.C:8
 readUa1.C:9
 readUa1.C:10
 readUa1.C:11
 readUa1.C:12
 readUa1.C:13
 readUa1.C:14
 readUa1.C:15
 readUa1.C:16
 readUa1.C:17
 readUa1.C:18
 readUa1.C:19
 readUa1.C:20
 readUa1.C:21
 readUa1.C:22
 readUa1.C:23
 readUa1.C:24
 readUa1.C:25
 readUa1.C:26
 readUa1.C:27
 readUa1.C:28
 readUa1.C:29
 readUa1.C:30
 readUa1.C:31
 readUa1.C:32
 readUa1.C:33
 readUa1.C:34
 readUa1.C:35
 readUa1.C:36
 readUa1.C:37
 readUa1.C:38
 readUa1.C:39
 readUa1.C:40
 readUa1.C:41
 readUa1.C:42
 readUa1.C:43
 readUa1.C:44
 readUa1.C:45
 readUa1.C:46
 readUa1.C:47
 readUa1.C:48
 readUa1.C:49
 readUa1.C:50
 readUa1.C:51
 readUa1.C:52
 readUa1.C:53
 readUa1.C:54
 readUa1.C:55
 readUa1.C:56
 readUa1.C:57
 readUa1.C:58
 readUa1.C:59
 readUa1.C:60
 readUa1.C:61
 readUa1.C:62
 readUa1.C:63
 readUa1.C:64
 readUa1.C:65
 readUa1.C:66
 readUa1.C:67
 readUa1.C:68
 readUa1.C:69
 readUa1.C:70
 readUa1.C:71
 readUa1.C:72
 readUa1.C:73
 readUa1.C:74
 readUa1.C:75
 readUa1.C:76
 readUa1.C:77
 readUa1.C:78
 readUa1.C:79
 readUa1.C:80
 readUa1.C:81
 readUa1.C:82
 readUa1.C:83
 readUa1.C:84
 readUa1.C:85
 readUa1.C:86
 readUa1.C:87
 readUa1.C:88
 readUa1.C:89
 readUa1.C:90
 readUa1.C:91
 readUa1.C:92
 readUa1.C:93
 readUa1.C:94
 readUa1.C:95
 readUa1.C:96
 readUa1.C:97
 readUa1.C:98
 readUa1.C:99
 readUa1.C:100
 readUa1.C:101
 readUa1.C:102
 readUa1.C:103
 readUa1.C:104
 readUa1.C:105
 readUa1.C:106
 readUa1.C:107
 readUa1.C:108
 readUa1.C:109
 readUa1.C:110
 readUa1.C:111
 readUa1.C:112
 readUa1.C:113
 readUa1.C:114
 readUa1.C:115
 readUa1.C:116
 readUa1.C:117
 readUa1.C:118
 readUa1.C:119
 readUa1.C:120
 readUa1.C:121
 readUa1.C:122
 readUa1.C:123
 readUa1.C:124
 readUa1.C:125
 readUa1.C:126
 readUa1.C:127
 readUa1.C:128
 readUa1.C:129
 readUa1.C:130
 readUa1.C:131
 readUa1.C:132
 readUa1.C:133
 readUa1.C:134