]> 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 0ec2f21e8c131f91a4570e045930aeb2940f2f67..a0d77c396a1199ac137d1980f1a61e1ebec1f188 100644 (file)
@@ -37,6 +37,9 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack():
   AliVParticle(),
   fCharge(0),
   fMatchTrigger(0),
+  fNMFTClusters(0),
+  fNWrongMFTClustersMC(-1),
+  fMFTClusterPattern(0),
   fPx(0), 
   fPy(0), 
   fPz(0), 
@@ -44,14 +47,30 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack():
   fP(0), 
   fEta(0), 
   fRapidity(0),
-  fChi2(0),
+  fFirstTrackingPointX(0),
+  fFirstTrackingPointY(0),
+  fFirstTrackingPointZ(0),
+  fXAtVertex(0),
+  fYAtVertex(0),
+  fRAtAbsorberEnd(0),
+  fCovariances(0),
+  fChi2OverNdf(0),
   fChi2MatchTrigger(0),
   fLabel(-1),
+  fMuonClusterMap(0),
+  fHitsPatternInTrigCh(0),
+  fHitsPatternInTrigChTrk(0),
+  fLoCircuit(0),
+  fIsConnected(kFALSE),
   fESDEvent(0)
 {
 
   //  Default constructor
 
+  fProdVertexXYZ[0]=0;
+  fProdVertexXYZ[1]=0;
+  fProdVertexXYZ[2]=0;
+
 }
 
 //====================================================================================================================================================
