]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackerQADataMakerRec.h
Updated AddTask for pPb
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerQADataMakerRec.h
index 0d1529e59bdea4fe3e90ec6aba483f448d9b9e6e..b3c764cfdfeac88f2a1e1e4738c9b587f4c452c7 100644 (file)
@@ -13,6 +13,7 @@
 // --- AliRoot header files ---
 #include "AliMUONVQADataMakerRec.h"
 #include "AliMUONRecoParam.h"
+#include "AliQAv1.h"
 
 class AliMUONDigitMaker;
 class AliMUONVClusterStore;
@@ -22,6 +23,8 @@ class AliMUONVTrackerData;
 class AliMUONVTrackerDataMaker;
 class AliMUONCalibrationData;
 class AliMUONQAMappingCheck;
+class AliMUONLogger;
+class AliMUONQADataMakerRec;
 
 class AliMUONTrackerQADataMakerRec: public AliMUONVQADataMakerRec {
 
@@ -37,129 +40,77 @@ public:
   virtual void InitRecPoints(); 
   
   void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list);
+  void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list);
   void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list);
   void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list);
-  void EndOfDetectorCycleDigits(Int_t, TObjArray**) {}
-    
+
   virtual void MakeDigits(TTree* dig); 
   virtual void MakeESDs(AliESDEvent* esd) ;
   virtual void MakeRaws(AliRawReader* rawReader); 
   virtual void MakeRecPoints(TTree* recpo); 
   
-public:
-
-  /// Raw histograms indices
-  enum ERaw { 
-    kTrackerData              = 3,  ///< Accumulated data
-    kTrackerBusPatchOccupancy = 4, ///< Bus patch occupancies
-    kTrackerBusPatchNofPads   = 5, ///< Number of pads per bus patch
-    kTrackerBusPatchNofManus  = 6, ///< Number of manus per bus patch
-    kTrackerBusPatchConfig    = 7, ///< Configuration of the tracker
-  };
-         
-  /// Rec points histograms indices
-  enum ERecPoints { 
-    kTrackerNumberOfClustersPerChamber    = 100, ///< Tracker: number of clusters per chamber
-    kTrackerClusterMultiplicityPerChMean  = 101, ///< cluster size per Ch: mean
-    kTrackerClusterMultiplicityPerChSigma = 102, ///< cluster size per Ch: dispersion
-    kTrackerClusterChargePerChMean        = 103, ///< cluster charge per Ch: mean
-    kTrackerClusterChargePerChSigma       = 104, ///< cluster charge per Ch: dispersion
-
-    kTrackerRecPoints = 105, ///< Tracker : tracker data of clusters (all and mono-cathode ones)
-
-    kTrackerClusterMultiplicityPerChamber = 200, ///< Tracker: cluster multiplicity per chamber
-    kTrackerClusterChargePerChamber       = 300, ///< Tracker: cluster charge per chamber
-    kTrackerClusterHitMapPerChamber       = 400, ///< Tracker: cluster position distribution per chamber
-    
-    kTrackerNumberOfClustersPerDE        = 1000, ///< Tracker : number of clusters per DE              
-    kTrackerClusterMultiplicityPerDEMean = 1001, ///< cluster size per DE: mean
-    kTrackerClusterChargePerDEMean       = 1002, ///< cluster charge per DE: mean
-    
-    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
-    kESDProbChi2                = 6,  ///< distribution of probability of chi2
-    
-    kESDClusterHitMap           = 7,  ///< cluster position distribution in chamber i
-    kESDnClustersPerTrack       = 17, ///< number of clusters per track
-    kESDnClustersPerCh          = 18, ///< number of clusters per chamber per track
-    kESDnClustersPerDE          = 19, ///< number of clusters per DE per track
-    kESDClusterChargeInCh       = 20, ///< cluster charge distribution in chamber i
-    kESDClusterChargePerChMean  = 30, ///< cluster charge per Ch: mean
-    kESDClusterChargePerChSigma = 31, ///< cluster charge per Ch: dispersion
-    kESDClusterChargePerDE      = 32, ///< cluster charge per DE: mean
-    kESDClusterSizeInCh         = 33, ///< cluster size distribution in chamber i
-    kESDClusterSizePerChMean    = 43, ///< cluster size per Ch: mean
-    kESDClusterSizePerChSigma   = 44, ///< cluster size per Ch: dispersion
-    kESDClusterSizePerDE        = 45, ///< cluster size per DE: mean
-    
-    kESDResidualXInCh           = 46, ///< cluster-track residual-X distribution in chamber i
-    kESDResidualYInCh           = 56, ///< cluster-track residual-Y distribution in chamber i
-    kESDResidualXPerChMean      = 66, ///< cluster-track residual-X per Ch: mean
-    kESDResidualYPerChMean      = 67, ///< cluster-track residual-Y per Ch: mean
-    kESDResidualXPerChSigma     = 68, ///< cluster-track residual-X per Ch: dispersion
-    kESDResidualYPerChSigma     = 69, ///< cluster-track residual-Y per Ch: dispersion
-    kESDResidualXPerDEMean      = 70, ///< cluster-track residual-X per DE: mean
-    kESDResidualYPerDEMean      = 71, ///< cluster-track residual-Y per DE: mean
-    kESDResidualXPerDESigma     = 72, ///< cluster-track residual-X per DE: dispersion
-    kESDResidualYPerDESigma     = 73, ///< cluster-track residual-Y per DE: dispersion
-    kESDLocalChi2XInCh          = 74, ///< local chi2-X distribution in chamber i
-    kESDLocalChi2YInCh          = 84, ///< local chi2-Y distribution in chamber i
-    kESDLocalChi2XPerChMean     = 94, ///< local chi2-X per Ch: mean
-    kESDLocalChi2YPerChMean     = 95, ///< local chi2-Y per Ch: mean
-    kESDLocalChi2XPerDEMean     = 96, ///< local chi2-X per DE: mean
-    kESDLocalChi2YPerDEMean     = 97, ///< local chi2-Y per DE: mean
-    kESDLocalChi2InCh           = 98, ///< local chi2-X distribution in chamber i
-    kESDLocalChi2PerChMean      = 108, ///< local chi2 per Ch: mean
-    kESDLocalChi2PerDEMean      = 109, ///< local chi2 per DE: mean
-    
-    kESDThetaX                  = 110, ///< thetaX distribution
-    kESDThetaY                  = 111, ///< thetaY distribution
-    
-    kESDnTotClustersPerCh       = 1000, ///< total number of associated clusters per chamber
-    kESDnTotClustersPerDE       = 1001, ///< total number of associated clusters per DE
-    kESDnTotFullClustersPerDE   = 1002, ///< total number of associated clusters containing pad info per DE
-    kESDSumClusterChargePerDE   = 1003, ///< sum of cluster charge per DE
-    kESDSumClusterSizePerDE     = 1004, ///< sum of cluster size per DE
-    kESDSumResidualXPerDE       = 1005, ///< sum of cluster-track residual-X per DE
-    kESDSumResidualYPerDE       = 1006, ///< sum of cluster-track residual-Y per DE
-    kESDSumResidualX2PerDE      = 1007, ///< sum of cluster-track residual-X**2 per DE
-    kESDSumResidualY2PerDE      = 1008, ///< sum of cluster-track residual-Y**2 per DE
-    kESDSumLocalChi2XPerDE      = 1009, ///< sum of local chi2-X per DE
-    kESDSumLocalChi2YPerDE      = 1010, ///< sum of local chi2-Y per DE
-    kESDSumLocalChi2PerDE       = 1011  ///< sum of local chi2 per DE
-  };
+  void ResetDetectorRaws(TObjArray* list);
   
 private:
+
+  AliMUONQADataMakerRec* Master() const;
+  
+  void BookHistograms(AliQAv1::TASKINDEX_t task);
+
+  void FillReadoutStatus(AliMUONLogger& log, AliMUONVTrackerData* data, Int_t trigCl);
+  
+  void FillEventSize(AliRawReader* rawReader);
   
+  void InitCommon();
+
   void InsertTrackerData(Int_t specie, TObjArray** list, TObject* object, 
-                         Int_t indexNumber, Bool_t replace=kFALSE);
+                         Int_t indexNumber, 
+                         Bool_t replace=kFALSE);
+  
+  void ProjectTrackerData(AliMUONVTrackerData* data, 
+                          TH1& hbp,
+                          TH1& hnevents,
+                          TH1& hddl,
+                          TH1& hddlevents);
+
+  AliMUONVTrackerDataMaker* TrackerDataMaker(Int_t specie) const;
+
+  AliMUONVTrackerDataMaker* TrackerDataMaker(Int_t specie, Bool_t create);
+  
+  AliMUONQAMappingCheck* MappingCheckRecPoints(Int_t specie, Bool_t create=kFALSE);
+  
+  AliMUONVTrackerData* TrackerCalData(Int_t specie, Bool_t create=kFALSE);
+  
+  AliMUONVTrackerData* TrackerRecData(Int_t specie, Bool_t create=kFALSE);
+  
+  TObjArray* GetArray(TObjArray*& array, Bool_t create);
 
 private:
-       AliMUONTrackerQADataMakerRec(const AliMUONTrackerQADataMakerRec& rhs);
-       AliMUONTrackerQADataMakerRec& operator=(const AliMUONTrackerQADataMakerRec& rhs);
+  /// Not implemented
+  AliMUONTrackerQADataMakerRec(const AliMUONTrackerQADataMakerRec& rhs);
+  /// Not implemented
+  AliMUONTrackerQADataMakerRec& operator=(const AliMUONTrackerQADataMakerRec& rhs);
   
   AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
   AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
   AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
        
-  AliMUONVTrackerDataMaker* fTrackerDataMaker; //!< tracker data accumulation (Raw)
+  AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
   
-  AliMUONQAMappingCheck* fMappingCheckRecPoints; //!< mapping cross-checker (RecPoints)
+  AliMUONLogger* fLogger; //!< (readout) error logger
   
-  AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
+  TH1* fBusPatchConfig; //!< bus patch configuration
+  
+  Double_t fBPxmin; //!< min bin value for bus patch
+  Double_t fBPxmax; //!< max bin value for bus patch
+  Int_t fBPnbins; //!< number of bus patch bins
+
+  TObjArray* fTrackerDataMakerArray; //!< tracker data accumulation (Raws)  
+  TObjArray* fTrackerCalDataArray; //!< tracker data accumulation (calibrated digits)  
+  TObjArray* fTrackerRecDataArray; //!< tracker data accumulation (only calibrated digits belonging to reconstructed clusters)
+  TObjArray* fMappingCheckRecPointsArray; //!< mapping cross-checker (RecPoints)  
   
-  ClassDef(AliMUONTrackerQADataMakerRec,1)  // MUON Quality assurance data maker
+  ClassDef(AliMUONTrackerQADataMakerRec,5)  // MUON Quality assurance data maker
 
 };
 #endif