94 static Double_t timeIn;
95 static Double_t timeOut;
96 static Double_t lengthtrack;
98 Int_t ivol = vol->getMCid();
100 if (gMC->IsTrackEntering()) {
111 TLorentzVector PosIn;
112 gMC->TrackPosition(PosIn);
113 fPosIn.SetXYZ(PosIn.X(), PosIn.Y(), PosIn.Z());
115 TLorentzVector MomIn;
116 gMC->TrackMomentum(MomIn);
117 fMomIn.SetXYZ(MomIn.Px(), MomIn.Py(), MomIn.Pz());
119 timeIn = gMC->TrackTime() * 1.0e09;
122 part = gMC->GetStack()->GetCurrentTrack();
125 fIsPrimary = (Int_t) part->IsPrimary();
126 fCharge = (Int_t) part->GetPDG()->Charge() / 3.;
127 fPdgId = (Int_t) part->GetPdgCode();
132 Double_t eLoss = gMC->Edep();
136 Double_t slengthtrack = gMC-> TrackStep();
137 lengthtrack += slengthtrack;
140 if ((gMC->IsTrackExiting() || gMC->IsTrackStop() || gMC->IsTrackDisappeared()) && (fELoss > 0))
142 TLorentzVector PosOut;
143 gMC->TrackPosition(PosOut);
144 fPosOut.SetXYZ(PosOut.X(), PosOut.Y(), PosOut.Z());
146 TLorentzVector MomOut;
147 gMC->TrackMomentum(MomOut);
148 fMomOut.SetXYZ(MomOut.Px(), MomOut.Py(), MomOut.Pz());
150 timeOut = gMC->TrackTime() * 1.0e09;
152 fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
154 Double_t time = gMC->TrackTime() * 1.0e09;
155 Double_t length = gMC->TrackLength();
160 gMC->CurrentVolOffID(1, iCell);
162 AddHit(fTrackID, ivol, copyNo, fPosIn, fPosOut,
164 time, length, fELoss, fIsPrimary, fCharge, fPdgId, timeIn, timeOut, lengthtrack);
218 Int_t nEntries = cl1->GetEntriesFast();
220 TClonesArray& clref = *cl2;
222 for (Int_t
i = 0;
i < nEntries;
i++) {
224 Int_t index = oldpoint->GetTrackID() + offset;
225 oldpoint->SetTrackID(index);
229 cout <<
" -I- BmnArmTrig: " << cl2->GetEntriesFast() <<
" merged entries."
297 TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss, Bool_t isPrimary,
298 Double_t charge, Int_t pdgId, Double_t timeIn, Double_t timeOut, Double_t lengthtrack) {
300 TClonesArray& clref = *fArmTrigCollection;
301 Int_t size = clref.GetEntriesFast();
302 return new(clref[size])
BmnArmTrigPoint(trackID, detID, copyNo, posIn, posOut, momIn, momOut, time, length, eLoss, isPrimary,
303 charge, pdgId, timeIn, timeOut, lengthtrack);
BmnArmTrigPoint * AddHit(Int_t trackID, Int_t detID, Int_t copyNo, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t tof, Double_t length, Double_t eLoss, Bool_t isPrimary, Double_t charge, Int_t pdgId, Double_t timeIn, Double_t timeOut, Double_t lengthtrack)