]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MFT/AliMuonForwardTrackPair.cxx
Support and analysis code modified
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrackPair.cxx
index 7487e3d8bb843ec9fd82807d2ffe39c7bf57ba1e..4bc7684d4b237ededf9de2761359cc534034c302 100644 (file)
@@ -50,7 +50,8 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair():
   // default constructor
 
   fMuonForwardTracks = new TClonesArray("AliMuonForwardTrack", 2);
-
+  fMuonForwardTracks -> SetOwner(kTRUE);
+  
 }
 
 //====================================================================================================================================================
@@ -67,7 +68,7 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(AliMuonForwardTrack *track0, Al
 {
 
   fMuonForwardTracks = new TClonesArray("AliMuonForwardTrack", 2);
-
+  fMuonForwardTracks->SetOwner(kTRUE);
   new ((*fMuonForwardTracks)[0]) AliMuonForwardTrack(*track0);
   new ((*fMuonForwardTracks)[1]) AliMuonForwardTrack(*track1);
 
@@ -80,7 +81,7 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(AliMuonForwardTrack *track0, Al
 
 AliMuonForwardTrackPair::AliMuonForwardTrackPair(const AliMuonForwardTrackPair& trackPair): 
   TObject(trackPair),
-  fMuonForwardTracks(trackPair.fMuonForwardTracks),
+  fMuonForwardTracks(NULL),
   fKinemMC(trackPair.fKinemMC),
   fKinem(trackPair.fKinem),
   fIsKinemSet(trackPair.fIsKinemSet),
@@ -90,7 +91,9 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(const AliMuonForwardTrackPair&
 {
 
   // copy constructor
-  
+  fMuonForwardTracks = new TClonesArray(*(trackPair.fMuonForwardTracks));
+  fMuonForwardTracks -> SetOwner(kTRUE);
+
 }
 
 //====================================================================================================================================================
@@ -106,9 +109,11 @@ AliMuonForwardTrackPair& AliMuonForwardTrackPair::operator=(const AliMuonForward
   AliMuonForwardTrackPair::operator=(trackPair);
   
   // clear memory
-  Clear();
+  Clear("");
+  
+  fMuonForwardTracks      = new TClonesArray(*(trackPair.fMuonForwardTracks));
+  fMuonForwardTracks->SetOwner(kTRUE);
   
-  fMuonForwardTracks = trackPair.fMuonForwardTracks;
   fKinemMC = trackPair.fKinemMC;
   fKinem = trackPair.fKinem;
   fIsKinemSet = trackPair.fIsKinemSet;
@@ -137,6 +142,29 @@ Double_t AliMuonForwardTrackPair::GetWeightedOffset(Double_t x, Double_t y, Doub
 
 //====================================================================================================================================================
 
+Double_t AliMuonForwardTrackPair::GetWeightedOffsetAtPCA() {
+
+  return GetWeightedOffset(fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach);
+
+}
+
+//====================================================================================================================================================
+
+Double_t AliMuonForwardTrackPair::GetPCAQuality() {
+
+  Double_t wOffset_1 = GetTrack(0)->GetWeightedOffset(fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach);
+  Double_t wOffset_2 = GetTrack(1)->GetWeightedOffset(fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach);
+  
+  Double_t f1 = TMath::Exp(-0.5 * wOffset_1);
+  Double_t f2 = TMath::Exp(-0.5 * wOffset_2);
+
+  if (f1+f2 > 0.) return (2.*f1*f2)/(f1+f2); 
+  else return 0.;
+  
+}
+
+//====================================================================================================================================================
+
 Double_t AliMuonForwardTrackPair::GetMassWithoutMFT(Double_t x, Double_t y, Double_t z, Int_t nClusters) {
 
   Int_t idCluster[2] = {0};
@@ -362,3 +390,4 @@ Bool_t AliMuonForwardTrackPair::IsResonance() {
 }
 
 //====================================================================================================================================================
+