]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveITSDigitsInfo.h
Net Particle updates (Jochen Thaeder <jochen@thaeder.de>)
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSDigitsInfo.h
index 6e570d0ab0c39fe3fefde0233a196e991ee5a002..4ff87236e099425b0483e62d20e511ff846399cd 100644 (file)
@@ -7,19 +7,18 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-#ifndef ALIEVE_ITSDigitsInfo_H
-#define ALIEVE_ITSDigitsInfo_H
+#ifndef AliEveITSDigitsInfo_H
+#define AliEveITSDigitsInfo_H
 
 #include <TEveUtil.h>
+#include <TObject.h>
 
 #include <map>
 #include <vector>
 
-#include <TObject.h>
-#include <TClonesArray.h>
-#include <TTree.h>
+class TClonesArray;
+class TTree;
 
-class AliITSgeom;
 class AliITSsegmentationSPD;
 class AliITSsegmentationSDD;
 class AliITSsegmentationSSD;
@@ -30,16 +29,9 @@ class AliRawReader;
 /******************************************************************************/
 // AliEveITSModuleSelection
 /******************************************************************************/
+
 class AliEveITSModuleSelection
 {
-protected:
-  Int_t    fType;      // Type of modules: 0 - SPD, 1 - SDD, 2 - SSD.
-  Int_t    fLayer;     // Layer, 0 - inner SPD, 5 - outer SSD.
-  Float_t  fMinPhi;    // Min phi.
-  Float_t  fMaxPhi;    // Max phi.
-  Float_t  fMinTheta;  // Min theta.
-  Float_t  fMaxTheta;  // Max theta.
-
 public:
   AliEveITSModuleSelection();
   virtual ~AliEveITSModuleSelection() {}
@@ -60,45 +52,37 @@ public:
   void    SetPhiRange  (Float_t x, Float_t y) { fMinPhi   = x; fMaxPhi   = y; }
   void    SetThetaRange(Float_t x, Float_t y) { fMinTheta = x; fMaxTheta = y; }
 
-  ClassDef(AliEveITSModuleSelection, 1); // Helper for selecting a range of ITS modules by type, layer, phi and theta.
+protected:
+  Int_t    fType;      // Type of modules: 0 - SPD, 1 - SDD, 2 - SSD.
+  Int_t    fLayer;     // Layer, 0 - inner SPD, 5 - outer SSD.
+  Float_t  fMinPhi;    // Min phi.
+  Float_t  fMaxPhi;    // Max phi.
+  Float_t  fMinTheta;  // Min theta.
+  Float_t  fMaxTheta;  // Max theta.
+
+  ClassDef(AliEveITSModuleSelection, 0); // Helper for selecting a range of ITS modules by type, layer, phi and theta.
 };
 
