ROOT logo
#ifndef HMDCCLUSINF_H
#define HMDCCLUSINF_H

#include "TObject.h"

class HMdcClusInf : public TObject {
protected:
  Char_t fitStatus;       // 0 - HMdcHit filled by cluster, 1 - by fit
  Char_t levelClFinding;  // level of cl.finding (minimal num. of layers)

  Char_t nModsClus;       // number of modules in cluster
  Char_t nModsFit;        // number of modules in fit

  Short_t clusSize;       // number of bins in cluster
  Short_t nMergClus;      // number of merged clusters
  Short_t nLayers;        // number of layers in cluster
  Short_t nLayersFitted;  // number of layers which contributed to fit
  Short_t nDrTimes;       // number of drift times in cluster
  Short_t nDrTimesFitted; // number of drift times which contributed to fit
  Short_t indClus;        // index of HMdcClus container
  Short_t indClusFit;     // index of HMdcClusFit container
  Float_t sigma1;         // sigma1,sigma2,alpha - cluster shape
  Float_t sigma2;         // sigma1 - long axis, sigma2 - short axis
  Float_t alpha;          // alpha - angle between long axis of cluster and X
  
  Float_t xHit;           // x-coord.of hit in MDC coor.sys. (== x in HMdcHit)
  Float_t yHit;           // y-coord.of hit in MDC coor.sys. (== y in HMdcHit)
  Float_t xClus;          // x-coord.of comb. cluster on the proj.plane
  Float_t yClus;          // y-coord.of comb. cluster on the proj.plane

  Float_t dedx;           // mean value of t2-t1 for segment
  Float_t dedxSigma;      // sigma of t2-t1 distribution in segment
  UChar_t dedxNWire;      // number of wires in segment before truncated mean procedure
  UChar_t dedxNWireCut;   // number of wires in segment cutted by truncated mean procedure

public:
    HMdcClusInf(void) : clusSize(0), nMergClus(0), nLayers(0), nLayersFitted(0),
        nDrTimes(0), nDrTimesFitted(0), indClus(-1), indClusFit(-1), dedx(0),
        dedxSigma(0), dedxNWire(0), dedxNWireCut(0) {;}
    ~HMdcClusInf(void) {;}
    void clear(void) {
	clusSize=nMergClus=nDrTimes=0;
	indClus=indClusFit=-1;
	dedx=dedxSigma=dedxNWire=dedxNWireCut=nLayers=nLayersFitted=0;
        xHit=yHit=xClus=yClus=0.;
    }
  void setIsFitted(void) {fitStatus=1;}
  void setIsNotFitted(void) {fitStatus=0;}
  void setFitStat(const Char_t st) {fitStatus=st;}
  void setLevelClFinding(const Char_t lv) {levelClFinding=lv;}
  void setNModInCl(const Char_t nm) {nModsClus=nm;}
  void setNModInFit(const Char_t nm) {nModsFit=nm;}
  void setClusSize(const Short_t sz) {clusSize=sz;}
  void setNMergClust(const Short_t nmc) {nMergClus=nmc;}
  void setNLayers(const Short_t nl) {nLayers=nl;}
  void setNLayersFitted(const Short_t nlf) {nLayersFitted=nlf;}
  void setNDrTimes(const Short_t ndt) {nDrTimes=ndt;}
  void setNDrTimesFitted(const Short_t nwf) {nDrTimesFitted=nwf;}
  void setClusIndex(const Short_t ind) {indClus=ind;}
  void setClusFitIndex(const Short_t ind) {indClusFit=ind;}
  void setSigma1(const Float_t par){sigma1=par;}
  void setSigma2(const Float_t par){sigma2=par;}
  void setAlpha(const Float_t al) {alpha=al;}
  void setShape(const Float_t s1,const Float_t s2,const Float_t al)
    {sigma1=s1; sigma2=s2;alpha=al;}

  void setdedx(Float_t dedxval){dedx=dedxval;}
  void setSigmadedx(Float_t sig){dedxSigma=sig;}
  void setNWirededx(UChar_t nw){dedxNWire=nw;}
  void setNWireCutdedx(UChar_t nw){dedxNWireCut=nw;}
  
  void setXYHit(Float_t x,Float_t y)  {xHit=x; yHit=y;} 
  void setXYClus(Float_t x,Float_t y) {xClus=x; yClus=y;}

