]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTracker.cxx
Changes for removal of AliMpManuList (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.cxx
index fba0ab5c418ed34097bb1d86b2ad965a3b57dc50..8b7a69587ce672c8752074c89d3540d56ae37e2a 100644 (file)
@@ -32,6 +32,7 @@
 #include "AliMUONTrackExtrap.h"
 #include "AliMUONTrackHitPattern.h"
 #include "AliMUONTrackParam.h"
+#include "AliMUONHitForRec.h"
 #include "AliMUONTrackReconstructor.h"
 #include "AliMUONTrackReconstructorK.h"
 #include "AliMUONTrackStoreV1.h"
@@ -43,8 +44,8 @@
 #include "AliESDEvent.h"
 #include "AliESDMuonTrack.h"
 #include "AliESDVertex.h"
-#include "AliLoader.h"
 #include "AliLog.h"
+#include "AliCodeTimer.h"
 
 #include <Riostream.h>
 #include <TTree.h>
@@ -55,13 +56,11 @@ ClassImp(AliMUONTracker)
 
 
 //_____________________________________________________________________________
-AliMUONTracker::AliMUONTracker(AliLoader* loader,
-                               const AliMUONDigitMaker* digitMaker,
+AliMUONTracker::AliMUONTracker(const AliMUONDigitMaker* digitMaker,
                                const AliMUONGeometryTransformer* transformer,
                                const AliMUONTriggerCircuit* triggerCircuit,
                               AliMUONTriggerChamberEff* chamberEff)
 : AliTracker(),
-  fLoader(loader),
   fDigitMaker(digitMaker), // not owner
   fTransformer(transformer), // not owner
   fTriggerCircuit(triggerCircuit), // not owner
@@ -126,14 +125,9 @@ AliMUONTracker::Clusters2Tracks(AliESDEvent* esd)
   /// the TreeT and the ESD
   
   Int_t rv(0);
-  
-  TTree* tracksTree = fLoader->TreeT();
-  
-  if (!tracksTree)
-  {
-    AliError("Cannot get TreeT");
-    rv=1;
-  }
+  TTree *tracksTree = new TTree;
   if (!fClusterStore)
   {
     AliError("ClusterStore is NULL");
@@ -155,8 +149,8 @@ AliMUONTracker::Clusters2Tracks(AliESDEvent* esd)
 Int_t AliMUONTracker::Clusters2Tracks(TTree& tracksTree, AliESDEvent* esd)
 {
   /// Performs the tracking
-  
   AliDebug(1,"");
+  AliCodeTimerAuto("")
   
   AliMUONVTrackStore* trackStore(0x0);
   AliMUONVTriggerTrackStore* triggerTrackStore(0x0);
@@ -185,10 +179,12 @@ Int_t AliMUONTracker::Clusters2Tracks(TTree& tracksTree, AliESDEvent* esd)
   }
   
   // Fills output TreeT 
-  tracksTree.Fill();
+  //tracksTree.Fill();
 
   if( trackStore && triggerTrackStore && fTriggerStore && fTrigChamberEff){
+      AliCodeTimerStart("EventChamberEff");
       fTrigChamberEff->EventChamberEff(*fTriggerStore,*triggerTrackStore,*trackStore);
+      AliCodeTimerStop("EventChamberEff");
   }
 
   FillESD(*trackStore,esd);
@@ -205,8 +201,8 @@ void
 AliMUONTracker::FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const
 {
   /// Fill the ESD from the trackStore
-  
   AliDebug(1,"");
+  AliCodeTimerAuto("")
   
   // Get vertex 
   Double_t vertex[3] = {0};
@@ -234,25 +230,22 @@ AliMUONTracker::FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const
     // setting data member of ESD MUON
     
     // at first station
-    esdTrack.SetInverseBendingMomentumUncorrected(trackParam->GetInverseBendingMomentum());
-    esdTrack.SetThetaXUncorrected(TMath::ATan(trackParam->GetNonBendingSlope()));
-    esdTrack.SetThetaYUncorrected(TMath::ATan(trackParam->GetBendingSlope()));
-    esdTrack.SetZUncorrected(trackParam->GetZ());
-    esdTrack.SetBendingCoorUncorrected(trackParam->GetBendingCoor());
-    esdTrack.SetNonBendingCoorUncorrected(trackParam->GetNonBendingCoor());
+    trackParam->SetParamForUncorrected(esdTrack);
+    trackParam->SetCovFor(esdTrack);
     // at vertex
-    esdTrack.SetInverseBendingMomentum(trackParamAtVtx.GetInverseBendingMomentum());
-    esdTrack.SetThetaX(TMath::ATan(trackParamAtVtx.GetNonBendingSlope()));
-    esdTrack.SetThetaY(TMath::ATan(trackParamAtVtx.GetBendingSlope()));
-    esdTrack.SetZ(trackParamAtVtx.GetZ());
-    esdTrack.SetBendingCoor(trackParamAtVtx.GetBendingCoor());
-    esdTrack.SetNonBendingCoor(trackParamAtVtx.GetNonBendingCoor());
+    trackParamAtVtx.SetParamFor(esdTrack);
     // global info
     esdTrack.SetChi2(track->GetFitFMin());
     esdTrack.SetNHit(track->GetNTrackHits());
     esdTrack.SetLocalTrigger(track->GetLocalTrigger());
     esdTrack.SetChi2MatchTrigger(track->GetChi2MatchTrigger());
     esdTrack.SetHitsPatternInTrigCh(track->GetHitsPatternInTrigCh());
+    // muon cluster map
+    AliMUONHitForRec* cluster = static_cast<AliMUONHitForRec*>((track->GetHitForRecAtHit())->First());
+    while (cluster) {
+      esdTrack.AddInMuonClusterMap(cluster->GetChamberNumber());
+      cluster = static_cast<AliMUONHitForRec*>((track->GetHitForRecAtHit())->After(cluster));
+    }
     
     // storing ESD MUON Track into ESD Event 
     esd->AddMuonTrack(&esdTrack);