]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updates for the V0 and deta/dphi analysis
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Oct 2012 12:11:58 +0000 (12:11 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Oct 2012 12:11:58 +0000 (12:11 +0000)
PWGCF/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderAOD.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChain.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChainKine.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChainKine.h
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoTrack.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoTrack.h
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoV0.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoV0.h

index 9b4c4fbd5783cd083fd59b88acd51a1c95a377f4..a9ad893a7241faa2bb8716d89f160294b84cb636 100644 (file)
@@ -425,7 +425,8 @@ void AliAnalysisTaskFemto::Exec(Option_t *) {
 
 
   Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral));
-  if(!isSelected) {cout << "AliAnalysisTaskFemto: is not selected" << endl; return;}
+  if(!isSelected) {//cout << "AliAnalysisTaskFemto: is not selected" << endl; 
+    return;}
 
 
 
index eb027017143ec76856f4d0b1dafb86f007308073..da81818dcd13974389e57ab6193937e7f8721f87 100644 (file)
@@ -29,7 +29,6 @@
 
 #include "AliAODpidUtil.h"
 
-
 ClassImp(AliFemtoEventReaderAOD)
 
 #if !(ST_NO_NAMESPACES)
@@ -603,6 +602,10 @@ void AliFemtoEventReaderAOD::CopyAODtoFemtoEvent(AliFemtoEvent *tEvent)
        }
 
        double pxyz[3];
+
+       //AliExternalTrackParam *param = new AliExternalTrackParam(*aodtrack->GetInnerParam());
+       trackCopy->SetInnerMomentum(aodtrack->GetTPCmomentum());
+
        aodtrack->PxPyPz(pxyz);//reading noconstarined momentum
        const AliFmThreeVectorD ktP(pxyz[0],pxyz[1],pxyz[2]);
        // Check the sanity of the tracks - reject zero momentum tracks
index a04c12d4c6de4ea64572aa1738052c80c556892f..41cae6bf4d4a12115ab4b22b82d0ae45f2e4948e 100644 (file)
@@ -584,7 +584,9 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
          if (fReadInner == true) {
          
            if (esdtrack->GetTPCInnerParam()) {
-             AliExternalTrackParam *param = new AliExternalTrackParam(*esdtrack->GetTPCInnerParam());
+             AliExternalTrackParam *param = new AliExternalTrackParam(*esdtrack->GetInnerParam());
+             //trackCopy->SetInnerMomentum(param->P());
+             trackCopy->SetInnerMomentum(esdtrack->GetTPCmomentum());
              param->GetXYZ(rxyz);
              //            param->PropagateToDCA(fEvent->GetPrimaryVertex(), (fEvent->GetMagneticField()), 10000);
              param->GetPxPyPz(pxyz);//reading noconstarined momentum
@@ -725,11 +727,11 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
   if (fEstEventMult == kGlobalCount) 
     hbtEvent->SetNormalizedMult(tNormMult);
   else if (fEstEventMult == kReferenceITSTPC)
-    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSTPC,0.8));
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSTPC,1.0));
   else if(fEstEventMult == kReferenceITSSA)
-    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSSA,0.8));
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSSA,1.0));
   else if(fEstEventMult == kReferenceTracklets)
-    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTracklets,0.8));
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTracklets,1.0));
   else if (fEstEventMult == kTracklet)
     hbtEvent->SetNormalizedMult(tTracklet);
   else if (fEstEventMult == kITSTPC)
