#ifndef HPIONTRACKERMOMRUNPAR_H_
#define HPIONTRACKERMOMRUNPAR_H_
#include "TArrayD.h"
#include "TArrayF.h"
#include "TArrayI.h"
#include "hparcond.h"
#include "hpario.h"
#include <map>
#include <vector>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
class HParamList;
class HDetParAsciiFileIo;
class HPionTrackerMomRunPars : public TObject {
protected:
Int_t npars;
TArrayD offsets;
public:
HPionTrackerMomRunPars(Int_t size=2) { offsets.Set(size); clear();}
~HPionTrackerMomRunPars(){;}
inline Int_t getNVals() { return offsets.GetSize(); }
void setSize(Int_t size) { offsets.Set(size); clear(); }
void setVal(Int_t i,Float_t val) {
if( i >= 0 && i < getNVals()){
offsets[i] = val;
} else { Error("setVal()","Index i=%i out of bounds",i);}
}
Float_t getVal(Int_t i) {
if( i >= 0 && i < getNVals()){
return offsets[i];
} else {
Error("setVal()","Index i=%i out of bounds",i);
return 0;
}
}
void copyVals(HPionTrackerMomRunPars* data){ for(Int_t i = 0; i < getNVals(); i ++) setVal(i,data->getVal(i)); }
void getVals(HPionTrackerMomRunPars* data) { for(Int_t i = 0; i < getNVals(); i ++) data->setVal(i,offsets[i]); }
void print(Int_t runID = -1){
if(runID != -1) cout<<"RunID "<<setw(10)<<runID <<" = "<<flush;
else cout<<" = "<<flush;
for(Int_t i = 0; i < getNVals() ; i ++){
if(i == 0) cout<<setw(8)<<offsets[i]<<flush;
else cout<<", "<<setw(8)<<offsets[i]<<flush;
}
cout<<endl;
}
Double_t* data() { return &offsets[0]; }
void clear() { for(Int_t i=0;i < getNVals();i++) offsets[i] = 0; }
ClassDef(HPionTrackerMomRunPars,1)
};
class HPionTrackerMomRunPar : public HParCond {
protected:
map<Int_t, HPionTrackerMomRunPars* > fMRunID;
vector<Int_t> fVRunID;
map<Int_t, HPionTrackerMomRunPars* >::iterator fMIter;
public:
HPionTrackerMomRunPar(const Char_t* name = "PionTrackerMomRunPar",
const Char_t* title = "PionTracker Mom Parameters per run",
const Char_t* context = "PionTrackerMomRunParProduction");
~HPionTrackerMomRunPar();
Bool_t findRunID(Int_t runID);
Bool_t removeRun(Int_t runID,Int_t level=1);
Bool_t addRun (Int_t runID,HPionTrackerMomRunPars* data,Bool_t overwrite=kFALSE);
Bool_t getRun (Int_t runID,HPionTrackerMomRunPars* data);
void finishRunList();
Bool_t getRangeRunID(Int_t& first,Int_t& last);
Int_t getNRunIDs() { return fVRunID.size();}
void getRunIDList(TArrayI* ar=0);
void printRunIDList();
void printRun(Int_t runID);
void reset(Int_t level = 0);
Bool_t init(HParIo*, Int_t*);
void clear();
void printParams();
void putParams(HParamList* l);
Bool_t getParams(HParamList* l);
virtual Int_t write(HParIo*);
virtual Int_t write(fstream& pFile);
virtual void putAsciiHeader(TString& b);
ClassDef(HPionTrackerMomRunPar, 1)
};
#endif /*HPIONTRACKERMOMRUNPAR_H_*/
hpiontrackermomrunpar.h:1 hpiontrackermomrunpar.h:2 hpiontrackermomrunpar.h:3 hpiontrackermomrunpar.h:4 hpiontrackermomrunpar.h:5 hpiontrackermomrunpar.h:6 hpiontrackermomrunpar.h:7 hpiontrackermomrunpar.h:8 hpiontrackermomrunpar.h:9 hpiontrackermomrunpar.h:10 hpiontrackermomrunpar.h:11 hpiontrackermomrunpar.h:12 hpiontrackermomrunpar.h:13 hpiontrackermomrunpar.h:14 hpiontrackermomrunpar.h:15 hpiontrackermomrunpar.h:16 hpiontrackermomrunpar.h:17 hpiontrackermomrunpar.h:18 hpiontrackermomrunpar.h:19 hpiontrackermomrunpar.h:20 hpiontrackermomrunpar.h:21 hpiontrackermomrunpar.h:22 hpiontrackermomrunpar.h:23 hpiontrackermomrunpar.h:24 hpiontrackermomrunpar.h:25 hpiontrackermomrunpar.h:26 hpiontrackermomrunpar.h:27 hpiontrackermomrunpar.h:28 hpiontrackermomrunpar.h:29 hpiontrackermomrunpar.h:30 hpiontrackermomrunpar.h:31 hpiontrackermomrunpar.h:32 hpiontrackermomrunpar.h:33 hpiontrackermomrunpar.h:34 hpiontrackermomrunpar.h:35 hpiontrackermomrunpar.h:36 hpiontrackermomrunpar.h:37 hpiontrackermomrunpar.h:38 hpiontrackermomrunpar.h:39 hpiontrackermomrunpar.h:40 hpiontrackermomrunpar.h:41 hpiontrackermomrunpar.h:42 hpiontrackermomrunpar.h:43 hpiontrackermomrunpar.h:44 hpiontrackermomrunpar.h:45 hpiontrackermomrunpar.h:46 hpiontrackermomrunpar.h:47 hpiontrackermomrunpar.h:48 hpiontrackermomrunpar.h:49 hpiontrackermomrunpar.h:50 hpiontrackermomrunpar.h:51 hpiontrackermomrunpar.h:52 hpiontrackermomrunpar.h:53 hpiontrackermomrunpar.h:54 hpiontrackermomrunpar.h:55 hpiontrackermomrunpar.h:56 hpiontrackermomrunpar.h:57 hpiontrackermomrunpar.h:58 hpiontrackermomrunpar.h:59 hpiontrackermomrunpar.h:60 hpiontrackermomrunpar.h:61 hpiontrackermomrunpar.h:62 hpiontrackermomrunpar.h:63 hpiontrackermomrunpar.h:64 hpiontrackermomrunpar.h:65 hpiontrackermomrunpar.h:66 hpiontrackermomrunpar.h:67 hpiontrackermomrunpar.h:68 hpiontrackermomrunpar.h:69 hpiontrackermomrunpar.h:70 hpiontrackermomrunpar.h:71 hpiontrackermomrunpar.h:72 hpiontrackermomrunpar.h:73 hpiontrackermomrunpar.h:74 hpiontrackermomrunpar.h:75 hpiontrackermomrunpar.h:76 hpiontrackermomrunpar.h:77 hpiontrackermomrunpar.h:78 hpiontrackermomrunpar.h:79 hpiontrackermomrunpar.h:80 hpiontrackermomrunpar.h:81 hpiontrackermomrunpar.h:82 hpiontrackermomrunpar.h:83 hpiontrackermomrunpar.h:84 hpiontrackermomrunpar.h:85 hpiontrackermomrunpar.h:86 hpiontrackermomrunpar.h:87 hpiontrackermomrunpar.h:88 hpiontrackermomrunpar.h:89 hpiontrackermomrunpar.h:90 hpiontrackermomrunpar.h:91 hpiontrackermomrunpar.h:92 hpiontrackermomrunpar.h:93 hpiontrackermomrunpar.h:94 hpiontrackermomrunpar.h:95 hpiontrackermomrunpar.h:96 hpiontrackermomrunpar.h:97 hpiontrackermomrunpar.h:98 hpiontrackermomrunpar.h:99 hpiontrackermomrunpar.h:100 hpiontrackermomrunpar.h:101 hpiontrackermomrunpar.h:102 hpiontrackermomrunpar.h:103 hpiontrackermomrunpar.h:104 hpiontrackermomrunpar.h:105 hpiontrackermomrunpar.h:106 hpiontrackermomrunpar.h:107 hpiontrackermomrunpar.h:108 hpiontrackermomrunpar.h:109 hpiontrackermomrunpar.h:110 hpiontrackermomrunpar.h:111 hpiontrackermomrunpar.h:112 hpiontrackermomrunpar.h:113