29 #ifndef G4ExcitedString_h
30 #define G4ExcitedString_h 1
127 return this == &
right;
133 return this != &
right;
139 return theTimeOfCreation;
145 theTimeOfCreation=aTime;
157 thePosition= aPosition;
166 for (
unsigned int index=0; index < thePartons.size() ; index++ )
169 momentum += thePartons[index]->Get4Momentum();
184 for (
unsigned int index=0; index < thePartons.size() ; index++ )
186 thePartons[index]->Set4Momentum(rotation*thePartons[index]->
Get4Momentum());
199 G4PartonVector::iterator insert_index;
201 if ( addafter != NULL )
203 insert_index=std::find(thePartons.begin(), thePartons.end(), addafter);
204 if ( insert_index == thePartons.end() )
206 G4String text =
"G4ExcitedString::InsertParton called with invalid second argument";
211 thePartons.insert(insert_index+1, aParton);
222 for (
unsigned int index=0; index < thePartons.size() ; index++ )
224 momentum=toCms * thePartons[index]->Get4Momentum();
225 thePartons[index]->Set4Momentum(momentum);
242 momentum= toAlignedCms* thePartons[0]->Get4Momentum();
243 toAlignedCms.rotateZ(-1*momentum.phi());
244 toAlignedCms.rotateY(-1*momentum.theta());
246 for (
unsigned int index=0; index < thePartons.size() ; index++ )
248 momentum=toAlignedCms * thePartons[index]->Get4Momentum();
249 thePartons[index]->Set4Momentum(momentum);
270 return theTrack == 0;
Hep3Vector boostVector() const
G4Parton * GetGluon(void) const
G4LorentzRotation TransformToCenterOfMass()
G4Parton * GetLeftParton(void) const
G4bool IsItKinkyString(void) const
void LorentzRotate(const G4LorentzRotation &rotation)
void Boost(G4ThreeVector &Velocity)
void InsertParton(G4Parton *aParton, const G4Parton *addafter=NULL)
G4Parton * GetAntiColorParton(void) const
const G4ThreeVector & GetPosition() const
G4ExcitedString(G4Parton *Color, G4Parton *Gluon, G4Parton *AntiColor, G4int Direction=PROJECTILE)
void SetPosition(const G4ThreeVector &aPosition)
void SetTimeOfCreation(G4double aTime)
const G4PartonVector * GetPartonList() const
G4LorentzVector Get4Momentum() const
G4LorentzRotation TransformToAlignedCms()
G4KineticTrack * GetKineticTrack() const
void Set4Momentum(const G4LorentzVector &a4Momentum)
int operator==(const G4ExcitedString &right) const
G4Parton * GetColorParton(void) const
G4Parton * GetRightParton(void) const
std::vector< G4Parton * > G4PartonVector
G4double GetTimeOfCreation() const
G4int GetDirection(void) const
int operator!=(const G4ExcitedString &right) const
const G4LorentzVector & Get4Momentum() const