ClassImp(TAmpt)
+
//______________________________________________________________________________
TAmpt::TAmpt()
: TGenerator("Ampt","Ampt"),
fIat(208),
fIzt(82),
fBmin(0.),
- fBmax(5.)
+ fBmax(5.),
+ fPsi(0.)
{
// Default constructor
amptsetdef();
fIat(iat),
fIzt(izt),
fBmin(bmin),
- fBmax(bmax)
+ fBmax(bmax),
+ fPsi(0.)
{
// TAmpt constructor:
// Note that there may be only one functional TAmpt object
Double_t py = HBT.plast[i][1];//GeV/c
Double_t pz = HBT.plast[i][2];//GeV/c
Double_t ma = HBT.plast[i][3];//GeV/c/c
-// Double_t vx = 0;//HBT.xlast[i][0]*1e-12;//mm
-// Double_t vy = 0;//HBT.xlast[i][1]*1e-12;//mm
-// Double_t vz = 0;//HBT.xlast[i][2]*1e-12;//mm
-// Double_t vt = 0;//HBT.xlast[i][3]*1e-12;//mm/c
- Double_t vx = HBT.xlast[i][0]*1e-12;//mm
- Double_t vy = HBT.xlast[i][1]*1e-12;//mm
- Double_t vz = HBT.xlast[i][2]*1e-12;//mm
- Double_t vt = HBT.xlast[i][3]*1e-12;//mm/c
+ Double_t vx = 0;//HBT.xlast[i][0]*1e-12;//mm
+ Double_t vy = 0;//HBT.xlast[i][1]*1e-12;//mm
+ Double_t vz = 0;//HBT.xlast[i][2]*1e-12;//mm
+ Double_t vt = 0;//HBT.xlast[i][3]*1e-12;//mm/c
+ //Double_t vx = HBT.xlast[i][0]*1e-12;//mm
+ //Double_t vy = HBT.xlast[i][1]*1e-12;//mm
+ //Double_t vz = HBT.xlast[i][2]*1e-12;//mm
+ //Double_t vt = HBT.xlast[i][3]*1e-12;//mm/c
+
+ // Rotate xy components of vectors to new reaction plane:
+ Double_t pxp=TMath::Cos(fPsi)*px - TMath::Sin(fPsi)*py;
+ Double_t pyp=TMath::Sin(fPsi)*px + TMath::Cos(fPsi)*py;
+ Double_t vxp=TMath::Cos(fPsi)*vx - TMath::Sin(fPsi)*vy;
+ Double_t vyp=TMath::Sin(fPsi)*vx + TMath::Cos(fPsi)*vy;
+
Int_t pdg = invflv(HBT.lblast[i]);
TParticle *p = new TParticle(pdg,
status,
-1,
-1,
-1,
- px,
- py,
+ pxp,
+ pyp,
pz,
TMath::Sqrt(ma*ma+px*px+py*py+pz*pz),
- vx,
- vy,
+ vxp,
+ vyp,
vz,
vt);
if((px==0)&&(py==0)) {
Double_t py = HBT.plast[i][1];//GeV/c
Double_t pz = HBT.plast[i][2];//GeV/c
Double_t ma = HBT.plast[i][3];//GeV/c/c
-// Double_t vx = 0;//HBT.xlast[i][0]*1e-12;//mm
-// Double_t vy = 0;//HBT.xlast[i][1]*1e-12;//mm
-// Double_t vz = 0;//HBT.xlast[i][2]*1e-12;//mm
-// Double_t vt = 0;//HBT.xlast[i][3]*1e-12;//mm/c
- Double_t vx = HBT.xlast[i][0]*1e-12;//mm
- Double_t vy = HBT.xlast[i][1]*1e-12;//mm
- Double_t vz = HBT.xlast[i][2]*1e-12;//mm
- Double_t vt = HBT.xlast[i][3]*1e-12;//mm/c
+ Double_t vx = 0;//HBT.xlast[i][0]*1e-12;//mm
+ Double_t vy = 0;//HBT.xlast[i][1]*1e-12;//mm
+ Double_t vz = 0;//HBT.xlast[i][2]*1e-12;//mm
+ Double_t vt = 0;//HBT.xlast[i][3]*1e-12;//mm/c
+ //Double_t vx = HBT.xlast[i][0]*1e-12;//mm
+ //Double_t vy = HBT.xlast[i][1]*1e-12;//mm
+ //Double_t vz = HBT.xlast[i][2]*1e-12;//mm
+ //Double_t vt = HBT.xlast[i][3]*1e-12;//mm/c
+
+ // Rotate xy components of vectors to new reaction plane:
+ Double_t pxp=TMath::Cos(fPsi)*px - TMath::Sin(fPsi)*py;
+ Double_t pyp=TMath::Sin(fPsi)*px + TMath::Cos(fPsi)*py;
+ Double_t vxp=TMath::Cos(fPsi)*vx - TMath::Sin(fPsi)*vy;
+ Double_t vyp=TMath::Sin(fPsi)*vx + TMath::Cos(fPsi)*vy;
+
Int_t pdg = invflv(HBT.lblast[i]);
//printf("i %d pdg %d px %f py %f pz %f vx %f vy %f vz %f vt %f\n", i, pdg, px, py, pz, vx, vy, vz, vt);
new(particlesR[i]) TParticle(pdg,
-1,
-1,
-1,
- px,
- py,
+ pxp,
+ pyp,
pz,
TMath::Sqrt(ma*ma+px*px+py*py+pz*pz),
- vx,
- vy,
+ vxp,
+ vyp,
vz,
vt);
if((px==0)&&(py==0)){
Double_t x = HJCRDN.yp[i][0] + 0.5*GetBB();
Double_t y = HJCRDN.yp[i][1];
Double_t z = HJCRDN.yp[i][2];
+
+ // Rotate xy components of vectors to new reaction plane:
+ Double_t xp=TMath::Cos(fPsi)*x - TMath::Sin(fPsi)*y;
+ Double_t yp=TMath::Sin(fPsi)*x + TMath::Cos(fPsi)*y;
+
Int_t p = HSTRNG.nfp[3][i];
Int_t s = HSTRNG.nfp[4][i];
new(nucleonsR[i]) TParticle(p,
0,
0,
0,
- x,
- y,
+ xp,
+ yp,
z,
0);
nucleonsR[i]->SetUniqueID(1);
Double_t x = HJCRDN.yt[i][0] - 0.5*HPARNT.hint1[18];
Double_t y = HJCRDN.yt[i][1];
Double_t z = HJCRDN.yt[i][2];
+
+ // Rotate xy components of vectors to new reaction plane:
+ Double_t xp=TMath::Cos(fPsi)*x - TMath::Sin(fPsi)*y;
+ Double_t yp=TMath::Sin(fPsi)*x + TMath::Cos(fPsi)*y;
+
Int_t p = HSTRNG.nft[3][i];
Int_t s = HSTRNG.nft[4][i];
new(nucleonsR[nA+i]) TParticle(p,
0,
0,
0,
- x,
- y,
+ xp,
+ yp,
z,
0);
nucleonsR[nA+i]->SetUniqueID(-1);
Int_t TAmpt::GetKATT(Int_t key1, Int_t key2) const
{
// Get values of array KATT in common HMAIN2
- if ( key1<1 || key1>200000 ) {
+ if ( key1<1 || key1> _MAXNPARTICLE_ ) {
printf("ERROR in TAmpt::GetKATT(key1,key2):\n");
- printf(" key1=%i is out of range [1..200000]\n",key1);
+ printf(" key1=%i is out of range [1..%d]\n",key1,_MAXNPARTICLE_);
return 0;
}
if ( key2<1 || key2>4 ) {
Float_t TAmpt::GetPATT(Int_t key1, Int_t key2) const
{
// Get values of array PATT in common HMAIN2
- if ( key1<1 || key1>200000 ) {
+ if ( key1<1 || key1>_MAXNPARTICLE_ ) {
printf("ERROR in TAmpt::GetPATT(key1,key2):\n");
printf(" key1=%i is out of range [1..130000]\n",key1);
return 0;
Float_t TAmpt::GetVATT(Int_t key1, Int_t key2) const
{
// Get values of array VATT in common HMAIN2
- if ( key1<1 || key1>200000 ) {
+ if ( key1<1 || key1>_MAXNPARTICLE_ ) {
printf("ERROR in TAmpt::GetVATT(key1,key2):\n");
printf(" key1=%i is out of range [1..130000]\n",key1);
return 0;