AMSDST
myRichRingPlus.h
Go to the documentation of this file.
1 // Authors: M.Duranti - INFN di Perugia
2 #ifndef myRichRingPlus_h
3 #define myRichRingPlus_h
4 
5 #include "myRichRingBase.h"
6 #include <TMath.h>
7 class myRichRingPlus: public myRichRingBase {
8  public:
13 
16  Bool_t _IsClean;
28 
29  Int_t Used;
30  Int_t UsedM;
32  Float_t Prob;
34  Float_t AMSTrPars[5];
36  Float_t TrRadPos [3];
38  Float_t TrPMTPos [3];
39  Float_t BetaConsistency;
40  Float_t _betaCorrection;
41  Float_t PhotoElectrons;
43  Int_t PMTs;
46  Int_t TileIndex;
48  Int_t UsedHits;
50  Double32_t _RingWidth;
53  Float_t BetaExpectedRms ;
56  Float_t NpExp;
58  Float_t NpCol;
59 
61  Int_t kind;
63  Double_t mindist[2];
65  Double_t empoint[3];
67  Double_t emdir[2];
69  Double_t nphoel[2];
71  Double_t betam[2];
73  Int_t npmthits[2];
75  Int_t npmts[2];
76 
78  bool IsNaF(){return (Status&2)!=0;}
80  inline Bool_t IsClean() { return _IsClean;}
82  inline Bool_t IsGood() { return IsClean() && getExpectedPhotoElectrons()>1e-6;}
84  inline Float_t getProb() { return Prob;}
85  inline Float_t getTrackTheta() { return AMSTrPars[3];}
86  inline Float_t getTrackPhi() { return AMSTrPars[4];}
88  inline Float_t getBetaConsistency() { return BetaConsistency; }
89  inline Float_t getRawIndexUsed() {return 1.0/Beta/TMath::Cos(Theta);}
90  inline Float_t betaCorrection() {return _betaCorrection;}
91  inline Float_t getIndexUsed() {return getRawIndexUsed()/betaCorrection();}
92  inline Float_t getPhotoElectrons () { return PhotoElectrons;}
96  inline Float_t *getTrackEmissionPoint () {return AMSTrPars;}
98  inline Int_t getPMTs(){ return PMTs; }
100  inline Float_t getPMTChargeConsistency (){ return PMTChargeConsistency; }
102  inline Int_t PmtCorrectionsFailed (){ return _PmtCorrectionsFailed;}
104  inline Int_t getTileIndex () {return TileIndex;}
106  inline Int_t getHits (){ return Used;}
108  inline Int_t getReflectedHits() {return UsedM;}
112  inline Int_t getUsedHits () {return UsedHits;}
114  inline Bool_t Rebuild(){return (Status&1)!=0;}
117  inline Double32_t DistanceTileBorder () {double value=double((Status>>15)&0x3ff)/100.;return value>8?0:value;}
119  inline Double32_t RingWidth (){ return _RingWidth;}
123  inline Float_t getBetaError() {return sqrt(2.5e-3*2.5e-3*(IsNaF()?9.0:1.0)/getPhotoElectrons()+1e-4*1e-4);}
125  inline Float_t getWidth(){return RingWidth();}
126 
128  inline Float_t getBetaExpectedRms (){return BetaExpectedRms;}
130  inline Float_t getChargeExpectedRms (){ return ChargeExpectedRms;}
131 
132 
133  virtual void Clear(Option_t* option="");
134  private:
135  virtual void init();
136 
137  public:
139 };
140 
141 #ifdef _WITHGBATCH_
142 
143 class myRichRingPlusFiller: public myRichRingPlus {
144  public:
146  myRichRingPlusFiller();
148  ~myRichRingPlusFiller();
149 
150  RichRingR* ring;
151 
152  void Fill(RichRingR* _ring, ParticleR* pp);
153 
154  virtual void Clear(Option_t* option="");
155  private:
156  virtual void init();
157 
158  public:
159  ClassDef(myRichRingPlusFiller,1);
160 };
161 
162 #endif //#ifdef _WITHGBATCH_
163 
164 #endif