@@ -936,12 +938,12 @@ void AliFemtoEventReaderESDChain::CopyESDtoFemtoV0(AliESDv0 *tESDv0, AliFemtoV0
       float globalPositionsAtRadiiPos[9][3];
       GetGlobalPositionAtGlobalRadiiThroughTPC(trackpos,bfield,globalPositionsAtRadiiPos);
       double tpcEntrancePos[3]={globalPositionsAtRadiiPos[0][0],globalPositionsAtRadiiPos[0][1],globalPositionsAtRadiiPos[0][2]};
-      double tpcExitPos[3]={globalPositionsAtRadiiPos[8][0],globalPositionsAtRadiiPos[8][1],globalPositionsAtRadiiPos[8][2]};
+      double tpcExitPos[3]={globalPositionsAtRadiiPos[7][0],globalPositionsAtRadiiPos[7][1],globalPositionsAtRadiiPos[7][2]};
 
       float globalPositionsAtRadiiNeg[9][3];
       GetGlobalPositionAtGlobalRadiiThroughTPC(trackneg,bfield,globalPositionsAtRadiiNeg);
       double tpcEntranceNeg[3]={globalPositionsAtRadiiNeg[0][0],globalPositionsAtRadiiNeg[0][1],globalPositionsAtRadiiNeg[0][2]};
-      double tpcExitNeg[3]={globalPositionsAtRadiiNeg[8][0],globalPositionsAtRadiiNeg[8][1],globalPositionsAtRadiiNeg[8][2]};
+      double tpcExitNeg[3]={globalPositionsAtRadiiNeg[7][0],globalPositionsAtRadiiNeg[7][1],globalPositionsAtRadiiNeg[7][2]};
 
       AliFemtoThreeVector tmpVec;
       tmpVec.SetX(tpcEntrancePos[0]); tmpVec.SetX(tpcEntrancePos[1]); tmpVec.SetX(tpcEntrancePos[2]);
index 48cda9dbab379662645076cd50bf9ed5db9f8e0e..6e0f26a46d25f4c72daa91a72aaee8c0408b4a10 100644 (file)
@@ -541,6 +541,7 @@ AliFemtoEvent* AliFemtoEventReaderESDChainKine::ReturnHbtEvent()
          
            if (esdtrack->GetTPCInnerParam()) {
              AliExternalTrackParam *param = new AliExternalTrackParam(*esdtrack->GetTPCInnerParam());
+             trackCopy->SetInnerMomentum(esdtrack->GetTPCmomentum());
              param->GetXYZ(rxyz);
              //            param->PropagateToDCA(fEvent->GetPrimaryVertex(), (fEvent->GetMagneticField()), 10000);
              param->GetPxPyPz(pxyz);//reading noconstarined momentum
@@ -681,6 +682,25 @@ AliFemtoEvent* AliFemtoEventReaderESDChainKine::ReturnHbtEvent()
        fpz *= 1e13;
        fpt *= 1e13;
        
+       // fillDCA
+
+       if (TMath::Abs(impact[0]) > 0.001) {
+         if (fStack->IsPhysicalPrimary(TMath::Abs(esdtrack->GetLabel()))){
+           trackCopy->SetImpactDprim(impact[0]);
+           //cout << "prim" << endl;
+
+         }
+         else if (fStack->IsSecondaryFromWeakDecay(TMath::Abs(esdtrack->GetLabel()))) {
+           trackCopy->SetImpactDweak(impact[0]);
+           //cout << "wea" << endl;
+         }
+         else if (fStack->IsSecondaryFromMaterial(TMath::Abs(esdtrack->GetLabel()))) {
+           trackCopy->SetImpactDmat(impact[0]);
+           //cout << "mat" << endl;
+         }
+       }
+       //  end fillDCA 
+
        //      cout << "Looking for mother ids " << endl;
        if (motherids[TMath::Abs(esdtrack->GetLabel())]>0) {
          //    cout << "Got mother id" << endl;
@@ -787,6 +807,12 @@ AliFemtoEvent* AliFemtoEventReaderESDChainKine::ReturnHbtEvent()
 
   if (fEstEventMult == kGlobalCount) 
     hbtEvent->SetNormalizedMult(tNormMult);
+  else if (fEstEventMult == kReferenceITSTPC)
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSTPC,1.2));
+  else if(fEstEventMult == kReferenceITSSA)
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTrackletsITSSA,1.2));
+  else if(fEstEventMult == kReferenceTracklets)
+    hbtEvent->SetNormalizedMult(AliESDtrackCuts::GetReferenceMultiplicity(fEvent,AliESDtrackCuts::kTracklets,1.2));
   else if (fEstEventMult == kTracklet)
     hbtEvent->SetNormalizedMult(tTracklet);
   else if (fEstEventMult == kITSTPC)
