#ifndef HKalDetCradle_h
#define HKalDetCradle_h
#include "TObjArray.h"
class HMdcSizesCells;
class HKalMdcMeasLayer;
class HKalMixture;
class HKalDetCradle : public TObjArray {
private:
static const Int_t kNumMdcMats = 5;
static const Int_t kNumMdcs = 4;
static const Int_t kNumSecs = 6;
Int_t nLayersInMdc;
HKalMixture *matAir;
HKalMixture **matsMdc;
public:
enum mdcComponent {
kCatWi = 0,
kFieldWi = 1,
kSenseWi = 2,
kWindow = 3,
kGas = 4
};
public:
HKalDetCradle();
HKalDetCradle(Int_t nLayInMdc, const TObjArray *customMats=NULL);
virtual ~HKalDetCradle();
virtual void addMdcLayersToCradle (const HMdcSizesCells *fSizesCells, Int_t sector, Int_t module, Int_t nLayers);
virtual Int_t getLayersInMdc () const { return nLayersInMdc; }
virtual const HKalMdcMeasLayer* getMdcLayerAt (Int_t sector, Int_t module, Int_t layer=0) const;
virtual HKalMixture* getMdcMaterial (mdcComponent comp, Int_t module) const;
virtual void getMdcMaterialVolumeFracs(Float_t volFracs[kNumMdcMats], Int_t sector, Int_t module, Int_t layer) const;
static void getProperties (Float_t mat[kNumMdcMats], const Char_t *id);
virtual void initMdcMaterials ();
virtual void install (HKalMdcMeasLayer *layer);
virtual Bool_t layOk (Int_t l) const { return (l>=0 && l<nLayersInMdc); }
virtual Bool_t modOk (Int_t m) const { return m>=0 && m<kNumMdcs; }
virtual Bool_t secOk (Int_t s) const { return s>=0 && s<kNumSecs; }
ClassDef(HKalDetCradle, 0)
};
#endif // HKalDetCradle_h