// // This file test the possibility of adding columns // after the first store of a row-wise or a column wise // ntuple. // #include "TestManager.h" // #include "HepTuple/HepHBookNtuple.h" #include "HepTuple/HepNtuple.h" #include "HepTuple/Column.h" #include "HepTuple/Block.h" ZM_USING_NAMESPACE( zmht ) #include "ZMutility/iostream" #include "ZMutility/fstream" #include USING( namespace std ) void rowWiseAdd(HepFileManager* manager, bool newFile) { HepNtuple& hep = newFile ? manager->ntuple("rowNtuple",1) : manager->retrieveNtuple("rowNtuple",1); hep.setRowWise(); hep.column("Col1",(float)3.2,(float)99); hep.column("Col2",(float)8.2,(float)99); hep.storeCapturedData(); hep.clearData(); cout << "\nloop: "; int i; for (i=0; i<50; i++) { cout << i << "."; hep.capture("Col1",(float)3.2+i); hep.capture("Col2",(float)8.2+2*i); hep.storeCapturedData(); hep.clearData(); } hep.column("Col3",(float)7.2,(float)99); hep.column("Col4",(float)11.2,(float)99); hep.storeCapturedData(); hep.clearData(); cout << "\nloop: "; for (i=0; i<50; i++) { cout << i << "."; hep.capture("Col3",(float)7.2+i); hep.capture("Col4",(float)11.2+2*i); hep.storeCapturedData(); hep.clearData(); } cout << endl; hep.release(); } void columnWiseAdd(HepFileManager* manager, bool newFile) { HepNtuple& hep = newFile ? manager->ntuple("columnNtuple",2) : manager->retrieveNtuple("columnNtuple",2); hep.setColumnWise(); hep.column("Col1",(float)3.2,(float)99); hep.column("Col2",(float)8.2,(float)99); hep.storeCapturedData(); hep.clearData(); cout << "\nloop: "; int i; for (i=0; i<50; i++) { cout << i << "."; hep.capture("Col1",(float)3.2+i); hep.capture("Col2",(float)8.2+2*i); hep.storeCapturedData(); hep.clearData(); } hep.column("Col3",(float)7.2,(float)99); hep.column("Col4",(float)11.2,(float)99); hep.captureColumn("Col1"); hep.captureColumn("Col2"); hep.storeCapturedData(); hep.clearData(); cout << "\nloop: "; for (i=0; i<50; i++) { cout << i << "."; hep.captureColumn("Col1"); hep.captureColumn("Col2"); hep.capture("Col3",(float)7.2+i); hep.capture("Col4",(float)11.2+2*i); hep.storeCapturedData(); hep.clearData(); } cout << endl; hep.release(); } int main (int argc, char* argv[]) { PARSE; bool newFile = is_new("add"); HepFileManager* manager = OPEN_FILE("add"); if (manager == NULL ) { cerr << "Could not open file\n"; ::exit(-1); } rowWiseAdd(manager,newFile); columnWiseAdd(manager,newFile); delete manager; return 0; }