38 Station_Exception(TString message) { std::cerr <<
"Station_Exception::" << message <<
"\n"; }
64 XPoints =
new Double_t[NPoints];
65 YPoints =
new Double_t[NPoints];
66 for (Int_t
i = 0;
i < NPoints; ++
i) {
67 XPoints[
i] = xpoints[
i];
68 YPoints[
i] = ypoints[
i];
75 NPoints = obj.NPoints;
76 XPoints =
new Double_t[NPoints];
77 YPoints =
new Double_t[NPoints];
78 for (Int_t
i = 0;
i < NPoints; ++
i) {
79 XPoints[
i] = obj.XPoints[
i];
80 YPoints[
i] = obj.YPoints[
i];
86 if (XPoints !=
nullptr)
88 if (YPoints !=
nullptr)
90 NPoints = obj.NPoints;
91 XPoints =
new Double_t[NPoints];
92 YPoints =
new Double_t[NPoints];
93 for (Int_t
i = 0;
i < NPoints; ++
i) {
94 XPoints[
i] = obj.XPoints[
i];
95 YPoints[
i] = obj.YPoints[
i];
102 if (XPoints !=
nullptr)
104 if (YPoints !=
nullptr)
109 Bool_t
SetDeadZone(Int_t n_points, Double_t* xpoints, Double_t* ypoints)
112 if (XPoints !=
nullptr) {
116 if (YPoints !=
nullptr) {
122 XPoints =
new Double_t[NPoints];
123 YPoints =
new Double_t[NPoints];
124 for (Int_t
i = 0;
i < NPoints; ++
i) {
125 XPoints[
i] = xpoints[
i];
126 YPoints[
i] = ypoints[
i];
139 Bool_t check_flag =
false;
140 for (
int i = 0, j = NPoints - 1;
i < NPoints; j =
i++) {
142 if ((((YPoints[
i] <= y) && (y < YPoints[j])) || ((YPoints[j] <= y) && (y < YPoints[
i])))
143 && (x > (XPoints[j] - XPoints[
i]) * (y - YPoints[
i]) / (YPoints[j] - YPoints[
i]) + XPoints[
i]))
144 check_flag = !check_flag;
153 if (index >= 0 && index < NPoints) {
154 return XPoints[index];
164 if (index >= 0 && index < NPoints) {
165 return YPoints[index];
221 StripCluster(Double_t orig_position, Double_t mean_position, Double_t total_signal)
237 void AddStrip(Int_t strip_num, Double_t strip_signal)
239 Bool_t StripNumExists =
false;
241 for (index = 0; index <
Strips.size(); ++index) {
242 if (
Strips[index] == strip_num) {
243 StripNumExists =
true;
248 Signals[index] += strip_signal;
250 vector<Int_t>::iterator strip_iter =
Strips.end();
251 vector<Double_t>::iterator signal_iter =
Signals.end();
252 for (
size_t i = 0;
i <
Strips.size(); ++
i) {
254 strip_iter =
Strips.begin() +
i;
259 Strips.insert(strip_iter, strip_num);
260 Signals.insert(signal_iter, strip_signal);
266 printf(
"\nCLUSTER INFORMATION (#%d)\n", this->GetUniqueID());
268 printf(
"TYPE: LOWER\n");
270 printf(
"TYPE: UPPER\n");
271 printf(
"Station: %d\n",
Station);
272 printf(
"Module: %d\n",
Module);
273 printf(
"Cluster width: %d\n",
Width);
274 printf(
"Total cluster signal: %4.2f\n",
TotalSignal);
278 printf(
"\nSignals: ");
280 printf(
"%4.2f ", it);
Bool_t SetDeadZone(Int_t n_points, Double_t *xpoints, Double_t *ypoints)
DeadZoneOfStripLayer(const DeadZoneOfStripLayer &obj)
DeadZoneOfStripLayer & operator=(const DeadZoneOfStripLayer &obj)
Double_t GetXPoint(Int_t index)
DeadZoneOfStripLayer(Int_t n_points, Double_t *xpoints, Double_t *ypoints)
Bool_t IsInside(Double_t x, Double_t y)
Double_t GetYPoint(Int_t index)
StationSet_Exception(TString message)
Station_Exception(TString message)
void SetStation(Int_t st)
StripCluster(Double_t orig_position, Double_t mean_position, Double_t total_signal)
ClassDef(StripCluster, 1)
void AddStrip(Int_t strip_num, Double_t strip_signal)
Double_t PositionResidual
void SetError(Double_t err)
vector< Double_t > Signals