@@ -1096,53 +1122,101 @@ void AliFemtoEventReaderESDChainKine::CopyESDtoFemtoV0(AliESDv0 *tESDv0, AliFemt
          }
        }
 
-      cout<<"tESDv0->GetPdgCode(): "<<tESDv0->GetPdgCode()<<endl;
+      if ((TMath::Abs(trackpos->GetLabel()) < fStack->GetNtrack()) && (TMath::Abs(trackneg->GetLabel()) < fStack->GetNtrack())) {
+  
+       //cout<<"tESDv0->GetPdgCode(): "<<tESDv0->GetPdgCode()<<endl;
+       // cout<<"Labels: "<<trackpos->GetLabel()<<" "<<trackneg->GetLabel()<<endl;
+         AliFemtoModelHiddenInfo *tInfo = new AliFemtoModelHiddenInfo();
+         //TParticle *tPart = fStack->Particle(tESDv0->GetLabel()); //zle
+
+         int labelpos = TMath::Abs(trackpos->GetLabel());
+         int labelneg = TMath::Abs(trackneg->GetLabel());
+         TParticle *tPartPos = fStack->Particle(labelpos);
+         TParticle *tPartNeg = fStack->Particle(labelneg);
+
+
+         double impactpos[2];
+         double impactneg[2];
+         double covimpact[3];
       
-      AliFemtoModelHiddenInfo *tInfo = new AliFemtoModelHiddenInfo();
-      //TParticle *tPart = fStack->Particle(tESDv0->GetLabel()); //zle
-      TParticle *tPartPos = fStack->Particle(trackpos->GetLabel());
-      TParticle *tPartNeg = fStack->Particle(trackneg->GetLabel());
-
-      //tInfo->SetPDGPid();
-      //tInfo->SetMass();
-      //tInfo->SetTrueMomentum();
-      //tInfo->SetEmissionPoint();
-
-      // Freeze-out coordinates
-      double fpx=0.0, fpy=0.0, fpz=0.0, fpt=0.0;
-
-      fpx = tPartPos->Vx() - fPrimaryVtxPosition[0];
-      fpy = tPartPos->Vy() - fPrimaryVtxPosition[1];
-      fpz = tPartPos->Vz() - fPrimaryVtxPosition[2];
-      fpt = tPartPos->T();
+         AliExternalTrackParam *parampos = new AliExternalTrackParam(*trackpos->GetTPCInnerParam());
+         parampos->PropagateToDCA(fEvent->GetPrimaryVertexTPC(), (fEvent->GetMagneticField()), 10000, impactpos, covimpact);
+         AliExternalTrackParam *paramneg = new AliExternalTrackParam(*trackneg->GetTPCInnerParam());
+         paramneg->PropagateToDCA(fEvent->GetPrimaryVertexTPC(), (fEvent->GetMagneticField()), 10000, impactneg, covimpact);
+
+
+         // fillDCA
+         if (TMath::Abs(impactpos[0]) > 0.001) {
+           if (fStack->IsPhysicalPrimary(labelpos)){
+             tFemtoV0->SetImpactDprimPos(impactpos[0]);
+           }
+           else if (fStack->IsSecondaryFromWeakDecay(labelpos)) {
+             tFemtoV0->SetImpactDweakPos(impactpos[0]);
+             //cout << "wea" << endl;
+           }
+           else if (fStack->IsSecondaryFromMaterial(labelpos)) {
+             tFemtoV0->SetImpactDmatPos(impactpos[0]);
+             //cout << "mat" << endl;
+           }
+         }
+         if (TMath::Abs(impactneg[0]) > 0.001) {
+           if (fStack->IsPhysicalPrimary(labelneg)){
+             tFemtoV0->SetImpactDprimNeg(impactneg[0]);
+             //cout << "prim" << endl;
+           }
+           else if (fStack->IsSecondaryFromWeakDecay(labelneg)) {
+             tFemtoV0->SetImpactDweakNeg(impactneg[0]);
+             //cout << "wea" << endl;
+           }
+           else if (fStack->IsSecondaryFromMaterial(labelneg)) {
+             tFemtoV0->SetImpactDmatNeg(impactneg[0]);
+             //cout << "mat" << endl;
+           }
+
+         }
+         //  end fillDCA 
+      
+
+         //tInfo->SetPDGPid();
+         //tInfo->SetMass();
+         //tInfo->SetTrueMomentum();
+         //tInfo->SetEmissionPoint();
+
+         // Freeze-out coordinates
+         double fpx=0.0, fpy=0.0, fpz=0.0, fpt=0.0;
+
+         fpx = tPartPos->Vx() - fPrimaryVtxPosition[0];
+         fpy = tPartPos->Vy() - fPrimaryVtxPosition[1];
+         fpz = tPartPos->Vz() - fPrimaryVtxPosition[2];
+         fpt = tPartPos->T();
        
-      fpx *= 1e13;
-      fpy *= 1e13;
-      fpz *= 1e13;
-      fpt *= 1e13;
-
-      tInfo->SetPDGPidPos(tPartPos->GetPdgCode());
-      tInfo->SetMassPos(tPartPos->GetMass());
-      tInfo->SetTrueMomentumPos(tPartPos->Px(),tPartPos->Py(),tPartPos->Pz());
-      tInfo->SetEmissionPointPos(fpx,fpy,fpz,fpt);
-
-      fpx = tPartNeg->Vx() - fPrimaryVtxPosition[0];
-      fpy = tPartNeg->Vy() - fPrimaryVtxPosition[1];
-      fpz = tPartNeg->Vz() - fPrimaryVtxPosition[2];
-      fpt = tPartNeg->T();
+         fpx *= 1e13;
+         fpy *= 1e13;
+         fpz *= 1e13;
+         fpt *= 1e13;
+
+         tInfo->SetPDGPidPos(tPartPos->GetPdgCode());
+         tInfo->SetMassPos(tPartPos->GetMass());
+         tInfo->SetTrueMomentumPos(tPartPos->Px(),tPartPos->Py(),tPartPos->Pz());
+         tInfo->SetEmissionPointPos(fpx,fpy,fpz,fpt);
+
+         fpx = tPartNeg->Vx() - fPrimaryVtxPosition[0];
+         fpy = tPartNeg->Vy() - fPrimaryVtxPosition[1];
+         fpz = tPartNeg->Vz() - fPrimaryVtxPosition[2];
+         fpt = tPartNeg->T();
        
-      fpx *= 1e13;
-      fpy *= 1e13;
-      fpz *= 1e13;
-      fpt *= 1e13;
+         fpx *= 1e13;
+         fpy *= 1e13;
+         fpz *= 1e13;
+         fpt *= 1e13;
 
-      tInfo->SetPDGPidNeg(tPartNeg->GetPdgCode());
-      tInfo->SetMassNeg(tPartNeg->GetMass());
-      tInfo->SetTrueMomentumNeg(tPartNeg->Px(),tPartNeg->Py(),tPartNeg->Pz());
-      tInfo->SetEmissionPointNeg(fpx,fpy,fpz,fpt);
-
-      tFemtoV0->SetHiddenInfo(tInfo);
+         tInfo->SetPDGPidNeg(tPartNeg->GetPdgCode());
+         tInfo->SetMassNeg(tPartNeg->GetMass());
+         tInfo->SetTrueMomentumNeg(tPartNeg->Px(),tPartNeg->Py(),tPartNeg->Pz());
+         tInfo->SetEmissionPointNeg(fpx,fpy,fpz,fpt);
 
+         tFemtoV0->SetHiddenInfo(tInfo);
+      }
     }
   else
     {
@@ -1229,3 +1303,4 @@ void AliFemtoEventReaderESDChainKine::GetGlobalPositionAtGlobalRadiiThroughTPC(A
     }
   }
 }
