]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONESDInterface.h
- Put the code to fill ESD with trigger data back in the correct framework:
[u/mrichter/AliRoot.git] / MUON / AliMUONESDInterface.h
index 9858ea9466ae2230b4e55a56c765d5a1154cbf9a..a6b141d5154b81e486438fadf096c61bb3321eaa 100644 (file)
@@ -23,7 +23,10 @@ class AliMUONVCluster;
 class AliMUONVClusterStore;
 class AliMUONVDigit;
 class AliMUONVDigitStore;
+class AliMUONLocalTrigger;
+class AliMUONVTriggerStore;
 class AliMUONTrackParam;
+class AliMUONVTrackReconstructor;
 class AliESDEvent;
 class AliESDMuonTrack;
 class AliESDMuonCluster;
@@ -45,6 +48,8 @@ public: // methods to play with internal objects
   AliMUONVTrackStore* GetTracks() const {return fTracks;}
   /// Return internal track store
   AliMUONVDigitStore* GetDigits() const {return fDigits;}
+  /// Return internal trigger store
+  AliMUONVTriggerStore* GetTriggers() const {return fTriggers;}
   
   // Return numbers of tracks/clusters/digits
   Int_t GetNTracks() const;
@@ -54,12 +59,14 @@ public: // methods to play with internal objects
   Int_t GetNDigits(UInt_t trackId) const;
   Int_t GetNDigits(UInt_t trackId, UInt_t clusterId) const;
   Int_t GetNDigitsInCluster(UInt_t clusterId) const;
+  Int_t GetNTriggers() const;
   
   // Find internal MUON objects
-  AliMUONTrack*    FindTrack(UInt_t trackId) const;
-  AliMUONVCluster* FindCluster(UInt_t clusterId) const;
-  AliMUONVCluster* FindCluster(UInt_t trackId, UInt_t clusterId) const;
-  AliMUONVDigit*   FindDigit(UInt_t digitId) const;
+  AliMUONTrack*        FindTrack(UInt_t trackId) const;
+  AliMUONVCluster*     FindCluster(UInt_t clusterId) const;
+  AliMUONVCluster*     FindCluster(UInt_t trackId, UInt_t clusterId) const;
+  AliMUONVDigit*       FindDigit(UInt_t digitId) const;
+  AliMUONLocalTrigger* FindLocalTrigger(Int_t boardNumber) const;
   
   // iterate over internal MUON objects
   TIterator* CreateTrackIterator() const;
@@ -69,6 +76,7 @@ public: // methods to play with internal objects
   TIterator* CreateDigitIterator(UInt_t trackId) const;
   TIterator* CreateDigitIterator(UInt_t trackId, UInt_t clusterId) const;
   TIterator* CreateDigitIteratorInCluster(UInt_t clusterId) const;
+  TIterator* CreateLocalTriggerIterator() const;
   
   
 public: // static methods
@@ -79,11 +87,14 @@ public: // static methods
   static void UseClusterStore(TString name) {fgClusterStoreName = name;}
   /// Set the version of digit store
   static void UseDigitStore(TString name) {fgDigitStoreName = name;}
+  /// Set the version of trigger store
+  static void UseTriggerStore(TString name) {fgTriggerStoreName = name;}
   
   // Create empty stores (use the version defined in this interface)
   static AliMUONVTrackStore* NewTrackStore();
   static AliMUONVClusterStore* NewClusterStore();
   static AliMUONVDigitStore* NewDigitStore();
+  static AliMUONVTriggerStore* NewTriggerStore();
   
   // ESD track parameters --> MUON track parameters
   static void GetParamAtVertex(const AliESDMuonTrack& esdTrack, AliMUONTrackParam& trackParam);
@@ -99,17 +110,21 @@ public: // static methods
   
   // ESDMuon objects --> MUON objects conversion
   static void ESDToMUON(const AliESDMuonTrack& esdTrack, AliMUONTrack& track);
+  static void ESDToMUON(const AliESDMuonTrack& esdTrack, AliMUONLocalTrigger& locTrg);
   static void ESDToMUON(const AliESDMuonCluster& esdCluster, AliMUONVCluster& cluster);
   static void ESDToMUON(const AliESDMuonPad& esdPad, AliMUONVDigit& digit);
   
   // MUON objects --> ESDMuon objects conversion
-  static void MUONToESD(const AliMUONTrack& track, AliESDMuonTrack& esdTrack, const Double_t vertex[3], const AliMUONVDigitStore* digits = 0x0);
+  static void MUONToESD(const AliMUONTrack& track, AliESDMuonTrack& esdTrack, const Double_t vertex[3],
+                       const AliMUONVDigitStore* digits = 0x0, const AliMUONLocalTrigger* locTrg = 0x0);
+  static void MUONToESD(const AliMUONLocalTrigger& locTrg, AliESDMuonTrack& esdTrack, UInt_t trackId);
   static void MUONToESD(const AliMUONVCluster& cluster, AliESDMuonCluster& esdCluster, const AliMUONVDigitStore* digits = 0x0);
   static void MUONToESD(const AliMUONVDigit& digit, AliESDMuonPad& esdPad);
   
   // Add ESD object into the corresponding MUON store
   // return a pointer to the corresponding MUON object into the store
   static AliMUONTrack*    Add(const AliESDMuonTrack& esdTrack, AliMUONVTrackStore& trackStore);
+  static void             Add(const AliESDMuonTrack& esdTrack, AliMUONVTriggerStore& triggerStore);
   static AliMUONVCluster* Add(const AliESDMuonCluster& esdCluster, AliMUONVClusterStore& clusterStore);
   static AliMUONVDigit*   Add(const AliESDMuonPad& esdPad, AliMUONVDigitStore& digitStore);
   
@@ -128,18 +143,22 @@ private:
   
 private:
   
+  static AliMUONVTrackReconstructor* fgTracker; ///< track reconstructor for refitting
+    
   static TString fgTrackStoreName;   ///< class name of the track store to use
   static TString fgClusterStoreName; ///< class name of the cluster store to use
   static TString fgDigitStoreName;   ///< class name of the digit store to use
+  static TString fgTriggerStoreName; ///< class name of the trigger store to use
   
   // data containers
-  AliMUONVTrackStore* fTracks; ///< track container
-  AliMUONVDigitStore* fDigits; ///< digit container
+  AliMUONVTrackStore*   fTracks;   ///< track container
+  AliMUONVDigitStore*   fDigits;   ///< digit container
+  AliMUONVTriggerStore* fTriggers; ///< trigger container
   
   // maps (to speed up data retrieval)
   AliMpExMap* fClusterMap; ///< map of clusters
   AliMpExMap* fDigitMap;   ///< map of digits
-    
+  
     
   ClassDef(AliMUONESDInterface,0)
 };