X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRecoCheck.h;h=a2640033459f0c03d6edcff8e50d3946a1d70019;hb=6dd9ec100e601f0c46e7cba86ad4cbb9e1bfebb3;hp=4529a96850465922f0581edbbc2b255b9b33810e;hpb=4821745937c50805a729d14426c303a933490c57;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRecoCheck.h b/MUON/AliMUONRecoCheck.h index 4529a968504..a2640033459 100644 --- a/MUON/AliMUONRecoCheck.h +++ b/MUON/AliMUONRecoCheck.h @@ -11,56 +11,123 @@ /// \brief Utility class to check reconstruction #include -#include "AliMUONTrack.h" class TClonesArray; -class AliMUONMCDataInterface; -class AliMUONDataInterface; +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, Char_t *chLoaderSim); + AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./"); + AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler); virtual ~AliMUONRecoCheck(); - /// Return number of reconstructed tracks - AliMUONVTrackStore* ReconstructedTracks(Int_t event); - + /// 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); + + void TriggerToTrack(const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack); + /// Return reference muon tracks AliMUONVTrackStore* TrackRefs(Int_t event); - /// Return reconstructible ref tracks - AliMUONVTrackStore* ReconstructibleTracks(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); - AliMUONVTrackStore* MakeReconstructibleTracks(const AliMUONVTrackStore& refTracks); - - AliMUONVTrackStore* MakeTrackRefs(Int_t event); + void ResetStores(); + + void MakeReconstructedTracks(Bool_t refit); + + void MakeTriggeredTracks(); + + void MakeTrackRefs(); + + void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore); - AliMUONVTrackStore* CleanMuonTrackRef(const AliMUONVTrackStore& refTracks); + 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: - - AliMUONMCDataInterface* fMCDataInterface; ///< to access MC information - AliMUONDataInterface* fDataInterface; ///< to access MUON data + 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 + 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 - - - - - - -