]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONQADataMakerRec.h
changed return type of StoreAlignObjToFile methods
[u/mrichter/AliRoot.git] / MUON / AliMUONQADataMakerRec.h
index b822985bb8dc6179d5d4f9768a12c5e933b96fd1..96084b1a659036931aa2631c18856f7e78e6eb0f 100644 (file)
@@ -3,25 +3,22 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+// $Id$
+
 /// \ingroup rec
 /// \class AliMUONQADataMakerRec
 /// \brief MUON Quality assurance data maker
 ///
-//  Author Christian Finck
-
-// dummy function for simulation part
-// to avoid circular dependencie
-
-// --- ROOT system ---
-class TObjArray; 
 
 // --- AliRoot header files ---
-class AliMUONVTrackStore;
+#include "AliQADataMakerRec.h"
+#include "AliMUONRecoParam.h"
+
 class AliMUONDigitMaker;
 class AliMUONVDigitStore;
 class AliMUONVTriggerStore;
-
-#include "AliQADataMakerRec.h"
+class AliMUONVClusterStore;
+class AliMUONVTrackerDataMaker;
 
 class AliMUONQADataMakerRec: public AliQADataMakerRec {
 
@@ -32,22 +29,104 @@ public:
   virtual ~AliMUONQADataMakerRec();
   
 private:
-  virtual void   StartOfDetectorCycle(); 
+  /// 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
+  };
 
-  virtual void   InitRaws(); 
-  virtual void   InitRecPoints(); 
-  virtual void   InitESDs(); 
+protected:
+       
+  virtual void StartOfDetectorCycle(); 
+
+  virtual void InitRaws(); 
+  virtual void InitRecPoints(); 
+  virtual void InitESDs(); 
+  
+  virtual void MakeRaws(AliRawReader* rawReader); 
+  virtual void MakeRecPoints(TTree* recpo); 
+  virtual void MakeESDs(AliESDEvent* esd) ;
   
-  virtual void   MakeRaws(AliRawReader* rawReader); 
-  virtual void   MakeRecPoints(TTree* recpo); 
-  virtual void   MakeESDs(AliESDEvent* esd) ;
-  virtual void   EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list);
+  virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t) {}
 
-  AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
-  AliMUONVTriggerStore* fTriggerStore; //!< pointer to trigger store
-  AliMUONDigitMaker* fDigitMaker;  //!< pointer to digit maker
+       virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list);
 
-  ClassDef(AliMUONQADataMakerRec,2)  // MUON Quality assurance data maker
+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); }
+  
+  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
+  
+  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
 
 };
 #endif