@@ -60,6 +79,9 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(Double_t px, Double_t py, Double_t
   AliVParticle(),
   fCharge(0),
   fMatchTrigger(0),
+  fNMFTClusters(0),
+  fNWrongMFTClustersMC(-1),
+  fMFTClusterPattern(0),
   fPx(0), 
   fPy(0), 
   fPz(0), 
@@ -67,9 +89,21 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(Double_t px, Double_t py, Double_t
   fP(0), 
   fEta(0), 
   fRapidity(0),
-  fChi2(0),
+  fFirstTrackingPointX(0),
+  fFirstTrackingPointY(0),
+  fFirstTrackingPointZ(0),
+  fXAtVertex(0),
+  fYAtVertex(0),
+  fRAtAbsorberEnd(0),
+  fCovariances(0),
+  fChi2OverNdf(0),
   fChi2MatchTrigger(0),
   fLabel(-1),
+  fMuonClusterMap(0),
+  fHitsPatternInTrigCh(0),
+  fHitsPatternInTrigChTrk(0),
+  fLoCircuit(0),
+  fIsConnected(kFALSE),
   fESDEvent(0)
 {
 
@@ -77,6 +111,10 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(Double_t px, Double_t py, Double_t
 
   SetPxPyPz(px, py, pz);
 
+  fProdVertexXYZ[0]=0;
+  fProdVertexXYZ[1]=0;
+  fProdVertexXYZ[2]=0;
+
 }
 
 //====================================================================================================================================================
@@ -85,6 +123,9 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(const AliESDMuonGlobalTrack& muonTr
   AliVParticle(muonTrack),
   fCharge(muonTrack.fCharge),
   fMatchTrigger(muonTrack.fMatchTrigger),
+  fNMFTClusters(muonTrack.fNMFTClusters),
+  fNWrongMFTClustersMC(muonTrack.fNWrongMFTClustersMC),
+  fMFTClusterPattern(muonTrack.fMFTClusterPattern),
   fPx(muonTrack.fPx), 
   fPy(muonTrack.fPy), 
   fPz(muonTrack.fPz), 
@@ -92,14 +133,32 @@ AliESDMuonGlobalTrack::AliESDMuonGlobalTrack(const AliESDMuonGlobalTrack& muonTr
   fP(muonTrack.fP), 
   fEta(muonTrack.fEta), 
   fRapidity(muonTrack.fRapidity),
-  fChi2(muonTrack.fChi2),
+  fFirstTrackingPointX(muonTrack.fFirstTrackingPointX),
+  fFirstTrackingPointY(muonTrack.fFirstTrackingPointY),
+  fFirstTrackingPointZ(muonTrack.fFirstTrackingPointZ),
+  fXAtVertex(muonTrack.fXAtVertex),
+  fYAtVertex(muonTrack.fYAtVertex),
+  fRAtAbsorberEnd(muonTrack.fRAtAbsorberEnd),
+  fCovariances(0),
+  fChi2OverNdf(muonTrack.fChi2OverNdf),
   fChi2MatchTrigger(muonTrack.fChi2MatchTrigger),
   fLabel(muonTrack.fLabel),
+  fMuonClusterMap(muonTrack.fMuonClusterMap),
+  fHitsPatternInTrigCh(muonTrack.fHitsPatternInTrigCh),
+  fHitsPatternInTrigChTrk(muonTrack.fHitsPatternInTrigChTrk),
+  fLoCircuit(muonTrack.fLoCircuit),
+  fIsConnected(muonTrack.fIsConnected),
   fESDEvent(muonTrack.fESDEvent)
 {
 
   // Copy constructor
   
+  fProdVertexXYZ[0]=muonTrack.fProdVertexXYZ[0];
+  fProdVertexXYZ[1]=muonTrack.fProdVertexXYZ[1];
+  fProdVertexXYZ[2]=muonTrack.fProdVertexXYZ[2];
+
+  if (muonTrack.fCovariances) fCovariances = new TMatrixD(*(muonTrack.fCovariances));
+
 }
 
 //====================================================================================================================================================
@@ -113,20 +172,47 @@ AliESDMuonGlobalTrack& AliESDMuonGlobalTrack::operator=(const AliESDMuonGlobalTr
   // Base class assignement
   AliVParticle::operator=(muonTrack);
 
-  fCharge           = muonTrack.fCharge;
-  fMatchTrigger     = muonTrack.fMatchTrigger;
-  fPx               = muonTrack.fPx; 
-  fPy               = muonTrack.fPy; 
-  fPz               = muonTrack.fPz; 
-  fPt               = muonTrack.fPt; 
-  fP                = muonTrack.fP;
-  fEta              = muonTrack.fEta;
-  fRapidity         = muonTrack.fRapidity;
-  fChi2             = muonTrack.fChi2;
-  fChi2MatchTrigger = muonTrack.fChi2MatchTrigger;
-  fLabel            = muonTrack.fLabel;
-  fESDEvent         = muonTrack.fESDEvent;
-
+  fCharge                 = muonTrack.fCharge;
+  fMatchTrigger           = muonTrack.fMatchTrigger;
+  fNMFTClusters           = muonTrack.fNMFTClusters;
+  fNWrongMFTClustersMC    = muonTrack.fNWrongMFTClustersMC;
+  fMFTClusterPattern      = muonTrack.fMFTClusterPattern;
+  fPx                     = muonTrack.fPx; 
+  fPy                     = muonTrack.fPy; 
+  fPz                     = muonTrack.fPz; 
+  fPt                     = muonTrack.fPt; 
+  fP                      = muonTrack.fP;
+  fEta                    = muonTrack.fEta;
+  fRapidity               = muonTrack.fRapidity;
+  fFirstTrackingPointX    = muonTrack.fFirstTrackingPointX;
+  fFirstTrackingPointY    = muonTrack.fFirstTrackingPointY;
+  fFirstTrackingPointZ    = muonTrack.fFirstTrackingPointZ;
+  fXAtVertex              = muonTrack.fXAtVertex;
+  fYAtVertex              = muonTrack.fYAtVertex;
+  fRAtAbsorberEnd         = muonTrack.fRAtAbsorberEnd;
+  fChi2OverNdf            = muonTrack.fChi2OverNdf;
+  fChi2MatchTrigger       = muonTrack.fChi2MatchTrigger;
+  fLabel                  = muonTrack.fLabel;
+  fMuonClusterMap         = muonTrack.fMuonClusterMap;
+  fHitsPatternInTrigCh    = muonTrack.fHitsPatternInTrigCh;
+  fHitsPatternInTrigChTrk = muonTrack.fHitsPatternInTrigChTrk;
+  fLoCircuit              = muonTrack.fLoCircuit;
+  fIsConnected            = muonTrack.fIsConnected;
+  fESDEvent               = muonTrack.fESDEvent;
+
+  fProdVertexXYZ[0]=muonTrack.fProdVertexXYZ[0];
+  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;
 
 }
@@ -166,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);
+
+}
+
+//====================================================================================================================================================