#include <BesEvent.h>
Public Member Functions | |
BesEvent () | |
BesEvent () | |
virtual void | Clear (Option_t *option="") |
virtual void | Clear (Option_t *option="") |
virtual void | ConstructEmcTrackFromRec (BesGeoTrack *emcTrack, const TRecEmcShower *recTrack) |
virtual void | ConstructEmcTrackFromRec (BesGeoTrack *emcTrack, const TRecEmcShower *recTrack) |
virtual void | ConstructMdcTrackFromRec (BesGeoTrack *mdcTrack, const TRecMdcTrack *recTrack, TDisTrack *recEvent) |
virtual void | ConstructMdcTrackFromRec (BesGeoTrack *mdcTrack, const TRecMdcTrack *recTrack, TDisTrack *recEvent) |
virtual void | ConstructMucTrackFromRec (BesGeoTrack *mucTrack, const TRecMucTrack *recTrack) |
virtual void | ConstructMucTrackFromRec (BesGeoTrack *mucTrack, const TRecMucTrack *recTrack) |
virtual void | ConstructTofTrackFromRec (BesGeoTrack *tofTrack, const TRecTofTrack *recTrack, TDisTrack *recEvent) |
virtual void | ConstructTofTrackFromRec (BesGeoTrack *tofTrack, const TRecTofTrack *recTrack, TDisTrack *recEvent) |
virtual void | Delete (Option_t *option="") |
virtual void | Delete (Option_t *option="") |
virtual void | DrawHits (Option_t *option) |
virtual void | DrawHits (Option_t *option) |
virtual void | DrawTracks (Option_t *option) |
virtual void | DrawTracks (Option_t *option) |
Int_t | GetDay () |
Int_t | GetDay () |
const TRecMdcDedx * | GetDedx (Int_t i) const |
const TRecMdcDedx * | GetDedx (Int_t i) const |
const TObjArray * | GetDedxCol (TDisTrack *recEvent) const |
const TObjArray * | GetDedxCol (TDisTrack *recEvent) const |
const Int_t | GetDedxNum (TDisTrack *recEvent) const |
const Int_t | GetDedxNum (TDisTrack *recEvent) const |
const TEmcDigi * | GetEmcDigi (Int_t i) const |
const TEmcDigi * | GetEmcDigi (Int_t i) const |
const TObjArray * | GetEmcDigiCol () const |
const TObjArray * | GetEmcDigiCol () const |
const Int_t | GetEmcDigiNum () const |
const Int_t | GetEmcDigiNum () const |
const TRecEmcShower * | GetEmcShower (Int_t i, TDisTrack *recEvent) const |
const TRecEmcShower * | GetEmcShower (Int_t i, TDisTrack *recEvent) const |
const TObjArray * | GetEmcShowerCol (TDisTrack *recEvent) const |
const TObjArray * | GetEmcShowerCol (TDisTrack *recEvent) const |
const Int_t | GetEmcShowerNum (TDisTrack *recEvent) const |
const Int_t | GetEmcShowerNum (TDisTrack *recEvent) const |
Long64_t | GetEvent () |
Long64_t | GetEvent () |
const TObjArray * | GetExtTrackCol () const |
const TObjArray * | GetExtTrackCol () const |
const Int_t | GetExtTrackNum () const |
const Int_t | GetExtTrackNum () const |
BesEventHeader | GetHeader () |
BesEventHeader | GetHeader () |
Int_t | GetHour () |
Int_t | GetHour () |
Int_t | GetMC () |
Int_t | GetMC () |
const TMdcDigi * | GetMdcDigi (Int_t i) const |
const TMdcDigi * | GetMdcDigi (Int_t i) const |
const TObjArray * | GetMdcDigiCol () const |
const TObjArray * | GetMdcDigiCol () const |
const Int_t | GetMdcDigiNum () const |
const Int_t | GetMdcDigiNum () const |
const TRecMdcTrack * | GetMdcTrack (Int_t i, TDisTrack *recEvent) const |
const TRecMdcTrack * | GetMdcTrack (Int_t i, TDisTrack *recEvent) const |
const TObjArray * | GetMdcTrackCol (TDisTrack *recEvent) const |
const TObjArray * | GetMdcTrackCol (TDisTrack *recEvent) const |
const Int_t | GetMdcTrackNum (TDisTrack *recEvent) const |
const Int_t | GetMdcTrackNum (TDisTrack *recEvent) const |
Int_t | GetMin () |
Int_t | GetMin () |
Int_t | GetMonth () |
Int_t | GetMonth () |
const TMucDigi * | GetMucDigi (Int_t i) const |
const TMucDigi * | GetMucDigi (Int_t i) const |
const TObjArray * | GetMucDigiCol () const |
const TObjArray * | GetMucDigiCol () const |
const Int_t | GetMucDigiNum () const |
const Int_t | GetMucDigiNum () const |
const TRecMucTrack * | GetMucTrack (Int_t i, TDisTrack *recEvent) const |
const TRecMucTrack * | GetMucTrack (Int_t i, TDisTrack *recEvent) const |
const TObjArray * | GetMucTrackCol (TDisTrack *recEvent) const |
const TObjArray * | GetMucTrackCol (TDisTrack *recEvent) const |
const Int_t | GetMucTrackNum (TDisTrack *recEvent) const |
const Int_t | GetMucTrackNum (TDisTrack *recEvent) const |
Long64_t | GetRun () |
Long64_t | GetRun () |
Int_t | GetSec () |
Int_t | GetSec () |
const TTofDigi * | GetTofDigi (Int_t i) const |
const TTofDigi * | GetTofDigi (Int_t i) const |
const TObjArray * | GetTofDigiCol () const |
const TObjArray * | GetTofDigiCol () const |
const Int_t | GetTofDigiNum () const |
const Int_t | GetTofDigiNum () const |
const TRecTofTrack * | GetTofTrack (Int_t i, TDisTrack *recEvent) const |
const TRecTofTrack * | GetTofTrack (Int_t i, TDisTrack *recEvent) const |
const TObjArray * | GetTofTrackCol (TDisTrack *recEvent) const |
const TObjArray * | GetTofTrackCol (TDisTrack *recEvent) const |
const Int_t | GetTofTrackNum (TDisTrack *recEvent) const |
const Int_t | GetTofTrackNum (TDisTrack *recEvent) const |
Int_t | GetYear () |
Int_t | GetYear () |
virtual void | Print (Option_t *option="") |
virtual void | Print (Option_t *option="") |
virtual void | SetEmcShowers (TDisTrack *recEvent) |
virtual void | SetEmcShowers (TDisTrack *recEvent) |
virtual void | SetEvent (TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader) |
virtual void | SetEvent (TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader) |
virtual void | SetExtTracks (TDisTrack *recEvent) |
virtual void | SetExtTracks (TDisTrack *recEvent) |
virtual void | SetHits () |
virtual void | SetHits () |
void | SetMagnetic (Double_t input) |
void | SetMagnetic (Double_t input) |
virtual void | SetMdcTracks (TDisTrack *recEvent) |
virtual void | SetMdcTracks (TDisTrack *recEvent) |
virtual void | SetMucTracks (TDisTrack *recEvent) |
virtual void | SetMucTracks (TDisTrack *recEvent) |
virtual void | SetTofTracks (TDisTrack *recEvent) |
virtual void | SetTofTracks (TDisTrack *recEvent) |
virtual void | SetTracks (TDisTrack *recEvent) |
virtual void | SetTracks (TDisTrack *recEvent) |
virtual | ~BesEvent () |
virtual | ~BesEvent () |
Private Member Functions | |
bool | Is_tofBarrel (UInt_t status) |
bool | Is_tofBarrel (UInt_t status) |
bool | Is_tofCounter (UInt_t status) |
bool | Is_tofCounter (UInt_t status) |
Private Attributes | |
Double_t | f_Magnetic |
TDigiEvent * | fDigiEvent |
TDigiEvent * | fDigiEvent |
TObjArray * | fEmcTrackCol |
TObjArray * | fEmcTrackCol |
BesEventHeader | fEventHeader |
TEvtHeader * | fEvtHeader |
TEvtHeader * | fEvtHeader |
TObjArray * | fExtTrackCol |
TObjArray * | fExtTrackCol |
TObjArray * | fMdcTrackCol |
TObjArray * | fMdcTrackCol |
TObjArray * | fMucTrackCol |
TObjArray * | fMucTrackCol |
TObjArray * | fTofTrackCol |
TObjArray * | fTofTrackCol |
TTrigEvent * | fTrigEvent |
TTrigEvent * | fTrigEvent |
|
|
|
00047 { 00048 // 00049 // BesEvent default destructor 00050 00051 // Delete all array elements 00052 Delete(); 00053 }
|
|
|
|
|
|
|
|
00102 { 00103 // 00104 // Clear event 00105 TString opt = option; 00106 opt.ToUpper(); 00107 00108 fDigiEvent->Clear("C"); 00109 }
|
|
|
|
00789 { 00790 00791 Double_t x=0.0, y=0.0, z=0.0; 00792 x = recTrack->x() * 10.0; 00793 y = recTrack->y() * 10.0; 00794 z = recTrack->z() * 10.0; 00795 00796 emcTrack->SetMarker(x, y, z); 00797 // Add associated emc hits 00798 vector<Int_t> vecHits(0); 00799 map<Int_t, Double_t> cellMap = recTrack->cellIdMap(); 00800 map<Int_t, Double_t>::iterator iCellMap; 00801 for (iCellMap = cellMap.begin(); iCellMap != cellMap.end(); iCellMap++){ 00802 Int_t cellId = iCellMap->first; 00803 vecHits.push_back(cellId); 00804 } 00805 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) { 00806 Identifier aEmcID( vecHits[i] ); 00807 int part = EmcID::barrel_ec( aEmcID ); 00808 int theta = EmcID::theta_module( aEmcID ); 00809 int phi = EmcID::phi_module( aEmcID ); 00810 if (part == 1) theta = 43-theta; // 43 = m_kThetaBr-1 00811 00812 Emc2DCrystal* aHit = gBesGeometry->GetEmcROOTGeo()->Get2DCrystal(part, phi, theta); 00813 emcTrack->AddHit( aHit ); 00814 } 00815 00816 // Add Emc track info 00817 char data[100]; 00818 TString info; 00819 00820 info = TString("EmcShower "); 00821 info += recTrack->trackId(); 00822 emcTrack->AddInfo(info); 00823 00824 sprintf(data, "nHits = %i, status = %i", recTrack->numHits(), recTrack->status()); 00825 emcTrack->AddInfo( TString(data) ); 00826 00827 sprintf(data, "energy= (%.2f #pm %-.2f) MeV", recTrack->energy()*1000.0, recTrack->dE()*1000.0); 00828 emcTrack->AddInfo( TString(data) ); 00829 00830 Identifier aEmcID( recTrack->cellId() ); 00831 int part = EmcID::barrel_ec( aEmcID ); 00832 int theta = EmcID::theta_module( aEmcID ); 00833 int phi = EmcID::phi_module( aEmcID ); 00834 00835 sprintf(data, "cell Id= (%i, #theta %i, #phi %i)", part, theta, phi); 00836 emcTrack->AddInfo( TString(data) ); 00837 00838 sprintf(data, "module = %i", recTrack->module()); 00839 emcTrack->AddInfo( TString(data) ); 00840 00841 //sprintf(data, "x = (%-.3f #pm %-.3f) mm", x, recTrack->dx()); 00842 //emcTrack->AddInfo( TString(data) ); 00843 00844 //sprintf(data, "y = (%-.3f #pm %-.3f) mm", y, recTrack->dy()); 00845 //emcTrack->AddInfo( TString(data) ); 00846 00847 //sprintf(data, "z = (%-.3f #pm %-.3f) mm", z, recTrack->dz()); 00848 //emcTrack->AddInfo( TString(data) ); 00849 00850 sprintf(data, "#theta = (%-.3f #pm %-.3f)", recTrack->theta(), recTrack->dtheta()); 00851 emcTrack->AddInfo( TString(data) ); 00852 00853 sprintf(data, "#phi = (%-.3f #pm %-.3f)", recTrack->phi(), recTrack->dphi()); 00854 emcTrack->AddInfo( TString(data) ); 00855 00856 // sprintf(data, "cos (x=%-.3f, y=%-.3f, z=%-.3f)", recTrack->cosx(), recTrack->cosy(), recTrack->cosz()); //from boss6.1.0. no these varibles 00857 // emcTrack->AddInfo( TString(data) ); 00858 00859 emcTrack->CloseInfo(); 00860 }
|
|
|
|
00339 { 00340 00341 Double_t field = -f_Magnetic; // Tesla 00342 Double_t kvC = 3.0e8; // light speed 00343 Int_t charge = recTrack->charge(); 00344 Double_t pt = recTrack->pxy(); // GeV 00345 Double_t pz = recTrack->pz(); // GeV 00346 Double_t pi = TMath::Pi(); 00347 00348 // unit is "cm", so * 10 00349 Double_t orgx = recTrack->x()*10; 00350 Double_t orgy = recTrack->y()*10; 00351 Double_t orgz = recTrack->z()*10; 00352 00353 00354 Double_t mdcR = ((TGeoTube*)gBesGeometry->GetMdcROOTGeo()->GetVolumeMdc()->GetShape())->GetRmax(); 00355 Double_t mdcZ = ((TGeoTube*)gBesGeometry->GetMdcROOTGeo()->GetVolumeMdc()->GetShape())->GetDz(); 00356 00357 Double_t radius,zStep; 00358 if (charge == 0) { 00359 radius = 1e9 ; // cosmic ray test 00360 zStep = 1e9; 00361 } 00362 else { 00363 radius = (pt * 1.0e9 / kvC * 1e3) / fabs(charge * field) ; 00364 zStep = 2*pi*radius * fabs(pz/pt); 00365 } 00366 Double_t curvature = 1.0/radius; 00367 Double_t step = 10.0; // mm 00368 Double_t delt = step*(1.0e-3)/kvC; 00369 00370 mdcTrack->AddPoint(orgx, orgy, orgz, 0.0); 00371 const Double_t *p; 00372 Int_t nStep = 0; 00373 00374 Double_t x,y,z,t; 00375 x = orgx; 00376 y = orgy; 00377 z = orgz; 00378 00379 if (charge == 0){ //cosmic ray test 00380 do { 00381 x = recTrack->helix(0)* 10 * 00382 cos(recTrack->helix(1)) 00383 - nStep * step * sin(recTrack->helix(1)); 00384 y = recTrack->helix(0)* 10 * 00385 sin(recTrack->helix(1)) 00386 + nStep * step * cos(recTrack->helix(1)); 00387 z = recTrack->helix(3)* 10 + 00388 nStep * step * recTrack->helix(4); 00389 00390 mdcTrack->AddPoint(x, y, z, delt*nStep); 00391 Double_t mp[3]; 00392 mp[0] = 0; 00393 mp[1] = 0; 00394 mp[2] = 0; 00395 mdcTrack->PaintMarker(mp); 00396 mdcTrack->SetMarkerColor(kBlack); 00397 mdcTrack->SetMarkerSize(10); 00398 mdcTrack->SetLineColor(kBlack); 00399 00400 nStep++; 00401 } 00402 while ( (x*x + y*y) < mdcR*mdcR && fabs(z) < mdcZ ); 00403 00404 nStep = 0; 00405 do { 00406 x = recTrack->helix(0)* 10 * 00407 cos(recTrack->helix(1)) 00408 - nStep * step * sin(recTrack->helix(1)); 00409 y = recTrack->helix(0)* 10 * 00410 sin(recTrack->helix(1)) 00411 + nStep * step * cos(recTrack->helix(1)); 00412 z = recTrack->helix(3)* 10 + 00413 nStep * step * recTrack->helix(4); 00414 00415 mdcTrack->AddPoint(x, y, z, delt*nStep); 00416 Double_t mp[3]; 00417 mp[0] = 0; 00418 mp[1] = 0; 00419 mp[2] = 0; 00420 mdcTrack->PaintMarker(mp); 00421 mdcTrack->SetMarkerColor(kBlack); 00422 mdcTrack->SetMarkerSize(10); 00423 mdcTrack->SetLineColor(kRed); 00424 00425 } 00426 while ( (x*x + y*y) < mdcR*mdcR && fabs(z) < mdcZ ); 00427 } 00428 else{ //normal track 00429 TGeoHelix helix(curvature, zStep, charge); 00430 helix.InitPoint(orgx, orgy, orgz); 00431 00432 helix.InitDirection(recTrack->px(), recTrack->py(), recTrack->pz(), kFALSE); 00433 //helix.InitDirection(1000, 10, 10, kFALSE); 00434 helix.SetField(0.0, 0.0, field, kFALSE); 00435 00436 do { 00437 // helix Step before GetCurrentPoint, or first point will be wrong 00438 helix.Step(step); 00439 p = helix.GetCurrentPoint(); 00440 00441 mdcTrack->AddPoint(p[0], p[1], p[2], delt*nStep); 00442 Double_t mp[3]; 00443 mp[0] = p[0]; 00444 mp[1] = p[1]; 00445 mp[2] = p[2]; 00446 mdcTrack->PaintMarker(mp); 00447 mdcTrack->SetMarkerColor(kBlack); 00448 mdcTrack->SetMarkerSize(10); 00449 nStep++; 00450 } 00451 while ( (p[0]*p[0] + p[1]*p[1]) < mdcR*mdcR && fabs(p[2]) < mdcZ ); 00452 00453 } 00454 00455 // Add associated mdc hits 00456 vector<UInt_t> vecHits(0); 00457 const TObjArray *recMdcHitCol = fRecEvent->getRecMdcHitCol(); 00458 for (Int_t i = 0; i < recMdcHitCol->GetEntriesFast(); i++){ 00459 TRecMdcHit *recMdcHit = (TRecMdcHit*)recMdcHitCol->At(i); 00460 Int_t recHitId = recMdcHit->getTrkId(); 00461 Int_t recTrkId = recTrack->trackId(); 00462 if (recHitId == recTrkId) vecHits.push_back(recMdcHit->getMdcId()); 00463 } 00464 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) { 00465 Identifier aMdcID( vecHits[i] ); 00466 int layer = MdcID::layer( aMdcID ); 00467 int wire = MdcID::wire( aMdcID ); 00468 00469 Mdc2DWire* aHit = gBesGeometry->GetMdcROOTGeo()->Get2DWire(layer, wire); 00470 mdcTrack->AddHit( aHit ); 00471 } 00472 00473 mdcTrack->SetCharge(recTrack->charge()); 00474 00475 // Add mdc track info 00476 char data[100]; 00477 TString info; 00478 00479 info = TString("MdcTrack "); 00480 info += recTrack->trackId(); 00481 mdcTrack->AddInfo( info ); 00482 00483 sprintf(data, "P = %-.3f GeV, Pt= %-.3f GeV", recTrack->p(), recTrack->pxy()); 00484 mdcTrack->AddInfo( TString(data) ); 00485 00486 //sprintf(data, "Pt= %-.3f GeV", recTrack->pxy()); 00487 //mdcTrack->AddInfo( TString(data) ); 00488 00489 sprintf(data, "Pz= %-.3f GeV", recTrack->pz()); 00490 mdcTrack->AddInfo( TString(data) ); 00491 00492 sprintf(data, "charge= %i", recTrack->charge()); 00493 mdcTrack->AddInfo( TString(data) ); 00494 00495 sprintf(data, "#phi %-.3f", recTrack->phi()); 00496 mdcTrack->AddInfo( TString(data) ); 00497 00498 sprintf(data, "#theta %-.3f", recTrack->theta()); 00499 mdcTrack->AddInfo( TString(data) ); 00500 00501 sprintf(data, "Origin (%-.3f, %-.3f, %-.3f) mm", orgx, orgy, orgz); //recTrack->x(), recTrack->y(), recTrack->z()); 00502 mdcTrack->AddInfo( TString(data) ); 00503 00504 sprintf(data, "stat= %i, #chi^{2}= %-.3f", recTrack->stat(), recTrack->chi2()); 00505 mdcTrack->AddInfo( TString(data) ); 00506 00507 // sprintf(data, "ndof= %i, rms= %-.3f", recTrack->ndof(), recTrack->rms()); 00508 // mdcTrack->AddInfo( TString(data) ); 00509 00510 // sprintf(data, "extrp= %-.3f, pathL= %-.3f", recTrack->extrp(), recTrack->pathLength()); 00511 // mdcTrack->AddInfo( TString(data) ); 00512 00513 //sprintf(data, "nHits= %i, nSter= %i", recTrack->getNhits(), recTrack->nster()); 00514 mdcTrack->AddInfo( TString(data) ); 00515 00516 mdcTrack->CloseInfo(); 00517 }
|
|
|
|
00864 { 00865 if (recTrack->depth() <= 0.0) return; // bad track 00866 00867 Double_t field = 1e-3; // Tesla 00868 Double_t kvC = 3.0e8; // light speed 00869 Int_t charge = 1; 00870 Double_t pz = recTrack->pz(); // GeV 00871 Double_t pt = 00872 sqrt(recTrack->px()*recTrack->px() + recTrack->py()*recTrack->py()); // GeV 00873 Double_t pi = TMath::Pi(); 00874 00875 Double_t mucR = 00876 ((TGeoBBox*)gBesGeometry->GetMucROOTGeo()->GetVolumeMuc()->GetShape())->GetDX(); 00877 Double_t mucZ = 00878 ((TGeoBBox*)gBesGeometry->GetMucROOTGeo()->GetVolumeMuc()->GetShape())->GetDZ(); 00879 00880 Double_t radius = 1.0e+9; 00881 Double_t curvature = 1.0/radius; 00882 Double_t zStep = 2*pi*radius * fabs(pz/pt); 00883 Double_t step = 1.0; // mm 00884 Double_t delt = step*(1.0e-3)/kvC; 00885 00886 TGeoHelix helix(curvature, zStep, charge); 00887 00888 Double_t x = recTrack->xPos() * 10.0; 00889 Double_t y = recTrack->yPos() * 10.0; 00890 Double_t z = recTrack->zPos() * 10.0; 00891 00892 helix.InitPoint(x, y, z); 00893 helix.InitDirection(recTrack->px(), recTrack->py(), recTrack->pz(), kFALSE); 00894 helix.SetField(0.0, 0.0, field, kFALSE); 00895 00896 mucTrack->AddPoint(x, y, z, 0.0); 00897 const Double_t *p; 00898 Int_t nStep = 0; 00899 do { 00900 // helix Step before GetCurrentPoint, or first point will be wrong 00901 helix.Step(step); 00902 p = helix.GetCurrentPoint(); 00903 mucTrack->AddPoint(p[0], p[1], p[2], delt*nStep); 00904 Double_t mp[3]; 00905 mp[0] = p[0]; 00906 mp[1] = p[1]; 00907 mp[2] = p[2]; 00908 mucTrack->PaintMarker(mp); 00909 mucTrack->SetMarkerColor(kBlack); 00910 mucTrack->SetMarkerSize(10); 00911 nStep++; 00912 } 00913 while ( (p[0]*p[0] + p[1]*p[1]) < mucR*mucR && fabs(p[2]) < mucZ ); 00914 00915 // Add associated muc hits 00916 vector<Int_t> vecHits = recTrack->vecHits(); 00917 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) { 00918 Identifier aMucID( vecHits[i] ); 00919 int part = MucID::part( aMucID ); 00920 int seg = MucID::seg( aMucID ); 00921 int gap = MucID::gap( aMucID ); 00922 int strip = MucID::strip( aMucID ); 00923 00924 Muc2DStrip* aHit = gBesGeometry->GetMucROOTGeo()->Get2DStrip(part, seg, gap, strip); 00925 mucTrack->AddHit( aHit ); 00926 } 00927 00928 mucTrack->SetCharge(charge); 00929 00930 // Add Muc track info 00931 char data[100]; 00932 TString info; 00933 00934 info = TString("MucTrack "); 00935 info += recTrack->trackId(); 00936 mucTrack->AddInfo(info); 00937 00938 sprintf(data, "nHits= %i, maxHits= %i, nLayers= %i", recTrack->numHits(), recTrack->maxHitsInLayer(), recTrack->numLayers()); 00939 mucTrack->AddInfo( TString(data) ); 00940 00941 sprintf(data, "lastLayer (br= %i, ec= %i)", recTrack->brLastLayer(), recTrack->ecLastLayer()); 00942 mucTrack->AddInfo( TString(data) ); 00943 00944 sprintf(data, "depth = %.3f cm", recTrack->depth()); 00945 mucTrack->AddInfo( TString(data) ); 00946 00947 sprintf(data, "#chi^{2}= %-.3f, dof= %i, rms= %-.3f", recTrack->chi2(), recTrack->dof(), recTrack->rms()); 00948 mucTrack->AddInfo( TString(data) ); 00949 00950 sprintf(data, "Origin (%-.2f, %-.2f, %-.2f) cm", recTrack->xPos(), recTrack->yPos(), recTrack->zPos()); 00951 mucTrack->AddInfo( TString(data) ); 00952 00953 sprintf(data, "p (%-.3f, %-.3f, %-.3f) GeV", recTrack->px(), recTrack->py(), recTrack->pz()); 00954 mucTrack->AddInfo( TString(data) ); 00955 00956 mucTrack->CloseInfo(); 00957 }
|
|
|
|
00639 { 00640 00641 vector<Int_t> vecBHits(0); 00642 vector<Int_t> vecEHits(0); 00643 00644 const TObjArray *recTofTrackCol = fRecEvent->getTofTrackCol(); 00645 for (Int_t i = 0; i < recTofTrackCol->GetEntriesFast(); i++){ 00646 TRecTofTrack *recHit = (TRecTofTrack*)recTofTrackCol->At(i); 00647 if ( !Is_tofCounter( recHit->status())) continue; 00648 00649 Int_t recHitId = recHit->trackID(); 00650 Int_t recTrkId = recTrack->trackID(); 00651 if (recHitId == recTrkId) { 00652 if ( Is_tofBarrel( recHit->status() ) ) { 00653 vecBHits.push_back(recHit->tofID()); 00654 } 00655 else { 00656 vecEHits.push_back(recHit->tofID()); 00657 } 00658 } 00659 } 00660 00661 TGeoPhysicalNode *phyNode = 0; 00662 Double_t x=0.0, y=0.0, z=0.0; 00663 00664 Int_t nHits; 00665 if (vecBHits.size()){ 00666 nHits = vecBHits.size(); 00667 for (Int_t i = 0; i < nHits; i++) { 00668 00669 int part = 1; 00670 int layer = 0; 00671 int scin = 0; 00672 if ( ( vecBHits[i] >= 0 ) && ( vecBHits[i] <= 87 ) ) { 00673 layer = 0; 00674 scin = vecBHits[i]; 00675 } 00676 else { 00677 layer = 1; 00678 scin = vecBHits[i] - 88; 00679 } 00680 00681 Tof2DScin* aHit = gBesGeometry->GetTofROOTGeo()->Get2DScin(part, layer, scin); 00682 tofTrack->AddHit( aHit ); 00683 00684 // calculate average position 00685 Double_t local[3] = {0.0, 0.0, 0.0}; 00686 Double_t master[3] = {0.0, 0.0, 0.0}; 00687 phyNode = gBesGeometry->GetTofROOTGeo()->GetPhysicalScin(part, layer, scin); 00688 if (phyNode) 00689 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]); 00690 // transform to top 00691 x += master[0]; 00692 y += master[1]; 00693 z += master[2]; 00694 } 00695 x /= nHits; 00696 y /= nHits; 00697 z /= nHits; 00698 00699 z = recTrack->zrhit(); 00700 00701 tofTrack->SetMarker(x, y, z); 00702 } 00703 00704 else if (vecEHits.size()){ 00705 nHits = vecEHits.size(); 00706 for (Int_t i = 0; i < nHits; i++) { 00707 00708 int part = 0; 00709 int layer = 0; 00710 int scin = 0; 00711 if ( ( vecEHits[i] >= 0 ) && ( vecEHits[i] <= 47 ) ) { 00712 part = 2; 00713 scin = vecEHits[i]; 00714 } 00715 else { 00716 part = 0; 00717 scin = vecEHits[i] - 48; 00718 } 00719 00720 00721 Tof2DScin* aHit = gBesGeometry->GetTofROOTGeo()->Get2DScin(part, layer, scin); 00722 tofTrack->AddHit( aHit ); 00723 00724 // calculate average position 00725 Double_t local[3] = {0.0, 0.0, 0.0}; 00726 Double_t master[3] = {0.0, 0.0, 0.0}; 00727 phyNode = gBesGeometry->GetTofROOTGeo()->GetPhysicalScin(part, layer, scin); 00728 if (phyNode) 00729 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]); 00730 // transform to top 00731 x += master[0]; 00732 y += master[1]; 00733 z += master[2]; 00734 } 00735 x /= nHits; 00736 y /= nHits; 00737 z /= nHits; 00738 00739 tofTrack->SetMarker(x, y, z); 00740 } 00741 00742 // Add tof track info 00743 char data[100]; 00744 TString info; 00745 00746 info = TString("TofTrack "); 00747 info += recTrack->trackID(); 00748 tofTrack->AddInfo(info); 00749 00750 //sprintf(data, "Part = %i, Qual1 = %i, Qual2 = %i", recTrack->getPart(), recTrack->getQual1(), recTrack->getQual2()); 00751 //tofTrack->AddInfo( TString(data) ); 00752 00753 //sprintf(data, "Tof = (%-.3f #pm %-.3f) ns", recTrack->getTof(), recTrack->getETof()); 00754 //tofTrack->AddInfo( TString(data) ); 00755 00756 //sprintf(data, "Tof1 = (%-.3f #pm %-.3f) ns", recTrack->getTof1(), recTrack->getETof1()); 00757 //tofTrack->AddInfo( TString(data) ); 00758 00759 //sprintf(data, "Tof2 = (%-.3f #pm %-.3f) ns", recTrack->getTof2(), recTrack->getETof2()); 00760 //tofTrack->AddInfo( TString(data) ); 00761 00762 //sprintf(data, "Path(1=%-.2f, 2=%-.2f) mm", recTrack->getPath1(), recTrack->getPath2()); 00763 //tofTrack->AddInfo( TString(data) ); 00764 00765 //sprintf(data, "Pulse(1=%-.0f, 2=%-.0f)", recTrack->getPh1(), recTrack->getPh2()); 00766 //tofTrack->AddInfo( TString(data) ); 00767 00768 //sprintf(data, "ZHit(1=%-.2fmm, 2=%-.2f)mm", recTrack->getZHit1(), recTrack->getZHit2()); 00769 //tofTrack->AddInfo( TString(data) ); 00770 00773 00774 //sprintf(data, "RHit = %-.3f, Beta = %-.3f", recTrack->getRHit(), recTrack->getBeta()); 00775 //tofTrack->AddInfo( TString(data) ); 00776 00777 //sprintf(data, "w_e = %-.2f%%, w_mu = %-.2f%%", recTrack->getWeightElectron()*100.0, recTrack->getWeightMuon()*100.0); 00778 //tofTrack->AddInfo( TString(data) ); 00779 00780 //sprintf(data, "w_pi = %-.2f%%, w_K = %-.2f%%", recTrack->getWeightPion()*100.0, recTrack->getWeightKaon()*100.0); 00781 //tofTrack->AddInfo( TString(data) ); 00782 00783 //sprintf(data, "w_P = %-.2f%%", recTrack->getWeightProton()*100.0); 00784 //tofTrack->AddInfo( TString(data) ); 00785 00786 tofTrack->CloseInfo(); 00787 }
|
|
|
|
00057 { 00058 // 00059 // Clear event 00060 TString opt = option; 00061 opt.ToUpper(); 00062 00063 if (fMdcTrackCol) { 00064 for (int j = 0; j < fMdcTrackCol->GetEntries(); j++){ 00065 delete fMdcTrackCol->At(j); 00066 } 00067 fMdcTrackCol->Clear("C"); 00068 delete fMdcTrackCol; 00069 } 00070 if (fTofTrackCol) { 00071 for (int j = 0; j < fTofTrackCol->GetEntries(); j++){ 00072 delete fTofTrackCol->At(j); 00073 } 00074 fTofTrackCol->Clear("C"); 00075 delete fTofTrackCol; 00076 } 00077 if (fEmcTrackCol) { 00078 for (int j = 0; j < fEmcTrackCol->GetEntries(); j++){ 00079 delete fEmcTrackCol->At(j); 00080 } 00081 fEmcTrackCol->Clear("C"); 00082 delete fEmcTrackCol; 00083 } 00084 if (fMucTrackCol) { 00085 for (int j = 0; j < fMucTrackCol->GetEntries(); j++){ 00086 delete fMucTrackCol->At(j); 00087 } 00088 fMucTrackCol->Clear("C"); 00089 delete fMucTrackCol; 00090 } 00091 if (fExtTrackCol) { 00092 for (int j = 0; j < fExtTrackCol->GetEntries(); j++){ 00093 delete fExtTrackCol->At(j); 00094 } 00095 fExtTrackCol->Clear("C"); 00096 delete fExtTrackCol; 00097 } 00098 }
|
|
|
|
01026 { 01027 if (gBesGeometry) { 01028 gBesGeometry->GetMdcROOTGeo()->DrawHits(option); 01029 gBesGeometry->GetTofROOTGeo()->DrawHits(option); 01030 gBesGeometry->GetEmcROOTGeo()->DrawHits(option); 01031 gBesGeometry->GetMucROOTGeo()->DrawHits(option); 01032 } 01033 }
|
|
|
|
01037 { 01038 01039 BesView *view = (BesView*)gPad->GetView(); 01040 01041 if (view && view->GetVisTracksGlobal()) { 01042 01043 if (view->GetVisTracksMdc()) { 01044 for (Int_t i = 0; i < fMdcTrackCol->GetEntries(); i++) { 01045 BesGeoTrack *track = (BesGeoTrack*)fMdcTrackCol->At(i); 01046 track->Draw(); 01047 } 01048 } 01049 01050 if (view->GetVisTracksTof()) { 01051 for (Int_t i = 0; i < fTofTrackCol->GetEntries(); i++) { 01052 BesGeoTrack *track = (BesGeoTrack*)fTofTrackCol->At(i); 01053 track->Draw(); 01054 } 01055 } 01056 01057 if (view->GetVisTracksEmc()) { 01058 for (Int_t i = 0; i < fEmcTrackCol->GetEntries(); i++) { 01059 BesGeoTrack *track = (BesGeoTrack*)fEmcTrackCol->At(i); 01060 track->Draw(); 01061 } 01062 } 01063 01064 if (view->GetVisTracksMuc()) { 01065 for (Int_t i = 0; i < fMucTrackCol->GetEntries(); i++) { 01066 BesGeoTrack *track = (BesGeoTrack*)fMucTrackCol->At(i); 01067 track->Draw(); 01068 } 01069 } 01070 01071 if (view->GetVisTracksExt()) { 01072 for (Int_t i = 0; i < fExtTrackCol->GetEntries(); i++) { 01073 BesGeoTrack *track = (BesGeoTrack*)fExtTrackCol->At(i); 01074 track->Draw(); 01075 } 01076 } 01077 } 01078 }
|
|
00255 { 00256 return fEventHeader.GetEventDay(); 00257 }
|
|
00255 { 00256 return fEventHeader.GetEventDay(); 00257 }
|
|
00235 { 00236 // if (fRecEvent) 00237 // return fRecEvent->getRecMdcDedx(i); 00238 // else 00239 return 0; 00240 };
|
|
00235 { 00236 // if (fRecEvent) 00237 // return fRecEvent->getRecMdcDedx(i); 00238 // else 00239 return 0; 00240 };
|
|
00151 { 00152 // if (recEvent) 00153 // return recEvent->getRecMdcDedxCol(); 00154 // else 00155 return 0; 00156 };
|
|
00151 { 00152 // if (recEvent) 00153 // return recEvent->getRecMdcDedxCol(); 00154 // else 00155 return 0; 00156 };
|
|
00196 { 00197 // if (fRecEvent) 00198 // return fRecEvent->getRecMdcDedxCol()->GetEntries(); 00199 // else 00200 return -1; 00201 };
|
|
00196 { 00197 // if (fRecEvent) 00198 // return fRecEvent->getRecMdcDedxCol()->GetEntries(); 00199 // else 00200 return -1; 00201 };
|
|
00108 { 00109 if (fDigiEvent) return fDigiEvent->getEmcDigi(i); 00110 else return 0; 00111 };
|
|
00108 { 00109 if (fDigiEvent) return fDigiEvent->getEmcDigi(i); 00110 else return 0; 00111 };
|
|
00076 { 00077 if (fDigiEvent) return fDigiEvent->getEmcDigiCol(); 00078 else return 0; 00079 };
|
|
00076 { 00077 if (fDigiEvent) return fDigiEvent->getEmcDigiCol(); 00078 else return 0; 00079 };
|
|
00092 { 00093 if (fDigiEvent) return fDigiEvent->getEmcDigiCol()->GetEntries(); 00094 else return -1; 00095 };
|
|
00092 { 00093 if (fDigiEvent) return fDigiEvent->getEmcDigiCol()->GetEntries(); 00094 else return -1; 00095 };
|
|
00218 { 00219 if (recEvent) 00220 return recEvent->getEmcShower(i); 00221 else 00222 return 0; 00223 };
|
|
00218 { 00219 if (recEvent) 00220 return recEvent->getEmcShower(i); 00221 else 00222 return 0; 00223 };
|
|
00133 { 00134 // if (recEvent) 00135 // return recEvent->getEmcShowerCol(); 00136 // else 00137 return 0; 00138 };
|
|
00133 { 00134 // if (recEvent) 00135 // return recEvent->getEmcShowerCol(); 00136 // else 00137 return 0; 00138 };
|
|
00176 { 00177 if (recEvent) 00178 // return recEvent->getEmcShowerCol()->GetEntries(); 00179 return recEvent->getEmcShowerNum(); 00180 else 00181 return -1; 00182 };
|
|
00176 { 00177 if (recEvent) 00178 // return recEvent->getEmcShowerCol()->GetEntries(); 00179 return recEvent->getEmcShowerNum(); 00180 else 00181 return -1; 00182 };
|
|
00246 { 00247 return fEventHeader.GetEventNumber(); 00248 }
|
|
00246 { 00247 return fEventHeader.GetEventNumber(); 00248 }
|
|
00145 { 00146 return 0; // for test 00147 //if (fRecEvent) 00148 // return fRecEvent->getExtTrackCol(); 00149 //else return 0; 00150 };
|
|
00145 { 00146 return 0; // for test 00147 //if (fRecEvent) 00148 // return fRecEvent->getExtTrackCol(); 00149 //else return 0; 00150 };
|
|
00190 { 00191 return -1;// for test 00192 //if (fRecEvent) 00193 // return fRecEvent->getExtTrackCol()->GetEntries(); 00194 //else return -1; 00195 };
|
|
00190 { 00191 return -1;// for test 00192 //if (fRecEvent) 00193 // return fRecEvent->getExtTrackCol()->GetEntries(); 00194 //else return -1; 00195 };
|
|
00271 {
00272 return fEventHeader;
00273 }
|
|
00271 {
00272 return fEventHeader;
00273 }
|
|
00258 { 00259 return fEventHeader.GetEventHour(); 00260 }
|
|
00258 { 00259 return fEventHeader.GetEventHour(); 00260 }
|
|
00267 { 00268 return fEventHeader.GetEventMC(); 00269 }
|
|
00267 { 00268 return fEventHeader.GetEventMC(); 00269 }
|
|
00100 { 00101 if (fDigiEvent) return fDigiEvent->getMdcDigi(i); 00102 else return 0; 00103 };
|
|
00100 { 00101 if (fDigiEvent) return fDigiEvent->getMdcDigi(i); 00102 else return 0; 00103 };
|
|
00068 { 00069 if (fDigiEvent) return fDigiEvent->getMdcDigiCol(); 00070 else return 0; 00071 };
|
|
00068 { 00069 if (fDigiEvent) return fDigiEvent->getMdcDigiCol(); 00070 else return 0; 00071 };
|
|
00084 { 00085 if (fDigiEvent) return fDigiEvent->getMdcDigiCol()->GetEntries(); 00086 else return -1; 00087 };
|
|
00084 { 00085 if (fDigiEvent) return fDigiEvent->getMdcDigiCol()->GetEntries(); 00086 else return -1; 00087 };
|
|
00202 { 00203 if (recEvent) 00204 return recEvent->getRecMdcTrack(i); 00205 else return 0; 00206 };
|
|
00202 { 00203 if (recEvent) 00204 return recEvent->getRecMdcTrack(i); 00205 else return 0; 00206 };
|
|
00117 { 00118 if (recEvent) 00119 return recEvent->getRecMdcTrackCol(); 00120 else return 0; 00121 };
|
|
00117 { 00118 if (recEvent) 00119 return recEvent->getRecMdcTrackCol(); 00120 else return 0; 00121 };
|
|
00157 { 00158 if (recEvent) 00159 // return recEvent->getRecMdcTrackCol()->GetEntries(); 00160 return recEvent->getMdcTrackNum(); 00161 else 00162 return -1; 00163 };
|
|
00157 { 00158 if (recEvent) 00159 // return recEvent->getRecMdcTrackCol()->GetEntries(); 00160 return recEvent->getMdcTrackNum(); 00161 else 00162 return -1; 00163 };
|
|
00261 { 00262 return fEventHeader.GetEventMin(); 00263 }
|
|
00261 { 00262 return fEventHeader.GetEventMin(); 00263 }
|
|
00252 { 00253 return fEventHeader.GetEventMonth(); 00254 }
|
|
00252 { 00253 return fEventHeader.GetEventMonth(); 00254 }
|
|
00112 { 00113 if (fDigiEvent) return fDigiEvent->getMucDigi(i); 00114 else return 0; 00115 };
|
|
00112 { 00113 if (fDigiEvent) return fDigiEvent->getMucDigi(i); 00114 else return 0; 00115 };
|
|
00080 { 00081 if (fDigiEvent) return fDigiEvent->getMucDigiCol(); 00082 else return 0; 00083 };
|
|
00080 { 00081 if (fDigiEvent) return fDigiEvent->getMucDigiCol(); 00082 else return 0; 00083 };
|
|
00096 { 00097 if (fDigiEvent) return fDigiEvent->getMucDigiCol()->GetEntries(); 00098 else return -1; 00099 };
|
|
00096 { 00097 if (fDigiEvent) return fDigiEvent->getMucDigiCol()->GetEntries(); 00098 else return -1; 00099 };
|
|
00224 { 00225 if (recEvent) 00226 return recEvent->getMucTrack(i); 00227 else 00228 return 0; 00229 };
|
|
00224 { 00225 if (recEvent) 00226 return recEvent->getMucTrack(i); 00227 else 00228 return 0; 00229 };
|
|
00139 { 00140 if (recEvent) 00141 return recEvent->getMucTrackCol(); 00142 else 00143 return 0; 00144 };
|
|
00139 { 00140 if (recEvent) 00141 return recEvent->getMucTrackCol(); 00142 else 00143 return 0; 00144 };
|
|
00183 { 00184 if (recEvent) 00185 return recEvent->getMucTrackNum(); 00186 // return recEvent->getMucTrackCol()->GetEntries(); 00187 else 00188 return -1; 00189 };
|
|
00183 { 00184 if (recEvent) 00185 return recEvent->getMucTrackNum(); 00186 // return recEvent->getMucTrackCol()->GetEntries(); 00187 else 00188 return -1; 00189 };
|
|
00243 { 00244 return fEventHeader.GetRunNumber(); 00245 }
|
|
00243 { 00244 return fEventHeader.GetRunNumber(); 00245 }
|
|
00264 { 00265 return fEventHeader.GetEventSec(); 00266 }
|
|
00264 { 00265 return fEventHeader.GetEventSec(); 00266 }
|
|
00104 { 00105 if (fDigiEvent) return fDigiEvent->getTofDigi(i); 00106 else return 0; 00107 };
|
|
00104 { 00105 if (fDigiEvent) return fDigiEvent->getTofDigi(i); 00106 else return 0; 00107 };
|
|
00072 { 00073 if (fDigiEvent) return fDigiEvent->getTofDigiCol(); 00074 else return 0; 00075 };
|
|
00072 { 00073 if (fDigiEvent) return fDigiEvent->getTofDigiCol(); 00074 else return 0; 00075 };
|
|
00088 { 00089 if (fDigiEvent) return fDigiEvent->getTofDigiCol()->GetEntries(); 00090 else return -1; 00091 };
|
|
00088 { 00089 if (fDigiEvent) return fDigiEvent->getTofDigiCol()->GetEntries(); 00090 else return -1; 00091 };
|
|
00212 { 00213 if (recEvent) 00214 return recEvent->getTofTrack(i); 00215 else 00216 return 0; 00217 };
|
|
00212 { 00213 if (recEvent) 00214 return recEvent->getTofTrack(i); 00215 else 00216 return 0; 00217 };
|
|
00127 { 00128 if (recEvent) 00129 return recEvent->getTofTrackCol(); 00130 else 00131 return 0; 00132 };
|
|
00127 { 00128 if (recEvent) 00129 return recEvent->getTofTrackCol(); 00130 else 00131 return 0; 00132 };
|
|
00169 { 00170 if (recEvent) 00171 // return recEvent->getTofTrackCol()->GetEntries(); 00172 return recEvent->getTofTrackNum(); 00173 else 00174 return -1; 00175 };
|
|
00169 { 00170 if (recEvent) 00171 // return recEvent->getTofTrackCol()->GetEntries(); 00172 return recEvent->getTofTrackNum(); 00173 else 00174 return -1; 00175 };
|
|
00249 { 00250 return fEventHeader.GetEventYear(); 00251 }
|
|
00249 { 00250 return fEventHeader.GetEventYear(); 00251 }
|
|
|
|
01141 { 01142 const unsigned int Barrel_Index = 4; 01143 const unsigned int Barrel_Mask = 0x00000010; 01144 return ((status & Barrel_Mask) >> Barrel_Index ) ? true : false; 01145 }
|
|
|
|
01135 { 01136 const unsigned int Counter_Mask = 0x00000004; 01137 const unsigned int Counter_Index = 2; 01138 return ((status & Counter_Mask) >> Counter_Index) ? true: false; 01139 }
|
|
|
|
01082 { 01083 // 01084 // Print event information 01085 // 01086 // Options available: 01087 // '' - quiet, i.e. only numbers of hits and tracks etc. (default) 01088 // 'ALL' - very detailed output (might be hundreds of lines!) 01089 // 'Digi' - only Digi information 01090 // 'Dst' - only Dst information 01091 // 01092 TString opt = option; 01093 opt.ToUpper(); 01094 Int_t i; 01095 01096 //cout << endl 01097 // << "==========================================================" << endl 01098 // << "Run: " << GetRun() << endl 01099 // << "Event: " << GetEvent() << endl 01100 // << "----------------------------------------------------------" << endl 01101 // << "Mdc digis: " << GetMdcDigiNum() << endl 01102 // << "Tof digis: " << GetTofDigiNum() << endl 01103 // << "Emc digis: " << GetEmcDigiNum() << endl 01104 // << "Muc digis: " << GetMucDigiNum() << endl 01105 // << "Mdc tracks: " << GetMdcTrackNum() << endl 01106 // << "Tof tracks: " << "debug++++++" /*GetTofTrackNum()*/ << endl 01107 // << "Emc tracks: " << GetEmcShowerNum() << endl 01108 // << "Muc tracks: " << GetMucTrackNum() << endl 01109 // << "Ext tracks: " << GetExtTrackNum() << endl 01110 // << "Dedx : " << GetDedxNum() << endl 01111 // << "----------------------------------------------------------" << endl; 01112 01113 if ( opt.Contains("ALL") || opt.Contains("Digi") ) { 01114 for ( i = 0; i < GetMdcDigiNum(); i++ ) GetMdcDigi(i)->Print(); 01115 for ( i = 0; i < GetTofDigiNum(); i++ ) GetTofDigi(i)->Print(); 01116 for ( i = 0; i < GetEmcDigiNum(); i++ ) GetEmcDigi(i)->Print(); 01117 for ( i = 0; i < GetMucDigiNum(); i++ ) GetMucDigi(i)->Print(); 01118 } 01119 01120 /* if ( opt.Contains("ALL") || opt.Contains("Dst") ) { 01121 for ( i = 0; i < GetMdcTrackNum(); i++ ) GetMdcTrack(i)->Print(); 01122 // Tof -> BTof ETof 01123 //for ( i = 0; i < GetTofTrackNum(); i++ ) GetTofTrack(i)->Print(); 01124 for ( i = 0; i < GetEmcShowerNum(); i++ ) GetEmcShower(i)->Print(); 01125 for ( i = 0; i < GetMucTrackNum(); i++ ) GetMucTrack(i)->Print(); 01126 cout << "wait for TRecExtEvent, BesEvent" << endl; 01127 //for ( i = 0; i < GetExtTrackNum(); i++ ) GetExtTrack(i)->Print(); 01128 for ( i = 0; i < GetDedxNum(); i++ ) GetDedx(i)->Print(); 01129 } 01130 */ 01131 //cout << "==========================================================" 01132 //<< endl << endl; 01133 }
|
|
|
|
00283 { 00284 if (fEmcTrackCol) { 00285 for (int j = 0; j < fEmcTrackCol->GetEntries(); j++){ 00286 delete fEmcTrackCol->At(j); 00287 } 00288 fEmcTrackCol->Clear("C"); 00289 } 00290 int emc_no = recEvent->getEmcShowerNum(); 00291 00292 for (Int_t i = 0; i < emc_no; i++) { 00293 const TRecEmcShower* recShower =recEvent->getEmcShower(i); 00294 BesGeoTrack *emcTrack = new BesGeoTrack(); 00295 emcTrack->SetTrackType(2); 00296 00297 ConstructEmcTrackFromRec(emcTrack, recShower); 00298 fEmcTrackCol->Add(emcTrack); 00299 } 00300 }
|
|
|
|
00113 { 00114 //void BesEvent::SetEvent(TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader, TTrigEvent * trigEvt) { 00115 //fDigiEvent = 0; 00116 std::cout << "setEvent" << std::endl; 00117 fDigiEvent = digiEvent; 00118 fEvtHeader = evtHeader; 00119 //fTrigEvent = trigEvt; 00120 fTrigEvent = 0; 00121 // ======================================== 00122 // set trig information 00123 // ======================================== 00124 if (fTrigEvent != 0){ 00125 vector<Int_t> trigConditionVector; 00126 vector<Int_t> trigChannelVector; 00127 00128 const TTrigData* trigData = fTrigEvent->getTrigData(); 00129 const Int_t timeType = trigData->getTimingType(); 00130 //std::cout << "BesEvent::timing type: " << timeType << std::endl; 00131 Int_t trigCondition; 00132 Int_t trigChannel; 00133 for (Int_t i = 0; i < 48; i++){ 00134 trigCondition = trigData->getTrigCondition(i); 00135 if (trigCondition) trigConditionVector.push_back(i); 00136 //std::cout << "BesEvent::trig condition: " << trigCondition << std::endl; 00137 } 00138 for (Int_t i = 0; i < 16; i++){ 00139 trigChannel = trigData->getTrigChannel(i); 00140 if (trigChannel) trigChannelVector.push_back(i); 00141 //std::cout << "BesEvent::trigChannel: " << trigChannel << std::endl; 00142 } 00143 fEventHeader.SetEventTrig(timeType, trigConditionVector, trigChannelVector); 00144 } 00145 else { 00146 std::cout << "fTrigEvent does not exit!" << std::endl; 00147 } 00148 // ======================================== 00149 // set time information 00150 // ======================================== 00151 if (fEvtHeader != 0){ 00152 time_t now; 00153 //now = time(NULL); 00154 now = (time_t)evtHeader->time(); 00155 //char str_time[256]; 00156 //sprintf(str_time, ctime(&now)); 00157 //cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; 00158 //cout << "time now: " << str_time << endl; 00159 //cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; 00160 00161 struct tm *local_time; 00162 local_time = localtime(&now); 00163 //cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; 00164 //cout << "time now sec: " << local_time->tm_sec << endl; 00165 //cout << "time now min: " << local_time->tm_min << endl; 00166 //cout << "time now hour: "<< local_time->tm_hour << endl; 00167 //cout << "time now day: " << local_time->tm_mday << endl; 00168 //cout << "time now mon: " << local_time->tm_mon << endl; 00169 //cout << "time now year: "<< local_time->tm_year << endl; 00170 //cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; 00171 00172 Int_t time1 = (1900 + local_time->tm_year) * 10000 + (1 + local_time->tm_mon) * 100 00173 + local_time->tm_mday; 00174 Int_t time2 = local_time->tm_hour * 10000 + local_time->tm_min * 100 00175 + local_time->tm_sec; 00176 00177 fEventHeader.SetEventHeaderGeneral(fEvtHeader->getRunId(), 00178 fEvtHeader->getEventId(), time1, time2); 00179 } 00180 else { 00181 cout << "fEvtHeader does not exit" << endl; 00182 } 00183 00184 // ======================================== 00185 // set Mdc information 00186 // ======================================== 00187 Double_t p = 0.0, pt = 0.0, px = 0.0, py = 0.0, pz = 0.0; 00188 for (Int_t i = 0; i < GetMdcTrackNum(recEvent); i++) { 00189 p += GetMdcTrack(i,recEvent)->p(); 00190 pt += GetMdcTrack(i,recEvent)->pxy(); 00191 px += GetMdcTrack(i,recEvent)->px(); 00192 py += GetMdcTrack(i,recEvent)->py(); 00193 pz += GetMdcTrack(i,recEvent)->pz(); 00194 } 00195 fEventHeader.SetEventMdc(p, pt, px, py, pz); 00196 00197 // ======================================== 00198 // set Emc information 00199 // ======================================== 00200 Double_t t = 9999.0; 00201 Double_t e = 0.0; 00202 for (Int_t i = 0; i < GetEmcShowerNum(recEvent); i++) { 00203 e += GetEmcShower(i,recEvent)->energy(); 00204 } 00205 fEventHeader.SetEventEmc(e); 00206 // ======================================== 00207 // set digi and rec 00208 // ======================================== 00209 if (fDigiEvent != 0){ 00210 SetHits(); 00211 fEventHeader.SetEventMC(fDigiEvent->getFromMc()); 00212 } 00213 if (recEvent != 0) 00214 SetTracks(recEvent); 00215 00216 }
|
|
|
|
00324 { 00325 //if (fExtTrackCol) fExtTrackCol->Clear("C"); 00326 00327 //for (Int_t i = 0; i < GetExtTrackNum(); i++) { 00328 // const TExtTrack* recTrack = GetExtTrack(i); 00329 // BesGeoTrack *extTrack = new BesGeoTrack(); 00330 // extTrack->SetTrackType(4); 00331 00332 // ConstructExtTrackFromRec(extTrack, recTrack); 00333 // fExtTrackCol->Add(extTrack); 00334 //} 00335 }
|
|
|
|
00220 { 00221 if (gBesGeometry) { 00222 gBesGeometry->GetMdcROOTGeo()->SetHits(); 00223 gBesGeometry->GetTofROOTGeo()->SetHits(); 00224 gBesGeometry->GetEmcROOTGeo()->SetHits(); 00225 gBesGeometry->GetMucROOTGeo()->SetHits(); 00226 } 00227 }
|
|
00067 {f_Magnetic = input;};
|
|
00067 {f_Magnetic = input;};
|
|
|
|
00241 { 00242 if (fMdcTrackCol){ 00243 for (int j = 0; j < fMdcTrackCol->GetEntries(); j++){ 00244 delete fMdcTrackCol->At(j); 00245 } 00246 fMdcTrackCol->Clear("C"); 00247 } 00248 int mdc_no = recEvent->getMdcTrackNum(); 00249 for (Int_t i = 0; i < mdc_no; i++) { 00250 const TRecMdcTrack* recTrack =recEvent->getRecMdcTrack(i); 00251 BesGeoTrack *mdcTrack = new BesGeoTrack(); 00252 mdcTrack->SetTrackType(0); 00253 00254 ConstructMdcTrackFromRec(mdcTrack, recTrack,recEvent); 00255 fMdcTrackCol->Add(mdcTrack); 00256 } 00257 }
|
|
|
|
00304 { 00305 if (fMucTrackCol) { 00306 for (int j = 0; j < fMucTrackCol->GetEntries(); j++){ 00307 delete fMucTrackCol->At(j); 00308 } 00309 fMucTrackCol->Clear("C"); 00310 } 00311 int muc_no = recEvent->getMucTrackNum(); 00312 for (Int_t i = 0; i < muc_no; i++) { 00313 const TRecMucTrack* recTrack =recEvent->getMucTrack(i); 00314 BesGeoTrack *mucTrack = new BesGeoTrack(); 00315 mucTrack->SetTrackType(3); 00316 00317 ConstructMucTrackFromRec(mucTrack, recTrack); 00318 fMucTrackCol->Add(mucTrack); 00319 } 00320 }
|
|
|
|
00261 { 00262 if (fTofTrackCol) { 00263 for (int j = 0; j < fTofTrackCol->GetEntries(); j++){ 00264 delete fTofTrackCol->At(j); 00265 } 00266 fTofTrackCol->Clear("C"); 00267 } 00268 int tof_no = recEvent->getTofTrackNum(); 00269 00270 for (Int_t i = 0; i < tof_no; i++) { 00271 const TRecTofTrack* recTrack = recEvent->getTofTrack(i); 00272 if ( !Is_tofCounter( recTrack->status())) continue; 00273 BesGeoTrack *tofTrack = new BesGeoTrack(); 00274 tofTrack->SetTrackType(1); 00275 00276 ConstructTofTrackFromRec(tofTrack, recTrack,recEvent); 00277 fTofTrackCol->Add(tofTrack); 00278 } 00279 }
|
|
|
|
00231 { 00232 SetMdcTracks(recEvent); 00233 SetTofTracks(recEvent); 00234 SetEmcShowers(recEvent); 00235 SetMucTracks(recEvent); 00236 SetExtTracks(recEvent); 00237 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|