/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkReco/TrkReco-00-08-59-patch4-slc6tag/test/Test.cxx

Go to the documentation of this file.
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 //#include "BesKernel/BesEvent.h" 
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 //   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 }

Generated on Tue Nov 29 23:12:47 2016 for BOSS_7.0.2 by  doxygen 1.4.7