fCurFile(0),
fStack(0x0),
fGenHeader(0x0),
+ fEstEventMult(kGlobalCount),
fRotateToEventPlane(0)
{
//constructor with 0 parameters , look at default settings
fCurFile(0),
fStack(0x0),
fGenHeader(0x0),
+ fEstEventMult(kGlobalCount),
fRotateToEventPlane(0)
{
// Copy constructor
fCurEvent = aReader.fCurEvent;
fCurFile = aReader.fCurFile;
fStack = aReader.fStack;
+ fEstEventMult = aReader.fEstEventMult;
fRotateToEventPlane = aReader.fRotateToEventPlane;
}
//__________________
fCurFile = aReader.fCurFile;
fStack = aReader.fStack;
fGenHeader = aReader.fGenHeader;
+ fEstEventMult = aReader.fEstEventMult;
fRotateToEventPlane = aReader.fRotateToEventPlane;
return *this;
}
int tNormMult = 0;
+ int tV0direction = 0;
for (int i=0;i<nofTracks;i++)
{
//take only primaries
//getting next track
TParticle *kinetrack= fStack->Particle(i);
+
+
+
//setting multiplicity
realnofTracks++;//real number of tracks (only primary particles)
if (kinetrack->Eta() < 0.8)
tNormMult++;
-
+ //counting particles that go into direction of VZERO detector
+ if(kinetrack->Eta() > 2.8 && kinetrack->Eta() < 5.1) //VZERO-A
+ tV0direction++;
+ if(kinetrack->Eta() > -3.7 && kinetrack->Eta() < -1.7)//VZERO-C
+ tV0direction++;
+
//charge
trackCopy->SetCharge((short)(fStack->Particle(i)->GetPDG()->Charge()/3));
//Momentum
double pxyz[3];
- // double rxyz[3];
+ double rxyz[3];
- pxyz[0]=kinetrack->Px();
- pxyz[1]=kinetrack->Py();
- pxyz[2]=kinetrack->Pz();
+ pxyz[0]=kinetrack->Px();
+ pxyz[1]=kinetrack->Py();
+ pxyz[2]=kinetrack->Pz();
+
+ rxyz[0]=kinetrack->Vx();
+ rxyz[1]=kinetrack->Vy();
+ rxyz[2]=kinetrack->Vz();
+
+ AliFemtoModelHiddenInfo *tInfo = new AliFemtoModelHiddenInfo();
+ tInfo->SetPDGPid(kinetrack->GetPdgCode());
+ tInfo->SetTrueMomentum(pxyz[0], pxyz[1], pxyz[2]);
+ tInfo->SetMass(kinetrack->GetMass());
+ tInfo->SetEmissionPoint(rxyz[0]-fV1[0], rxyz[1]-fV1[1], rxyz[2]-fV1[2], 0.0);
+ trackCopy->SetHiddenInfo(tInfo);
+
+ trackCopy->SetTrueMomentum(pxyz[0], pxyz[1], pxyz[2]);
+ trackCopy->SetEmissionPoint(rxyz[0]-fV1[0], rxyz[1]-fV1[1], rxyz[2]-fV1[2], 0.0);
- // rxyz[0]=kinetrack->Vx();
- // rxyz[1]=kinetrack->Vy();
- // rxyz[2]=kinetrack->Vz();
if (fRotateToEventPlane) {
double tPhi = TMath::ATan2(pxyz[1], pxyz[0]);
}
hbtEvent->SetNumberOfTracks(realnofTracks);//setting number of track which we read in event
- hbtEvent->SetNormalizedMult(tNormMult);
+ if (fEstEventMult == kGlobalCount)
+ hbtEvent->SetNormalizedMult(tNormMult);
+ else if(fEstEventMult == kVZERO)
+ hbtEvent->SetNormalizedMult(tV0direction);
fCurEvent++;
fRotateToEventPlane=dorotate;
}
+void AliFemtoEventReaderKinematicsChain::SetUseMultiplicity(EstEventMult aType)
+{
+ fEstEventMult = aType;
+}
+
Float_t AliFemtoEventReaderKinematicsChain::GetSigmaToVertex(double *impact, double *covar)
{
// Calculates the number of sigma to the vertex.