ROOT logo
Int_t readAliceNsd() 
{
// read ALICE NSD data from file
//

cout << endl;
cout << "================================" << endl;
cout << endl;
cout << "read ALICE NSD data from file" <<endl;
cout << "Number of bins: " << binsNsdAlice <<endl;
cout << "Filename:       " << filenameNsdAlice <<endl;
cout << endl;
cout << "================================" << endl;
cout << endl;

ifstream fileNsdAlice;
fileNsdAlice.open(filenameNsdAlice);

Int_t i = 0;
while(!fileNsdAlice.eof()) {
    if(i == binsNsdAlice) break;
    // textfile content: pt_bin_center:NSD_yield:errNSD_yield
    fileNsdAlice >> centerPtNsdAlice[i] >>  nsdAlice[i] >> statNsdAlice[i] >> systNsdAlice[i];
    //systNsdAlice[i] = 0.15*nsdAlice[i]+1e-7; // sys error has to be provided, currently 10%
    
    // the width of the pt bins, currently hardwired....
    widthPtNsdAlice[i] = 0.05;
    if (centerPtNsdAlice[i] > 1) widthPtNsdAlice[i] = 0.1;
    if (centerPtNsdAlice[i] > 2) widthPtNsdAlice[i] = 0.2;
    if (centerPtNsdAlice[i] > 4) widthPtNsdAlice[i] = 0.5;
    if (centerPtNsdAlice[i] > 7) widthPtNsdAlice[i] = 1.0;
    
    ptNsdAlice[i]       = centerPtNsdAlice[i];
    errPtNsdAlice[i]    = widthPtNsdAlice[i] / 2.0;
    lowPtNsdAlice[i]    = centerPtNsdAlice[i] - errPtNsdAlice[i];
    highPtNsdAlice[i]   = centerPtNsdAlice[i] + errPtNsdAlice[i];      
            
    lowStatNsdAlice[i]  = nsdAlice[i] - statNsdAlice[i];
    highStatNsdAlice[i] = nsdAlice[i] + statNsdAlice[i];
    relStatNsdAlice[i]  = statNsdAlice[i] / nsdAlice[i];    
    lowSystNsdAlice[i]  = nsdAlice[i] - systNsdAlice[i];
    highSystNsdAlice[i] = nsdAlice[i] + systNsdAlice[i];
    relSystNsdAlice[i]  = systNsdAlice[i] / nsdAlice[i];    
    errNsdAlice[i]      = systNsdAlice[i] + statNsdAlice[i];
    lowErrNsdAlice[i]   = nsdAlice[i] - errNsdAlice[i];
    highErrNsdAlice[i]  = nsdAlice[i] + errNsdAlice[i];
    relErrNsdAlice[i]   = errNsdAlice[i] / nsdAlice[i];
    err2NsdAlice[i]     = sqrt(systNsdAlice[i]*systNsdAlice[i] + statNsdAlice[i]*statNsdAlice[i]);
    lowErr2NsdAlice[i]  = nsdAlice[i] - err2NsdAlice[i];
    highErr2NsdAlice[i] = nsdAlice[i] + errNsdAlice[i];
    relErr2NsdAlice[i]  = err2NsdAlice[i] / nsdAlice[i];
        
        
        
        
    ptNsd2PiPtAlice[i]       = ptNsdAlice[i];
    centerPtNsd2PiPtAlice[i] = centerPtNsdAlice[i];
    widthPtNsd2PiPtAlice[i]  = widthPtNsdAlice[i];
    errPtNsd2PiPtAlice[i]    = errPtNsdAlice[i];
    lowPtNsd2PiPtAlice[i]    = lowPtNsdAlice[i];
    highPtNsd2PiPtAlice[i]   = highPtNsdAlice[i];

    nsd2PiPtAlice[i]         = nsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    statNsd2PiPtAlice[i]     = statNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    lowStatNsd2PiPtAlice[i]  = lowStatNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    highStatNsd2PiPtAlice[i] = highStatNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    relStatNsd2PiPtAlice[i]  = relStatNsdAlice[i];
    systNsd2PiPtAlice[i]     = systNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    lowSystNsd2PiPtAlice[i]  = lowSystNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    highSystNsd2PiPtAlice[i] = highSystNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    relSystNsd2PiPtAlice[i]  = relSystNsdAlice[i];
    errNsd2PiPtAlice[i]      = errNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    lowErrNsd2PiPtAlice[i]   = lowErrNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    highErrNsd2PiPtAlice[i]  = highErrNsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    relErrNsd2PiPtAlice[i]   = relErrNsdAlice[i];
    err2Nsd2PiPtAlice[i]     = err2NsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    lowErr2Nsd2PiPtAlice[i]  = lowErr2NsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    highErr2Nsd2PiPtAlice[i] = highErr2NsdAlice[i]*centerPtNsdAlice[i]*2*M_PI;
    relErr2Nsd2PiPtAlice[i]  = relErr2NsdAlice[i];        
        
        
        
        
        
        
        
    
    cout << "ptNsdAlice[" << i << "]          = " << ptNsdAlice[i] <<endl;
    cout << "   centerPtNsdAlice[" << i << "] = " << centerPtNsdAlice[i] <<endl;
    cout << "   widthPtNsdAlice[" << i << "]  = " << widthPtNsdAlice[i] <<endl;
    cout << "   errPtNsdAlice[" << i << "]    = " << errPtNsdAlice[i] <<endl;
    cout << "   lowPtNsdAlice[" << i << "]    = " << lowPtNsdAlice[i] <<endl;
    cout << "   highPtNsdAlice[" << i << "]   = " << highPtNsdAlice[i] <<endl;
    cout << "nsdAlice[" << i << "]            = " << nsdAlice[i] <<endl;
    cout << "   statNsdAlice[" << i << "]     = " << statNsdAlice[i] <<endl;
    cout << "   lowStatNsdAlice[" << i << "]  = " << lowStatNsdAlice[i] <<endl;
    cout << "   highStatNsdAlice[" << i << "] = " << highStatNsdAlice[i] <<endl;
    cout << "   relStatNsdAlice[" << i << "]  = " << relStatNsdAlice[i] <<endl;
    cout << "   systNsdAlice[" << i << "]     = " << systNsdAlice[i] <<endl;
    cout << "   lowSystNsdAlice[" << i << "]  = " << lowSystNsdAlice[i] <<endl;
    cout << "   highSystNsdAlice[" << i << "] = " << highSystNsdAlice[i] <<endl;
    cout << "   relSystNsdAlice[" << i << "]  = " << relSystNsdAlice[i] <<endl;
    cout << "errNsdAlice[" << i << "]         = " << errNsdAlice[i] <<endl;
    cout << "   lowErrNsdAlice[" << i << "]   = " << lowErrNsdAlice[i] <<endl;
    cout << "   highErrNsdAlice[" << i << "]  = " << highErrNsdAlice[i] <<endl;
    cout << "   relErrNsdAlice[" << i << "]   = " << relErrNsdAlice[i] <<endl;
    cout << "err2NsdAlice[" << i << "]        = " << err2NsdAlice[i] <<endl;
    cout << "   lowErr2NsdAlice[" << i << "]  = " << lowErr2NsdAlice[i] <<endl;
    cout << "   highErr2NsdAlice[" << i << "] = " << highErr2NsdAlice[i] <<endl;
    cout << "   relErr2NsdAlice[" << i << "]  = " << relErr2NsdAlice[i] <<endl;
    cout << endl;
    /*
    ptNsdAliceFit[i]      = ptNsdAlice[i];
    NsdNsdAliceFit[i]     = NsdNsdAlice[i]*ptNsdAlice[i];
    errNsdNsdAliceFit[i]  = errNsdNsdAlice[i];
    widthPtNsdAliceFit[i] = widthPtNsdAlice[i];
    errPtNsdAliceFit[i]  = 0; //errPtNsdAlice[i];
    lowPtNsdAliceFit[i]  = lowPtNsdAlice[i];
    highPtNsdAliceFit[i] = highPtNsdAlice[i];
    */
        
   i++;
} // while(!fileNsdAlice.eof())
fileNsdAlice.close();
//if (fileNsdAlice) { delete fileNsdAlice; }
//fileNsdAlice=0;

cout << "================================" << endl;
cout << endl;
cout << "Finished reading ALICE NSD data" <<endl;
cout << "Number of bins read: " << i <<endl;
cout << endl;
cout << "================================" << endl;
cout << endl;

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