-void AliMUONReconstructor::FillESD(AliRunLoader* runLoader, AliESD* esd) const
-{
-/// Fill ESD
-/// \todo add more
-
- TClonesArray* recTracksArray = 0;
- TClonesArray* recTrigTracksArray = 0;
-
- AliLoader* loader = runLoader->GetLoader("MUONLoader");
- loader->LoadTracks("READ");
- AliMUONData* muonData = new AliMUONData(loader,"MUON","MUON");
-
- // declaration
- Int_t iEvent;// nPart;
- Int_t nTrackHits;// nPrimary;
- Double_t fitFmin;
-
- Double_t bendingSlope, nonBendingSlope, inverseBendingMomentum;
- Double_t xRec, yRec, zRec, chi2MatchTrigger;
- Bool_t matchTrigger;
-
- // setting pointer for tracks, triggertracks & trackparam at vertex
- AliMUONTrack* recTrack = 0;
- AliMUONTrackParam* trackParam = 0;
- AliMUONTriggerTrack* recTriggerTrack = 0;
-
- iEvent = runLoader->GetEventNumber();
- runLoader->GetEvent(iEvent);
-
- // Get vertex
- Double_t vertex[3] = {0};
- const AliESDVertex *esdVert = esd->GetVertex();
- if (esdVert->GetNContributors()) {
- esdVert->GetXYZ(vertex);
- printf("find vertex\n");
- }
- // setting ESD MUON class
- AliESDMuonTrack* theESDTrack = new AliESDMuonTrack() ;
-
- //-------------------- trigger tracks-------------
- Long_t trigPat = 0;
- muonData->SetTreeAddress("RL");
- muonData->GetRecTriggerTracks();
- recTrigTracksArray = muonData->RecTriggerTracks();
-
- // ready global trigger pattern from first track
- if (recTrigTracksArray)
- recTriggerTrack = (AliMUONTriggerTrack*) recTrigTracksArray->First();
- if (recTriggerTrack) trigPat = recTriggerTrack->GetGTPattern();
-
- //printf(">>> Event %d Number of Recconstructed tracks %d \n",iEvent, nrectracks);
-
- // -------------------- tracks-------------
- muonData->SetTreeAddress("RT");
- muonData->GetRecTracks();
- recTracksArray = muonData->RecTracks();
-
- Int_t nRecTracks = 0;
- if (recTracksArray)
- nRecTracks = (Int_t) recTracksArray->GetEntriesFast(); //
-
- // loop over tracks
- for (Int_t iRecTracks = 0; iRecTracks < nRecTracks; iRecTracks++) {
-
- // reading info from tracks
- recTrack = (AliMUONTrack*) recTracksArray->At(iRecTracks);
-
- trackParam = (AliMUONTrackParam*) (recTrack->GetTrackParamAtHit())->First();
-
- if (esdVert->GetNContributors())
- AliMUONTrackExtrap::ExtrapToVertex(trackParam, vertex[0],vertex[1],vertex[2]);
-
- bendingSlope = trackParam->GetBendingSlope();
- nonBendingSlope = trackParam->GetNonBendingSlope();
- inverseBendingMomentum = trackParam->GetInverseBendingMomentum();
- xRec = trackParam->GetNonBendingCoor();
- yRec = trackParam->GetBendingCoor();
- zRec = trackParam->GetZ();
-
- nTrackHits = recTrack->GetNTrackHits();
- fitFmin = recTrack->GetFitFMin();
- matchTrigger = recTrack->GetMatchTrigger();
- chi2MatchTrigger = recTrack->GetChi2MatchTrigger();
-
- // setting data member of ESD MUON
- theESDTrack->SetInverseBendingMomentum(inverseBendingMomentum);
- theESDTrack->SetThetaX(TMath::ATan(nonBendingSlope));
- theESDTrack->SetThetaY(TMath::ATan(bendingSlope));
- theESDTrack->SetZ(zRec);
- theESDTrack->SetBendingCoor(yRec); // calculate vertex at ESD or Tracking level ?
- theESDTrack->SetNonBendingCoor(xRec);
- theESDTrack->SetChi2(fitFmin);
- theESDTrack->SetNHit(nTrackHits);
- theESDTrack->SetMatchTrigger(matchTrigger);
- theESDTrack->SetChi2MatchTrigger(chi2MatchTrigger);
-
- // storing ESD MUON Track into ESD Event
- if (nRecTracks != 0)
- esd->AddMuonTrack(theESDTrack);
- } // end loop tracks
-
- // reset muondata
- muonData->ResetRecTracks();
- muonData->ResetRecTriggerTracks();
-
- //} // end loop on event
- loader->UnloadTracks();
-
- delete theESDTrack;
- delete muonData;
-}//_____________________________________________________________________________
-void AliMUONReconstructor::FillESD(AliRunLoader* runLoader, AliRawReader* /*rawReader*/, AliESD* esd) const