+
index 4890cf71b5474263593fff427bfad9f5d0a3e7c0..c59163bda10ba061fe104599923478e5f9ee52be 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "AliESDv0.h"
 #include "AliFemtoV0.h"
+#include "AliESDtrackCuts.h"
 
 #include "AliESDpid.h"
 
@@ -34,7 +35,7 @@ class AliFemtoEventReaderESDChainKine : public AliFemtoEventReader
   enum TrackType {kGlobal=0, kTPCOnly=1, kITSOnly=2, kSPDTracklet=3};
   typedef enum TrackType ReadTrackType;
 
-  enum EventMult {kTracklet=0, kITSTPC=1, kITSPure=2, kGlobalCount=3, kSPDLayer1=4, kV0Centrality=5 };
+  enum EventMult {kTracklet=0, kITSTPC=1, kITSPure=2, kGlobalCount=3, kSPDLayer1=4, kV0Centrality=5, kReferenceITSTPC=6, kReferenceITSSA=7, kReferenceTracklets=8  };
   typedef enum EventMult EstEventMult;
 
   AliFemtoEventReaderESDChainKine();
@@ -103,3 +104,4 @@ class AliFemtoEventReaderESDChainKine : public AliFemtoEventReader
 #endif
 
 
+
index 7f2e703991e1a2b65b30d65d0348ea0e1bb1d883..77045c3ffd5b00f57d19e2633b2d8deb95bd722f 100644 (file)
@@ -35,10 +35,14 @@ AliFemtoTrack::AliFemtoTrack():
   fTofProtonTime(-100000.0),
   fP(0,0,0),
   fPt(0),
