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