+
 /******************************************************************************/
 // AliEveITSDigitsInfo
 /******************************************************************************/
 
 class AliEveITSDigitsInfo : public TObject, public TEveRefCnt
 {
-  AliEveITSDigitsInfo(const AliEveITSDigitsInfo&);            // Not implemented
-  AliEveITSDigitsInfo& operator=(const AliEveITSDigitsInfo&); // Not implemented
-
-private:
-  Float_t fSPDZCoord[192];                // Precalculated z-coordinates for positions of digits.
-
-  void InitInternals();
-
-protected:
-  std::map<Int_t,  TClonesArray*> fSPDmap;     // Map from module-id to SPD data.
-  std::map<Int_t,  TClonesArray*> fSDDmap;     // Map from module-id to SDD data.
-  std::map<Int_t,  TClonesArray*> fSSDmap;     // Map from module-id to SSD data.
-
-  void        SetITSSegmentation();
-
 public:
   TTree*                   fTree;         // Tree from which the digits are read.
 
-  AliITSgeom*              fGeom;         // Provides mapping from module-id to transforamtion-matrix.
   AliITSsegmentationSPD*   fSegSPD;       // Segmentation of SPD.
   AliITSsegmentationSDD*   fSegSDD;       // Segmentation of SDD.
   AliITSsegmentationSSD*   fSegSSD;       // Segmentation of SSD.
-  AliITSDDLModuleMapSDD*   fDDLMapSDD;    // Mapping DDL/module to SDD-module number.
 
-  Int_t                    fSPDMinVal;    // Default lower limit for display of SPD digits.
-  Int_t                    fSSDMinVal;    // Default lower limit for display of SSD digits.
-  Int_t                    fSDDMinVal;    // Default lower limit for display of SDD digits.
-  Int_t                    fSPDMaxVal;    // Default high  limit for display of SPD digits.
-  Int_t                    fSSDMaxVal;    // Default high  limit for display of SSD digits.
-  Int_t                    fSDDMaxVal;    // Default high  limit for display of SDD digits.
+  Int_t                    fSPDMinVal;    // Default low  limit for display of SPD digits.
+  Int_t                    fSSDMinVal;    // Default low  limit for display of SSD digits.
+  Int_t                    fSDDMinVal;    // Default low  limit for display of SDD digits.
+  Int_t                    fSPDMaxVal;    // Default high limit for display of SPD digits.
+  Int_t                    fSSDMaxVal;    // Default high limit for display of SSD digits.
+  Int_t                    fSDDMaxVal;    // Default high limit for display of SDD digits.
 
   Int_t                    fSPDHighLim;   // Maximum value of SPD digits.
   Int_t                    fSDDHighLim;   // Maximum value of SDD digits.
@@ -110,25 +94,49 @@ public:
   Int_t                    fSDDScaleZ[5]; // SDD cell-sizes along Z for display of scaled-digits.
   Int_t                    fSSDScale [5]; // SSD cell-sizes for display of scaled-digits.
 
+  static AliITSDDLModuleMapSDD *fgDDLMapSDD;  // Mapping DDL/module to SDD-module number.
+
+  static TObjArray             *fgDeadModSPD; // Dead modules of SPD.
+  static TObjArray             *fgDeadModSDD; // Dead modules of SDD.
+  static TObjArray             *fgDeadModSSD; // Dead modules of SSD.
+
   AliEveITSDigitsInfo();
   virtual ~AliEveITSDigitsInfo();
 
   void SetTree(TTree* tree);
   void ReadRaw(AliRawReader* raw, Int_t mode);
 
-  TClonesArray* GetDigits(Int_t moduleID, Int_t detector);
+  TClonesArray* GetDigits(Int_t moduleID, Int_t detector) const;
+
+  void GetSPDLocalZ(Int_t j, Float_t& z) const;
 
-  void GetSPDLocalZ(Int_t j, Float_t& z);
+  void GetModuleIDs(AliEveITSModuleSelection* sel, std::vector<UInt_t>& ids) const;
 
-  void GetModuleIDs(AliEveITSModuleSelection* sel, std::vector<UInt_t>& ids);
+  Bool_t HasData(Int_t module, Int_t det_id) const;
+  Bool_t IsDead (Int_t module, Int_t det_id) const;
 
   virtual void Print(Option_t* opt="") const;
 
+protected:
+  mutable std::map<Int_t,  TClonesArray*> fSPDmap; // Map from module-id to SPD data.
+  mutable std::map<Int_t,  TClonesArray*> fSDDmap; // Map from module-id to SDD data.
+  mutable std::map<Int_t,  TClonesArray*> fSSDmap; // Map from module-id to SSD data.
+
+  void SetITSSegmentation();
+
+private:
+  Float_t fSPDZCoord[192]; // Precalculated z-coordinates for positions of digits.
+
+  void InitInternals();
+
+  AliEveITSDigitsInfo(const AliEveITSDigitsInfo&);            // Not implemented
+  AliEveITSDigitsInfo& operator=(const AliEveITSDigitsInfo&); // Not implemented
+
   ClassDef(AliEveITSDigitsInfo, 0); // Stores ITS geometry information and event-data in format suitable for visualization.
-}; // endclass AliEveITSDigitsInfo
+};
 
 
-inline void AliEveITSDigitsInfo::GetSPDLocalZ(Int_t j, Float_t& z)
+inline void AliEveITSDigitsInfo::GetSPDLocalZ(Int_t j, Float_t& z) const
 {
   z = fSPDZCoord[j];
 }