+  fInnerMomentum(0),
   fHelix(),
   fFlags(0),
   fLabel(0),
   fImpactD(0),
+  fImpactDprim(-10000.0),
+  fImpactDweak(-10000.0),
+  fImpactDmat(-10000.0),
   fImpactZ(0),
   fCdd(0),
   fCdz(0),
@@ -97,10 +101,14 @@ AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t) :
   fTofProtonTime(-100000.0),
   fP(0,0,0),
   fPt(0),
+  fInnerMomentum(0),
   fHelix(),
   fFlags(0),
   fLabel(0),
   fImpactD(0),
+  fImpactDprim(-10000.0),
+  fImpactDweak(-10000.0),
+  fImpactDmat(-10000.0),
   fImpactZ(0),
   fCdd(0),
   fCdz(0),
@@ -142,11 +150,15 @@ AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t) :
   fTofProtonTime=t.fTofProtonTime;
   fP = t.fP;
   fPt = t.fPt;
+  fInnerMomentum = t.fInnerMomentum;
   fHelix = t.fHelix;
   fTrackId = t.fTrackId;
   fFlags=t.fFlags;
   fLabel=t.fLabel;
   fImpactD=t.fImpactD;
+  fImpactDprim=t.fImpactDprim;
+  fImpactDweak=t.fImpactDweak;
+  fImpactDmat=t.fImpactDmat;
   fImpactZ=t.fImpactZ;
   fCdd=t.fCdd;
   fCdz=t.fCdz;
@@ -205,11 +217,15 @@ AliFemtoTrack& AliFemtoTrack::operator=(const AliFemtoTrack& aTrack)
   fTofProtonTime=aTrack.fTofProtonTime;
   fP = aTrack.fP;
   fPt = aTrack.fPt;
+  fInnerMomentum = aTrack.fInnerMomentum;
   fHelix = aTrack.fHelix;
   fTrackId = aTrack.fTrackId;
   fFlags=aTrack.fFlags;
   fLabel=aTrack.fLabel;
   fImpactD=aTrack.fImpactD;
+  fImpactDprim=aTrack.fImpactDprim;
+  fImpactDweak=aTrack.fImpactDweak;
+  fImpactDmat=aTrack.fImpactDmat;
   fImpactZ=aTrack.fImpactZ;
   fCdd=aTrack.fCdd;
   fCdz=aTrack.fCdz;
