#include "math.h"
#include "stdio.h"
#include "AsciiDmp/AsciiData.h"
#include "AsciiDmp/dmplib.h"
#include <iostream>
#include <fstream>
#include <vector>
#include "TrkReco/TUpdater.h"
#include "TrkReco/Helix.h"
#include "TrkReco/Bfield.h"
#include "TrkReco/TrkReco.h"
#include "MdcRecGeo/MdcRecGeo.h"
#include "MdcTables/MdcTables.h"
Go to the source code of this file.
Functions | |
int | main () |
int main | ( | ) |
Definition at line 19 of file Test.cxx.
References TUpdater::dump(), EVHEAD::eventNo, AsciiWrongTag::expected(), Bfield::getBfield(), MdcRecWirhitCol::getMdcRecWirhitCol(), AsciiWrongTag::got(), EVENT::header, genRecEmupikp::i, is, EVENT::mdcDigi, MDCDIGI::nDigi, Tagged::set_initialized(), and TUpdater::update().
00019 { 00020 00021 TrkReco* _trkreco = TrkReco::getTrkReco(); 00022 00023 _trkreco->init(0); 00024 00025 Bfield *fBfield=Bfield::getBfield(5); 00026 // cout<<"Bfield:"<<endl; 00027 // cout<<"bz(0.1,0.1,0.5):"<<fBfield->bz(0.1,0.1,0.5)<<endl; 00028 delete fBfield; 00029 00030 HepPoint3D fPivot(0,0,0); 00031 Hep3Vector fmomentum(1,1,1); 00032 Helix fHelix(fPivot,fmomentum,1.0); 00033 // cout<<"Helix:"<<endl; 00034 // cout<<"radius: "<<fHelix.radius()<<endl; 00035 00036 TUpdater fUpd; 00037 // cout <<"TUpdater"<<endl; 00038 fUpd.update(); 00039 fUpd.dump(); 00040 // cout<<"Hi, event routine is running"<<endl; 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 // EVENT list; 00050 EVENT evt; 00051 vector<EVENT> evt_list; 00052 00053 //event loop .. 00054 for (int ix = 0; ix < 100; ix++) { 00055 00056 // initialisation 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 // Output MC info. 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 // cout<<"Total mdcDigi of this event= "<<evt.mdcDigi.nDigi<<";"<<evt.mdcDigi.digi.size()<<endl; 00082 00083 //Clear the old MdcRec_wirhit tables and create the hits' info for the new event. 00084 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size(); 00085 // cout<<"Col size = "<<nt<<endl; 00086 MdcRecWirhitCol::getMdcRecWirhitCol()->clear(); 00087 00088 MDCDIGI mdigi=evt.mdcDigi; 00089 MdcRecGeo* fGeom=MdcRecGeo::getMdcRecGeo(); 00090 // cout<<fGeom->Wire(7,72)->Layer()<<"; "<<fGeom->Wire(7,72)->Cell()<<"; " 00091 // <<fGeom->Wire(7,72)->Lyr()->NCell()<<endl; 00092 for(unsigned i=0; i<mdigi.nDigi; i++){ 00093 // MdcRec_wirhit* mhit = new MdcRec_wirhit; 00094 // mhit->tdc = evt.mdcDigi.digi[i].driftTime; 00095 // mhit->adc = evt.mdcDigi.digi[i].energyDeposit; 00096 // MdcRecWirhitCol::getMdcRecWirhitCol()->push_back(*mhit); 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; //bit20 00108 mhit.stat = mhit.stat |= 2097152; //bit21 00109 mhit.stat = mhit.stat |= 4194304; //bit22 00110 mhit.stat = mhit.stat |= 1073741824; //bit30 00111 // cout<<"layerNo = "<<mhit.geo->Layer()<<"; "<<mdigi.digi[i].layerNo<<endl; 00112 // cout<<"cellNo = "<<mhit.geo->Cell()<<"; "<<mdigi.digi[i].cellNo<<endl; 00113 // cout<<"NCell of this layer = "<<mhit.geo->Lyr()->NCell()<<endl; 00114 MdcRecWirhitCol::getMdcRecWirhitCol()->push_back(mhit); 00115 } 00116 // _trkreco->event(BesEvent * ,int * ); 00117 _trkreco->event(); 00118 00119 std::cout << "Event No = " << evt.header.eventNo<<std::endl; 00120 evt_list.push_back(evt); 00121 } 00122 00123 //Clear the MdcRec_wirhit tables 00124 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size(); 00125 for(unsigned i=0; i<nt; i++){ 00126 // delete &(*MdcRecWirhitCol::getMdcRecWirhitCol())[i]; 00127 } 00128 MdcRecWirhitCol::getMdcRecWirhitCol()->clear(); 00129 00130 is.close(); 00131 00132 /* 00133 cout<<"Total Event = "<<evt_list.size()<<endl; 00134 cout<<"event1-mdc-ndigi :"<<evt_list[0].mdcDigi.nDigi<<endl; 00135 cout<<"event2-mdc-ndigi :"<<evt_list[1].mdcDigi.nDigi<<endl; 00136 cout<<"event3-mdc-ndigi :"<<evt_list[2].mdcDigi.nDigi<<endl; 00137 cout<<"event1-mdc-digi15-cell :"<<evt_list[0].mdcDigi.digi[14].cellNo<<endl; 00138 cout<<"event1-mdc-digi15-cell :"<<evt_list[1].mdcDigi.digi[14].cellNo<<endl; 00139 cout<<"event1-mdc-digi15-cell :"<<evt_list[2].mdcDigi.digi[14].cellNo<<endl; 00140 */ 00141 _trkreco->term(); 00142 00143 return 1; 00144 00145 }