#include "AliMUONTrackExtrap.h"
#include "AliMUONTrackHitPattern.h"
#include "AliMUONTrackParam.h"
+#include "AliMUONHitForRec.h"
#include "AliMUONTrackReconstructor.h"
#include "AliMUONTrackReconstructorK.h"
#include "AliMUONTrackStoreV1.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliESDVertex.h"
-#include "AliLoader.h"
#include "AliLog.h"
+#include "AliCodeTimer.h"
#include <Riostream.h>
#include <TTree.h>
//_____________________________________________________________________________
-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
/// 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");
Int_t AliMUONTracker::Clusters2Tracks(TTree& tracksTree, AliESDEvent* esd)
{
/// Performs the tracking
-
AliDebug(1,"");
+ AliCodeTimerAuto("")
AliMUONVTrackStore* trackStore(0x0);
AliMUONVTriggerTrackStore* triggerTrackStore(0x0);
}
// Fills output TreeT
- tracksTree.Fill();
+ //tracksTree.Fill();
if( trackStore && triggerTrackStore && fTriggerStore && fTrigChamberEff){
+ AliCodeTimerStart("EventChamberEff");
fTrigChamberEff->EventChamberEff(*fTriggerStore,*triggerTrackStore,*trackStore);
+ AliCodeTimerStop("EventChamberEff");
}
FillESD(*trackStore,esd);
AliMUONTracker::FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const
{
/// Fill the ESD from the trackStore
-
AliDebug(1,"");
+ AliCodeTimerAuto("")
// Get vertex
Double_t vertex[3] = {0};
// 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);