79 static FairGeoLoader *geoLoad=FairGeoLoader::Instance();
80 static FairGeoInterface *geoFace=geoLoad->getGeoInterface();
81 static FairGeoMedia *media=geoFace->getMedia();
82 static FairGeoBuilder *geoBuild=geoLoad->getGeoBuilder();
84 FairGeoMedium *ShipMedium=media->getMedium(name);
88 Fatal(
"InitMedium",
"Material %s not defined in media file.", name);
91 TGeoMedium* medium=gGeoManager->GetMedium(name);
93 return ShipMedium->getMediumIndex();
95 return geoBuild->createMedium(ShipMedium);
101 if ( gMC->IsTrackEntering() ) {
103 fTime = gMC->TrackTime() * 1.0e09;
105 gMC->TrackPosition(
fPos);
106 gMC->TrackMomentum(
fMom);
113 if ( gMC->IsTrackExiting() ||
114 gMC->IsTrackStop() ||
115 gMC->IsTrackDisappeared() ) {
116 fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
120 fVolumeID = gGeoManager->FindVolumeFast(vol->GetName())->GetNumber();
121 if (
fELoss == 0. ) {
return kFALSE; }
122 TParticle* p=gMC->GetStack()->GetCurrentTrack();
123 Int_t pdgCode = p->GetPdgCode();
130 stack->AddPoint(
kMuon);
206 TGeoVolume *top=gGeoManager->GetTopVolume();
207 TGeoVolume *tMuon =
new TGeoVolumeAssembly(
"MuonDetector");
212 TGeoMedium *Al =gGeoManager->GetMedium(
"Scintillator");
213 TGeoMedium *A2 =gGeoManager->GetMedium(
"iron");
228 TGeoVolume *muonshield = gGeoManager->MakeBox(
"muonshield", A2,
fXMax,
fYMax, 5.);
230 AddSensitiveVolume(muondet0);
231 AddSensitiveVolume(muondet1);
232 AddSensitiveVolume(muondet2);
233 AddSensitiveVolume(muondet3);
234 muondet0->SetLineColor(kGreen);
235 muondet1->SetLineColor(kGreen);
236 muondet2->SetLineColor(kGreen);
237 muondet3->SetLineColor(kGreen);
238 muonfilter->SetLineColor(kBlue);
239 Double_t zStartMuon =
fM0z;
242 tMuon->AddNode(muondet0, 1,
new TGeoTranslation(0, 0,
fM0z-relPos));
243 tMuon->AddNode(muonfilter, 0,
new TGeoTranslation(0, 0,
fF0z-relPos));
244 tMuon->AddNode(muondet1, 1,
new TGeoTranslation(0, 0,
fM1z-relPos));
245 tMuon->AddNode(muonfilter, 1,
new TGeoTranslation(0, 0,
fF1z-relPos));
246 tMuon->AddNode(muondet2, 1,
new TGeoTranslation(0, 0,
fM2z-relPos));
247 tMuon->AddNode(muonfilter, 2,
new TGeoTranslation(0, 0,
fF2z-relPos));
248 tMuon->AddNode(muondet3, 1,
new TGeoTranslation(0, 0,
fM3z-relPos));
251 top->AddNode(tMuon, 1,
new TGeoTranslation(0, 0,relPos));
255 TVector3 pos, TVector3 mom,
256 Double_t time, Double_t length,
257 Double_t eLoss, Int_t pdgCode)
260 Int_t size = clref.GetEntriesFast();
262 return new(clref[size])
muonPoint(trackID, detID, pos, mom,
263 time, length, eLoss, pdgCode);
muonPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgcode)