ROOT logo
#ifndef __HPARTICLEMDC_H__
#define __HPARTICLEMDC_H__

#include "TObject.h"
#include "hparticledef.h"

class HMdcSeg;
class HMdcTrkCand;

class HParticleMdc : public TObject
{
private:
    Short_t fIndex;       // own index
    Int_t   fMdcFlag;    // Cluster info: number of cells, bins and merged clusters
    Short_t fMdc1x;      // x1,y1 - cross point of the segment line with first mdc layer (in sec.coor.sys.)
    Short_t fMdc1y;      // Convert to mm: Float_t(x1)*0.1; Float_t(y1)*0.1;
    Short_t fMdc2x;      // x2,y2 - cross point of the segment line with second mdc layer (in sec.coor.sys.)
    Short_t fMdc2y;      // Convert to mm: Float_t(x2)*0.1; Float_t(y2)*0.1;
    Short_t fMdc3x;      // x1,y1 - cross point of the segment line with third mdc layer (in sec.coor.sys.)
    Short_t fMdc3y;      // Convert to mm: Float_t(x1)*0.1; Float_t(y1)*0.1;
    Short_t fMdc4x;      // x2,y2 - cross point of the segment line with 4th mdc layer (in sec.coor.sys.)
    Short_t fMdc4y;      // Convert to mm: Float_t(x2)*0.1; Float_t(y2)*0.1;

    SmallFloat dedxInner;            // mean value of t2-t1 for inner segment
    SmallFloat dedxSigmaInner;       // sigma of t2-t1 distribution in inner segment
    SmallFloat dedxOuter;            // mean value of t2-t1 for outer segment
    SmallFloat dedxSigmaOuter;       // sigma of t2-t1 distribution in outer segment
    SmallFloat dedxCombined;         // mean value of t2-t1 for inner+outer segment
    SmallFloat dedxSigmaCombined;    // sigma of t2-t1 distribution in inner+outer segment


    UChar_t    dedxNWireCutCombined; // number of wires in inner+outer segment cutted by truncated mean procedure
    UChar_t    dedxNWireCutInner;    // number of wires in inner segment cutted by truncated mean procedure
    UChar_t    dedxNWireCutOuter;    // number of wires in outer segment cutted by truncated mean procedure

    SmallFloat dedx[4];              // mean value of t2-t1 per module
    SmallFloat dedxSigma[4];         // sigma of t2-t1 distribution per module
    UChar_t    dedxNWire[4];         // number of wires per module before truncated mean procedure
    UChar_t    dedxNWireCut[4];      // number of wires per module cutted by truncated mean procedure

public:

    HParticleMdc();
    ~HParticleMdc();

    void    setIndex(Short_t ind)       { fIndex = ind; }
    Short_t getIndex()                  { return fIndex;}

    void    setFlag(const Int_t fl)     {  fMdcFlag=fl; }
    Int_t   getNBinsClus  (void) const  { return fMdcFlag >> 16;}
    Int_t   getNCellsClus (void) const  { return (fMdcFlag & 0xFFFF)/100;}
    Int_t   getNMergedClus(void) const  { return (fMdcFlag & 0xFFFF)%100;}

    Float_t getMdc1X(void) const        { return Float_t(fMdc1x) * 0.1;}  // in [mm]
    Float_t getMdc1Y(void) const        { return Float_t(fMdc1y) * 0.1;}  // in [mm]
    Float_t getMdc2X(void) const        { return Float_t(fMdc2x) * 0.1;}  // in [mm]
    Float_t getMdc2Y(void) const        { return Float_t(fMdc2y) * 0.1;}  // in [mm]
    Float_t getMdc3X(void) const        { return Float_t(fMdc3x) * 0.1;}  // in [mm]
    Float_t getMdc3Y(void) const        { return Float_t(fMdc3y) * 0.1;}  // in [mm]
    Float_t getMdc4X(void) const        { return Float_t(fMdc4x) * 0.1;}  // in [mm]
    Float_t getMdc4Y(void) const        { return Float_t(fMdc4y) * 0.1;}  // in [mm]

    Int_t   getNRemovedCellsInnerSeg();

    Float_t getdedx(Int_t mod)        { return dedx        [mod]; }
    Float_t getSigmadedx(Int_t mod)   { return dedxSigma   [mod]; }
    UChar_t getNWirededx(Int_t mod)   { return dedxNWire   [mod]; }
    UChar_t getNWireCutdedx(Int_t mod){ return dedxNWireCut[mod]; }

    Float_t getdedxSeg        (Int_t seg);
    Float_t getSigmadedxSeg   (Int_t seg);
    UChar_t getNWireCutdedxSeg(Int_t seg);

    void    fill(HMdcSeg*);
    void    fill(HMdcTrkCand*);

    ClassDef(HParticleMdc,2)  // A simple object for investigation purpose
};


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