X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRecoCheck.h;h=381e4c8680d0286fda81fd5207893a3528791b59;hb=dd1ddd02141d23e41143250ffe41022afe988ba9;hp=e2a56dfdc6f37d216c1d81214cd4ab9077191322;hpb=29fc2c86091397aa6c9d186d401b19c7e3ff5fbf;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRecoCheck.h b/MUON/AliMUONRecoCheck.h index e2a56dfdc6f..381e4c8680d 100644 --- a/MUON/AliMUONRecoCheck.h +++ b/MUON/AliMUONRecoCheck.h @@ -4,57 +4,130 @@ /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ -////////////////////////////////////////////////////////////////////////// -// // -// AliMUONRecoCheck // -// // -////////////////////////////////////////////////////////////////////////// +/* $Id$ */ + +/// \ingroup evaluation +/// \class AliMUONRecoCheck +/// \brief Utility class to check reconstruction + #include -#include "AliMUONTrack.h" class TClonesArray; -class AliMUONData; -class AliRunLoader; - +class TFile; +class TTree; +class AliESDEvent; +class AliMCEventHandler; +class AliMUONVTrackStore; +class AliMUONVTriggerTrackStore; +class AliMUONTrack; +class AliMUONTrackParam; +class AliMUONTriggerTrack; +class AliMUONGeometryTransformer; +class AliMUONTriggerCircuit; +class AliMUONLocalTrigger; +class AliMUONCalibrationData; +class AliMUONTriggerElectronics; class AliMUONRecoCheck : public TObject { public: - AliMUONRecoCheck(Char_t *chLoader); - virtual ~AliMUONRecoCheck(); - - AliMUONData* GetMUONData() {return fMUONData;} - void MakeTrackRef(); - void AddMuonTrackReference(const AliMUONTrack *muonTrack) - {new ((*fMuonTrackRef)[fMuonTrackRef->GetEntriesFast()]) AliMUONTrack(*muonTrack);} - void PrintEvent() const; - void ResetTracks() const; - AliRunLoader* GetRunLoader() {return fRunLoader;} - void CleanMuonTrackRef(); - void ReconstructibleTracks(); - Int_t GetNumberOfReconstuctibleTracks() {return fReconstructibleTracks;} - Int_t GetNumberOfRecoTracks() {return fRecoTracks;} - TClonesArray *GetTrackReco(); - TClonesArray *GetMuonTrackRef() {return fMuonTrackRef;} + AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./"); + AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler); + virtual ~AliMUONRecoCheck(); + + /// Return the list of reconstructed tracks + AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE); + + /// Return the list of reconstructed trigger tracks + AliMUONVTriggerTrackStore* TriggeredTracks(Int_t event); + + Bool_t TriggerToTrack(const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack); + + /// Return reference muon tracks + AliMUONVTrackStore* TrackRefs(Int_t event); + + /// Return triggerable reference tracks + AliMUONVTriggerTrackStore* TriggerableTracks(Int_t event); + + /// Return reconstructible reference tracks + AliMUONVTrackStore* ReconstructibleTracks(Int_t event, UInt_t requestedStationMask = 0x1F, + Bool_t request2ChInSameSt45 = kTRUE, + Bool_t hitInFrontOfPad = kFALSE); + + + /// Return the run number of the current ESD event + Int_t GetRunNumber(); + + /// Return the total number of events. + Int_t NumberOfEvents() const; + + /// Return the reconstructed data of current event + const AliESDEvent* GetESDEvent() const { return fESDEvent; } + + /// Return the interface to the Monte Carlo data of current event + const AliMCEventHandler* GetMCEventHandler() const { return fMCEventHandler; } + + /// Return the track from the store matched with the given track (or 0x0) and the fraction of matched clusters + static AliMUONTrack* FindCompatibleTrack(AliMUONTrack &track, AliMUONVTrackStore &trackStore, + Int_t &nMatchClusters, Bool_t useLabel = kFALSE, + Double_t sigmaCut = 10.); + + /// Return the trigger track from the store matched with the given track (or 0x0) + static AliMUONTriggerTrack* FindCompatibleTrack(AliMUONTriggerTrack &track, + const AliMUONVTriggerTrackStore &triggerTrackStore, + Double_t sigmaCut = 10.); + +private: + /// Not implemented + AliMUONRecoCheck(const AliMUONRecoCheck& rhs); + /// Not implemented + AliMUONRecoCheck& operator = (const AliMUONRecoCheck& rhs); + void ResetStores(); + + void MakeReconstructedTracks(Bool_t refit); + + void MakeTriggeredTracks(); + + void MakeTrackRefs(); + + void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore); + + void MakeReconstructibleTracks(UInt_t requestedStationMask, Bool_t request2ChInSameSt45 = kTRUE, + Bool_t hitInFrontOfPad = kFALSE); + + void MakeTriggerableTracks(); + + Bool_t InitCircuit(); + Bool_t InitTriggerResponse(); + Bool_t InitCalibrationData(); + Bool_t InitGeometryTransformer(); + + Bool_t IsHitInFrontOfPad(AliMUONTrackParam *param) const; + private: + AliMCEventHandler* fMCEventHandler; ///< to access MC truth information + AliESDEvent* fESDEvent; ///< ESD event to access MUON data + TTree* fESDTree; ///< ESD tree to access MUON data + TFile* fESDFile; ///< ESD file to access MUON data - AliRunLoader* fRunLoader; // alice run loader - AliMUONData* fMUONData; // Data container for MUON subsystem - TClonesArray* fMuonTrackRef; // reference muon tracks - TClonesArray* fTrackReco; // reconstructed muon tracks - Int_t fReconstructibleTracks; // number of reconstructible tracks - Int_t fRecoTracks; // number of reconstructed tracks + Int_t fCurrentEvent; ///< current event number + + AliMUONVTrackStore* fTrackRefStore; ///< current simulated tracks (owner) + AliMUONVTrackStore* fRecoTrackRefStore; ///< current reconstructible tracks (owner) + AliMUONVTriggerTrackStore* fRecoTriggerRefStore; ///< current triggerable tracks (owner) + AliMUONVTrackStore* fRecoTrackStore; ///< current reconstructed tracks (owner) + AliMUONVTriggerTrackStore* fRecoTriggerTrackStore; ///< current reconstructed trigger tracks (owner) + + AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer + AliMUONTriggerCircuit* fTriggerCircuit; ///< trigger circuit + AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks + AliMUONTriggerElectronics* fTriggerElectronics; ///< object to re-compute the trigger info + + Bool_t fESDEventOwner; ///< using constructor from the analysis task ClassDef(AliMUONRecoCheck, 0) //Utility class to check reconstruction }; #endif - - - - - - -