41 fCgemClusterCol =
new TObjArray();
42 fCgemClusterUFCol[0] =
new TObjArray();
43 fCgemClusterUFCol[1] =
new TObjArray();
44 fCgemClusterUFCol[2] =
new TObjArray();
46 fMdcTrackCol =
new TObjArray();
47 fIdealTrackCol =
new TObjArray();
48 fTofTrackCol =
new TObjArray();
49 fEmcTrackCol =
new TObjArray();
50 fMucTrackCol =
new TObjArray();
51 fExtTrackCol =
new TObjArray();
52 fMcParticleCol =
new TObjArray();
54 pdgTable =
new TDatabasePDG();
78 for (
int j = 0; j < fCgemClusterCol->GetEntries(); ++j)
79 delete fCgemClusterCol->At(j);
80 fCgemClusterCol->Clear(
"C");
81 delete fCgemClusterCol;
83 for (
int i = 0; i < 3; ++i)
85 if (fCgemClusterUFCol[i])
87 for (
int j = 0; j < fCgemClusterUFCol[i]->GetEntries(); ++j)
88 delete fCgemClusterUFCol[i]->At(j);
89 fCgemClusterUFCol[i]->Clear(
"C");
90 delete fCgemClusterUFCol[i];
95 for (
int j = 0; j < fMdcTrackCol->GetEntries(); j++){
96 delete fMdcTrackCol->At(j);
98 fMdcTrackCol->Clear(
"C");
101 if (fIdealTrackCol) {
102 for (
int j = 0; j < fIdealTrackCol->GetEntries(); j++){
103 delete fIdealTrackCol->At(j);
105 fIdealTrackCol->Clear(
"C");
106 delete fIdealTrackCol;
109 for (
int j = 0; j < fTofTrackCol->GetEntries(); j++){
110 delete fTofTrackCol->At(j);
112 fTofTrackCol->Clear(
"C");
116 for (
int j = 0; j < fEmcTrackCol->GetEntries(); j++){
117 delete fEmcTrackCol->At(j);
119 fEmcTrackCol->Clear(
"C");
123 for (
int j = 0; j < fMucTrackCol->GetEntries(); j++){
124 delete fMucTrackCol->At(j);
126 fMucTrackCol->Clear(
"C");
130 for (
int j = 0; j < fExtTrackCol->GetEntries(); j++){
131 delete fExtTrackCol->At(j);
133 fExtTrackCol->Clear(
"C");
136 if (fMcParticleCol) {
137 for (
int j = 0; j < fMcParticleCol->GetEntries(); j++){
138 delete fMcParticleCol->At(j);
140 fMcParticleCol->Clear(
"C");
141 delete fMcParticleCol;
150 TString opt = option;
153 fDigiEvent->
Clear(
"C");
162 fDigiEvent = digiEvent;
163 fEvtHeader = evtHeader;
164 fRecEvTime = recEvTime;
170 if (fTrigEvent != 0){
171 vector<Int_t> trigConditionVector;
172 vector<Int_t> trigChannelVector;
179 for (Int_t i = 0; i < 48; i++){
181 if (trigCondition) trigConditionVector.push_back(i);
184 for (Int_t i = 0; i < 16; i++){
186 if (trigChannel) trigChannelVector.push_back(i);
189 fEventHeader.
SetEventTrig(timeType, trigConditionVector, trigChannelVector);
192 std::cout <<
"fTrigEvent does not exit!" << std::endl;
197 if (fEvtHeader != 0){
200 now = (time_t)evtHeader->
time();
207 struct tm *local_time;
208 local_time = localtime(&now);
218 Int_t time1 = (1900 + local_time->tm_year) * 10000 + (1 + local_time->tm_mon) * 100
219 + local_time->tm_mday;
220 Int_t time2 = local_time->tm_hour * 10000 + local_time->tm_min * 100
221 + local_time->tm_sec;
227 cout <<
"fEvtHeader does not exit" << endl;
244 cout <<
"fRecEvTime does not exit" << endl;
252 Double_t p = 0.0, pt = 0.0, px = 0.0, py = 0.0, pz = 0.0;
335 for (
int j = 0; j < fCgemClusterCol->GetEntries(); ++j)
336 delete fCgemClusterCol->At(j);
337 fCgemClusterCol->Clear(
"C");
339 for (
int i = 0; i < 3; ++i)
341 if (fCgemClusterUFCol[i])
343 for (
int j = 0; j < fCgemClusterUFCol[i]->GetEntries(); ++j)
344 delete fCgemClusterUFCol[i]->At(j);
345 fCgemClusterUFCol[i]->Clear(
"C");
349 for (Int_t i = 0; i < ncluster; ++i)
351 if (recCluster[i].getflag() != 2)
continue;
354 double z = recCluster[i].
getRecZ();
357 int asstrk = recCluster[i].
getTrkId();
366 if (layer < 0 || layer >= 3)
continue;
370 double pi=TMath::Pi();
373 double cx =
phi2 * r;
390 info =
"CgemCluster ";
393 sprintf(
data,
"layer=%i, sheet=%i", layer, sheet);
395 sprintf(
data,
"#phi=%-.3f, V=%-.3f mm", phi,
v);
397 sprintf(
data,
"X-strips: %i to %i", startx, endx);
399 sprintf(
data,
"V-strips: %i to %i", startv, endv);
403 fCgemClusterUFCol[layer]->Add(cgemClusterUF);
408 cx = r * TMath::Cos(phi);
409 cy = r * TMath::Sin(phi);
420 info =
"CgemCluster ";
423 sprintf(
data,
"layer=%i, sheet=%i", layer, sheet);
425 sprintf(
data,
"#phi=%-.3f, V=%-.3f mm", phi,
v);
427 sprintf(
data,
"X-strips: %i to %i", startx, endx);
429 sprintf(
data,
"V-strips: %i to %i", startv, endv);
433 fCgemClusterCol->Add(cgemCluster);
441 for (
int j = 0; j < fMdcTrackCol->GetEntries(); j++){
442 delete fMdcTrackCol->At(j);
444 fMdcTrackCol->Clear(
"C");
447 for (
int j = 0; j < fIdealTrackCol->GetEntries(); j++){
448 delete fIdealTrackCol->At(j);
450 fIdealTrackCol->Clear(
"C");
453 for (Int_t i = 0; i < mdc_no; i++) {
461 if(pid==11||pid==13||pid==211||pid==321||pid==2212) {
464 fIdealTrackCol->Add(mdcTrack);
468 fMdcTrackCol->Add(mdcTrack);
477 for (
int j = 0; j < fTofTrackCol->GetEntries(); j++){
478 delete fTofTrackCol->At(j);
480 fTofTrackCol->Clear(
"C");
484 for (Int_t i = 0; i < tof_no; i++) {
486 if ( !Is_tofCounter( recTrack->
status()))
continue;
492 fTofTrackCol->Add(tofTrack);
500 for (
int j = 0; j < fEmcTrackCol->GetEntries(); j++){
501 delete fEmcTrackCol->At(j);
503 fEmcTrackCol->Clear(
"C");
507 for (Int_t i = 0; i < emc_no; i++) {
514 fEmcTrackCol->Add(emcTrack);
522 for (
int j = 0; j < fMucTrackCol->GetEntries(); j++){
523 delete fMucTrackCol->At(j);
525 fMucTrackCol->Clear(
"C");
528 for (Int_t i = 0; i < muc_no; i++) {
535 fMucTrackCol->Add(mucTrack);
558 for (
int j = 0; j < fMcParticleCol->GetEntries(); j++){
559 delete fMcParticleCol->At(j);
561 fMcParticleCol->Clear(
"C");
564 for (Int_t i = 0; i < no; i++) {
567 Int_t pid_abs=
abs(pdgID);
575 if( !mcPart->
primaryParticle() || !(pid_abs==11||pid_abs==13||pid_abs==211||pid_abs==321||pid_abs==2212) )
583 fMcParticleCol->Add(mcTrack);
591 TParticlePDG* partPDG =
pdgTable->GetParticle(pdgID);
594 charge = partPDG->Charge()/3;
596 Double_t
pi = TMath::Pi();
601 Double_t pt = std::sqrt(px*px+py*py);
602 Double_t ptot = std::sqrt(px*px+py*py+pz*pz);
603 Double_t cosTheta = (ptot == 0.0 ? 1.0 : pz/ptot);
604 Double_t phi = atan2(py, px);
606 Double_t field = -f_Magnetic;
607 Double_t
kvC = 3.0e8;
618 Double_t radius,zStep;
624 radius = (pt * 1.0e9 /
kvC * 1e3) / fabs(charge * field) ;
625 zStep = 2*
pi*radius * fabs(pz/pt);
627 Double_t curvature = 1.0/radius;
628 Double_t step = 10.0;
629 Double_t delt = step*(1.0e-3)/
kvC;
631 mcTrack->
AddPoint(orgx, orgy, orgz, 0.0);
691 TGeoHelix helix(curvature, zStep, charge);
692 helix.InitPoint(orgx, orgy, orgz);
694 helix.InitDirection(px, py, pz, kFALSE);
696 helix.SetField(0.0, 0.0, field, kFALSE);
701 p = helix.GetCurrentPoint();
703 mcTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
708 mcTrack->PaintMarker(
mp);
709 mcTrack->SetMarkerColor(kBlue);
710 mcTrack->SetLineColor(kBlue);
715 while ( (p[0]*p[0] + p[1]*p[1]) < mdcR*mdcR && fabs(p[2]) < mdcZ );
722 sprintf(
data,
"P=%-.3f GeV, Pt=%-.3f GeV", ptot, pt);
725 sprintf(
data,
"Pxyz=(%-.3f,%-.3f,%-.3f) GeV", px, py, pz);
728 sprintf(
data,
"#phi=%-.3f, #theta=%-.3f, cos#Theta=%-.3f", phi, acos(cosTheta), cosTheta);
731 sprintf(
data,
"Origin (%-.3f, %-.3f, %-.3f) cm", orgx/10, orgy/10, orgz/10);
744 Double_t field = -f_Magnetic;
745 Double_t
kvC = 3.0e8;
746 Int_t charge = recTrack->
charge();
747 Double_t pt = recTrack->
pxy();
748 Double_t pz = recTrack->
pz();
749 Double_t
pi = TMath::Pi();
752 Double_t orgx = recTrack->
x()*10;
753 Double_t orgy = recTrack->
y()*10;
754 Double_t orgz = recTrack->
z()*10;
760 Double_t radius,zStep;
766 radius = (pt * 1.0e9 /
kvC * 1e3) / fabs(charge * field) ;
767 zStep = 2*
pi*radius * fabs(pz/pt);
769 Double_t curvature = 1.0/radius;
770 Double_t step = 10.0;
771 Double_t delt = step*(1.0e-3)/
kvC;
773 mdcTrack->
AddPoint(orgx, orgy, orgz, 0.0);
784 x = recTrack->
helix(0)* 10 *
786 - nStep * step *
sin(recTrack->
helix(1));
787 y = recTrack->
helix(0)* 10 *
789 + nStep * step *
cos(recTrack->
helix(1));
790 z = recTrack->
helix(3)* 10 +
791 nStep * step * recTrack->
helix(4);
798 mdcTrack->PaintMarker(
mp);
799 mdcTrack->SetMarkerColor(kBlack);
800 mdcTrack->SetMarkerSize(10);
801 mdcTrack->SetLineColor(kBlack);
805 while ( (
x*
x + y*y) < mdcR*mdcR && fabs(z) < mdcZ );
809 x = recTrack->
helix(0)* 10 *
811 - nStep * step *
sin(recTrack->
helix(1));
812 y = recTrack->
helix(0)* 10 *
814 + nStep * step *
cos(recTrack->
helix(1));
815 z = recTrack->
helix(3)* 10 +
816 nStep * step * recTrack->
helix(4);
823 mdcTrack->PaintMarker(
mp);
824 mdcTrack->SetMarkerColor(kBlack);
825 mdcTrack->SetMarkerSize(10);
826 mdcTrack->SetLineColor(kRed);
829 while ( (
x*
x + y*y) < mdcR*mdcR && fabs(z) < mdcZ );
832 TGeoHelix helix(curvature, zStep, charge);
833 helix.InitPoint(orgx, orgy, orgz);
835 helix.InitDirection(recTrack->
px(), recTrack->
py(), recTrack->
pz(), kFALSE);
837 helix.SetField(0.0, 0.0, field, kFALSE);
842 p = helix.GetCurrentPoint();
844 mdcTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
849 mdcTrack->PaintMarker(
mp);
850 mdcTrack->SetMarkerColor(kBlack);
851 mdcTrack->SetMarkerSize(10);
854 while ( (p[0]*p[0] + p[1]*p[1]) < mdcR*mdcR && fabs(p[2]) < mdcZ );
859 vector<UInt_t> vecHits(0);
861 for (Int_t i = 0; i < recMdcHitCol->GetEntriesFast(); i++){
863 Int_t recHitId = recMdcHit->
getTrkId();
864 Int_t recTrkId = recTrack->
trackId();
865 if (recHitId == recTrkId) vecHits.push_back(recMdcHit->
getMdcId());
867 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
883 for (Int_t j = 0; j < fCgemClusterCol->GetEntries(); ++j)
890 if( std::find(vecClusterId.begin(), vecClusterId.end(), clusterId) != vecClusterId.end() )
903 info = TString(
"MdcTrack ");
907 sprintf(
data,
"charge=%i, status=%i", recTrack->
charge(), recTrack->
stat());
910 sprintf(
data,
"P=%-.3f GeV, Pt=%-.3f GeV", recTrack->
p(), recTrack->
pxy());
916 sprintf(
data,
"Pxyz=(%-.3f,%-.3f,%-.3f) GeV", recTrack->
px(),recTrack->
py(),recTrack->
pz());
919 sprintf(
data,
"#phi=%-.3f #theta=%-.3f cos#theta=%-.3f", recTrack->
phi(),recTrack->
theta(),
cos(recTrack->
theta()));
922 sprintf(
data,
"Origin (%-.3f, %-.3f, %-.3f) cm, dr=%-.3f", orgx/10, orgy/10, orgz/10, sqrt(orgx*orgx+orgy*orgy)/10);
925 sprintf(
data,
"helix(%-.3f,%-.3f,%-.3f,%-.3f,%-.3f)", recTrack->
helix(0),recTrack->
helix(1),recTrack->
helix(2),recTrack->
helix(3), recTrack->
helix(4));
928 sprintf(
data,
"nHit=%i, nClu=%i, #chi^{2}= %-.3f",recTrack->
ndof()+5, n2DCluster, recTrack->
chi2());
1066 vector<Int_t> vecBHits(0);
1067 vector<Int_t> vecEHits(0);
1070 for (Int_t i = 0; i < recTofTrackCol->GetEntriesFast(); i++){
1072 if ( !Is_tofCounter( recHit->
status()))
continue;
1074 Int_t recHitId = recHit->
trackID();
1075 Int_t recTrkId = recTrack->
trackID();
1076 if (recHitId == recTrkId) {
1077 if ( Is_tofBarrel( recHit->
status() ) ) {
1078 vecBHits.push_back(recHit->
tofID());
1081 vecEHits.push_back(recHit->
tofID());
1086 TGeoPhysicalNode *phyNode = 0;
1087 Double_t
x=0.0, y=0.0, z=0.0;
1090 if (vecBHits.size()){
1091 nHits = vecBHits.size();
1092 for (Int_t i = 0; i < nHits; i++) {
1097 if ( ( vecBHits[i] >= 0 ) && ( vecBHits[i] <= 87 ) ) {
1103 scin = vecBHits[i] - 88;
1107 tofTrack->
AddHit( aHit );
1110 Double_t local[3] = {0.0, 0.0, 0.0};
1111 Double_t master[3] = {0.0, 0.0, 0.0};
1115 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]);
1125 z = recTrack->
zrhit();
1130 else if (vecEHits.size()){
1131 nHits = vecEHits.size();
1132 for (Int_t i = 0; i < nHits; i++) {
1137 if ( ( vecEHits[i] >= 0 ) && ( vecEHits[i] <= 47 ) ) {
1143 scin = vecEHits[i] - 48;
1148 tofTrack->
AddHit( aHit );
1151 Double_t local[3] = {0.0, 0.0, 0.0};
1152 Double_t master[3] = {0.0, 0.0, 0.0};
1156 phyNode->GetMatrix(-1*phyNode->GetLevel())->LocalToMaster(local, &master[0]);
1173 info = TString(
"TofTrack ");
1218 Double_t
x=0.0, y=0.0, z=0.0;
1219 x = recTrack->
x() * 10.0;
1220 y = recTrack->
y() * 10.0;
1221 z = recTrack->
z() * 10.0;
1225 vector<Int_t> vecHits(0);
1226 map<Int_t, Double_t> cellMap = recTrack->
cellIdMap();
1227 map<Int_t, Double_t>::iterator iCellMap;
1228 for (iCellMap = cellMap.begin(); iCellMap != cellMap.end(); iCellMap++){
1229 Int_t cellId = iCellMap->first;
1230 vecHits.push_back(cellId);
1232 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
1237 if (part == 1) theta = 43-theta;
1240 emcTrack->
AddHit( aHit );
1250 info = TString(
"EmcShower ");
1254 sprintf(
data,
"nHits = %i, status = %i", recTrack->
numHits(), recTrack->
status());
1257 sprintf(
data,
"energy= (%.2f #pm %-.2f) MeV", recTrack->
energy()*1000.0, recTrack->
dE()*1000.0);
1265 sprintf(
data,
"cell Id= (%i, #theta %i, #phi %i)", part, theta, phi);
1268 sprintf(
data,
"module = %i", recTrack->
module());
1280 sprintf(
data,
"#theta = (%-.3f #pm %-.3f)", recTrack->
theta(), recTrack->
dtheta());
1283 sprintf(
data,
"#phi = (%-.3f #pm %-.3f)", recTrack->
phi(), recTrack->
dphi());
1295 if (recTrack->
depth() <= 0.0)
return;
1297 Double_t field = 1e-3;
1298 Double_t
kvC = 3.0e8;
1300 Double_t pz = recTrack->
pz();
1302 sqrt(recTrack->
px()*recTrack->
px() + recTrack->
py()*recTrack->
py());
1303 Double_t
pi = TMath::Pi();
1310 Double_t radius = 1.0e+9;
1311 Double_t curvature = 1.0/radius;
1312 Double_t zStep = 2*
pi*radius * fabs(pz/pt);
1313 Double_t step = 1.0;
1314 Double_t delt = step*(1.0e-3)/
kvC;
1316 TGeoHelix helix(curvature, zStep, charge);
1318 Double_t
x = recTrack->
xPos() * 10.0;
1319 Double_t y = recTrack->
yPos() * 10.0;
1320 Double_t z = recTrack->
zPos() * 10.0;
1322 helix.InitPoint(
x, y, z);
1323 helix.InitDirection(recTrack->
px(), recTrack->
py(), recTrack->
pz(), kFALSE);
1324 helix.SetField(0.0, 0.0, field, kFALSE);
1332 p = helix.GetCurrentPoint();
1333 mucTrack->
AddPoint(p[0], p[1], p[2], delt*nStep);
1338 mucTrack->PaintMarker(
mp);
1339 mucTrack->SetMarkerColor(kBlack);
1340 mucTrack->SetMarkerSize(10);
1343 while ( (p[0]*p[0] + p[1]*p[1]) < mucR*mucR && fabs(p[2]) < mucZ );
1346 vector<Int_t> vecHits = recTrack->
vecHits();
1347 for (Int_t i = 0; i < (Int_t)vecHits.size(); i++) {
1355 mucTrack->
AddHit( aHit );
1367 info = TString(
"MucTrack ");
1377 sprintf(
data,
"depth = %.3f cm", recTrack->
depth());
1380 sprintf(
data,
"#chi^{2}= %-.3f, dof= %i, rms= %-.3f", recTrack->
chi2(), recTrack->
dof(), recTrack->
rms());
1383 sprintf(
data,
"Origin (%-.2f, %-.2f, %-.2f) cm", recTrack->
xPos(), recTrack->
yPos(), recTrack->
zPos());
1386 sprintf(
data,
"p (%-.3f, %-.3f, %-.3f) GeV", recTrack->
px(), recTrack->
py(), recTrack->
pz());
1488 for (Int_t i = 0; i < fMdcTrackCol->GetEntries(); i++)
1496 for (Int_t i = 0; i < fIdealTrackCol->GetEntries(); i++)
1504 for (Int_t i = 0; i < fTofTrackCol->GetEntries(); i++)
1512 for (Int_t i = 0; i < fEmcTrackCol->GetEntries(); i++)
1520 for (Int_t i = 0; i < fMucTrackCol->GetEntries(); i++)
1528 for (Int_t i = 0; i < fExtTrackCol->GetEntries(); i++)
1559 for (Int_t i = 0; i < fCgemClusterCol->GetEntries(); ++i)
1563 cluster->
Draw(option);
1571 if (layer < 0 || layer >= 3)
return;
1575 for (Int_t i = 0; i < fCgemClusterUFCol[layer]->GetEntries(); ++i)
1579 cluster->
Draw(option);
1591 for (Int_t i = 0; i < fMcParticleCol->GetEntries(); i++)
1615 TString opt = option;
1636 if ( opt.Contains(
"ALL") || opt.Contains(
"Digi") ) {
1658bool BesEvent::Is_tofCounter(UInt_t status){
1659 const unsigned int Counter_Mask = 0x00000004;
1660 const unsigned int Counter_Index = 2;
1661 return ((status & Counter_Mask) >> Counter_Index) ?
true:
false;
1664bool BesEvent::Is_tofBarrel(UInt_t status) {
1665 const unsigned int Barrel_Index = 4;
1666 const unsigned int Barrel_Mask = 0x00000010;
1667 return ((status & Barrel_Mask) >> Barrel_Index ) ?
true :
false;
double sin(const BesAngle a)
double cos(const BesAngle a)
ClassImp(BesEvent) BesEvent
R__EXTERN BesGeometry * gBesGeometry
double abs(const EvtComplex &c)
**********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 GetVisTracksIdeal()
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
vector< Int_t > vecClusterId() 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;.