]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONQADataMakerRec.h
memory leak fixed
[u/mrichter/AliRoot.git] / MUON / AliMUONQADataMakerRec.h
index 96084b1a659036931aa2631c18856f7e78e6eb0f..899d1a2636b557c21ad4d46fbcf4898c601435e6 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef AliMUONQADataMakerRec_H
-#define AliMUONQADataMakerRec_H
+#ifndef ALIMUONQADATAMAKERREC_H
+#define ALIMUONQADATAMAKERREC_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 
 // --- AliRoot header files ---
 #include "AliQADataMakerRec.h"
-#include "AliMUONRecoParam.h"
 
-class AliMUONDigitMaker;
-class AliMUONVDigitStore;
-class AliMUONVTriggerStore;
-class AliMUONVClusterStore;
-class AliMUONVTrackerDataMaker;
+class AliMUONVQADataMakerRec;
 
 class AliMUONQADataMakerRec: public AliQADataMakerRec {
 
 public:
-  AliMUONQADataMakerRec();         
-  AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);   
-  AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
+  AliMUONQADataMakerRec(Bool_t tracker=kTRUE, Bool_t trigger=kTRUE);         
   virtual ~AliMUONQADataMakerRec();
-  
-private:
-  /// Raw histograms indices
-  enum ERaw { 
-    kTrackerData           = 3,  ///< Accumulated data
-    kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
-    kTriggerScalersBP      = 22, ///< Trigger scalers on BP histogram per chamber index
-    kTriggerScalersNBP     = 23, ///< Trigger scalers on NBP histogram per chamber index
-    kTriggerScalersDisplay = 24  ///< Trigger scalers display histogram per chamber index
-  };
-         
-  /// Rec points histograms indices
-  enum ERecPoints { 
-    kTriggerDigitsBendPlane    = 0,  ///< Trigger digits on BP histogram index
-    kTriggerDigitsNonBendPlane = 1,  ///< Trigger digits on NBP histogram index
-    kTriggeredBoards           = 2,  ///< Triggered boards histogram index
-    kTriggerDigitsDisplay      = 3,  ///< Trigger digits display histogram per plane index
-    kTriggerBoardsDisplay      = 11, ///< Triggered boards display histogram index
-    
-    kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: # of clusters per chamber
-    kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
-    kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
-                               
-    kTrackerNumberOfClustersPerDE    = 1000, ///< Tracker : number of clusters per DE          
-    kTrackerClusterMultiplicityPerDE = 3000, ///< Tracker : cluster multiplicity per DE                
-    kTrackerClusterChargePerDE       = 5000  ///< Tracker : cluster charge per DE
-  };
-  
-  /// ESD histograms indices
-  enum EESD { 
-    kESDnTracks             = 0,  ///< number of tracks
-    kESDMatchTrig           = 1,  ///< number of tracks matched with trigger
-    kESDMomentum            = 2,  ///< P distribution
-    kESDPt                  = 3,  ///< Pt distribution
-    kESDRapidity            = 4,  ///< rapidity distribution
-    kESDChi2                = 5,  ///< normalized chi2 distribution
-    
-    kESDClusterHitMap       = 6,  ///< cluster position distribution in chamber i
-    kESDnClustersPerTrack   = 16, ///< number of clusters per track
-    kESDnClustersPerCh      = 17, ///< number of clusters per chamber
-    kESDnClustersPerDE      = 18, ///< number of clusters per DE
-    kESDClusterCharge       = 19, ///< cluster charge distribution
-    kESDClusterChargeInCh   = 20, ///< cluster charge distribution in chamber i
-    kESDClusterChargePerDE  = 30, ///< cluster charge per DE: mean +- dispersion
-    kESDClusterMult         = 31, ///< cluster multiplicity distribution
-    kESDClusterMultInCh     = 32, ///< cluster multiplicity distribution in chamber i
-    kESDClusterMultPerDE    = 42, ///< cluster multiplicity per DE: mean +- dispersion
-    
-    kESDResidualX           = 43, ///< cluster-track residual-X distribution
-    kESDResidualY           = 44, ///< cluster-track residual-Y distribution
-    kESDResidualXInCh       = 45, ///< cluster-track residual-X distribution in chamber i
-    kESDResidualYInCh       = 55, ///< cluster-track residual-Y distribution in chamber i
-    kESDResidualXPerDEMean  = 65, ///< cluster-track residual-X per DE: mean
-    kESDResidualYPerDEMean  = 66, ///< cluster-track residual-Y per DE: mean
-    kESDResidualXPerDESigma = 67, ///< cluster-track residual-X per DE: sigma
-    kESDResidualYPerDESigma = 68  ///< cluster-track residual-Y per DE: sigma
-  };
-
-protected:
-       
-  virtual void StartOfDetectorCycle(); 
 
