1 #ifndef ALIMUONRECOCHECK_H
2 #define ALIMUONRECOCHECK_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 /// \ingroup evaluation
10 /// \class AliMUONRecoCheck
11 /// \brief Utility class to check reconstruction
19 class AliMCEventHandler;
20 class AliMUONVTrackStore;
21 class AliMUONVTriggerTrackStore;
23 class AliMUONTriggerTrack;
24 class AliMUONGeometryTransformer;
25 class AliMUONTriggerCircuit;
26 class AliMUONLocalTrigger;
27 class AliMUONCalibrationData;
28 class AliMUONTriggerElectronics;
30 class AliMUONRecoCheck : public TObject
33 AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./");
34 AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler);
35 virtual ~AliMUONRecoCheck();
37 /// Return the list of reconstructed tracks
38 AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE);
40 /// Return the list of reconstructed trigger tracks
41 AliMUONVTriggerTrackStore* TriggeredTracks(Int_t event);
43 void TriggerToTrack(const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack);
45 /// Return reference muon tracks
46 AliMUONVTrackStore* TrackRefs(Int_t event);
48 /// Return triggerable reference tracks
49 AliMUONVTriggerTrackStore* TriggerableTracks(Int_t event);
51 /// Return reconstructible reference tracks
52 AliMUONVTrackStore* ReconstructibleTracks(Int_t event, UInt_t requestedStationMask = 0x1F, Bool_t request2ChInSameSt45 = kTRUE);
55 /// Return the run number of the current ESD event
58 /// Return the total number of events.
59 Int_t NumberOfEvents() const;
61 /// Return the reconstructed data of current event
62 const AliESDEvent* GetESDEvent() const { return fESDEvent; }
64 /// Return the interface to the Monte Carlo data of current event
65 const AliMCEventHandler* GetMCEventHandler() const { return fMCEventHandler; }
67 /// Return the track from the store matched with the given track (or 0x0) and the fraction of matched clusters.
68 static AliMUONTrack* FindCompatibleTrack(AliMUONTrack &track, AliMUONVTrackStore &trackStore,
69 Int_t &nMatchClusters, Bool_t useLabel = kFALSE, Double_t sigmaCut = 10.);
71 /// Return the trigger track from the store matched with the given track (or 0x0)
72 static AliMUONTriggerTrack* FindCompatibleTrack(AliMUONTriggerTrack &track,
73 const AliMUONVTriggerTrackStore &triggerTrackStore,
74 Double_t sigmaCut = 10.);
78 AliMUONRecoCheck(const AliMUONRecoCheck& rhs);
80 AliMUONRecoCheck& operator = (const AliMUONRecoCheck& rhs);
84 void MakeReconstructedTracks(Bool_t refit);
86 void MakeTriggeredTracks();
90 void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore);
92 void MakeReconstructibleTracks(UInt_t requestedStationMask, Bool_t request2ChInSameSt45 = kTRUE);
94 void MakeTriggerableTracks();
97 Bool_t InitTriggerResponse();
98 Bool_t InitCalibrationData();
99 Bool_t InitGeometryTransformer();
102 AliMCEventHandler* fMCEventHandler; ///< to access MC truth information
103 AliESDEvent* fESDEvent; ///< ESD event to access MUON data
104 TTree* fESDTree; ///< ESD tree to access MUON data
105 TFile* fESDFile; ///< ESD file to access MUON data
107 Int_t fCurrentEvent; ///< current event number
109 AliMUONVTrackStore* fTrackRefStore; ///< current simulated tracks (owner)
110 AliMUONVTrackStore* fRecoTrackRefStore; ///< current reconstructible tracks (owner)
111 AliMUONVTriggerTrackStore* fRecoTriggerRefStore; ///< current triggerable tracks (owner)
112 AliMUONVTrackStore* fRecoTrackStore; ///< current reconstructed tracks (owner)
113 AliMUONVTriggerTrackStore* fRecoTriggerTrackStore; ///< current reconstructed trigger tracks (owner)
115 AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer
116 AliMUONTriggerCircuit* fTriggerCircuit; ///< trigger circuit
117 AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
118 AliMUONTriggerElectronics* fTriggerElectronics; ///< object to re-compute the trigger info
120 Bool_t fESDEventOwner; ///< using constructor from the analysis task
122 ClassDef(AliMUONRecoCheck, 0) //Utility class to check reconstruction