bug fixed
[u/mrichter/AliRoot.git] / MUON / AliMUONRecoCheck.h
CommitLineData
b8dc484b 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
692de412 7/* $Id$ */
8
6b092dfc 9/// \ingroup evaluation
692de412 10/// \class AliMUONRecoCheck
11/// \brief Utility class to check reconstruction
12
b8dc484b 13#include <TObject.h>
b8dc484b 14
15class TClonesArray;
61fed964 16class TFile;
17class TTree;
18class AliESDEvent;
96ebe67e 19class AliMCEventHandler;
48217459 20class AliMUONVTrackStore;
9f164762 21class AliMUONVTriggerTrackStore;
f202486b 22class AliMUONTrack;
9f164762 23class AliMUONTriggerTrack;
24class AliMUONGeometryTransformer;
25class AliMUONTriggerCircuit;
26class AliMUONLocalTrigger;
b8dc484b 27
28class AliMUONRecoCheck : public TObject
29{
30public:
1f2d22de 31 AliMUONRecoCheck(const Char_t *chLoader, const Char_t *pathSim = "./");
7c29acf1 32 AliMUONRecoCheck(AliESDEvent *esdEvent, AliMCEventHandler *mcEventHandler);
48217459 33 virtual ~AliMUONRecoCheck();
34
9bdda5f6 35 /// Return the list of reconstructed tracks
a99c3449 36 AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE);
9f164762 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
9bdda5f6 43 /// Return reference muon tracks
48217459 44 AliMUONVTrackStore* TrackRefs(Int_t event);
b8dc484b 45
9f164762 46 /// Return triggerable reference tracks
47 AliMUONVTriggerTrackStore* TriggerableTracks(Int_t event);
48
9bdda5f6 49 /// Return reconstructible reference tracks
f202486b 50 AliMUONVTrackStore* ReconstructibleTracks(Int_t event, UInt_t requestedStationMask = 0x1F, Bool_t request2ChInSameSt45 = kTRUE);
9f164762 51
52
a99c3449 53 /// Return the run number of the current ESD event
54 Int_t GetRunNumber();
55
9bdda5f6 56 /// Return the total number of events.
57 Int_t NumberOfEvents() const;
58
61fed964 59 /// Return the reconstructed data of current event
9ee1d6ff 60 const AliESDEvent* GetESDEvent() const { return fESDEvent; }
9bdda5f6 61
61fed964 62 /// Return the interface to the Monte Carlo data of current event
9ee1d6ff 63 const AliMCEventHandler* GetMCEventHandler() const { return fMCEventHandler; }
9bdda5f6 64
f202486b 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
9f164762 69 /// Return the trigger track from the store matched with the given track (or 0x0)
70 static AliMUONTriggerTrack* FindCompatibleTrack(AliMUONTriggerTrack &track,
57e2ad1a 71 const AliMUONVTriggerTrackStore &triggerTrackStore,
9f164762 72 Double_t sigmaCut = 10.);
73
b8dc484b 74private:
71a2d3aa 75 /// Not implemented
76 AliMUONRecoCheck(const AliMUONRecoCheck& rhs);
77 /// Not implemented
78 AliMUONRecoCheck& operator = (const AliMUONRecoCheck& rhs);
068e4c36 79
96ebe67e 80 void ResetStores();
81
a99c3449 82 void MakeReconstructedTracks(Bool_t refit);
9f164762 83
84 void MakeTriggeredTracks();
61fed964 85
96ebe67e 86 void MakeTrackRefs();
48217459 87
96ebe67e 88 void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore);
48217459 89
f202486b 90 void MakeReconstructibleTracks(UInt_t requestedStationMask, Bool_t request2ChInSameSt45 = kTRUE);
9f164762 91
92 void MakeTriggerableTracks();
93
94 Bool_t InitCircuit();
96ebe67e 95
48217459 96private:
96ebe67e 97 AliMCEventHandler* fMCEventHandler; ///< to access MC truth information
61fed964 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
48217459 101
96ebe67e 102 Int_t fCurrentEvent; ///< current event number
103
104 AliMUONVTrackStore* fTrackRefStore; ///< current simulated tracks (owner)
105 AliMUONVTrackStore* fRecoTrackRefStore; ///< current reconstructible tracks (owner)
9f164762 106 AliMUONVTriggerTrackStore* fRecoTriggerRefStore; ///< current triggerable tracks (owner)
96ebe67e 107 AliMUONVTrackStore* fRecoTrackStore; ///< current reconstructed tracks (owner)
9f164762 108 AliMUONVTriggerTrackStore* fRecoTriggerTrackStore; ///< current reconstructed trigger tracks (owner)
109
110 AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer
111 AliMUONTriggerCircuit* fTriggerCircuit; ///< trigger circuit
96ebe67e 112
7c29acf1 113 Bool_t fESDEventOwner; ///< using constructor from the analysis task
114
54d7ba50 115 ClassDef(AliMUONRecoCheck, 0) //Utility class to check reconstruction
b8dc484b 116};
117
118#endif
119