//----------------------------------------------------------- // 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 "GFDetPlane.h" // This Class' Header ------------------ #include "PndMvdRecoHit.h" #include "PndMvdMCPoint.h" #include "PndMvdHit.h" #include "PndMvdHit.h" #include "PndGeoHandling.h" #include "TGeoManager.h" #include "FairRootManager.h" // Class Member definitions ----------- ClassImp(PndMvdRecoHit); PndMvdRecoHit::~PndMvdRecoHit() { if(fGeoH!=0) delete (fGeoH); } PndMvdRecoHit::PndMvdRecoHit() : GFRecoHitIfc(fNparHitRep) { fGeoH = new PndGeoHandling(); } PndMvdRecoHit::PndMvdRecoHit(PndMvdMCPoint* point) : GFRecoHitIfc(fNparHitRep) { std::cout<<" -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdMCPoint*) called."<GetX(); fHitCoord[1][0] = point->GetY(); // we set the covariances to (50mu)^2 by hand. fHitCov[0][0] = 0.0050 * 0.0050;//cm //TODO: cm is rigt? fHitCov[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.); fPolicy.setDetPlane(GFDetPlane(o,u,v)); } PndMvdRecoHit::PndMvdRecoHit(PndMvdHit* hit) : GFRecoHitIfc(fNparHitRep) { // std::cout<<" -I- PndMvdRecoHit::PndMvdRecoHit(PndMvdHit*) called."<GetDetName(); // FairRootManager* ioman = FairRootManager::Instance(); // TString fGeoFile = ioman->GetInFile()->GetName(); fGeoH = new PndGeoHandling(); TString path = fGeoH->GetPath(id); // std::cout<<"Detector path: "<GetOUVId(id, oo,uu,vv); TVector3 position = hit->GetPosition(); TVector3 localpos = fGeoH->MasterToLocalId(position, id); fHitCoord[0][0] = localpos.X(); fHitCoord[1][0] = localpos.Y(); TVector3 errPos, errPosLoc; hit->PositionError(errPos); errPosLoc = fGeoH->MasterToLocalErrorsId(errPos, id); fHitCov[0][0] = 0.0050 * 0.0050; fHitCov[1][1] = 0.0050 * 0.0050; // fHitCov[0][0] = errPosLoc.X() * errPosLoc.X(); // fHitCov[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(GFAbsTrackRep* stateVector, const TMatrixT& state) { throw; }