@@ -265,11 +281,17 @@ void AliFemtoTrack::SetTofExpectedTimes(const float& tpi, const float& tkn, cons
  
 void AliFemtoTrack::SetP(const AliFemtoThreeVector& p){fP = p;}
 void AliFemtoTrack::SetPt(const float& pt){fPt = pt;} 
+void AliFemtoTrack::SetInnerMomentum(const float& x){fInnerMomentum = x;} 
 void AliFemtoTrack::SetHelix(const AliFmPhysicalHelixD& h){fHelix = h;}
 void AliFemtoTrack::SetTrackId(const int & id) { fTrackId=id;}
 void AliFemtoTrack::SetFlags(const long int &flags) {fFlags=flags;}
 void AliFemtoTrack::SetLabel(const int &label) {fLabel=label;}
 void AliFemtoTrack::SetImpactD(const float& aImpactD){fImpactD=aImpactD;}
+
+void AliFemtoTrack::SetImpactDprim(const float& aImpactDprim){fImpactDprim=aImpactDprim;}
+void AliFemtoTrack::SetImpactDweak(const float& aImpactDweak){fImpactDweak=aImpactDweak;}
+void AliFemtoTrack::SetImpactDmat(const float& aImpactDmat){fImpactDmat=aImpactDmat;}
+
 void AliFemtoTrack::SetImpactZ(const float& aImpactZ){fImpactZ=aImpactZ;}
 void AliFemtoTrack::SetCdd(const float& aCdd){fCdd=aCdd;}
 void AliFemtoTrack::SetCdz(const float& aCdz){fCdz=aCdz;}
@@ -298,12 +320,18 @@ void AliFemtoTrack::SetZatDCA(const double& x) {fZatDCA=x;}
 
 short AliFemtoTrack::Charge() const {return fCharge;}  
 AliFemtoThreeVector AliFemtoTrack::P() const {return fP;}
-float AliFemtoTrack::Pt() const {return fPt;}              
+float AliFemtoTrack::Pt() const {return fPt;}            
+float AliFemtoTrack::InnerMomentum() const {return fInnerMomentum;}   
 const AliFmPhysicalHelixD& AliFemtoTrack::Helix() const {return fHelix;}
 int AliFemtoTrack::TrackId() const { return fTrackId; }
 long int AliFemtoTrack::Flags() const {return fFlags;}
 int AliFemtoTrack::Label()const {return fLabel;}
 float AliFemtoTrack::ImpactD()const{return fImpactD;}
+
+float AliFemtoTrack::ImpactDprim()const{return fImpactDprim;}
+float AliFemtoTrack::ImpactDweak()const{return fImpactDweak;}
+float AliFemtoTrack::ImpactDmat()const{return fImpactDmat;}
+
 float AliFemtoTrack::ImpactZ()const{return fImpactZ;}
 float AliFemtoTrack::Cdd() const{return fCdd;}
 float AliFemtoTrack::Cdz() const{return fCdz;}
index 73a9bebddd33108aa04dcb56ab343e070ed0528f..34fa52d1c2949e25dc99a1866b3afcb61b0fef68 100644 (file)
@@ -50,11 +50,18 @@ public:
   
   AliFemtoThreeVector P() const;
   float Pt() const;
+  float InnerMomentum() const;
+
   const AliFmPhysicalHelixD& Helix() const;
   int TrackId() const;
   long int Flags() const;
   int Label()const;
   float ImpactD()const;
+
+  float ImpactDprim()const;
+  float ImpactDweak()const;
+  float ImpactDmat()const;
+
   float ImpactZ()const;
   float Cdd() const;
   float Cdz() const;
@@ -100,11 +107,17 @@ public:
    
   void SetP(const AliFemtoThreeVector& p);
   void SetPt(const float& x);
+  void SetInnerMomentum(const float& x);
   void SetHelix(const AliFmPhysicalHelixD& h);
   void SetTrackId(const int& s);
   void SetFlags(const long int& i);
   void SetLabel(const int& i);
   void SetImpactD(const float& x);
+
+  void SetImpactDprim(const float& x);
+  void SetImpactDweak(const float& x);
+  void SetImpactDmat(const float& x);
+
   void SetImpactZ(const float& x);
   void SetCdd(const float& x);
   void SetCdz(const float& x);
@@ -189,11 +202,18 @@ public:
 
   AliFemtoThreeVector fP; // track momentum
   float fPt;              // transverse momenta
+  float fInnerMomentum;    // *total* momentum at the *inner* wall of the TPC
+
   AliFmPhysicalHelixD fHelix; // track helix
   //alice stuff
   long int fFlags; //Reconsruction status flags
   int fLabel; //Track label  
   float fImpactD; //impact parameter in xy plane
+
+  float fImpactDprim; //impact parameter in xy plane
+  float fImpactDweak; //impact parameter in xy plane
+  float fImpactDmat; //impact parameter in xy plane
+
   float fImpactZ;//impacct parameter in z
   float fCdd,fCdz,fCzz;//covariance matrix of the impact parameters
   // ITS related track information
@@ -222,8 +242,6 @@ public:
   AliFemtoThreeVector fNominalTpcPoints[9];
   AliFemtoThreeVector fNominalTpcExitPoint;     // Nominal track exit point from TPC
 
-
-
   int   fKinkIndexes[3]; // Kink Index list
 
   double fXatDCA;
index bea77d2350ad1ca54d9fa5fd0fdf1618f505fc2b..8155603309a84e03057058b466b440edd4ff7f5e 100644 (file)
@@ -41,7 +41,8 @@ AliFemtoV0::AliFemtoV0():
   fNominalTpcEntrancePointNeg(0,0,0),fNominalTpcExitPointNeg(0,0,0),
   fTPCMomentumPos(0), fTPCMomentumNeg(0),
   fTOFProtonTimePos(0), fTOFPionTimePos(0), fTOFKaonTimePos(0),
-  fTOFProtonTimeNeg(0), fTOFPionTimeNeg(0), fTOFKaonTimeNeg(0),
+  fTOFProtonTimeNeg(0), fTOFPionTimeNeg(0), fTOFKaonTimeNeg(0), 
+  fImpactDprimPos(-999), fImpactDweakPos(-999), fImpactDmatPos(-999), fImpactDprimNeg(-999), fImpactDweakNeg(-999), fImpactDmatNeg(-999),
   fHiddenInfo(0)  /***/
 { 
   // Default empty constructor
@@ -92,7 +93,8 @@ AliFemtoV0::AliFemtoV0(const AliFemtoV0& v) :
   fNominalTpcEntrancePointNeg(0,0,0),fNominalTpcExitPointNeg(0,0,0),
   fTPCMomentumPos(0), fTPCMomentumNeg(0),
   fTOFProtonTimePos(0), fTOFPionTimePos(0), fTOFKaonTimePos(0),
-  fTOFProtonTimeNeg(0), fTOFPionTimeNeg(0), fTOFKaonTimeNeg(0),
+  fTOFProtonTimeNeg(0), fTOFPionTimeNeg(0), fTOFKaonTimeNeg(0), 
+  fImpactDprimPos(0), fImpactDweakPos(0), fImpactDmatPos(0), fImpactDprimNeg(0), fImpactDweakNeg(0), fImpactDmatNeg(0),
   fHiddenInfo(0)  /***/
 { 
   // copy constructor
@@ -189,6 +191,13 @@ AliFemtoV0::AliFemtoV0(const AliFemtoV0& v) :
       fNominalTpcPointsNeg[i].SetZ(v.fNominalTpcPointsNeg[i].z());
     }
 
+  fImpactDprimPos = v.fImpactDprimPos;
+  fImpactDweakPos = v.fImpactDweakPos;
+  fImpactDmatPos = v.fImpactDmatPos;
+  fImpactDprimNeg = v.fImpactDprimNeg;
+  fImpactDweakNeg = v.fImpactDweakNeg;
+  fImpactDmatNeg = v.fImpactDmatNeg;
+
   fHiddenInfo = v.fHiddenInfo? v.fHiddenInfo->Clone() : 0;// GR 11 DEC 02
   UpdateV0();
 }
@@ -291,6 +300,12 @@ AliFemtoV0& AliFemtoV0::operator=(const AliFemtoV0& aV0)
       fNominalTpcPointsNeg[i].SetZ(aV0.fNominalTpcPointsNeg[i].z());
     }
 
