#include "hparamlist.h"
#include "hpiontrackercalrunpar.h"
#include "hades.h"
#include "hruntimedb.h"
#include "hrun.h"
#include "hdetpario.h"
#include "hparasciifileio.h"
#include "hdetparasciifileio.h"
#include "hpiontrackerparasciifileio.h"
ClassImp(HPionTrackerCalRunPar)
HPionTrackerCalRunPar::HPionTrackerCalRunPar(const Char_t* name ,
const Char_t* title ,
const Char_t* context
) : HParCond(name, title, context)
{
fMIter = fMRunID.end();
}
HPionTrackerCalRunPar::~HPionTrackerCalRunPar()
{
reset(1);
}
void HPionTrackerCalRunPar::clear()
{
fMIter = fMRunID.end();
}
void HPionTrackerCalRunPar::printParams()
{
sort(fVRunID.begin(),fVRunID.end());
Info("printParams()","Container: %s",GetName());
for(UInt_t i = 0; i < fVRunID.size(); i ++ ){
Int_t runId = fVRunID[i];
printRun(runId);
}
}
void HPionTrackerCalRunPar::printRun(Int_t runID)
{
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(runID);
if(iter != fMRunID.end()) {
HPionTrackerCalRunPars* p = iter->second;
if(p){
p->print(runID);
}
} else {
Warning("printRun()","RunID = %i not found!",runID);
}
}
void HPionTrackerCalRunPar::putParams(HParamList* l)
{
if (!l) return;
if(fVRunID.size() > 0)
{
sort(fVRunID.begin(),fVRunID.end());
Int_t npars = 8;
if(fVRunID.size() > 0) {
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(fVRunID[0]);
if(iter != fMRunID.end()){
npars = iter->second->getNVals();
}
}
TArrayD arFull(fVRunID.size()*(npars+1)+1);
arFull.SetAt(npars,0);
for(UInt_t i = 0; i < fVRunID.size(); i ++ )
{
Int_t runId = fVRunID[i];
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(runId);
if(iter != fMRunID.end()){
HPionTrackerCalRunPars* ar = iter->second;
if(ar){
arFull.SetAt(runId, 0 + i*(npars+1) + 1);
for(Int_t j=0;j<npars;j++){
arFull.SetAt(ar->getVal(j),j+1 + i*(npars+1) + 1);
}
}
}
}
l->add("pionTrackerOffsets", arFull);
} else {
Warning("putParams()","No Runs contained in map!");
}
}
Bool_t HPionTrackerCalRunPar::getParams(HParamList* l)
{
if (!l) return kFALSE;
TArrayD arFull;
if (!l->fill("pionTrackerOffsets", &arFull)) return kFALSE;
Int_t npars = (Int_t) arFull.At(0);
Int_t nRuns = (arFull.GetSize()-1)/(npars+1);
for(Int_t i = 0; i < nRuns; i ++ )
{
Int_t runId = (Int_t) arFull.At(i*(npars+1) + 1);
HPionTrackerCalRunPars p(npars);
for(Int_t j = 0; j < npars; j ++){
p.setVal(j,arFull.At(j+1 + i*(npars+1) + 1));
}
addRun(runId,&p);
}
sort(fVRunID.begin(),fVRunID.end());
return kTRUE;
}
Int_t HPionTrackerCalRunPar::write(HParIo* output) {
TString name = output->ClassName();
if(name == "HParAsciiFileIo"){
HDetParIo* out = output->getDetParIo("HPionTrackerParIo");
if(out){
return out->write(this);
} else {
Error("write()","HPionTrackerParIo not found, but needed for ASCII io write. You have to add the HPionTrackerDetector!");
return -1;
}
} else {
HDetParIo* out = output->getDetParIo("HCondParIo");
if(out){
return out->write(this);
} else return -1;
}
return -1;
}
void HPionTrackerCalRunPar::putAsciiHeader(TString& b)
{
b = "# PionTracker mean offsets per run\n";
}
Int_t HPionTrackerCalRunPar::write(fstream& pFile)
{
sort(fVRunID.begin(),fVRunID.end());
pFile<<"pionTrackerOffsets: Double_t \\"<<endl;
Int_t npars = 4;
if(fVRunID.size()>0){
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(fVRunID[0]);
HPionTrackerCalRunPars* p = iter->second;
npars = p->getNVals();
}
pFile<<" "<<npars;
for(UInt_t i = 0; i < fVRunID.size(); i ++ ){
Int_t runID = fVRunID[i];
pFile<<" "<<runID;
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(runID);
if(iter != fMRunID.end()) {
HPionTrackerCalRunPars* p = iter->second;
if(p){
for(Int_t j = 0; j < p->getNVals(); j ++){
pFile<<" "<<p->getVal(j);
}
if(i<fVRunID.size()-1) pFile<<" \\"<<endl;
else pFile<<endl;
}
}
}
return 0;
}
Bool_t HPionTrackerCalRunPar::init(HParIo* inp,Int_t* set) {
HRun* currentRun = gHades->getRuntimeDb()->getCurrentRun();
Int_t runID = currentRun->getRunId();
Bool_t rc = kTRUE;
if(!findRunID(runID))
{
HDetParIo* input = inp->getDetParIo("HCondParIo");
rc = kFALSE;
TString name = inp->ClassName();
reset(1);
if (input) rc = input->init(this,set);
if(rc && name == "HParAsciiFileIo"){
setStatic();
}
}
return rc;
}
void HPionTrackerCalRunPar::getRunIDList(TArrayI* ar)
{
sort(fVRunID.begin(),fVRunID.end());
if(ar && fVRunID.size() > 0){
ar->Reset();
ar->Set(fVRunID.size());
for(UInt_t i = 0; i < fVRunID.size(); i ++ ){
ar->SetAt(fVRunID[i],i);
}
}
}
void HPionTrackerCalRunPar::printRunIDList()
{
Info("printRunIDList()","Container: %s",GetName());
for(UInt_t i = 0; i < fVRunID.size(); i ++ ){
cout<<setw(5)<<i<<" = "<<fVRunID[i]<<endl;
}
}
Bool_t HPionTrackerCalRunPar::getRangeRunID(Int_t& first,Int_t& last)
{
sort(fVRunID.begin(),fVRunID.end());
first = -1;
last = -1;
if(fVRunID.size() > 0) {
first = fVRunID[0];
last = fVRunID[fVRunID.size()-1];
}
return kTRUE;
}
Bool_t HPionTrackerCalRunPar::findRunID(Int_t runId)
{
if(find(fVRunID.begin(),fVRunID.end(),runId) != fVRunID.end()) return kTRUE;
else return kFALSE;
}
void HPionTrackerCalRunPar::reset(Int_t level) {
map<Int_t,HPionTrackerCalRunPars*>::iterator iter;
for( iter = fMRunID.begin(); iter != fMRunID.end(); ++iter ) {
HPionTrackerCalRunPars* ar = iter->second;
delete ar;
}
fMRunID.clear();
fMIter = fMRunID.end();
if(level > 0) fVRunID.clear();
}
Bool_t HPionTrackerCalRunPar::removeRun(Int_t runID, Int_t level) {
map<Int_t,HPionTrackerCalRunPars*>::iterator iter = fMRunID.find(runID);
if(iter != fMRunID.end())
{
HPionTrackerCalRunPars* ar = iter->second;
delete ar;
fMRunID.erase( iter );
if(level > 0){
vector<Int_t>::iterator iterv = find(fVRunID.begin(),fVRunID.end(),runID);
fVRunID.erase( iterv );
}
fMIter = fMRunID.end();
} else {
Error("removeRun()","RunID = %i not found!",runID);
return kFALSE;
}
return kTRUE;
}
Bool_t HPionTrackerCalRunPar::addRun(Int_t runID,HPionTrackerCalRunPars* data, Bool_t overwrite) {
if(!data){
Error("addRun()","Recieved NULL pointer for RunID = %i!",runID);
return kFALSE;
}
fMIter = fMRunID.find(runID);
if(fMIter == fMRunID.end() || (overwrite && fMIter != fMRunID.end() ) )
{
if(fMIter != fMRunID.end()) {
removeRun(runID,0);
} else {
fVRunID.push_back(runID);
}
HPionTrackerCalRunPars* ar = new HPionTrackerCalRunPars(data->getNVals());
ar->copyVals(data);
fMRunID[runID] = ar;
} else {
Error("addRun()","RunID = %i already exists !",runID);
return kFALSE;
}
return kTRUE;
}
Bool_t HPionTrackerCalRunPar::getRun(Int_t runID,HPionTrackerCalRunPars* data) {
if(!data) Error("addRun()","Recieved NULL pointer for RunID = %i!",runID);
if(fMIter == fMRunID.end() || fMIter->first != runID) fMIter = fMRunID.find(runID);
if(fMIter != fMRunID.end() )
{
HPionTrackerCalRunPars* ar = fMIter->second;
if(data->getNVals() < ar->getNVals()) {
Warning("getData()","Size of HPionTrackerCalRunPars : in container %i vals, your input object %i vals ! ... Resize output object!",ar->getNVals(),data->getNVals());
data->setSize(ar->getNVals());
}
ar->getVals(data);
} else {
Error("getData()","RunID = %i not found !",runID);
return kFALSE;
}
return kTRUE;
}
void HPionTrackerCalRunPar::finishRunList()
{
sort(fVRunID.begin(),fVRunID.end());
}
hpiontrackercalrunpar.cc:1 hpiontrackercalrunpar.cc:2 hpiontrackercalrunpar.cc:3 hpiontrackercalrunpar.cc:4 hpiontrackercalrunpar.cc:5 hpiontrackercalrunpar.cc:6 hpiontrackercalrunpar.cc:7 hpiontrackercalrunpar.cc:8 hpiontrackercalrunpar.cc:9 hpiontrackercalrunpar.cc:10 hpiontrackercalrunpar.cc:11 hpiontrackercalrunpar.cc:12 hpiontrackercalrunpar.cc:13 hpiontrackercalrunpar.cc:14 hpiontrackercalrunpar.cc:15 hpiontrackercalrunpar.cc:16 hpiontrackercalrunpar.cc:17 hpiontrackercalrunpar.cc:18 hpiontrackercalrunpar.cc:19 hpiontrackercalrunpar.cc:20 hpiontrackercalrunpar.cc:21 hpiontrackercalrunpar.cc:22 hpiontrackercalrunpar.cc:23 hpiontrackercalrunpar.cc:24 hpiontrackercalrunpar.cc:25 hpiontrackercalrunpar.cc:26 hpiontrackercalrunpar.cc:27 hpiontrackercalrunpar.cc:28 hpiontrackercalrunpar.cc:29 hpiontrackercalrunpar.cc:30 hpiontrackercalrunpar.cc:31 hpiontrackercalrunpar.cc:32 hpiontrackercalrunpar.cc:33 hpiontrackercalrunpar.cc:34 hpiontrackercalrunpar.cc:35 hpiontrackercalrunpar.cc:36 hpiontrackercalrunpar.cc:37 hpiontrackercalrunpar.cc:38 hpiontrackercalrunpar.cc:39 hpiontrackercalrunpar.cc:40 hpiontrackercalrunpar.cc:41 hpiontrackercalrunpar.cc:42 hpiontrackercalrunpar.cc:43 hpiontrackercalrunpar.cc:44 hpiontrackercalrunpar.cc:45 hpiontrackercalrunpar.cc:46 hpiontrackercalrunpar.cc:47 hpiontrackercalrunpar.cc:48 hpiontrackercalrunpar.cc:49 hpiontrackercalrunpar.cc:50 hpiontrackercalrunpar.cc:51 hpiontrackercalrunpar.cc:52 hpiontrackercalrunpar.cc:53 hpiontrackercalrunpar.cc:54 hpiontrackercalrunpar.cc:55 hpiontrackercalrunpar.cc:56 hpiontrackercalrunpar.cc:57 hpiontrackercalrunpar.cc:58 hpiontrackercalrunpar.cc:59 hpiontrackercalrunpar.cc:60 hpiontrackercalrunpar.cc:61 hpiontrackercalrunpar.cc:62 hpiontrackercalrunpar.cc:63 hpiontrackercalrunpar.cc:64 hpiontrackercalrunpar.cc:65 hpiontrackercalrunpar.cc:66 hpiontrackercalrunpar.cc:67 hpiontrackercalrunpar.cc:68 hpiontrackercalrunpar.cc:69 hpiontrackercalrunpar.cc:70 hpiontrackercalrunpar.cc:71 hpiontrackercalrunpar.cc:72 hpiontrackercalrunpar.cc:73 hpiontrackercalrunpar.cc:74 hpiontrackercalrunpar.cc:75 hpiontrackercalrunpar.cc:76 hpiontrackercalrunpar.cc:77 hpiontrackercalrunpar.cc:78 hpiontrackercalrunpar.cc:79 hpiontrackercalrunpar.cc:80 hpiontrackercalrunpar.cc:81 hpiontrackercalrunpar.cc:82 hpiontrackercalrunpar.cc:83 hpiontrackercalrunpar.cc:84 hpiontrackercalrunpar.cc:85 hpiontrackercalrunpar.cc:86 hpiontrackercalrunpar.cc:87 hpiontrackercalrunpar.cc:88 hpiontrackercalrunpar.cc:89 hpiontrackercalrunpar.cc:90 hpiontrackercalrunpar.cc:91 hpiontrackercalrunpar.cc:92 hpiontrackercalrunpar.cc:93 hpiontrackercalrunpar.cc:94 hpiontrackercalrunpar.cc:95 hpiontrackercalrunpar.cc:96 hpiontrackercalrunpar.cc:97 hpiontrackercalrunpar.cc:98 hpiontrackercalrunpar.cc:99 hpiontrackercalrunpar.cc:100 hpiontrackercalrunpar.cc:101 hpiontrackercalrunpar.cc:102 hpiontrackercalrunpar.cc:103 hpiontrackercalrunpar.cc:104 hpiontrackercalrunpar.cc:105 hpiontrackercalrunpar.cc:106 hpiontrackercalrunpar.cc:107 hpiontrackercalrunpar.cc:108 hpiontrackercalrunpar.cc:109 hpiontrackercalrunpar.cc:110 hpiontrackercalrunpar.cc:111 hpiontrackercalrunpar.cc:112 hpiontrackercalrunpar.cc:113 hpiontrackercalrunpar.cc:114 hpiontrackercalrunpar.cc:115 hpiontrackercalrunpar.cc:116 hpiontrackercalrunpar.cc:117 hpiontrackercalrunpar.cc:118 hpiontrackercalrunpar.cc:119 hpiontrackercalrunpar.cc:120 hpiontrackercalrunpar.cc:121 hpiontrackercalrunpar.cc:122 hpiontrackercalrunpar.cc:123 hpiontrackercalrunpar.cc:124 hpiontrackercalrunpar.cc:125 hpiontrackercalrunpar.cc:126 hpiontrackercalrunpar.cc:127 hpiontrackercalrunpar.cc:128 hpiontrackercalrunpar.cc:129 hpiontrackercalrunpar.cc:130 hpiontrackercalrunpar.cc:131 hpiontrackercalrunpar.cc:132 hpiontrackercalrunpar.cc:133 hpiontrackercalrunpar.cc:134 hpiontrackercalrunpar.cc:135 hpiontrackercalrunpar.cc:136 hpiontrackercalrunpar.cc:137 hpiontrackercalrunpar.cc:138 hpiontrackercalrunpar.cc:139 hpiontrackercalrunpar.cc:140 hpiontrackercalrunpar.cc:141 hpiontrackercalrunpar.cc:142 hpiontrackercalrunpar.cc:143 hpiontrackercalrunpar.cc:144 hpiontrackercalrunpar.cc:145 hpiontrackercalrunpar.cc:146 hpiontrackercalrunpar.cc:147 hpiontrackercalrunpar.cc:148 hpiontrackercalrunpar.cc:149 hpiontrackercalrunpar.cc:150 hpiontrackercalrunpar.cc:151 hpiontrackercalrunpar.cc:152 hpiontrackercalrunpar.cc:153 hpiontrackercalrunpar.cc:154 hpiontrackercalrunpar.cc:155 hpiontrackercalrunpar.cc:156 hpiontrackercalrunpar.cc:157 hpiontrackercalrunpar.cc:158 hpiontrackercalrunpar.cc:159 hpiontrackercalrunpar.cc:160 hpiontrackercalrunpar.cc:161 hpiontrackercalrunpar.cc:162 hpiontrackercalrunpar.cc:163 hpiontrackercalrunpar.cc:164 hpiontrackercalrunpar.cc:165 hpiontrackercalrunpar.cc:166 hpiontrackercalrunpar.cc:167 hpiontrackercalrunpar.cc:168 hpiontrackercalrunpar.cc:169 hpiontrackercalrunpar.cc:170 hpiontrackercalrunpar.cc:171 hpiontrackercalrunpar.cc:172 hpiontrackercalrunpar.cc:173 hpiontrackercalrunpar.cc:174 hpiontrackercalrunpar.cc:175 hpiontrackercalrunpar.cc:176 hpiontrackercalrunpar.cc:177 hpiontrackercalrunpar.cc:178 hpiontrackercalrunpar.cc:179 hpiontrackercalrunpar.cc:180 hpiontrackercalrunpar.cc:181 hpiontrackercalrunpar.cc:182 hpiontrackercalrunpar.cc:183 hpiontrackercalrunpar.cc:184 hpiontrackercalrunpar.cc:185 hpiontrackercalrunpar.cc:186 hpiontrackercalrunpar.cc:187 hpiontrackercalrunpar.cc:188 hpiontrackercalrunpar.cc:189 hpiontrackercalrunpar.cc:190 hpiontrackercalrunpar.cc:191 hpiontrackercalrunpar.cc:192 hpiontrackercalrunpar.cc:193 hpiontrackercalrunpar.cc:194 hpiontrackercalrunpar.cc:195 hpiontrackercalrunpar.cc:196 hpiontrackercalrunpar.cc:197 hpiontrackercalrunpar.cc:198 hpiontrackercalrunpar.cc:199 hpiontrackercalrunpar.cc:200 hpiontrackercalrunpar.cc:201 hpiontrackercalrunpar.cc:202 hpiontrackercalrunpar.cc:203 hpiontrackercalrunpar.cc:204 hpiontrackercalrunpar.cc:205 hpiontrackercalrunpar.cc:206 hpiontrackercalrunpar.cc:207 hpiontrackercalrunpar.cc:208 hpiontrackercalrunpar.cc:209 hpiontrackercalrunpar.cc:210 hpiontrackercalrunpar.cc:211 hpiontrackercalrunpar.cc:212 hpiontrackercalrunpar.cc:213 hpiontrackercalrunpar.cc:214 hpiontrackercalrunpar.cc:215 hpiontrackercalrunpar.cc:216 hpiontrackercalrunpar.cc:217 hpiontrackercalrunpar.cc:218 hpiontrackercalrunpar.cc:219 hpiontrackercalrunpar.cc:220 hpiontrackercalrunpar.cc:221 hpiontrackercalrunpar.cc:222 hpiontrackercalrunpar.cc:223 hpiontrackercalrunpar.cc:224 hpiontrackercalrunpar.cc:225 hpiontrackercalrunpar.cc:226 hpiontrackercalrunpar.cc:227 hpiontrackercalrunpar.cc:228 hpiontrackercalrunpar.cc:229 hpiontrackercalrunpar.cc:230 hpiontrackercalrunpar.cc:231 hpiontrackercalrunpar.cc:232 hpiontrackercalrunpar.cc:233 hpiontrackercalrunpar.cc:234 hpiontrackercalrunpar.cc:235 hpiontrackercalrunpar.cc:236 hpiontrackercalrunpar.cc:237 hpiontrackercalrunpar.cc:238 hpiontrackercalrunpar.cc:239 hpiontrackercalrunpar.cc:240 hpiontrackercalrunpar.cc:241 hpiontrackercalrunpar.cc:242 hpiontrackercalrunpar.cc:243 hpiontrackercalrunpar.cc:244 hpiontrackercalrunpar.cc:245 hpiontrackercalrunpar.cc:246 hpiontrackercalrunpar.cc:247 hpiontrackercalrunpar.cc:248 hpiontrackercalrunpar.cc:249 hpiontrackercalrunpar.cc:250 hpiontrackercalrunpar.cc:251 hpiontrackercalrunpar.cc:252 hpiontrackercalrunpar.cc:253 hpiontrackercalrunpar.cc:254 hpiontrackercalrunpar.cc:255 hpiontrackercalrunpar.cc:256 hpiontrackercalrunpar.cc:257 hpiontrackercalrunpar.cc:258 hpiontrackercalrunpar.cc:259 hpiontrackercalrunpar.cc:260 hpiontrackercalrunpar.cc:261 hpiontrackercalrunpar.cc:262 hpiontrackercalrunpar.cc:263 hpiontrackercalrunpar.cc:264 hpiontrackercalrunpar.cc:265 hpiontrackercalrunpar.cc:266 hpiontrackercalrunpar.cc:267 hpiontrackercalrunpar.cc:268 hpiontrackercalrunpar.cc:269 hpiontrackercalrunpar.cc:270 hpiontrackercalrunpar.cc:271 hpiontrackercalrunpar.cc:272 hpiontrackercalrunpar.cc:273 hpiontrackercalrunpar.cc:274 hpiontrackercalrunpar.cc:275 hpiontrackercalrunpar.cc:276 hpiontrackercalrunpar.cc:277 hpiontrackercalrunpar.cc:278 hpiontrackercalrunpar.cc:279 hpiontrackercalrunpar.cc:280 hpiontrackercalrunpar.cc:281 hpiontrackercalrunpar.cc:282 hpiontrackercalrunpar.cc:283 hpiontrackercalrunpar.cc:284 hpiontrackercalrunpar.cc:285 hpiontrackercalrunpar.cc:286 hpiontrackercalrunpar.cc:287 hpiontrackercalrunpar.cc:288 hpiontrackercalrunpar.cc:289 hpiontrackercalrunpar.cc:290 hpiontrackercalrunpar.cc:291 hpiontrackercalrunpar.cc:292 hpiontrackercalrunpar.cc:293 hpiontrackercalrunpar.cc:294 hpiontrackercalrunpar.cc:295 hpiontrackercalrunpar.cc:296 hpiontrackercalrunpar.cc:297 hpiontrackercalrunpar.cc:298 hpiontrackercalrunpar.cc:299 hpiontrackercalrunpar.cc:300 hpiontrackercalrunpar.cc:301 hpiontrackercalrunpar.cc:302 hpiontrackercalrunpar.cc:303 hpiontrackercalrunpar.cc:304 hpiontrackercalrunpar.cc:305 hpiontrackercalrunpar.cc:306 hpiontrackercalrunpar.cc:307 hpiontrackercalrunpar.cc:308 hpiontrackercalrunpar.cc:309 hpiontrackercalrunpar.cc:310 hpiontrackercalrunpar.cc:311 hpiontrackercalrunpar.cc:312 hpiontrackercalrunpar.cc:313 hpiontrackercalrunpar.cc:314 hpiontrackercalrunpar.cc:315 hpiontrackercalrunpar.cc:316 hpiontrackercalrunpar.cc:317 hpiontrackercalrunpar.cc:318 hpiontrackercalrunpar.cc:319 hpiontrackercalrunpar.cc:320 hpiontrackercalrunpar.cc:321 hpiontrackercalrunpar.cc:322 hpiontrackercalrunpar.cc:323 hpiontrackercalrunpar.cc:324 hpiontrackercalrunpar.cc:325 hpiontrackercalrunpar.cc:326 hpiontrackercalrunpar.cc:327 hpiontrackercalrunpar.cc:328 hpiontrackercalrunpar.cc:329 hpiontrackercalrunpar.cc:330 hpiontrackercalrunpar.cc:331 hpiontrackercalrunpar.cc:332 hpiontrackercalrunpar.cc:333 hpiontrackercalrunpar.cc:334 hpiontrackercalrunpar.cc:335 hpiontrackercalrunpar.cc:336 hpiontrackercalrunpar.cc:337 hpiontrackercalrunpar.cc:338 hpiontrackercalrunpar.cc:339 hpiontrackercalrunpar.cc:340 hpiontrackercalrunpar.cc:341 hpiontrackercalrunpar.cc:342 hpiontrackercalrunpar.cc:343 hpiontrackercalrunpar.cc:344 hpiontrackercalrunpar.cc:345 hpiontrackercalrunpar.cc:346 hpiontrackercalrunpar.cc:347 hpiontrackercalrunpar.cc:348 hpiontrackercalrunpar.cc:349 hpiontrackercalrunpar.cc:350 hpiontrackercalrunpar.cc:351 hpiontrackercalrunpar.cc:352 hpiontrackercalrunpar.cc:353 hpiontrackercalrunpar.cc:354 hpiontrackercalrunpar.cc:355 hpiontrackercalrunpar.cc:356 hpiontrackercalrunpar.cc:357 hpiontrackercalrunpar.cc:358 hpiontrackercalrunpar.cc:359 hpiontrackercalrunpar.cc:360 hpiontrackercalrunpar.cc:361 hpiontrackercalrunpar.cc:362 hpiontrackercalrunpar.cc:363 hpiontrackercalrunpar.cc:364 hpiontrackercalrunpar.cc:365 hpiontrackercalrunpar.cc:366 hpiontrackercalrunpar.cc:367 hpiontrackercalrunpar.cc:368 hpiontrackercalrunpar.cc:369 hpiontrackercalrunpar.cc:370 hpiontrackercalrunpar.cc:371 hpiontrackercalrunpar.cc:372 hpiontrackercalrunpar.cc:373 hpiontrackercalrunpar.cc:374 hpiontrackercalrunpar.cc:375 hpiontrackercalrunpar.cc:376 hpiontrackercalrunpar.cc:377 hpiontrackercalrunpar.cc:378 hpiontrackercalrunpar.cc:379 hpiontrackercalrunpar.cc:380 hpiontrackercalrunpar.cc:381 hpiontrackercalrunpar.cc:382 hpiontrackercalrunpar.cc:383 hpiontrackercalrunpar.cc:384 hpiontrackercalrunpar.cc:385 hpiontrackercalrunpar.cc:386 hpiontrackercalrunpar.cc:387 hpiontrackercalrunpar.cc:388 hpiontrackercalrunpar.cc:389 hpiontrackercalrunpar.cc:390 hpiontrackercalrunpar.cc:391 hpiontrackercalrunpar.cc:392 hpiontrackercalrunpar.cc:393 hpiontrackercalrunpar.cc:394 hpiontrackercalrunpar.cc:395 hpiontrackercalrunpar.cc:396 hpiontrackercalrunpar.cc:397 hpiontrackercalrunpar.cc:398 hpiontrackercalrunpar.cc:399 hpiontrackercalrunpar.cc:400 hpiontrackercalrunpar.cc:401 hpiontrackercalrunpar.cc:402 hpiontrackercalrunpar.cc:403 hpiontrackercalrunpar.cc:404 hpiontrackercalrunpar.cc:405 hpiontrackercalrunpar.cc:406 hpiontrackercalrunpar.cc:407 hpiontrackercalrunpar.cc:408 hpiontrackercalrunpar.cc:409 hpiontrackercalrunpar.cc:410 hpiontrackercalrunpar.cc:411 hpiontrackercalrunpar.cc:412 hpiontrackercalrunpar.cc:413 hpiontrackercalrunpar.cc:414 hpiontrackercalrunpar.cc:415 hpiontrackercalrunpar.cc:416 hpiontrackercalrunpar.cc:417 hpiontrackercalrunpar.cc:418 hpiontrackercalrunpar.cc:419 hpiontrackercalrunpar.cc:420 hpiontrackercalrunpar.cc:421 hpiontrackercalrunpar.cc:422 hpiontrackercalrunpar.cc:423 hpiontrackercalrunpar.cc:424 hpiontrackercalrunpar.cc:425 hpiontrackercalrunpar.cc:426 hpiontrackercalrunpar.cc:427 hpiontrackercalrunpar.cc:428 hpiontrackercalrunpar.cc:429 hpiontrackercalrunpar.cc:430 hpiontrackercalrunpar.cc:431 hpiontrackercalrunpar.cc:432 hpiontrackercalrunpar.cc:433 hpiontrackercalrunpar.cc:434 hpiontrackercalrunpar.cc:435 hpiontrackercalrunpar.cc:436 hpiontrackercalrunpar.cc:437 hpiontrackercalrunpar.cc:438 hpiontrackercalrunpar.cc:439 hpiontrackercalrunpar.cc:440 hpiontrackercalrunpar.cc:441 hpiontrackercalrunpar.cc:442 hpiontrackercalrunpar.cc:443