Changed default OCDB from 2009 to 2010
[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 class AliMUONVTriggerTrackStore;
22 class AliMUONTrack;
23 class AliMUONTriggerTrack;
24 class AliMUONGeometryTransformer;
25 class AliMUONTriggerCircuit;
26 class AliMUONLocalTrigger;
27
28 class AliMUONRecoCheck : public TObject 
29 {
30 public:
31   AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./");
32   AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler);
33   virtual ~AliMUONRecoCheck();
34
35   /// Return the list of reconstructed tracks
36   AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE);
37
38   /// Return the list of reconstructed trigger tracks
39   AliMUONVTriggerTrackStore* TriggeredTracks(Int_t event);
40
41   void TriggerToTrack(const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack);
42         
43   /// Return reference muon tracks
44   AliMUONVTrackStore* TrackRefs(Int_t event);
45
46   /// Return triggerable reference tracks
47   AliMUONVTriggerTrackStore* TriggerableTracks(Int_t event);
48         
49   /// Return reconstructible reference tracks
50   AliMUONVTrackStore* ReconstructibleTracks(Int_t event, UInt_t requestedStationMask = 0x1F, Bool_t request2ChInSameSt45 = kTRUE);
51
52         
53   /// Return the run number of the current ESD event
54   Int_t GetRunNumber();
55   
56   /// Return the total number of events.
57   Int_t NumberOfEvents() const;
58   
59   /// Return the reconstructed data of current event
60   const AliESDEvent* GetESDEvent() { return fESDEvent; }
61   
62   /// Return the interface to the Monte Carlo data of current event
63   const AliMCEventHandler* GetMCEventHandler() { return fMCEventHandler; }
64   
65   /// Return the track from the store matched with the given track (or 0x0) and the fraction of matched clusters.
66   static AliMUONTrack* FindCompatibleTrack(AliMUONTrack &track, AliMUONVTrackStore &trackStore,
67                                            Int_t &nMatchClusters, Bool_t useLabel = kFALSE, Double_t sigmaCut = 10.);
68   
69   /// Return the trigger track from the store matched with the given track (or 0x0)
70   static AliMUONTriggerTrack* FindCompatibleTrack(AliMUONTriggerTrack &track,
71                                                   AliMUONVTriggerTrackStore &triggerTrackStore,
72                                                   Double_t sigmaCut = 10.);
73   
74 private:
75   /// Not implemented
76   AliMUONRecoCheck(const AliMUONRecoCheck& rhs);
77   /// Not implemented
78   AliMUONRecoCheck& operator = (const AliMUONRecoCheck& rhs);
79
80   void ResetStores();
81   
82   void MakeReconstructedTracks(Bool_t refit);
83         
84   void MakeTriggeredTracks();
85   
86   void MakeTrackRefs();
87   
88   void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore);
89   
90   void MakeReconstructibleTracks(UInt_t requestedStationMask, Bool_t request2ChInSameSt45 = kTRUE);
91         
92   void MakeTriggerableTracks();
93         
94   Bool_t InitCircuit();
95
96 private:
97   AliMCEventHandler* fMCEventHandler; ///< to access MC truth information
98   AliESDEvent* fESDEvent; ///< ESD event to access MUON data
99   TTree* fESDTree;        ///< ESD tree to access MUON data
100   TFile* fESDFile;        ///< ESD file to access MUON data
101   
102   Int_t fCurrentEvent; ///< current event number
103   
104   AliMUONVTrackStore* fTrackRefStore;     ///< current simulated tracks (owner)
105   AliMUONVTrackStore* fRecoTrackRefStore; ///< current reconstructible tracks (owner)
106   AliMUONVTriggerTrackStore* fRecoTriggerRefStore; ///< current triggerable tracks (owner)
107   AliMUONVTrackStore* fRecoTrackStore;    ///< current reconstructed tracks (owner)
108   AliMUONVTriggerTrackStore* fRecoTriggerTrackStore;    ///< current reconstructed trigger tracks (owner)
109         
110   AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer
111   AliMUONTriggerCircuit* fTriggerCircuit; ///< trigger circuit
112   
113   Bool_t fESDEventOwner;         ///< using constructor from the analysis task
114
115   ClassDef(AliMUONRecoCheck, 0)   //Utility class to check reconstruction
116 };
117
118 #endif
119