00001 #include "math.h"
00002 #include "stdio.h"
00003
00004 #include "AsciiDmp/AsciiData.h"
00005 #include "AsciiDmp/dmplib.h"
00006
00007 #include <iostream>
00008 #include <fstream>
00009 #include <vector>
00010
00011 #include "TrkReco/TUpdater.h"
00012 #include "TrkReco/Helix.h"
00013 #include "TrkReco/Bfield.h"
00014 #include "TrkReco/TrkReco.h"
00015
00016 #include "MdcRecGeo/MdcRecGeo.h"
00017 #include "MdcTables/MdcTables.h"
00018
00019 int main(){
00020
00021 TrkReco* _trkreco = TrkReco::getTrkReco();
00022
00023 _trkreco->init(0);
00024
00025 Bfield *fBfield=Bfield::getBfield(5);
00026
00027
00028 delete fBfield;
00029
00030 HepPoint3D fPivot(0,0,0);
00031 Hep3Vector fmomentum(1,1,1);
00032 Helix fHelix(fPivot,fmomentum,1.0);
00033
00034
00035
00036 TUpdater fUpd;
00037
00038 fUpd.update();
00039 fUpd.dump();
00040
00041
00042 ifstream is("AsciiDmp_out.dat");
00043
00044 if (! is.good()) {
00045 std::cout<< " The input file is wrong! " <<std::endl;
00046 return 0;
00047 }
00048
00049
00050 EVENT evt;
00051 vector<EVENT> evt_list;
00052
00053
00054 for (int ix = 0; ix < 100; ix++) {
00055
00056
00057 evt.set_initialized();
00058
00059 try {
00060 is >> evt;
00061 } catch (AsciiWrongTag& ex) {
00062 std::cerr << "wrong tag, got " << ex.got()
00063 << " expected: " << ex.expected()
00064 << std::endl;
00065 return 0;
00066 }
00067 catch (AsciiDumpException& ex) {
00068 std::cerr << "AsciiDumpException was caught!" << std::endl;
00069 }
00070
00071
00072 KINE mckn = evt.kine;
00073 kine mctrk = mckn.kineList[0];
00074 cout<<"==============New Event, MC info ================"<<endl;
00075 cout<<"nTrk:"<<mckn.nKine
00076 <<" idPart"<<mctrk.idPart
00077 <<" chrg:"<<mctrk.q
00078 <<" pt:"<<mctrk.pt
00079 <<" theta0:"<<mctrk.theta0
00080 <<" phi0:"<<mctrk.phi0<<endl;
00081
00082
00083
00084 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size();
00085
00086 MdcRecWirhitCol::getMdcRecWirhitCol()->clear();
00087
00088 MDCDIGI mdigi=evt.mdcDigi;
00089 MdcRecGeo* fGeom=MdcRecGeo::getMdcRecGeo();
00090
00091
00092 for(unsigned i=0; i<mdigi.nDigi; i++){
00093
00094
00095
00096
00097 MdcRec_wirhit mhit;
00098 mhit.geo = fGeom->Wire(mdigi.digi[i].layerNo-1,mdigi.digi[i].cellNo-1);
00099 mhit.tdc = mdigi.digi[i].driftTime;
00100 mhit.adc = mdigi.digi[i].energyDeposit;
00101 mhit.ddl = mhit.tdc * 40/10000;
00102 mhit.ddr = mhit.ddl;
00103 mhit.erddl = 0.013;
00104 mhit.erddr = 0.013;
00105 mhit.lr = 2;
00106 mhit.stat = 0;
00107 mhit.stat = mhit.stat |= 1048576;
00108 mhit.stat = mhit.stat |= 2097152;
00109 mhit.stat = mhit.stat |= 4194304;
00110 mhit.stat = mhit.stat |= 1073741824;
00111
00112
00113
00114 MdcRecWirhitCol::getMdcRecWirhitCol()->push_back(mhit);
00115 }
00116
00117 _trkreco->event();
00118
00119 std::cout << "Event No = " << evt.header.eventNo<<std::endl;
00120 evt_list.push_back(evt);
00121 }
00122
00123
00124 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size();
00125 for(unsigned i=0; i<nt; i++){
00126
00127 }
00128 MdcRecWirhitCol::getMdcRecWirhitCol()->clear();
00129
00130 is.close();
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141 _trkreco->term();
00142
00143 return 1;
00144
00145 }