0897c1b28512a852ff34f418eb6f407c6912817c
[u/mrichter/AliRoot.git] / MUON / AliMUONRecoCheck.h
1 #ifndef ALIMUONRECOCHECK_H
2 #define ALIMUONRECOCHECK_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 /// \ingroup evaluation
10 /// \class AliMUONRecoCheck
11 /// \brief Utility class to check reconstruction
12
13 #include <TObject.h>
14
15 class TClonesArray;
16 class TFile;
17 class TTree;
18 class AliESDEvent;
19 class AliMCEventHandler;
20 class AliMUONVTrackStore;
21
22 class AliMUONRecoCheck : public TObject 
23 {
24 public:
25   AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./");
26   AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler);
27   virtual ~AliMUONRecoCheck();
28
29   /// Return the list of reconstructed tracks
30   AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE);
31   
32   /// Return reference muon tracks
33   AliMUONVTrackStore* TrackRefs(Int_t event);
34
35   /// Return reconstructible reference tracks
36   AliMUONVTrackStore* ReconstructibleTracks(Int_t event);
37   
38   /// Return the run number of the current ESD event
39   Int_t GetRunNumber();
40   
41   /// Return the total number of events.
42   Int_t NumberOfEvents() const;
43   
44   /// Return the reconstructed data of current event
45   const AliESDEvent* GetESDEvent() { return fESDEvent; }
46   
47   /// Return the interface to the Monte Carlo data of current event
48   const AliMCEventHandler* GetMCEventHandler() { return fMCEventHandler; }
49   
50 private:
51   /// Not implemented
52   AliMUONRecoCheck(const AliMUONRecoCheck& rhs);
53   /// Not implemented
54   AliMUONRecoCheck& operator = (const AliMUONRecoCheck& rhs);
55
56   void ResetStores();
57   
58   void MakeReconstructedTracks(Bool_t refit);
59   
60   void MakeTrackRefs();
61   
62   void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore);
63   
64   void MakeReconstructibleTracks();
65
66 private:
67   AliMCEventHandler* fMCEventHandler; ///< to access MC truth information
68   AliESDEvent* fESDEvent; ///< ESD event to access MUON data
69   TTree* fESDTree;        ///< ESD tree to access MUON data
70   TFile* fESDFile;        ///< ESD file to access MUON data
71   
72   Int_t fCurrentEvent; ///< current event number
73   
74   AliMUONVTrackStore* fTrackRefStore;     ///< current simulated tracks (owner)
75   AliMUONVTrackStore* fRecoTrackRefStore; ///< current reconstructible tracks (owner)
76   AliMUONVTrackStore* fRecoTrackStore;    ///< current reconstructed tracks (owner)
77   
78   Bool_t fESDEventOwner;         ///< using constructor from the analysis task
79
80   ClassDef(AliMUONRecoCheck, 0)   //Utility class to check reconstruction
81 };
82
83 #endif
84