48 fpRegisteredSBPoints()
51 std::set<SBPoint*>::iterator itPt;
52 for(itPt = pSBPoints.begin(); itPt != pSBPoints.end(); ++itPt)
67 std::set<SBPoint*>::iterator itPt;
72 (*itPt)->CleanCluster();
96 std::set<SBPoint* >::iterator itSDSPt;
101 x+= (*itSDSPt)->GetPosition().x();
102 y+= (*itSDSPt)->GetPosition().y();
103 z+= (*itSDSPt)->GetPosition().z();
117 std::set<SBPoint* >::iterator itSDSPt;
122 res += (*itSDSPt)->GetEdep();
132 bool firstStrandTouch =
false;
133 bool secondStrandTouch =
false;
135 std::set<SBPoint* >::iterator itSDSPt;
141 if( ((*itSDSPt)->GetTouchedStrand() == 0 ) && !firstStrandTouch )
143 firstStrandTouch =
true;
144 if(secondStrandTouch)
151 if( ((*itSDSPt)->GetTouchedStrand() == 1 ) && !secondStrandTouch )
153 secondStrandTouch =
true;
180 if(((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))<=
181 (pMinDist/
nm*pMinDist/
nm))
195 assert((
unsigned int)pMinPts > this->
GetSize());
196 std::vector<SBPoint*>::iterator itPt = pPtsToCheck->begin();
197 while(itPt != pPtsToCheck->end() )
203 if( (!(*itPt)->HasCluster())
209 if(this->
GetSize() >= (
unsigned int)pMinPts)
214 itPt = pPtsToCheck->begin();
227 std::set<SBPoint*>::iterator itClusPt;
233 if((*pPtToCheck != *(*itClusPt)))
260 if(((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))<=
261 (pMinDist/
nm*pMinDist/
nm))
278 std::set<SBPoint*>::iterator itPt;
279 for(itPt = points.begin(); itPt != points.end(); ++itPt)
bool HasIn(const SBPoint *, G4double)
void AddSBPoint(SBPoint *pSBPoint)
Definition of the ClusterSBPoints class.
std::set< SBPoint * > GetRegistredSBPoints() const
void UpdateDoubleStrand()
CLHEP::Hep3Vector G4ThreeVector
define a cluster of SB Points
ClusterSBPoints(std::set< SBPoint * > pPoints)
unsigned int GetSize() const
void SetCluster(ClusterSBPoints *pCluster)
void FindAllPointsPossible(std::vector< SBPoint * > *ptToCheck, G4int minPts, G4double minDist)
void MergeWith(ClusterSBPoints *)
this will insert all registredSBPoint from the given cluster to this cluster.
std::set< SBPoint * > fpRegisteredSBPoints
bool HasInBarycenter(const SBPoint *, G4double)
const G4double x[NPOINTSGL]
G4ThreeVector GetBarycenter() const
G4ThreeVector GetPosition() const
defines a point of energy deposition which defines a damage to the DNA.
bool AreOnTheSameCluster(const SBPoint *pPt1, const SBPoint *pPt2, G4double pMinDist)