10#include "BesVisLib/BesEvent.h"
11#include "BesVisLib/BesVisDisplay.h"
12#include "BesVisLib/BesGeometry.h"
13#include "Identifier/Identifier.h"
14#include "Identifier/MdcID.h"
15#include "Identifier/TofID.h"
16#include "Identifier/EmcID.h"
17#include "Identifier/MucID.h"
19#include "Identifier/CgemID.h"
20#include "BesVisLib/CgemROOTGeo.h"
41 fCgemClusterCol =
new TObjArray();
42 fCgemClusterUFCol[0] =
new TObjArray();
43 fCgemClusterUFCol[1] =
new TObjArray();
44 fCgemClusterUFCol[2] =
new TObjArray();
46 fMdcTrackCol =
new TObjArray();
47 fTofTrackCol =
new TObjArray();
48 fEmcTrackCol =
new TObjArray();
49 fMucTrackCol =
new TObjArray();
50 fExtTrackCol =
new TObjArray();
51 fMcParticleCol =
new TObjArray();
53 pdgTable =
new TDatabasePDG();
77 for (
int j = 0; j < fCgemClusterCol->GetEntries(); ++j)
78 delete fCgemClusterCol->At(j);
79 fCgemClusterCol->Clear(
"C");
80 delete fCgemClusterCol;
82 for (
int i = 0; i < 3; ++i)
84 if (fCgemClusterUFCol[i])
86 for (
int j = 0; j < fCgemClusterUFCol[i]->GetEntries(); ++j)
87 delete fCgemClusterUFCol[i]->At(j);
88 fCgemClusterUFCol[i]->Clear(
"C");
89 delete fCgemClusterUFCol[i];
94 for (
int j = 0; j < fMdcTrackCol->GetEntries(); j++){
95 delete fMdcTrackCol->At(j);
97 fMdcTrackCol->Clear(
"C");
101 for (
int j = 0; j < fTofTrackCol->GetEntries(); j++){
102 delete fTofTrackCol->At(j);
104 fTofTrackCol->Clear(
"C");
108 for (
int j = 0; j < fEmcTrackCol->GetEntries(); j++){
109 delete fEmcTrackCol->At(j);
111 fEmcTrackCol->Clear(
"C");
115 for (
int j = 0; j < fMucTrackCol->GetEntries(); j++){
116 delete fMucTrackCol->At(j);
118 fMucTrackCol->Clear(
"C");
122 for (
int j = 0; j < fExtTrackCol->GetEntries(); j++){
123 delete fExtTrackCol->At(j);
125 fExtTrackCol->Clear(
"C");
128 if (fMcParticleCol) {
129 for (
int j = 0; j < fMcParticleCol->GetEntries(); j++){
130 delete fMcParticleCol->At(j);
132 fMcParticleCol->Clear(
"C");
133 delete fMcParticleCol;
142 TString opt = option;
145 fDigiEvent->
Clear(
"C");
154 fDigiEvent = digiEvent;
155 fEvtHeader = evtHeader;
156 fRecEvTime = recEvTime;
162 if (fTrigEvent != 0){
163 vector<Int_t> trigConditionVector;
164 vector<Int_t> trigChannelVector;
171 for (Int_t i = 0; i < 48; i++){
173 if (trigCondition) trigConditionVector.push_back(i);
176 for (Int_t i = 0; i < 16; i++){
178 if (trigChannel) trigChannelVector.push_back(i);
181 fEventHeader.
SetEventTrig(timeType, trigConditionVector, trigChannelVector);
184 std::cout <<
"fTrigEvent does not exit!" << std::endl;
189 if (fEvtHeader != 0){
192 now = (time_t)evtHeader->
time();
199 struct tm *local_time;
200 local_time = localtime(&now);
210 Int_t time1 = (1900 + local_time->tm_year) * 10000 + (1 + local_time->tm_mon) * 100
211 + local_time->tm_mday;
212 Int_t time2 = local_time->tm_hour * 10000 + local_time->tm_min * 100
213 + local_time->tm_sec;
219 cout <<
"fEvtHeader does not exit" << endl;
236 cout <<
"fRecEvTime does not exit" << endl;
244 Double_t p = 0.0, pt = 0.0, px = 0.0, py = 0.0, pz = 0.0;
327 for (
int j = 0; j < fCgemClusterCol->GetEntries(); ++j)
328 delete fCgemClusterCol->At(j);
329 fCgemClusterCol->Clear(
"C");
331 for (
int i = 0; i < 3; ++i)
333 if (fCgemClusterUFCol[i])
335 for (
int j = 0; j < fCgemClusterUFCol[i]->GetEntries(); ++j)
336 delete fCgemClusterUFCol[i]->At(j);
337 fCgemClusterUFCol[i]->Clear(
"C");
341 for (Int_t i = 0; i < ncluster; ++i)
343 if (recCluster[i].getflag() != 2)
continue;
346 double z = recCluster[i].
getRecZ();
349 int asstrk = recCluster[i].
getTrkId();
357 if (layer < 0 || layer >= 3)
continue;
361 if (layer == 0) cx -= 0.5 * wid;
376 info =
"CgemCluster ";
379 sprintf(
data,
"layer=%i, sheet=%i", layer, sheet);
381 sprintf(
data,
"#phi=%-.3f, V=%-.3f mm", phi,
v);
383 sprintf(
data,
"X-strips: %i to %i", startx, endx);
385 sprintf(
data,
"V-strips: %i to %i", startv, endv);
389 fCgemClusterUFCol[layer]->Add(cgemClusterUF);
394 cx = r * TMath::Cos(phi);
395 cy = r * TMath::Sin(phi);
405 info =
"CgemCluster ";
408 sprintf(
data,
"layer=%i, sheet=%i", layer, sheet);
410 sprintf(
data,
"#phi=%-.3f, V=%-.3f mm", phi,
v);
412 sprintf(
data,
"X-strips: %i to %i", startx, endx);
414 sprintf(
data,
"V-strips: %i to %i", startv, endv);
418 fCgemClusterCol->Add(cgemCluster);
426 for (
int j = 0; j < fMdcTrackCol->GetEntries(); j++){
427 delete fMdcTrackCol->At(j);
429 fMdcTrackCol->Clear(
"C");
432 for (Int_t i = 0; i < mdc_no; i++) {
439 fMdcTrackCol->Add(mdcTrack);
447 for (
int j = 0; j < fTofTrackCol->GetEntries(); j++){
448 delete fTofTrackCol->At(j);
450 fTofTrackCol->Clear(
"C");
454 for (Int_t i = 0; i < tof_no; i++) {
456 if ( !Is_tofCounter( recTrack->
status()))
continue;
462 fTofTrackCol->Add(tofTrack);
470 for (
int j = 0; j < fEmcTrackCol->GetEntries(); j++){
471 delete fEmcTrackCol->At(j);
473 fEmcTrackCol->Clear(
"C");
477 for (Int_t i = 0; i < emc_no; i++) {
484 fEmcTrackCol->Add(emcTrack);
492 for (
int j = 0; j < fMucTrackCol->GetEntries(); j++){
493 delete fMucTrackCol->At(j);
495 fMucTrackCol->Clear(
"C");
498 for (Int_t i = 0; i < muc_no; i++) {
505 fMucTrackCol->Add(mucTrack);
528 for (
int j = 0; j < fMcParticleCol->GetEntries(); j++){
529 delete fMcParticleCol->At(j);
531 fMcParticleCol->Clear(
"C");
534 for (Int_t i = 0; i < no; i++) {
550 fMcParticleCol->Add(mcTrack);
558 TParticlePDG* partPDG =
pdgTable->GetParticle(pdgID);
561 charge = partPDG->Charge()/3;
563 Double_t
pi = TMath::Pi();
568 Double_t pt = std::sqrt(px*px+py*py);
569 Double_t ptot = std::sqrt(px*px+py*py+pz*pz);
570 Double_t cosTheta = (ptot == 0.0 ? 1.0 : pz/ptot);
571 Double_t phi = atan2(py, px);
573 Double_t field = -f_Magnetic;
574 Double_t
kvC = 3.0e8;
585 Double_t radius,zStep;
591 radius = (pt * 1.0e9 /
kvC * 1e3) / fabs(charge * field) ;
592 zStep = 2*
pi*radius * fabs(pz/pt);
594 Double_t curvature = 1.0/radius;
595 Double_t step = 10.0;
596 Double_t delt = step*(1.0e-3)/
kvC;
598 mcTrack->
AddPoint(orgx, orgy, orgz, 0.0);
658 TGeoHelix helix(curvature, zStep, charge);
659 helix.InitPoint(orgx, orgy, orgz);
661 helix.InitDirection(px, py, pz, kFALSE);
663 helix.SetField(0.0, 0.0, field, kFALSE);
668 p = helix.GetCurrentPoint();
670 mcTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
675 mcTrack->PaintMarker(
mp);
676 mcTrack->SetMarkerColor(kBlue);
677 mcTrack->SetLineColor(kBlue);
682 while ( (p[0]*p[0] + p[1]*p[1]) < mdcR*mdcR && fabs(p[2]) < mdcZ );
689 sprintf(
data,
"P=%-.3f GeV, Pt=%-.3f GeV", ptot, pt);
692 sprintf(
data,
"Pxyz=(%-.3f,%-.3f,%-.3f) GeV", px, py, pz);
695 sprintf(
data,
"#phi=%-.3f, #theta=%-.3f, cos#Theta=%-.3f", phi, acos(cosTheta), cosTheta);
698 sprintf(
data,
"Origin (%-.3f, %-.3f, %-.3f) cm", orgx/10, orgy/10, orgz/10);
711 Double_t field = -f_Magnetic;
712 Double_t
kvC = 3.0e8;
713 Int_t charge = recTrack->
charge();
714 Double_t pt = recTrack->
pxy();
715 Double_t pz = recTrack->
pz();
716 Double_t
pi = TMath::Pi();
719 Double_t orgx = recTrack->
x()*10;
720 Double_t orgy = recTrack->
y()*10;
721 Double_t orgz = recTrack->
z()*10;
727 Double_t radius,zStep;
733 radius = (pt * 1.0e9 /
kvC * 1e3) / fabs(charge * field) ;
734 zStep = 2*
pi*radius * fabs(pz/pt);
736 Double_t curvature = 1.0/radius;
737 Double_t step = 10.0;
738 Double_t delt = step*(1.0e-3)/
kvC;
740 mdcTrack->
AddPoint(orgx, orgy, orgz, 0.0);
751 x = recTrack->
helix(0)* 10 *
753 - nStep * step *
sin(recTrack->
helix(1));
754 y = recTrack->
helix(0)* 10 *
756 + nStep * step *
cos(recTrack->
helix(1));
757 z = recTrack->
helix(3)* 10 +
758 nStep * step * recTrack->
helix(4);
765 mdcTrack->PaintMarker(
mp);
766 mdcTrack->SetMarkerColor(kBlack);
767 mdcTrack->SetMarkerSize(10);
768 mdcTrack->SetLineColor(kBlack);
772 while ( (
x*
x + y*y) < mdcR*mdcR && fabs(z) < mdcZ );
776 x = recTrack->
helix(0)* 10 *
778 - nStep * step *
sin(recTrack->
helix(1));
779 y = recTrack->
helix(0)* 10 *
781 + nStep * step *
cos(recTrack->
helix(1));
782 z = recTrack->
helix(3)* 10 +
783 nStep * step * recTrack->
helix(4);
790 mdcTrack->PaintMarker(
mp);
791 mdcTrack->SetMarkerColor(kBlack);
792 mdcTrack->SetMarkerSize(10);
793 mdcTrack->SetLineColor(kRed);
796 while ( (
x*
x + y*y) < mdcR*mdcR && fabs(z) < mdcZ );
799 TGeoHelix helix(curvature, zStep, charge);
800 helix.InitPoint(orgx, orgy, orgz);
802 helix.InitDirection(recTrack->
px(), recTrack->
py(), recTrack->
pz(), kFALSE);
804 helix.SetField(0.0, 0.0, field, kFALSE);
809 p = helix.GetCurrentPoint();
811 mdcTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
816 mdcTrack->PaintMarker(
mp);
817 mdcTrack->SetMarkerColor(kBlack);
818 mdcTrack->SetMarkerSize(10);
821 while ( (p[0]*p[0] + p[1]*p[1]) < mdcR*mdcR && fabs(p[2]) < mdcZ );
826 vector<UInt_t> vecHits(0);
828 for (Int_t i = 0; i < recMdcHitCol->GetEntriesFast(); i++){
830 Int_t recHitId = recMdcHit->
getTrkId();
831 Int_t recTrkId = recTrack->
trackId();
832 if (recHitId == recTrkId) vecHits.push_back(recMdcHit->
getMdcId());
834 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
847 for (Int_t j = 0; j < fCgemClusterCol->GetEntries(); ++j)
851 Int_t recTrkId = recTrack->
trackId();
852 if (recTrkId == asstrk)
862 info = TString(
"MdcTrack ");
866 sprintf(
data,
"charge=%i, status=%i", recTrack->
charge(), recTrack->
stat());
869 sprintf(
data,
"P=%-.3f GeV, Pt=%-.3f GeV", recTrack->
p(), recTrack->
pxy());
875 sprintf(
data,
"Pxyz=(%-.3f,%-.3f,%-.3f) GeV", recTrack->
px(),recTrack->
py(),recTrack->
pz());
878 sprintf(
data,
"#phi=%-.3f #theta=%-.3f cos#theta=%-.3f", recTrack->
phi(),recTrack->
theta(),
cos(recTrack->
theta()));
881 sprintf(
data,
"Origin (%-.3f, %-.3f, %-.3f) cm", orgx/10, orgy/10, orgz/10);
884 sprintf(
data,
"helix(%-.3f,%-.3f,%-.3f,%-.3f,%-.3f)", recTrack->
helix(0),recTrack->
helix(1),recTrack->
helix(2),recTrack->
helix(3), recTrack->
helix(4));
887 sprintf(
data,
"nHit=%i, #chi^{2}= %-.3f",recTrack->
ndof()+5, recTrack->
chi2());
1024 vector<Int_t> vecBHits(0);
1025 vector<Int_t> vecEHits(0);
1028 for (Int_t i = 0; i < recTofTrackCol->GetEntriesFast(); i++){
1030 if ( !Is_tofCounter( recHit->
status()))
continue;
1032 Int_t recHitId = recHit->
trackID();
1033 Int_t recTrkId = recTrack->
trackID();
1034 if (recHitId == recTrkId) {
1035 if ( Is_tofBarrel( recHit->
status() ) ) {
1036 vecBHits.push_back(recHit->
tofID());
1039 vecEHits.push_back(recHit->
tofID());
1044 TGeoPhysicalNode *phyNode = 0;
1045 Double_t
x=0.0, y=0.0, z=0.0;
1048 if (vecBHits.size()){
1049 nHits = vecBHits.size();
1050 for (Int_t i = 0; i < nHits; i++) {
1055 if ( ( vecBHits[i] >= 0 ) && ( vecBHits[i] <= 87 ) ) {
1061 scin = vecBHits[i] - 88;
1065 tofTrack->
AddHit( aHit );
1068 Double_t local[3] = {0.0, 0.0, 0.0};
1069 Double_t master[3] = {0.0, 0.0, 0.0};
1073 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]);
1083 z = recTrack->
zrhit();
1088 else if (vecEHits.size()){
1089 nHits = vecEHits.size();
1090 for (Int_t i = 0; i < nHits; i++) {
1095 if ( ( vecEHits[i] >= 0 ) && ( vecEHits[i] <= 47 ) ) {
1101 scin = vecEHits[i] - 48;
1106 tofTrack->
AddHit( aHit );
1109 Double_t local[3] = {0.0, 0.0, 0.0};
1110 Double_t master[3] = {0.0, 0.0, 0.0};
1114 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]);
1131 info = TString(
"TofTrack ");
1176 Double_t
x=0.0, y=0.0, z=0.0;
1177 x = recTrack->
x() * 10.0;
1178 y = recTrack->
y() * 10.0;
1179 z = recTrack->
z() * 10.0;
1183 vector<Int_t> vecHits(0);
1184 map<Int_t, Double_t> cellMap = recTrack->
cellIdMap();
1185 map<Int_t, Double_t>::iterator iCellMap;
1186 for (iCellMap = cellMap.begin(); iCellMap != cellMap.end(); iCellMap++){
1187 Int_t cellId = iCellMap->first;
1188 vecHits.push_back(cellId);
1190 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
1195 if (part == 1) theta = 43-theta;
1198 emcTrack->
AddHit( aHit );
1208 info = TString(
"EmcShower ");
1212 sprintf(
data,
"nHits = %i, status = %i", recTrack->
numHits(), recTrack->
status());
1215 sprintf(
data,
"energy= (%.2f #pm %-.2f) MeV", recTrack->
energy()*1000.0, recTrack->
dE()*1000.0);
1223 sprintf(
data,
"cell Id= (%i, #theta %i, #phi %i)", part, theta, phi);
1226 sprintf(
data,
"module = %i", recTrack->
module());
1238 sprintf(
data,
"#theta = (%-.3f #pm %-.3f)", recTrack->
theta(), recTrack->
dtheta());
1241 sprintf(
data,
"#phi = (%-.3f #pm %-.3f)", recTrack->
phi(), recTrack->
dphi());
1253 if (recTrack->
depth() <= 0.0)
return;
1255 Double_t field = 1e-3;
1256 Double_t
kvC = 3.0e8;
1258 Double_t pz = recTrack->
pz();
1260 sqrt(recTrack->
px()*recTrack->
px() + recTrack->
py()*recTrack->
py());
1261 Double_t
pi = TMath::Pi();
1268 Double_t radius = 1.0e+9;
1269 Double_t curvature = 1.0/radius;
1270 Double_t zStep = 2*
pi*radius * fabs(pz/pt);
1271 Double_t step = 1.0;
1272 Double_t delt = step*(1.0e-3)/
kvC;
1274 TGeoHelix helix(curvature, zStep, charge);
1276 Double_t
x = recTrack->
xPos() * 10.0;
1277 Double_t y = recTrack->
yPos() * 10.0;
1278 Double_t z = recTrack->
zPos() * 10.0;
1280 helix.InitPoint(
x, y, z);
1281 helix.InitDirection(recTrack->
px(), recTrack->
py(), recTrack->
pz(), kFALSE);
1282 helix.SetField(0.0, 0.0, field, kFALSE);
1290 p = helix.GetCurrentPoint();
1291 mucTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
1296 mucTrack->PaintMarker(
mp);
1297 mucTrack->SetMarkerColor(kBlack);
1298 mucTrack->SetMarkerSize(10);
1301 while ( (p[0]*p[0] + p[1]*p[1]) < mucR*mucR && fabs(p[2]) < mucZ );
1304 vector<Int_t> vecHits = recTrack->
vecHits();
1305 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
1313 mucTrack->
AddHit( aHit );
1325 info = TString(
"MucTrack ");
1335 sprintf(
data,
"depth = %.3f cm", recTrack->
depth());
1338 sprintf(
data,
"#chi^{2}= %-.3f, dof= %i, rms= %-.3f", recTrack->
chi2(), recTrack->
dof(), recTrack->
rms());
1341 sprintf(
data,
"Origin (%-.2f, %-.2f, %-.2f) cm", recTrack->
xPos(), recTrack->
yPos(), recTrack->
zPos());
1344 sprintf(
data,
"p (%-.3f, %-.3f, %-.3f) GeV", recTrack->
px(), recTrack->
py(), recTrack->
pz());
1446 for (Int_t i = 0; i < fMdcTrackCol->GetEntries(); i++)
1454 for (Int_t i = 0; i < fTofTrackCol->GetEntries(); i++)
1462 for (Int_t i = 0; i < fEmcTrackCol->GetEntries(); i++)
1470 for (Int_t i = 0; i < fMucTrackCol->GetEntries(); i++)
1478 for (Int_t i = 0; i < fExtTrackCol->GetEntries(); i++)
1509 for (Int_t i = 0; i < fCgemClusterCol->GetEntries(); ++i)
1513 cluster->
Draw(option);
1521 if (layer < 0 || layer >= 3)
return;
1525 for (Int_t i = 0; i < fCgemClusterUFCol[layer]->GetEntries(); ++i)
1529 cluster->
Draw(option);
1541 for (Int_t i = 0; i < fMcParticleCol->GetEntries(); i++)
1565 TString opt = option;
1586 if ( opt.Contains(
"ALL") || opt.Contains(
"Digi") ) {
1608bool BesEvent::Is_tofCounter(UInt_t status){
1609 const unsigned int Counter_Mask = 0x00000004;
1610 const unsigned int Counter_Index = 2;
1611 return ((status & Counter_Mask) >> Counter_Index) ?
true:
false;
1614bool BesEvent::Is_tofBarrel(UInt_t status) {
1615 const unsigned int Barrel_Index = 4;
1616 const unsigned int Barrel_Mask = 0x00000010;
1617 return ((status & Barrel_Mask) >> Barrel_Index ) ?
true :
false;
ClassImp(BesEvent) BesEvent
R__EXTERN BesGeometry * gBesGeometry
double abs(const EvtComplex &c)
double sin(const BesAngle a)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
virtual void Delete(Option_t *option="")
virtual void DrawCgem3DHits(Option_t *option)
const Int_t GetMucDigiNum() const
virtual void Clear(Option_t *option="")
const Int_t GetTofDigiNum() const
virtual void ConstructTofTrackFromRec(BesGeoTrack *tofTrack, const TRecTofTrack *recTrack, TDisTrack *recEvent)
virtual void DrawCgemUFHits(Option_t *option)
virtual void SetTofTracks(TDisTrack *recEvent)
const TTofDigi * GetTofDigi(Int_t i) const
const TRecMdcTrack * GetMdcTrack(Int_t i, TDisTrack *recEvent) const
const Int_t GetMdcTrackNum(TDisTrack *recEvent) const
virtual void SetMcEvent(TMcEvent *mcEvt)
virtual void SetCgemClusters(const TRecCgemCluster *recCluster, int ncluster)
virtual void ConstructEmcTrackFromRec(BesGeoTrack *emcTrack, const TRecEmcShower *recTrack)
virtual void Print(Option_t *option="")
const Int_t GetMdcDigiNum() const
virtual void SetMucTracks(TDisTrack *recEvent)
virtual void ConstructMcTrack(BesMcTrack *mcTrack, const TMcParticle *mcPart)
virtual void DrawCgemUFClusters(int layer, Option_t *option)
virtual void DrawCgemClusters(Option_t *option)
virtual void SetMdcTracks(TDisTrack *recEvent)
virtual void SetEmcShowers(TDisTrack *recEvent)
const Int_t GetEmcShowerNum(TDisTrack *recEvent) const
const TMucDigi * GetMucDigi(Int_t i) const
const TRecEmcShower * GetEmcShower(Int_t i, TDisTrack *recEvent) const
const Int_t GetEmcDigiNum() const
virtual void ConstructMucTrackFromRec(BesGeoTrack *mucTrack, const TRecMucTrack *recTrack)
const TMdcDigi * GetMdcDigi(Int_t i) const
virtual void DrawMcParticles(Option_t *option)
const TEmcDigi * GetEmcDigi(Int_t i) const
virtual void ConstructMdcTrackFromRec(BesGeoTrack *mdcTrack, const TRecMdcTrack *recTrack, TDisTrack *recEvent)
virtual void SetEvent(TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader, TRecEvTime *recEvTime, Bool_t isRec, TMcEvent *mcEvt=0)
virtual void DrawHits(Option_t *option)
virtual void DrawTracks(Option_t *option)
virtual void SetTracks(TDisTrack *recEvent)
virtual void SetExtTracks(TDisTrack *recEvent)
virtual void SetTrackType(Int_t type)
virtual void Draw(Option_t *option="")
virtual void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t)
virtual void AddCluster(TObject *obj)
virtual Int_t GetTrackID() const
virtual void SetTrackID(Int_t id)
virtual void Construct3DLine()
virtual void SetMarker(Double_t x, Double_t y, Double_t z)
virtual void AddInfo(TString info)
virtual void AddHit(TObject *obj)
virtual void Add3DHit(TObject *obj)
virtual void SetCharge(Int_t charge)
CgemROOTGeo * GetCgemROOTGeo()
EmcROOTGeo * GetEmcROOTGeo()
MdcROOTGeo * GetMdcROOTGeo()
MucROOTGeo * GetMucROOTGeo()
TofROOTGeo * GetTofROOTGeo()
Bool_t GetVisTracksGlobal()
Bool_t GetVisCgemHitsClusters()
Bool_t GetVisCgemHitsGlobal()
Bool_t GetVisMCTruthTrack()
double getRFromLayerSheet(int layer, int sheet) const
void Draw3DHits(Option_t *option)
double getSheetWidth(int layer, int sheet) const
void DrawHits(Option_t *option)
static unsigned int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0)
static unsigned int theta_module(const Identifier &id)
static unsigned int phi_module(const Identifier &id)
Emc2DCrystal * Get2DCrystal(Int_t part, Int_t phi, Int_t theta)
Get Emc2DCrystal;.
void DrawHits(Option_t *option)
Draw 2D hits.
TGeoPhysicalNode * GetPhysicalCrystal(int part, int phi, int theta)
Get crystal physical node;.
void SetHits()
Set all physicalNodes corresponding to digiCol;.
static int layer(const Identifier &id)
Values of different levels (failure returns 0)
static int wire(const Identifier &id)
void DrawHits(Option_t *option)
Draw 2D hits.
void ClearHits()
Set all physicalNodes corresponding to digiCol;.
Mdc2DWire * Get2DWire(Int_t layer, Int_t replica)
Get Mdc2DWire;.
TGeoPhysicalNode * GetPhysicalReplica(int layer, int replica)
Get replica physical node;.
TGeoVolume * GetVolumeMdc()
Get Mdc volume;.
static int part(const Identifier &id)
static int gap(const Identifier &id)
static int seg(const Identifier &id)
static int strip(const Identifier &id)
TGeoVolume * GetVolumeMuc()
Get Muc volume;.
TGeoPhysicalNode * GetPhysicalStrip(int part, int seg, int gap, int strip)
Get strip physical node;.
void SetHits()
Set all physicalNodes corresponding to digiCol;.
void DrawHits(Option_t *option)
Draw 2D hits.
Muc2DStrip * Get2DStrip(int part, int seg, int gap, int strip)
Get Muc2DStrip;.
void Clear(Option_t *option="")
const TRecTofTrack * getTofTrack(Int_t i) const
retrieve a TofTrack From the collection, using the index into the array
const TRecMucTrack * getMucTrack(Int_t i) const
retrieve a MucTrack From the collection, using the index into the array
const TObjArray * getRecMdcHitCol() const
retrieve the whole TObjArray of RecMdcHit Data
const TRecEmcShower * getEmcShower(Int_t i) const
retrieve a EmcShower from the collection, using the index into the array
const TObjArray * getTofTrackCol() const
retrieve the whole TObjArray of TofTrack Data
const TRecMdcTrack * getRecMdcTrack(Int_t i) const
retrieve a MdcTrack from the collection, using the index into the array
const TMcParticle * getMcParticle(Int_t i) const
const TObjArray * getMcParticleCol() const
Double_t getInitialMomentumX() const
Double_t getInitialPositionX() const
Int_t getParticleID() const
Double_t getInitialMomentumZ() const
Double_t getInitialMomentumY() const
bool primaryParticle() const
Double_t getInitialPositionZ() const
Double_t getInitialPositionY() const
void Print(Option_t *option="") const
Int_t getTrkId(void) const
Int_t getsheetid(void) const
Int_t getstripid(Int_t type, Int_t i) const
Int_t getlayerid(void) const
Double_t getrecphi(void) const
Double_t getRecZ(void) const
Double_t getrecv(void) const
Int_t getclusterid(void) const
map< Int_t, Double_t > cellIdMap() const
const UInt_t getMdcId() const
const Int_t getTrkId(void) const
const Double_t phi() const
const Double_t pz() const
const Double_t px() const
const Double_t chi2() const
const Int_t trackId() const
const Double_t pxy() const
const Double_t theta() const
const Int_t charge() const
const Double_t py() const
const Double_t helix(Int_t i) const
Int_t brLastLayer() const
vector< Int_t > vecHits() const
Int_t maxHitsInLayer() const
Int_t ecLastLayer() const
const int getTrigChannel(int i) const
const int getTrigCondition(int i) const
const int getTimingType() const
const TTrigData * getTrigData() const
void SetHits()
Set all physicalNodes corresponding to digiCol;.
void DrawHits(Option_t *option)
Draw 2D hits.
Tof2DScin * Get2DScin(Int_t part, Int_t layer, Int_t scin)
Get Tof2DScin;.
TGeoPhysicalNode * GetPhysicalScin(int part, int scin)
Get scintillator physical node;.