// ------------------------------------------------------------------------- // ----- PndGemHit source file ----- // ----- ----- // ------------------------------------------------------------------------- #include #include "PndGemHit.h" #include "TGeoManager.h" #include "TGeoNode.h" #include "TGeoVolume.h" #include "TGeoMatrix.h" #include "PndDetectorList.h" // ----- Default constructor ------------------------------------------- PndGemHit::PndGemHit() { } // ------------------------------------------------------------------------- // ----- Standard constructor ------------------------------------------ PndGemHit::PndGemHit(Int_t detID, TVector3& pos, TVector3& dpos, Int_t index, Double_t charge, Int_t NDigiHits) : FairHit(detID, pos, dpos, index) { fCharge = charge; fNDigiHits = NDigiHits; fBotIndex = -1; fDigiNr[0] = -1; fDigiNr[1] = -1; fDr = -1; fDp = -1; AddLink(FairLink("GEMPoint", index)); } // ------------------------------------------------------------------------- // ----- Standard constructor ------------------------------------------ PndGemHit::PndGemHit(Int_t detID, TVector3& pos, TVector3& dpos, Int_t digi1, Int_t digi2, Double_t dr, Double_t dp, Int_t index) : FairHit(detID, pos, dpos, index) { fCharge = -1; fNDigiHits = -1; fBotIndex = -1; fDigiNr[0] = digi1; fDigiNr[1] = digi2; fDr = dr; fDp = dp; AddLink(FairLink("GEMDigi", digi1)); AddLink(FairLink("GEMDigi", digi2)); } // ------------------------------------------------------------------------- // ----- Destructor ---------------------------------------------------- PndGemHit::~PndGemHit() {} // ------------------------------------------------------------------------- // ----- Public method Print ------------------------------------------- void PndGemHit::Print(const Option_t* opt) const { std::cout << *this; } // Double_t PndGemHit::GetD(Int_t i) // { // if(!gGeoManager){ // std::cout<<" -E- in PndGemHit::GetD(): No gGeoManager there. Please use "<FindNode(fX,fY,fZ)))->cd(); // TGeoHMatrix* currMatrix = gGeoManager->GetCurrentMatrix(); // // const Double_t* rotation = (currMatrix->Inverse()).GetRotationMatrix(); // Double_t local[3]={fDx,fDy,fDz}; // // Double_t result = fabs(rotation[3*i+0]*local[0]) + fabs(rotation[3*i+1]*local[1]) + fabs(rotation[3*i+2]*local[2]); // std::cout"PndGemHit::GetD("<