+  /// Return tracker sub-qadatamaker
+  AliMUONVQADataMakerRec* Tracker() const { return fTracker; }
+  /// Return trigger sub-qadatamaker
+  AliMUONVQADataMakerRec* Trigger() const { return fTrigger; }
+  
+  virtual void InitDigits(); 
+  virtual void InitESDs(); 
   virtual void InitRaws(); 
   virtual void InitRecPoints(); 
-  virtual void InitESDs(); 
+
+  virtual void StartOfDetectorCycle(); 
+  
+  void MakeDigits();
   
+  virtual void MakeDigits(TTree* dig); 
+  virtual void MakeESDs(AliESDEvent* esd) ;
   virtual void MakeRaws(AliRawReader* rawReader); 
   virtual void MakeRecPoints(TTree* recpo); 
-  virtual void MakeESDs(AliESDEvent* esd) ;
   
-  virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
+  virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list);
 
-       virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list);
+  virtual void ResetDetector(AliQAv1::TASKINDEX_t task);
+  
+  using AliQADataMakerRec::Add2List;
+  using AliQADataMakerRec::GetData;
+  
+  Int_t Add2List(TH1 * hist, const Int_t index, AliQAv1::TASKINDEX_t task, const Bool_t expert, const Bool_t image, const Bool_t saveForCorr);
+
+       TObject* GetData(AliQAv1::TASKINDEX_t task, const Int_t index) ;
 
 private:
-       
-       void Ctor();
-  void DisplayTriggerInfo(AliQA::TASKINDEX_t task);
-       void InitRecPointsTracker();
-       void InitRecPointsTrigger();
-       void MakeRawsTracker(AliRawReader* rawReader);
-       void MakeRawsTrigger(AliRawReader* rawReader);
-  void MakeRecPointsTracker(TTree* treeR);
-  void MakeRecPointsTrigger(TTree* treeR);
-       
-  const AliMUONRecoParam* GetRecoParam() const { return dynamic_cast<const AliMUONRecoParam *>(fRecoParam); }
+  /// Not implemented
+  AliMUONQADataMakerRec(const AliMUONQADataMakerRec& qadm);   
+  /// Not implemented
+  AliMUONQADataMakerRec& operator=(const AliMUONQADataMakerRec& qadm);
+
+  TObjArray** GetList(AliQAv1::TASKINDEX_t taks);
   
-  Bool_t  fIsInitRaws;       //!<  info if InitRaws() went ok
-  Bool_t  fIsInitRecPointsTracker;  //!<  info if InitRecPoints() went ok
-  Bool_t  fIsInitRecPointsTrigger;  //!<  info if InitRecPoints() went ok
-  Bool_t  fIsInitESDs;       //!<  info if InitESDs() went ok
+private:
+  AliMUONVQADataMakerRec* fTracker; ///< tracker sub-qadatamaker
+  AliMUONVQADataMakerRec* fTrigger; ///< trigger sub-qadatamaker
   
-  AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
-  AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
-  AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
-  AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
-       
-  AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation
-       
-  ClassDef(AliMUONQADataMakerRec,4)  // MUON Quality assurance data maker
+  ClassDef(AliMUONQADataMakerRec,10)  // MUON Quality assurance data maker
 
 };
 #endif