// ------------------------------------------------------------------------- // ----- PndSdsHit header file ----- // ----- Created by T.Stockmanns ----- // ------------------------------------------------------------------------- /** PndSdsHit.h *@author T.Stockmanns ** ** A hit in a silicon sensor. In addition to the base class ** FairHit, it holds the number of digis & charge entry. ** There is also a bottom index for double sided strip sensors. ** All coordinates are in the LAB frame. **/ #ifndef PNDSDSHIT_H #define PNDSDSHIT_H #include "TVector3.h" #include "TString.h" #include "FairHit.h" #include "PndDetectorList.h" #include "TMatrixD.h" //#include "PndSingleLinkedData.h" #include #include class PndSdsHit : public FairHit { friend std::ostream& operator<< (std::ostream& out, const PndSdsHit& hit){ out << "PndSdsHit in " << hit.GetSensorID() << " at" << std::endl; out << "(" << hit.GetX() << ", " << hit.GetY() << ", " << hit.GetZ() << ") cm " << " with " << hit.GetCharge() << " e" << " at Time: " << hit.GetTimeStamp() << " +/- " << hit.GetTimeStampError() << " , Cluster No. " << hit.GetClusterIndex(); if (hit.GetBotIndex() > -1) out << " and bottom " << hit.GetBotIndex(); if (hit.GetRefIndex() > -1) out << ", mc point id = " << hit.GetRefIndex(); else out << ", noise hit without mc poit"; out << std::endl; out <<"hit.GetClusterIndex() "< void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); ar & fSensorID; ar & fCharge; ar & fNDigiHits; ar & fClusterIndex; ar & fBotIndex; //ar & fCov; } #endif // for BOOST serialization /** Screen output **/ virtual void Print(const Option_t* opt = 0) const; private: // Double_t GetD(Int_t i); #ifndef __CINT__ // for BOOST serialization friend class boost::serialization::access; #endif // for BOOST serialization //TString fDetName; // Detector name Int_t fSensorID; ///< unique sensor ID Double_t fCharge; /// deposited Charge Int_t fNDigiHits; /// number of fired Digis for this hit, Int_t fClusterIndex; /// top/pixel cluster index Int_t fBotIndex; /// bottom side of strip clusters TMatrixD fCov; /// Hit covariance Matrix ClassDef(PndSdsHit,8); }; // inline void PndSdsHit::PositionErrorLocal(TVector3& dpos) const { // dpos.SetXYZ(fDx, fDy, fDz); // } // // inline void PndSdsHit::PositionError(TVector3& dpos) { // dpos.SetXYZ(GetDx(), GetDy(), GetDz()); // } #endif