Kinematics TLorentsVector added to AliMuonForwardTrack
authorauras <auras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Nov 2012 11:48:05 +0000 (11:48 +0000)
committerauras <auras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Nov 2012 11:48:05 +0000 (11:48 +0000)
MFT/AliMuonForwardTrack.cxx
MFT/AliMuonForwardTrack.h
MFT/AliMuonForwardTrackAnalysis.cxx

index b12130c..6f219e7 100644 (file)
@@ -32,6 +32,8 @@
 #include "TParticle.h"
 #include "AliMuonForwardTrack.h"
 #include "AliMFTConstants.h"
+#include "TLorentzVector.h"
+#include "TDatabasePDG.h"
 
 ClassImp(AliMuonForwardTrack)
 
@@ -43,7 +45,9 @@ AliMuonForwardTrack::AliMuonForwardTrack():
   fMCTrackRef(0),
   fMFTClusters(0),
   fNWrongClustersMC(-1),
-  fTrackMCId(-1)
+  fTrackMCId(-1),
+  fKinem(0,0,0,0),
+  fParamCovMatrix(5,5)
 {
 
   // default constructor
@@ -66,7 +70,9 @@ AliMuonForwardTrack::AliMuonForwardTrack(AliMUONTrack *MUONTrack):
   fMCTrackRef(0),
   fMFTClusters(0),
   fNWrongClustersMC(-1),
-  fTrackMCId(-1)
+  fTrackMCId(-1),
+  fKinem(0,0,0,0),
+  fParamCovMatrix(5,5)
 {
 
   SetMUONTrack(MUONTrack);
@@ -88,7 +94,9 @@ AliMuonForwardTrack::AliMuonForwardTrack(const AliMuonForwardTrack& track):
   fMCTrackRef(0x0),
   fMFTClusters(0x0),
   fNWrongClustersMC(track.fNWrongClustersMC),
-  fTrackMCId(track.fTrackMCId)
+  fTrackMCId(track.fTrackMCId),
+  fKinem(track.fKinem),
+  fParamCovMatrix(track.fParamCovMatrix)
 {
 
   // copy constructor
@@ -125,6 +133,8 @@ AliMuonForwardTrack& AliMuonForwardTrack::operator=(const AliMuonForwardTrack& t
   fMFTClusters->SetOwner(kTRUE);
   fNWrongClustersMC = track.fNWrongClustersMC;
   fTrackMCId        = track.fTrackMCId;
+  fKinem            = track.fKinem;
+  fParamCovMatrix   = track.fParamCovMatrix;
 
   for (Int_t iPlane=0; iPlane<AliMFTConstants::fNMaxPlanes; iPlane++) fPlaneExists[iPlane] = (track.fPlaneExists)[iPlane];
   for (Int_t iParent=0; iParent<fgkNParentsMax; iParent++) {
@@ -524,3 +534,20 @@ Bool_t AliMuonForwardTrack::IsFromBackground() {
 }
 
 //====================================================================================================================================================
+
+void AliMuonForwardTrack::EvalKinem(Double_t z) {
+
+  AliMUONTrackParam *param = GetTrackParamAtMFTCluster(0);
+  AliMUONTrackExtrap::ExtrapToZCov(param, z);
+
+  Double_t mMu = TDatabasePDG::Instance()->GetParticle("mu-")->Mass();
+  Double_t energy = TMath::Sqrt(param->P()*param->P() + mMu*mMu);
+  fKinem.SetPxPyPzE(param->Px(), param->Py(), param->Pz(), energy);
+
+  TMatrixD cov(5,5);
+  fParamCovMatrix = param->GetCovariances();
+
+}
+
+//====================================================================================================================================================
+
index 3bdc152..d9ffe58 100644 (file)
@@ -21,6 +21,7 @@
 #include "TClonesArray.h"
 #include "TParticle.h"
 #include "AliMFTConstants.h"
+#include "TLorentzVector.h"
 
 //====================================================================================================================================================
 
@@ -78,7 +79,17 @@ public:
   void SetNWrongClustersMC(Int_t nClusters) { fNWrongClustersMC = nClusters; }
   Int_t GetNWrongClustersMC() { return fNWrongClustersMC; }
 
-  Double_t Pt() { return TMath::Sqrt(TMath::Power(GetTrackParamAtMFTCluster(0)->Px(),2)+TMath::Power(GetTrackParamAtMFTCluster(0)->Py(),2)); }
+  Double_t Pt()       { return fKinem.Pt(); }
+  Double_t Eta()      { return fKinem.Eta(); }
+  Double_t Rapidity() { return fKinem.Rapidity(); }
+  Double_t Px()       { return fKinem.Px(); }
+  Double_t Py()       { return fKinem.Py(); }
+  Double_t Pz()       { return fKinem.Pz(); }
+  Double_t P()        { return fKinem.P();  }
+
+  TMatrixD GetParamCovMatrix() { return fParamCovMatrix; }
+
+  void EvalKinem(Double_t z);
 
   void SetTrackMCId(Int_t id) { fTrackMCId = id; }
   Int_t GetTrackMCId() { return fTrackMCId; }
@@ -106,6 +117,10 @@ protected:
 
   Int_t fTrackMCId;   // this number will identify the track within a MC simulation: run, event, MUON track
 
+  TLorentzVector fKinem;
+
+  TMatrixD fParamCovMatrix;
+
   ClassDef(AliMuonForwardTrack,1)
     
 };
index 6aed11a..1032a1c 100644 (file)
@@ -196,9 +196,9 @@ Bool_t AliMuonForwardTrackAnalysis::LoadNextEvent() {
   fInputTreeWithBranson    -> GetEvent(fEv);
   fInputTreeWithoutBranson -> GetEvent(fEv);
 
-  AliDebug(2,Form("**** analyzing event # %4d (%3d tracks) ****", fEv, fMuonForwardTracksWithBranson->GetEntriesFast()));
+  AliDebug(2,Form("**** analyzing event # %4d (%3d tracks) ****", fEv+1, fMuonForwardTracksWithBranson->GetEntriesFast()));
 
-  AliInfo(Form("**** analyzing event # %6d of %6d ****", fEv, fLastEvent));
+  AliInfo(Form("**** analyzing event # %6d of %6d ****", fEv+1, fLastEvent+1));
 
   fPrimaryVtxX = gRandom->Gaus(0., fXVertResMC);
   fPrimaryVtxY = gRandom->Gaus(0., fYVertResMC);
@@ -225,7 +225,7 @@ Bool_t AliMuonForwardTrackAnalysis::LoadNextEvent() {
     while (AnalyzeMuonPair(kSingleEvent)) continue;
   }
 
-  AliDebug(2,Form("**** analyzed  event # %4d (%3d tracks and %3d pairs analyzed) ****", fEv, fNTracksAnalyzedOfEventAfterCut, fNPairsAnalyzedOfEventAfterCut));
+  AliDebug(2,Form("**** analyzed  event # %4d (%3d tracks and %3d pairs analyzed) ****", fEv+1, fNTracksAnalyzedOfEventAfterCut, fNPairsAnalyzedOfEventAfterCut));
   
   if (fMuonPairAnalysis && fMixing) {
     for (fEvMix=fEv+1; fEvMix<=fEv+fNEventsToMix; fEvMix++) {
@@ -256,8 +256,8 @@ Bool_t AliMuonForwardTrackAnalysis::LoadNextEvent() {
        fInputTreeWithoutBranson -> GetEvent(fEv);
 
        AliDebug(2,Form("**** mixing event # %4d (%3d tracks) with event # %4d (%3d tracks) ****", 
-                       fEv,    fMuonForwardTracksWithBranson->GetEntriesFast(),
-                       fEvMix, fMuonForwardTracksWithBransonMix ->GetEntriesFast()));    
+                       fEv+1,    fMuonForwardTracksWithBranson->GetEntriesFast(),
+                       fEvMix+1, fMuonForwardTracksWithBransonMix ->GetEntriesFast()));          
        if (fMuonForwardTrackPairsWithBranson || fMuonForwardTrackPairsWithoutBranson) {
          fMuonForwardTrackPairsWithBranson    -> Clear("C");
          fMuonForwardTrackPairsWithoutBranson -> Clear("C");