]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ESD/AliESDMuonGlobalTrack.cxx
When creating the snapshot, get alignment objects.
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDMuonGlobalTrack.cxx
index a2ee2b8e0384e00539129d921b94ca6f10ff7882..a0d77c396a1199ac137d1980f1a61e1ebec1f188 100644 (file)
@@ -53,6 +53,7 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack():
   fXAtVertex(0),
   fYAtVertex(0),
   fRAtAbsorberEnd(0),
+  fCovariances(0),
   fChi2OverNdf(0),
   fChi2MatchTrigger(0),
   fLabel(-1),
@@ -94,6 +95,7 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(Double_t px, Double_t py, Double_t
   fXAtVertex(0),
   fYAtVertex(0),
   fRAtAbsorberEnd(0),
+  fCovariances(0),
   fChi2OverNdf(0),
   fChi2MatchTrigger(0),
   fLabel(-1),
@@ -137,6 +139,7 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(const AliESDMuonGlobalTrack& muonTr
   fXAtVertex(muonTrack.fXAtVertex),
   fYAtVertex(muonTrack.fYAtVertex),
   fRAtAbsorberEnd(muonTrack.fRAtAbsorberEnd),
+  fCovariances(0),
   fChi2OverNdf(muonTrack.fChi2OverNdf),
   fChi2MatchTrigger(muonTrack.fChi2MatchTrigger),
   fLabel(muonTrack.fLabel),
@@ -154,6 +157,8 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(const AliESDMuonGlobalTrack& muonTr
   fProdVertexXYZ[1]=muonTrack.fProdVertexXYZ[1];
   fProdVertexXYZ[2]=muonTrack.fProdVertexXYZ[2];
 
+  if (muonTrack.fCovariances) fCovariances = new TMatrixD(*(muonTrack.fCovariances));
+
 }
 
 //====================================================================================================================================================
@@ -199,6 +204,15 @@ AliESDMuonGlobalTrack& AliESDMuonGlobalTrack::operator=(const AliESDMuonGlobalTr
   fProdVertexXYZ[1]=muonTrack.fProdVertexXYZ[1];
   fProdVertexXYZ[2]=muonTrack.fProdVertexXYZ[2];
 
+  if (muonTrack.fCovariances) {
+    if (fCovariances) *fCovariances = *(muonTrack.fCovariances);
+    else fCovariances = new TMatrixD(*(muonTrack.fCovariances));
+  } 
+  else {
+    delete fCovariances;
+    fCovariances = 0x0;
+  }
+  
   return *this;
 
 }
@@ -238,3 +252,28 @@ void AliESDMuonGlobalTrack::SetPxPyPz(Double_t px, Double_t py, Double_t pz) {
 }
 
 //====================================================================================================================================================
+
+const TMatrixD& AliESDMuonGlobalTrack::GetCovariances() const {
+
+  // Return the covariance matrix (create it before if needed)
+
+  if (!fCovariances) {
+    fCovariances = new TMatrixD(5,5);
+    fCovariances->Zero();
+  }
+  return *fCovariances;
+
+}
+
+//====================================================================================================================================================
+
+void AliESDMuonGlobalTrack::SetCovariances(const TMatrixD& covariances) {
+
+  // Set the covariance matrix
+
+  if (fCovariances) *fCovariances = covariances;
+  else fCovariances = new TMatrixD(covariances);
+
+}
+
+//====================================================================================================================================================