+  fImpactDprimPos = aV0.fImpactDprimPos;
+  fImpactDweakPos = aV0.fImpactDweakPos;
+  fImpactDmatPos = aV0.fImpactDmatPos;
+  fImpactDprimNeg = aV0.fImpactDprimNeg;
+  fImpactDweakNeg = aV0.fImpactDweakNeg;
+  fImpactDmatNeg = aV0.fImpactDmatNeg;
 
   if (fHiddenInfo) delete fHiddenInfo;
   fHiddenInfo = aV0.fHiddenInfo? aV0.fHiddenInfo->Clone() : 0;// GR 11 DEC 02
index 5c890305eab5bf4d87ae46aa0f7c3668689533a0..bcefc44638efdeaaec751e7eac1bc070cc022320 100644 (file)
@@ -64,7 +64,7 @@ public:
   int NdofNeg() const;
   unsigned long StatusPos() const;
   unsigned long StatusNeg() const;
-  
+
   
   int   TpcHitsPos() const;          // Number of TPC hits on pos. daughter                             
   int   TpcHitsNeg() const;          // Number of TPC hits on neg. daughter                             
@@ -279,6 +279,18 @@ public:
   double TOFPionTimeNeg() const;
   double TOFKaonTimeNeg() const;
 
+  void SetImpactDprimPos(const float& x);
+  void SetImpactDweakPos(const float& x);
+  void SetImpactDmatPos(const float& x);
+  float ImpactDprimPos()const;
+  float ImpactDweakPos()const;
+  float ImpactDmatPos()const;
+  void SetImpactDprimNeg(const float& x);
+  void SetImpactDweakNeg(const float& x);
+  void SetImpactDmatNeg(const float& x);
+  float ImpactDprimNeg()const;
+  float ImpactDweakNeg()const;
+  float ImpactDmatNeg()const;
 
   void SetprimaryVertex(const AliFemtoThreeVector v);//Gael 24 Sept 02
   /* Th stuff */
