00001
00005 #ifndef CSCHIT_H
00006 #define CSCHIT_H
00007
00008 #include "CSCCluster.h"
00009
00010
00025 class CSCHit{
00026
00027 private:
00028 CSCCluster* cluster;
00029 double pos;
00030 double peak;
00031 double amp;
00032 double sum3;
00033 double cog;
00034 double parabola;
00035 int center;
00036 int channelID;
00037 CSCStrip* strip[5];
00038 int distance;
00039 CSCHit* match;
00040 double chi2;
00041
00042 public:
00044 CSCHit();
00045
00046
00048 ~CSCHit();
00049
00050
00054 void Set (CSCCluster* cluster, int i);
00055
00056
00058 void Print();
00059
00060
00071 CSCStrip* GetStrip(int relIndex);
00072
00073
00078 double GetPosition () { return pos;} ;
00079
00086 void SetPosition(double p) { pos = p;};
00087
00092 double GetPeakingTime() { return peak;};
00093
00094
00104 double GetAmplitude () { return amp;};
00105
00106
00124 int GetChannelID() {return channelID;}
00125
00126
00127
00130 int GetLayer() {return (channelID>>9)&3;}
00131
00132
00135 int IsTransverse() { return (channelID>>8)&1;}
00136
00137
00141 int IsLargeChamber() { return (channelID>>16)&1;}
00142
00143
00147 double GetSum() {return sum3;};
00148
00149
00157 double GetCOG() { return cog;};
00158
00159
00167 double GetParabola() { return parabola;};
00168
00169
00172 int GetPhi() {return (channelID >>13)&7;};
00173
00174
00181 int GetID () {return channelID;};
00182
00186 int GetDistance () {return distance;};
00187
00188
00189
00191 void SetDistance( int d) { distance = d;};
00192
00193
00198 int GetChannel () { return strip[2]->GetChannel();};
00199
00200
00202 CSCHit* GetMatch() { return match;};
00203
00204
00205
00207 void SetMatch (CSCHit* h) { match = h;};
00208
00209
00210
00217 double GetChi2() {return chi2;};
00218
00219
00230 double Profile (double pos);
00231
00232 };
00233
00234
00235 #endif // CSCHIT_H