  Float_t getdedx(){return dedx;}
  Float_t getSigmadedx(){return dedxSigma;}
  UChar_t getNWirededx(){return dedxNWire;}
  UChar_t getNWireCutdedx(){return dedxNWireCut;}
  Char_t  getFitStat(void) {return fitStatus;}
  Char_t  getLevelClFinding(void) {return levelClFinding;}
  Char_t  getNModInCl(void) {return nModsClus;}
  Char_t  getNModInFit(void) {return nModsFit;}
  Int_t   getClusSize(void) {return clusSize;}
  Short_t getNMergClust(void) {return nMergClus;}
  Short_t getNLayers() {return nLayers;}
  Short_t getNLayersFitted() {return nLayersFitted;}
  Short_t getNDrTimes(void) {return nDrTimes;}
  Short_t getNDrTimesFitted(void) {return nDrTimesFitted;}
  Short_t getClusIndex(void) {return indClus;}
  Short_t getClusFitIndex(void) {return indClusFit;}
  Float_t getSigma1(void) {return sigma1;}
  Float_t getSigma2(void) {return sigma2;}
  Float_t getAlpha(void) {return alpha;}
  void getShape(Float_t& s1,Float_t& s2,Float_t& al)
    {s1=sigma1; s2=sigma2; al=alpha;}
  Float_t getRatio(void) {return (sigma1>0.) ? sigma2/sigma1 : 0.;}
  Bool_t isClParEqual(HMdcClusInf *cf) {
    if(clusSize!=cf->clusSize || nDrTimes!=cf->nDrTimes || 
        nMergClus != cf->nMergClus || alpha!=cf->alpha) return kFALSE;
    return kTRUE;
  }
  
  Float_t getXHit(void)  {return xHit;}
  Float_t getYHit(void)  {return yHit;}
  Float_t getXClus(void) {return xClus;}
  Float_t getYClus(void) {return yClus;}

  virtual void print(void) const;

  ClassDef(HMdcClusInf,1) // information about clusters in MDC
};

#endif  /* HMDCCLUSINF_H */
 hmdcclusinf.h:1
 hmdcclusinf.h:2
 hmdcclusinf.h:3
 hmdcclusinf.h:4
 hmdcclusinf.h:5
 hmdcclusinf.h:6
 hmdcclusinf.h:7
 hmdcclusinf.h:8
 hmdcclusinf.h:9
 hmdcclusinf.h:10
 hmdcclusinf.h:11
 hmdcclusinf.h:12
 hmdcclusinf.h:13
 hmdcclusinf.h:14
 hmdcclusinf.h:15
 hmdcclusinf.h:16
 hmdcclusinf.h:17
 hmdcclusinf.h:18
 hmdcclusinf.h:19
 hmdcclusinf.h:20
 hmdcclusinf.h:21
 hmdcclusinf.h:22
 hmdcclusinf.h:23
 hmdcclusinf.h:24
 hmdcclusinf.h:25
 hmdcclusinf.h:26
 hmdcclusinf.h:27
 hmdcclusinf.h:28
 hmdcclusinf.h:29
 hmdcclusinf.h:30
 hmdcclusinf.h:31
 hmdcclusinf.h:32
 hmdcclusinf.h:33
 hmdcclusinf.h:34
 hmdcclusinf.h:35
 hmdcclusinf.h:36
 hmdcclusinf.h:37
 hmdcclusinf.h:38
 hmdcclusinf.h:39
 hmdcclusinf.h:40
 hmdcclusinf.h:41
 hmdcclusinf.h:42
 hmdcclusinf.h:43
 hmdcclusinf.h:44
 hmdcclusinf.h:45
 hmdcclusinf.h:46
 hmdcclusinf.h:47
 hmdcclusinf.h:48
 hmdcclusinf.h:49
 hmdcclusinf.h:50
 hmdcclusinf.h:51
 hmdcclusinf.h:52
 hmdcclusinf.h:53
 hmdcclusinf.h:54
 hmdcclusinf.h:55
 hmdcclusinf.h:56
 hmdcclusinf.h:57
 hmdcclusinf.h:58
 hmdcclusinf.h:59
 hmdcclusinf.h:60
 hmdcclusinf.h:61
 hmdcclusinf.h:62
 hmdcclusinf.h:63
 hmdcclusinf.h:64
 hmdcclusinf.h:65
 hmdcclusinf.h:66
 hmdcclusinf.h:67
 hmdcclusinf.h:68
 hmdcclusinf.h:69
 hmdcclusinf.h:70
 hmdcclusinf.h:71
 hmdcclusinf.h:72
 hmdcclusinf.h:73
 hmdcclusinf.h:74
 hmdcclusinf.h:75
 hmdcclusinf.h:76
 hmdcclusinf.h:77
 hmdcclusinf.h:78
 hmdcclusinf.h:79
 hmdcclusinf.h:80
 hmdcclusinf.h:81
 hmdcclusinf.h:82
 hmdcclusinf.h:83
 hmdcclusinf.h:84
 hmdcclusinf.h:85
 hmdcclusinf.h:86
 hmdcclusinf.h:87
 hmdcclusinf.h:88
 hmdcclusinf.h:89
 hmdcclusinf.h:90
 hmdcclusinf.h:91
 hmdcclusinf.h:92
 hmdcclusinf.h:93
 hmdcclusinf.h:94
 hmdcclusinf.h:95
 hmdcclusinf.h:96
 hmdcclusinf.h:97
 hmdcclusinf.h:98
 hmdcclusinf.h:99
 hmdcclusinf.h:100
 hmdcclusinf.h:101
 hmdcclusinf.h:102
 hmdcclusinf.h:103
 hmdcclusinf.h:104
 hmdcclusinf.h:105
 hmdcclusinf.h:106
 hmdcclusinf.h:107
 hmdcclusinf.h:108
 hmdcclusinf.h:109
 hmdcclusinf.h:110
 hmdcclusinf.h:111
 hmdcclusinf.h:112
 hmdcclusinf.h:113