void mdcmonhld(Int_t secnum=2, Int_t modnum=1, Int_t evtnum=300, Text_t *dirname, Text_t *filename) { gROOT->Reset(); cout << " Sector Number = " <setFirstInput(ora); HOraInfo* oraInfo=ora.getOraInfo(); Int_t runId = oraInfo->getRunId(filename); if(oraInfo->getRunId(filename)==-1) { Int_t retval, buttons; Char_t message[150]; retval = 0; buttons = 0; buttons |= kMBOk; buttons |= kMBNo; sprintf(message,"%s%s%s","File ",filename, " is not found in ORACLE!!! One can use geometry of Nov-99 instead !!!" ); test = new TGMsgBox(gClient->GetRoot(),gClient->GetRoot(), "Confirm action", message,kMBIconQuestion,buttons,&retval); cout << " buttons = " << buttons << endl; cout << " retval = " << retval << endl; if(retval<3) break; runId=oraInfo->getRunId("n99_072.hld"); cout << " runId = " << runId << endl; } HRun* run=rtdb->addRun(runId); HParAsciiFileIo output; output.open("test.txt","out"); rtdb->setOutput(&output); // HParAsciiFileIo *inp2=new HParAsciiFileIo; // inp2->open("/u/nekhaev/anal/Hydra/cur/macros/Mdc/mdc_lookup.txt","in"); // gHades->getRuntimeDb()->setFirstInput(inp2); HMdcRawStruct *parraw = new HMdcRawStruct; rtdb->addContainer(parraw); if (!rtdb.initContainers(runId)) { rtdb->closeFirstInput(); rtdb->closeOutput(); return; } parraw->setStatic(); parraw->printParam(); HMdcGeomStruct *pargeom= new HMdcGeomStruct; rtdb->addContainer(pargeom); if (!pargeom.init()) { rtdb->closeFirstInput(); rtdb->closeOutput(); return; } pargeom->setStatic(); pargeom->printParam(); HMdcMboReadout *readout = new HMdcMboReadout; rtdb->addContainer(readout); if (!readout.init()) { rtdb->closeFirstInput(); rtdb->closeOutput(); return; } readout->setStatic(); readout->printParam(); HMdcEvReadout *evreadout = new HMdcEvReadout; rtdb->addContainer(evreadout); if (!evreadout.init()) { rtdb->closeFirstInput(); rtdb->closeOutput(); return; } evreadout->setStatic(); pargeom->printParam(); rtdb->closeFirstInput(); rtdb->closeOutput(); //Set the split level Int_t splitLevel=2; //split level of the output tree gHades->setSplitLevel(splitLevel); // Reading from hld file HldFileSource *source=new HldFileSource; // source->addUnpacker(new HMdcUnpacker(513,TRUE)); source->addUnpacker(new HMdcUnpacker(201, TRUE)); source->addUnpacker(new HMdcUnpacker(202, TRUE)); cout << "filename = " << filename << endl; cout << "dirname = " << dirname << endl; gHades->setDataSource(source); source->setDirectory(dirname); source->addFile(filename); // source->setDirectory("/d/hades/mdc/pulser"); // source->addFile("puls.hld"); // Monitoring HTaskSet* tasks = new HTaskSet("MDC","MDC Monitoring"); tasks->connect(new HMdcMonitor("mdcMon","mdcMon", secnum, modnum)); tasks->connect((HTask*)NULL,"Mdc12Fit"); gHades->getTaskSet("real")->connect(tasks); // HTaskSet* caltask = new HTaskSet("cal task set","cal task set"); // HMdcMonitor * monCal = new HMdcMonitor("monitor","monitor",Id); // caltask->connect(monCal); // caltask->connect(NULL,"monCal"); // HTask* end=0; // Text_t monitor[20]="mdc.mon"; // gHades->getTask()->connect(new HMdcMonitor(monitor,monitor,Id)); // gHades->getTask()->connect(end,monitor); // gHades->getTaskSet("calibration")->connect(new HMdcMonitor(monitor,monitor,Id)); // gHades->getTaskSet("calibration")->connect(caltask); printf("gHades->init()\n"); if (!gHades->init()) printf("Error\n"); gHades->getRuntimeDb()->print(); //Set output file Int_t compLevel=2; //compression level of the output file //gHades->setOutputFile("test.root","RECREATE","Test",compLevel); // gHades->setOutputFile("pulscal.root","RECREATE","Test",compLevel); gHades->setOutputFile("ora_test.root","RECREATE","Test",compLevel); //Build output tree gHades->makeTree(); // Event Loop printf("Event loop\n"); gHades->eventLoop(evtnum,510); delete gHades; }