68 if (TVirtualMC::GetMC()->TrackCharge() != 0.) {
70 if (TVirtualMC::GetMC()->IsTrackEntering()) {
75 TVirtualMC::GetMC()->TrackPosition(
fPosIn);
76 TVirtualMC::GetMC()->TrackMomentum(
fMomIn);
80 fELoss += TVirtualMC::GetMC()->Edep();
83 if (TVirtualMC::GetMC()->IsTrackExiting() &&
fTrackValid == kTRUE) {
85 int trackID = TVirtualMC::GetMC()->GetStack()->GetCurrentTrackNumber();
88 if (fVerboseLevel > 2) LOG(info) <<
"[MUST] test Vol----------" << vol->getMCid();
89 if (fVerboseLevel > 2) LOG(info) <<
"trackID-----" << trackID;
92 double trackTime = TVirtualMC::GetMC()->TrackTime() * 1.0e09;
93 double trackLength = TVirtualMC::GetMC()->TrackLength();
94 TLorentzVector posOut{0, 0, 0, 0};
95 TLorentzVector momOut{0, 0, 0, 0};
96 TVirtualMC::GetMC()->TrackPosition(posOut);
97 TVirtualMC::GetMC()->TrackMomentum(momOut);
99 string volPath(TVirtualMC::GetMC()->CurrentVolPath());
101 LOG(debug) <<
" --> " << volPath;
102 string tubeName = volPath.substr(volPath.find(
"strawAssembly_") + 14, 8);
104 int layerId = atoi(tubeName.substr(1, 2).c_str()) - 1;
105 int moduleId = atoi(tubeName.substr(3, 2).c_str()) - 1;
106 int tubeId = atoi(tubeName.substr(5, 3).c_str()) - 1;
110 LOG(debug) <<
" l/m/t = " << layerId <<
"/" << moduleId <<
"/" << tubeId;
113 TVector3(posOut.X(), posOut.Y(), posOut.Z()), TVector3(
fMomIn.Px(),
fMomIn.Py(),
fMomIn.Pz()),
114 TVector3(momOut.Px(), momOut.Py(), momOut.Pz()), trackTime, trackLength,
fELoss);
117 if (fVerboseLevel > 2) LOG(info) <<
"AddPoint CbmMust.cxx= " << trackID;
199 TVector3 momOut, Double_t time, Double_t length, Double_t eLoss)
206 new (clref[
size])
CbmMustPoint(trackID, address, posIn, posOut, momIn, momOut, time, length, eLoss);
CbmMustPoint * AddPoint(Int_t trackID, uint32_t address, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss)