Changeset 10090
- Timestamp:
- 01/06/11 16:53:13 (14 years ago)
- Location:
- trunk/Mars
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Mars/Changelog
r10089 r10090 37 37 - added GetL 38 38 39 * mgeom/MGeomCamDwarf.cc: 40 - use the HitFrame from the base class with a slightly 41 increased radius (no change in behaviour) 42 43 * mgeom/MGeomCam.[h,cc]: 44 - added HitFrame 45 46 * msimreflector/MSimReflector.[h,cc]: 47 - implemented the possibility to overwrite the absorbing 48 size of the detector 49 - added fDetectorFrame 50 -
trunk/Mars/mgeom/MGeomCam.cc
r9398 r10090 422 422 // -------------------------------------------------------------------------- 423 423 // 424 // Check if the photon which is flying along the trajectory u has passed 425 // (or will pass) the frame of the camera (and consequently get 426 // absorbed). The position p and direction u must be in the 427 // telescope coordinate frame, which is z parallel to the focal plane, 428 // x to the right and y upwards, looking from the mirror towards the camera. 429 // 430 // The units are cm. 431 // 432 Bool_t MGeomCam::HitFrame(MQuaternion p, const MQuaternion &u, Double_t margin) const 433 { 434 if (margin<=0) 435 return HitFrame(p, u); 436 437 // z is defined from the mirror (0) to the camera (z>0). 438 // Thus we just propagate to the focal plane (z=fDist) 439 p.PropagateZ(u, GetCameraDist()*100); // m->cm 440 return p.R()<margin; 441 } 442 443 // -------------------------------------------------------------------------- 444 // 424 445 // Check if the position given in the focal plane (so z can be ignored) 425 446 // is a position which might hit the detector. It is meant to be a rough … … 583 604 // at the end. 584 605 // 585 // All pixel swith a center withing 1.75*GetT() are considered neiighbors,606 // All pixels with a center withing 1.75*GetT() are considered neighbors, 586 607 // Only six neighbors are allowed. 587 608 // -
trunk/Mars/mgeom/MGeomCam.h
r9594 r10090 122 122 123 123 virtual Bool_t HitFrame(MQuaternion p, const MQuaternion &u) const { return kFALSE; } 124 Bool_t HitFrame(MQuaternion p, const MQuaternion &u, Double_t margin) const; 124 125 virtual Bool_t HitDetector(const MQuaternion &p, Double_t offset=0) const; 125 126 -
trunk/Mars/mgeom/MGeomCamDwarf.cc
r9863 r10090 101 101 Bool_t MGeomCamDwarf::HitFrame(MQuaternion p, const MQuaternion &u) const 102 102 { 103 // z is defined from the mirror (0) to the camera (z>0).104 // Thus we just propagate to the focal plane (z=fDist)105 //p -= 1700./u.Z()*u;106 p.PropagateZ(u, GetCameraDist()*100); // m->cm107 108 103 // Add 10% to the max radius and convert from mm to cm 109 return p.R()<GetMaxRadius()*0.11;//TMath::Abs(p.X())<65 && TMath::Abs(p.Y())<65; 104 // FIXME: Why does the compiler complain without this cast? 105 return static_cast<const MGeomCam*>(this)->HitFrame(p, u, GetMaxRadius()*0.11); 110 106 } 111 107 -
trunk/Mars/msimreflector/MSimReflector.cc
r9565 r10090 27 27 // MSimReflector 28 28 // 29 // fDetectorFrame is a radius in centimeter, defining a disk in the focal 30 // plane around the focal point, in which photons are absorbed. If 31 // fDetectorFrame<=0 the virtual HitFrame function of the camera 32 // geometry container is used instead. 33 // 29 34 // fDetectorMargin is a margin (in mm) which is given to the 30 35 // MGeomCam::HitDetector. It should define a margin around the area … … 76 81 fMirror4(0), /*fRunHeader(0),*/ fEvtHeader(0), fReflector(0), 77 82 fGeomCam(0), fPointing(0), fNameReflector("MReflector"), 78 fDetector Margin(0)83 fDetectorFrame(0), fDetectorMargin(0) 79 84 { 80 85 fName = name ? name : "MSimReflector"; … … 502 507 503 508 // Check if the photon has hit the camera housing and holding 504 if (fGeomCam->HitFrame(p, w ))509 if (fGeomCam->HitFrame(p, w, fDetectorFrame)) 505 510 continue; 506 511 … … 579 584 { 580 585 Bool_t rc = kFALSE; 586 if (IsEnvDefined(env, prefix, "DetectorFrame", print)) 587 { 588 rc = kTRUE; 589 fDetectorFrame = GetEnvValue(env, prefix, "DetectorFrame", 0); 590 } 581 591 if (IsEnvDefined(env, prefix, "DetectorMargin", print)) 582 592 { -
trunk/Mars/msimreflector/MSimReflector.h
r9565 r10090 33 33 TString fNameReflector; // Name of the container storing the reflector geometry 34 34 35 Double_t fDetectorFrame; // A disk of radius DetectorFrame around the focal point absorbing photons 35 36 Double_t fDetectorMargin; // A margin around the detector (MGeomCam::HitCamera) in which photons are also stored 36 37 … … 49 50 void SetNameReflector(const char *name="MReflector") { fNameReflector = name; } 50 51 51 void SetDetectorMargin(Double_t m=0) { fDetectorMargin = m; } 52 void SetDetectorFrame(Double_t cm=0) { fDetectorFrame = cm; } 53 void SetDetectorMargin(Double_t mm=0) { fDetectorMargin = mm; } 52 54 53 55 ClassDef(MSimReflector, 0) // Task to calculate reflection on a mirror
Note:
See TracChangeset
for help on using the changeset viewer.