]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderKinematicsChain.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoEventReaderKinematicsChain.cxx
index 9bc3bc6920838c4241d743338da38e27b7c03423..8b65f55776ec8b43d88a35057e5181293a585af9 100644 (file)
@@ -47,6 +47,7 @@ AliFemtoEventReaderKinematicsChain::AliFemtoEventReaderKinematicsChain():
   fCurFile(0),
   fStack(0x0),
   fGenHeader(0x0),
+  fEstEventMult(kGlobalCount),
   fRotateToEventPlane(0)
 {
   //constructor with 0 parameters , look at default settings 
@@ -62,6 +63,7 @@ AliFemtoEventReaderKinematicsChain::AliFemtoEventReaderKinematicsChain(const Ali
   fCurFile(0),
   fStack(0x0),
   fGenHeader(0x0),
+  fEstEventMult(kGlobalCount),
   fRotateToEventPlane(0)
 {
   // Copy constructor
@@ -70,6 +72,7 @@ AliFemtoEventReaderKinematicsChain::AliFemtoEventReaderKinematicsChain(const Ali
   fCurEvent = aReader.fCurEvent;
   fCurFile = aReader.fCurFile;
   fStack = aReader.fStack;
+  fEstEventMult = aReader.fEstEventMult;
   fRotateToEventPlane = aReader.fRotateToEventPlane;
 }
 //__________________
@@ -92,6 +95,7 @@ AliFemtoEventReaderKinematicsChain& AliFemtoEventReaderKinematicsChain::operator
   fCurFile = aReader.fCurFile;
   fStack = aReader.fStack;
   fGenHeader = aReader.fGenHeader;
+  fEstEventMult = aReader.fEstEventMult;
   fRotateToEventPlane = aReader.fRotateToEventPlane;
   return *this;
 }
@@ -180,6 +184,7 @@ AliFemtoEvent* AliFemtoEventReaderKinematicsChain::ReturnHbtEvent()
 
 
   int tNormMult = 0;
+  int tV0direction = 0;
   for (int i=0;i<nofTracks;i++)
     {
       //take only primaries
@@ -190,6 +195,9 @@ AliFemtoEvent* AliFemtoEventReaderKinematicsChain::ReturnHbtEvent()
          //getting next track
       TParticle *kinetrack= fStack->Particle(i);
 
+
+
+
       //setting multiplicity
         realnofTracks++;//real number of tracks (only primary particles)
 
@@ -200,7 +208,12 @@ AliFemtoEvent* AliFemtoEventReaderKinematicsChain::ReturnHbtEvent()
            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));
 
@@ -239,15 +252,26 @@ AliFemtoEvent* AliFemtoEventReaderKinematicsChain::ReturnHbtEvent()
                                        
        //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]);
@@ -279,7 +303,10 @@ AliFemtoEvent* AliFemtoEventReaderKinematicsChain::ReturnHbtEvent()
     }
   
   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++; 
 
 
@@ -342,6 +369,11 @@ void AliFemtoEventReaderKinematicsChain::SetRotateToEventPlane(short dorotate)
   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.