ROOT logo
#ifndef HKalMdcMeasLayer_h
#define HKalMdcMeasLayer_h

// from ROOT
class TVector3;

// from kalman
#include "hkalmixture.h"
#include "hkalplane.h"


class HKalMdcMeasLayer : public HKalPlane {

private:
    HKalMixture *materialInside;   //! Material inside the layer.
    HKalMixture *materialOutside;  //! Material outside the layer.
    Int_t module;                  // Module number of the Hades detector where the layer is located.
    Int_t sector;                  // Sector number of the Hades detector where the layer is located.
    Int_t layer;                   // Layer number in the sector and module.
    Int_t nLayersInModule;         // Number of layers in this module.
    Double_t thickness;            // Thickness of the mdc layer, i.e. the distance between the two cathodes.

public:

    HKalMdcMeasLayer() {}

    HKalMdcMeasLayer(const TVector3 &center, const TVector3 &normal, const HKalMixture *matIn, const HKalMixture *matOut,
            Int_t mod, Int_t sec, Int_t lay, Int_t nLayMod, Double_t catDist);

    HKalMdcMeasLayer(const TVector3 &origin, const TVector3 &u, const TVector3 &v, const HKalMixture *matIn, const HKalMixture *matOut,
            Int_t mod, Int_t sec, Int_t lay, Int_t nLayMod, Double_t catDist);

    virtual ~HKalMdcMeasLayer();

    virtual Bool_t   isInside                (const TVector3 &pos) const;

    virtual Bool_t   isInsideMod             (const TVector3 &point) const;

    virtual void     print                   (Option_t* opt="") const;

    virtual Float_t  getA                    (Bool_t inside=kTRUE) const;

    virtual Float_t  getZ                    (Bool_t inside=kTRUE) const;

    virtual Float_t  getDensity              (Bool_t inside=kTRUE) const;

    virtual Double_t getDistToModBound       (Bool_t dir) const;

    virtual Float_t  getRadLength            (Bool_t inside=kTRUE) const;

    virtual Float_t  getExcitationEnergy     (Bool_t inside=kTRUE) const;

    virtual const HKalMixture* getMaterialPtr(Bool_t inside=kTRUE) const;

    virtual Int_t    getModule               () const                      { return module; }

    virtual Int_t    getSector               () const                      { return sector; }

    virtual Int_t    getLayer                () const                      { return layer; }

    virtual Double_t getThickness            () const                      { return thickness; }

    ClassDef(HKalMdcMeasLayer, 0)
};


#endif // HKalMdcMeasLayer_h
 hkalmdcmeaslayer.h:1
 hkalmdcmeaslayer.h:2
 hkalmdcmeaslayer.h:3
 hkalmdcmeaslayer.h:4
 hkalmdcmeaslayer.h:5
 hkalmdcmeaslayer.h:6
 hkalmdcmeaslayer.h:7
 hkalmdcmeaslayer.h:8
 hkalmdcmeaslayer.h:9
 hkalmdcmeaslayer.h:10
 hkalmdcmeaslayer.h:11
 hkalmdcmeaslayer.h:12
 hkalmdcmeaslayer.h:13
 hkalmdcmeaslayer.h:14
 hkalmdcmeaslayer.h:15
 hkalmdcmeaslayer.h:16
 hkalmdcmeaslayer.h:17
 hkalmdcmeaslayer.h:18
 hkalmdcmeaslayer.h:19
 hkalmdcmeaslayer.h:20
 hkalmdcmeaslayer.h:21
 hkalmdcmeaslayer.h:22
 hkalmdcmeaslayer.h:23
 hkalmdcmeaslayer.h:24
 hkalmdcmeaslayer.h:25
 hkalmdcmeaslayer.h:26
 hkalmdcmeaslayer.h:27
 hkalmdcmeaslayer.h:28
 hkalmdcmeaslayer.h:29
 hkalmdcmeaslayer.h:30
 hkalmdcmeaslayer.h:31
 hkalmdcmeaslayer.h:32
 hkalmdcmeaslayer.h:33
 hkalmdcmeaslayer.h:34
 hkalmdcmeaslayer.h:35
 hkalmdcmeaslayer.h:36
 hkalmdcmeaslayer.h:37
 hkalmdcmeaslayer.h:38
 hkalmdcmeaslayer.h:39
 hkalmdcmeaslayer.h:40
 hkalmdcmeaslayer.h:41
 hkalmdcmeaslayer.h:42
 hkalmdcmeaslayer.h:43
 hkalmdcmeaslayer.h:44
 hkalmdcmeaslayer.h:45
 hkalmdcmeaslayer.h:46
 hkalmdcmeaslayer.h:47
 hkalmdcmeaslayer.h:48
 hkalmdcmeaslayer.h:49
 hkalmdcmeaslayer.h:50
 hkalmdcmeaslayer.h:51
 hkalmdcmeaslayer.h:52
 hkalmdcmeaslayer.h:53
 hkalmdcmeaslayer.h:54
 hkalmdcmeaslayer.h:55
 hkalmdcmeaslayer.h:56
 hkalmdcmeaslayer.h:57
 hkalmdcmeaslayer.h:58
 hkalmdcmeaslayer.h:59
 hkalmdcmeaslayer.h:60
 hkalmdcmeaslayer.h:61
 hkalmdcmeaslayer.h:62
 hkalmdcmeaslayer.h:63
 hkalmdcmeaslayer.h:64
 hkalmdcmeaslayer.h:65
 hkalmdcmeaslayer.h:66
 hkalmdcmeaslayer.h:67