@@ -401,6 +413,14 @@ protected:
   double fTOFPionTimeNeg;
   double fTOFKaonTimeNeg;
 
+
+  float fImpactDprimPos; //impact parameter in xy plane
+  float fImpactDweakPos; //impact parameter in xy plane
+  float fImpactDmatPos; //impact parameter in xy plane
+  float fImpactDprimNeg; //impact parameter in xy plane
+  float fImpactDweakNeg; //impact parameter in xy plane
+  float fImpactDmatNeg; //impact parameter in xy plane
+
   /* Th stuff */                           
   // Fab private : add mutable             
   mutable AliFemtoHiddenInfo* fHiddenInfo; //! Hidden info
@@ -624,6 +644,20 @@ inline double AliFemtoV0::TOFProtonTimeNeg() const {return fTOFProtonTimeNeg;}
 inline double AliFemtoV0::TOFPionTimeNeg() const {return fTOFPionTimeNeg;}
 inline double AliFemtoV0::TOFKaonTimeNeg() const {return fTOFKaonTimeNeg;}
 
+inline void AliFemtoV0::SetImpactDprimPos(const float& x) {fImpactDprimPos = x;}
+inline void AliFemtoV0::SetImpactDweakPos(const float& x) {fImpactDweakPos = x;}
+inline void AliFemtoV0::SetImpactDmatPos(const float& x) {fImpactDmatPos = x;}
+inline float AliFemtoV0::ImpactDprimPos() const {return fImpactDprimPos;}
+inline float AliFemtoV0::ImpactDweakPos() const {return fImpactDweakPos;}
+inline float AliFemtoV0::ImpactDmatPos() const {return fImpactDmatPos;}
+
+inline void AliFemtoV0::SetImpactDprimNeg(const float& x) {fImpactDprimNeg = x;}
+inline void AliFemtoV0::SetImpactDweakNeg(const float& x) {fImpactDweakNeg = x;}
+inline void AliFemtoV0::SetImpactDmatNeg(const float& x) {fImpactDmatNeg = x;}
+inline float AliFemtoV0::ImpactDprimNeg() const {return fImpactDprimNeg;}
+inline float AliFemtoV0::ImpactDweakNeg() const {return fImpactDweakNeg;}
+inline float AliFemtoV0::ImpactDmatNeg() const {return fImpactDmatNeg;}
+
 #endif