00001
00002
00003
00004
00005 #include "TH1.h"
00006 #include "TChain.h"
00007 #include "TSystem.h"
00008 #include "TFile.h"
00009 #include <iostream>
00010
00011 class StMuDstMaker;
00012 class StMuDstFilterMaker;
00013 StMuDstMaker* maker;
00014 StMuDstFilterMaker* filter;
00015
00016 void exampleMuDstFilter(const char* in="/star/u/laue/afsWork/dAu200.lis", const char* out="test.MuDst.root") {
00017 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00018 loadSharedLibraries();
00019
00020 int counter=0;
00021 int iret=0;
00022 StMuTimer timer;
00023 timer.start();
00024
00025 StMuDebug::setLevel(0);
00026
00027 StMuDbReader* dbReader = StMuDbReader::instance();
00028 dbReader->addDb("dAu200.db");
00029
00030 maker = new StMuDstMaker(0,0,"",in,"st_physics:MuDst.root",10000);
00031 cout << "time to load chain: " << timer.elapsedTime() <<endl;
00032
00033 filter = new StMuDstFilterMaker("filter");
00034 filter->setMuDstMaker(maker);
00035 filter->setOutputFileName(out);
00036 filter->Init();
00037
00038 timer.reset();
00039 timer.start();
00040 cout << maker->chain()->GetEntries() << " events in chain" << endl;
00041 TMemStat memStat("exampleMuDstFilter");
00042 int iret = maker->Make();
00043 while ( iret==0 ) {
00044 filter->Make();
00045 cout << " #" << counter;
00046 cout << " used= "<< memStat.Used();
00047 cout << " size= "<< memStat.ProgSize();
00048 cout << endl;
00049 counter++;
00050 iret = maker->Make();
00051 }
00052 cout << endl;
00053 if (counter) cout << "time/event " << timer.elapsedTime()/counter <<endl;
00054 cout << " # of events:" << counter << endl;
00055 filter->Finish();
00056 }
00057
00058
00059