]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRecoCheck.h
Fixed memory leak
[u/mrichter/AliRoot.git] / MUON / AliMUONRecoCheck.h
index 47485d82395181cdb97528daecaac608c5d86357..381e4c8680d0286fda81fd5207893a3528791b59 100644 (file)
@@ -18,6 +18,15 @@ 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 
 {
@@ -27,22 +36,46 @@ public:
   virtual ~AliMUONRecoCheck();
 
   /// Return the list of reconstructed tracks
-  AliMUONVTrackStore* ReconstructedTracks(Int_t event);
-  
+  AliMUONVTrackStore* ReconstructedTracks(Int_t event, Bool_t refit = kTRUE);
+
+  /// Return the list of reconstructed trigger tracks
+  AliMUONVTriggerTrackStore* TriggeredTracks(Int_t event);
+
+  Bool_t TriggerToTrack(const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack);
+       
   /// Return reference muon tracks
   AliMUONVTrackStore* TrackRefs(Int_t event);
 
+  /// Return triggerable reference tracks
+  AliMUONVTriggerTrackStore* TriggerableTracks(Int_t event);
+       
   /// Return reconstructible reference tracks
-  AliMUONVTrackStore* ReconstructibleTracks(Int_t event);
+  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() { return fESDEvent; }
+  const AliESDEvent* GetESDEvent() const { return fESDEvent; }
   
   /// Return the interface to the Monte Carlo data of current event
-  const AliMCEventHandler* GetMCEventHandler() { return fMCEventHandler; }
+  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
@@ -52,14 +85,26 @@ private:
 
   void ResetStores();
   
-  void MakeReconstructedTracks();
+  void MakeReconstructedTracks(Bool_t refit);
+       
+  void MakeTriggeredTracks();
   
   void MakeTrackRefs();
   
   void CleanMuonTrackRef(const AliMUONVTrackStore *tmpTrackRefStore);
   
-  void MakeReconstructibleTracks();
+  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:
   AliMCEventHandler* fMCEventHandler; ///< to access MC truth information
   AliESDEvent* fESDEvent; ///< ESD event to access MUON data
@@ -70,7 +115,14 @@ private:
   
   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