//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Implementation of class PndMvdRecoHit // see PndMvdRecoHit.h for details // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // Ralf Kliemt TUD (application to PndMvd) // //----------------------------------------------------------- // C/C++ Headers ---------------------- // root Headers ---------------------- #include "TMatrixT.h" #include "TMath.h" // Collaborating Class Headers -------- #include "FairMCPoint.h" #include "LSLTrackRep.h" #include "GeaneTrackRep.h" #include "DetPlane.h" // This Class' Header ------------------ #include "PndMvdRecoHit.h" #include "PndMvdMCPoint.h" #include "PndMvdHit.h" #include "PndMvdHit.h" #include "PndMvdGeoHandling.h" #include "TGeoManager.h" #include "FairRootManager.h" // Class Member definitions ----------- ClassImp(PndMvdRecoHit); PndMvdRecoHit::~PndMvdRecoHit() { if(fGeoH!=0) delete (fGeoH); } PndMvdRecoHit::PndMvdRecoHit() : RecoHitIfc(fNparHitRep) { fGeoH = new PndMvdGeoHandling(gGeoManager); } PndMvdRecoHit::PndMvdRecoHit(PndMvdMCPoint* point) : RecoHitIfc(fNparHitRep) { std::cout<<" -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdMCPoint*) called."<GetX(); _hitCoord[1][0] = point->GetY(); // we set the covariances to (50mu)^2 by hand. _hitCov[0][0] = 0.0050 * 0.0050;//cm //TODO: cm is rigt? _hitCov[1][1] = 0.0050 * 0.0050;//cm //TODO: cm is rigt? TVector3 o(0.,0.,point->GetZ()), u(1.,0.,0.), v(0.,1.,0.); setDetPlane(DetPlane(o,u,v)); } PndMvdRecoHit::PndMvdRecoHit(PndMvdHit* hit) : RecoHitIfc(fNparHitRep) { std::cout<<" -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called."<GetDetName(); FairRootManager* ioman = FairRootManager::Instance(); TString fGeoFile = ioman->GetInFile()->GetName(); PndMvdGeoHandling* fGeoH = new PndMvdGeoHandling(fGeoFile.Data()); TString path = fGeoH->GetPath(id); std::cout<<"Detector path: "<GetOUVId(id, oo,uu,vv); TVector3 position = hit->GetPosition(); TVector3 localpos = fGeoH->MasterToLocalId(position, id); _hitCoord[0][0] = localpos.X(); _hitCoord[1][0] = localpos.Y(); TVector3 errPos, errPosLoc; hit->PositionError(errPos); errPosLoc = fGeoH->MasterToLocalErrorsId(errPos, id); _hitCov[0][0] = 0.0050 * 0.0050; _hitCov[1][1] = 0.0050 * 0.0050; // _hitCov[0][0] = errPosLoc.X() * errPosLoc.X(); // _hitCov[1][1] = errPosLoc.Y() * errPosLoc.Y(); std::cout<<" -I- PndMvdRecoHit::PndMvdRecoHit: Wrote a hit with" <<"\n(x,y) = ("< abort" << std::endl; throw; } } Double_t PndMvdRecoHit::residualScalar(AbsTrackRep* stateVector, const TMatrixT& state) { throw; }