Always delete TObjArrays created by TString::Tokenize (Ruben)
[u/mrichter/AliRoot.git] / MUON / AliMUONSimpleClusterServer.h
index 33be883..a94261e 100644 (file)
@@ -6,7 +6,7 @@
 
 // $Id$
 
-/// \ingroup reco
+/// \ingroup rec
 /// \class AliMUONSimpleClusterServer
 /// \brief Implementation of AliMUONVClusterServer interface
 /// 
 #  include "AliMUONVClusterServer.h"
 #endif
 
-class AliMUONVClusterFinder;
 class AliMUONGeometryTransformer;
-class TClonesArray;
+class AliMUONTriggerTrackToTrackerClusters;
+class AliMUONVClusterFinder;
+class AliMUONCluster;
+class AliMpVSegmentation;
 class AliMpExMap;
+class AliMpExMapIterator;
+class TClonesArray;
 
 class AliMUONSimpleClusterServer : public AliMUONVClusterServer
 {
 public:
-  AliMUONSimpleClusterServer(AliMUONVClusterFinder& clusterFinder,
+  AliMUONSimpleClusterServer(AliMUONVClusterFinder* clusterFinder,
                              const AliMUONGeometryTransformer& transformer);
   
   virtual ~AliMUONSimpleClusterServer();
   
   Int_t Clusterize(Int_t chamberId,
                    AliMUONVClusterStore& clusterStore,
-                   const AliMpArea& area);
+                   const AliMpArea& area,
+                   const AliMUONRecoParam* recoParam = 0x0);
   
-  void UseDigitStore(const AliMUONVDigitStore& digitStore);
+  void UseDigits(TIter& next, AliMUONVDigitStore* digitStore = 0x0);
   
   void Print(Option_t* opt="") const;
-  
+
+  /// Use trigger tracks. Return kFALSE if not used.
+  virtual Bool_t UseTriggerTrackStore(AliMUONVTriggerTrackStore* trackStore);
+
 private:
   /// Not implemented
   AliMUONSimpleClusterServer(const AliMUONSimpleClusterServer& rhs);
@@ -47,13 +55,18 @@ private:
     
   void Global2Local(Int_t detElemId, const AliMpArea& globalArea, AliMpArea& localArea) const;
 
-  TClonesArray* PadArray(Int_t detElemId, Int_t cathode) const;
+  TObjArray* PadArray(Int_t detElemId, Int_t cathode) const;
+  
+  Int_t FindMCLabel(const AliMUONCluster& cluster, Int_t detElemId, const AliMpVSegmentation* seg[2]) const;
   
 private:
-  AliMUONVClusterFinder& fClusterFinder; //!< the cluster finder
-  const AliMUONGeometryTransformer& fTransformer; //!< the geometry transformer
+  AliMUONVDigitStore* fDigitStore; //!< the digit store (not owner)
+  AliMUONVClusterFinder* fClusterFinder; //!< the cluster finder (owner)
+  const AliMUONGeometryTransformer& fkTransformer; //!< the geometry transformer (not owner)
   AliMpExMap* fPads[2]; ///< map of TClonesArray of AliMUONPads
-  AliMpExMap* fDEAreas; ///< map of detection element areas in global coordinates
+  AliMpExMapIterator* fPadsIterator[2]; ///< iterator for the map of TClonesArray of AliMUONPads
+  AliMUONVTriggerTrackStore* fTriggerTrackStore; ///< trigger track store (if bypassing of St45 was requested) (not owner)
+  AliMUONTriggerTrackToTrackerClusters* fBypass; ///< to convert trigger track into tracker clusters (owner)
   
   ClassDef(AliMUONSimpleClusterServer,0) // Cluster server
 };