]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDMuonTrack.cxx
new functions, mc analysis can be performed also for pi0 and k0. eta of seed can...
[u/mrichter/AliRoot.git] / STEER / AliESDMuonTrack.cxx
index 3d54f63e01dad38c09c55a3368d6313f2389a882..d3d3861038ce682a4b4a581e691d01839e31b06a 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "AliESDMuonTrack.h"
 #include "AliESDMuonCluster.h"
+#include "AliESDEvent.h"
 
 #include <TClonesArray.h>
 #include <TLorentzVector.h>
@@ -54,6 +55,7 @@ AliESDMuonTrack::AliESDMuonTrack ():
   fZUncorrected(0),
   fBendingCoorUncorrected(0),
   fNonBendingCoorUncorrected(0),
+  fRAtAbsorberEnd(0),
   fChi2(0),
   fChi2MatchTrigger(0),
   fLocalTrigger(0),
@@ -69,7 +71,9 @@ AliESDMuonTrack::AliESDMuonTrack ():
   fHitsPatternInTrigCh(0),
   fNHit(0),
   fClusters(0x0),
-  fLabel(-1)
+  fLabel(-1),
+  fESDEvent(0)
+
 {
   //
   /// Default constructor
@@ -98,6 +102,7 @@ AliESDMuonTrack::AliESDMuonTrack (const AliESDMuonTrack& muonTrack):
   fZUncorrected(muonTrack.fZUncorrected),
   fBendingCoorUncorrected(muonTrack.fBendingCoorUncorrected),
   fNonBendingCoorUncorrected(muonTrack.fNonBendingCoorUncorrected),
+  fRAtAbsorberEnd(muonTrack.fRAtAbsorberEnd),
   fChi2(muonTrack.fChi2),
   fChi2MatchTrigger(muonTrack.fChi2MatchTrigger),
   fLocalTrigger(muonTrack.fLocalTrigger),
@@ -113,7 +118,8 @@ AliESDMuonTrack::AliESDMuonTrack (const AliESDMuonTrack& muonTrack):
   fHitsPatternInTrigCh(muonTrack.fHitsPatternInTrigCh),
   fNHit(muonTrack.fNHit),
   fClusters(0x0),
-  fLabel(muonTrack.fLabel)
+  fLabel(muonTrack.fLabel),
+  fESDEvent(muonTrack.fESDEvent)
 {
   //
   /// Copy constructor
@@ -165,6 +171,8 @@ AliESDMuonTrack& AliESDMuonTrack::operator=(const AliESDMuonTrack& muonTrack)
   
   for (Int_t i = 0; i < 15; i++) fCovariances[i] = muonTrack.fCovariances[i];
   
+  fRAtAbsorberEnd            = muonTrack.fRAtAbsorberEnd;
+  
   fChi2                   = muonTrack.fChi2;             
   fNHit                   = muonTrack.fNHit; 
 
@@ -184,6 +192,8 @@ AliESDMuonTrack& AliESDMuonTrack::operator=(const AliESDMuonTrack& muonTrack)
   fMuonClusterMap        = muonTrack.fMuonClusterMap;
 
   fLabel                  = muonTrack.fLabel;
+  
+  fESDEvent               = muonTrack.fESDEvent;
 
   // necessary to make a copy of the objects and not only the pointers in TClonesArray
   delete fClusters;
@@ -249,6 +259,7 @@ void AliESDMuonTrack::Reset()
   fZUncorrected = 0.;
   fBendingCoorUncorrected = 0.;
   fNonBendingCoorUncorrected = 0.;
+  fRAtAbsorberEnd = 0.;
   fChi2 = 0.;
   fChi2MatchTrigger = 0.;
   fLocalTrigger = 0;
@@ -266,6 +277,7 @@ void AliESDMuonTrack::Reset()
   delete fClusters; fClusters = 0x0;
   for (Int_t i = 0; i < 15; i++) fCovariances[i] = 0.;
   fLabel = -1;
+  fESDEvent = 0;
 }
 
 //_____________________________________________________________________________
@@ -505,6 +517,24 @@ void AliESDMuonTrack::LorentzPUncorrected(TLorentzVector& vP) const
   vP.SetPxPyPzE(pX, pY, pZ, e);
 }
 
+//_____________________________________________________________________________
+Int_t AliESDMuonTrack::GetNDF() const
+{
+  /// return the number of degrees of freedom
+  
+  Int_t ndf = 2 * static_cast<Int_t>(fNHit) - 5;
+  return (ndf > 0) ? ndf : 0;
+}
+
+//_____________________________________________________________________________
+Double_t AliESDMuonTrack::GetNormalizedChi2() const
+{
+  /// return the chi2 value divided by the number of degrees of freedom
+  
+  Int_t ndf = GetNDF();
+  return (ndf > 0) ? fChi2 / static_cast<Double_t>(ndf) : 0.;
+}
+
 //_____________________________________________________________________________
 Int_t AliESDMuonTrack::GetMatchTrigger() const
 {
@@ -526,6 +556,19 @@ Int_t AliESDMuonTrack::GetMatchTrigger() const
 
 }
 
+//_____________________________________________________________________________
+Bool_t AliESDMuonTrack::MatchTriggerDigits() const
+{
+  // return kTRUE if the track matches a digit on both planes of at least 2 trigger chambers
+  
+  Int_t nMatchedChambers = 0;
+  for (Int_t ich=0; ich<4; ich++)
+    if (IsChamberHit(fHitsPatternInTrigCh, 0, ich) &&
+       IsChamberHit(fHitsPatternInTrigCh, 1, ich)) nMatchedChambers++;
+  
+  return (nMatchedChambers >= 2);
+}
+
 //_____________________________________________________________________________
 Int_t AliESDMuonTrack::GetNClusters() const
 {