ROOT logo
#ifndef HEMCDETECTOR_H
#define HEMCDETECTOR_H

#include "hdetector.h"

class HEmcDetector : public HDetector {

private:
  Int_t numCells;     // number of cells (without spares)
  static const Int_t cellMap[163]; 
  static Int_t posMap[255];

public:
  HEmcDetector(void);
  virtual ~HEmcDetector(void);

  HCategory *buildCategory(Cat_t cat);
  HCategory *buildMatrixCategory(const Text_t *,Float_t );
  HCategory *buildLinearCategory(const Text_t *,Float_t );

  void activateParIo(HParIo* io);
  Bool_t write(HParIo* io);

  Int_t getNumCells()   const {return numCells;}
  Int_t getMaxSecInSetup(void);

  static Int_t getCell(const Char_t row, const Char_t col);
  static void  getRowCol(const Int_t cell, Char_t& row, Char_t& col);

  /** evaluate cell id in database from mounting position (number) of the ecal modules */
  static Int_t getCellFromPosition(Int_t pos);

  /** evaluate mounting position (number) of the ecal modules from cell id in the database lookup table */
  static Int_t getPositionFromCell(Int_t cell);

  ClassDef(HEmcDetector,0) // EMC detector class
};

#endif /* !HEMCDETECTOR_H */
 hemcdetector.h:1
 hemcdetector.h:2
 hemcdetector.h:3
 hemcdetector.h:4
 hemcdetector.h:5
 hemcdetector.h:6
 hemcdetector.h:7
 hemcdetector.h:8
 hemcdetector.h:9
 hemcdetector.h:10
 hemcdetector.h:11
 hemcdetector.h:12
 hemcdetector.h:13
 hemcdetector.h:14
 hemcdetector.h:15
 hemcdetector.h:16
 hemcdetector.h:17
 hemcdetector.h:18
 hemcdetector.h:19
 hemcdetector.h:20
 hemcdetector.h:21
 hemcdetector.h:22
 hemcdetector.h:23
 hemcdetector.h:24
 hemcdetector.h:25
 hemcdetector.h:26
 hemcdetector.h:27
 hemcdetector.h:28
 hemcdetector.h:29
 hemcdetector.h:30
 hemcdetector.h:31
 hemcdetector.h:32
 hemcdetector.h:33
 hemcdetector.h:34
 hemcdetector.h:35
 hemcdetector.h:36
 hemcdetector.h:37
 hemcdetector.h:38
 hemcdetector.h:39