52 std::cerr <<
"Error: There are problems with creation of the configuration from XML node (in BmnSiBTStation)\n";
144 Modules[imodule]->ResetModuleData();
161 if (
Modules[module]->AddRealPointFullOne(xcoord, ycoord, zcoord, px, py, pz, dEloss, refID)) {
174 Int_t points_sum = 0;
176 points_sum +=
Modules[iModule]->GetNRealPoints();
184 Modules[iModule]->CalculateStripHitIntersectionPoints();
190 Int_t points_sum = 0;
192 points_sum +=
Modules[iModule]->GetNIntersectionPoints();
200 if (
Modules[imodule]->IsPointInsideModule(xcoord, ycoord, zcoord))
257 Int_t currentModuleNum = 0;
273 Int_t module_cnt = 0;
290 TIter next(attrList);
292 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
293 if (strcmp(attr->
GetName(),
"xShift") == 0) {
296 if (strcmp(attr->
GetName(),
"yShift") == 0) {
299 if (strcmp(attr->
GetName(),
"zShift") == 0) {
303 if (strcmp(attr->
GetName(),
"thickness") == 0) {
313 Int_t currentLayerNum = 0;
328 StripLayerType layer_type;
331 Double_t xsize, ysize, xorig, yorig;
332 StripNumberingDirection strip_direction =
LeftToRight;
339 TIter next(attrList);
341 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
342 if (strcmp(attr->
GetName(),
"zoneNumber") == 0) {
343 zone_number = atoi(attr->
GetValue());
345 if (strcmp(attr->
GetName(),
"type") == 0) {
346 if (strcmp(attr->
GetValue(),
"lower") == 0) {
349 if (strcmp(attr->
GetValue(),
"upper") == 0) {
353 if (strcmp(attr->
GetName(),
"stripAngle") == 0) {
356 if (strcmp(attr->
GetName(),
"pitch") == 0) {
359 if (strcmp(attr->
GetName(),
"xorig") == 0) {
362 if (strcmp(attr->
GetName(),
"yorig") == 0) {
365 if (strcmp(attr->
GetName(),
"xsize") == 0) {
368 if (strcmp(attr->
GetName(),
"ysize") == 0) {
371 if (strcmp(attr->
GetName(),
"stripDirection") == 0) {
372 if (strcmp(attr->
GetValue(),
"LeftToRight") == 0) {
375 if (strcmp(attr->
GetValue(),
"RightToLeft") == 0) {
379 if (strcmp(attr->
GetName(),
"lxborder") == 0) {
380 lx_border = -atof(attr->
GetValue());
382 if (strcmp(attr->
GetName(),
"lyborder") == 0) {
385 if (strcmp(attr->
GetName(),
"rxborder") == 0) {
386 rx_border = -atof(attr->
GetValue());
388 if (strcmp(attr->
GetName(),
"ryborder") == 0) {
405 Int_t currentDeadZoneNum = 0;
407 if (strcmp(node->
GetNodeName(),
"DeadZone") == 0) {
409 currentDeadZoneNum++;
427 Int_t currentDeadPointNum = 0;
429 if (strcmp(node->
GetNodeName(),
"DeadPoint") == 0) {
434 TIter next(attrList);
436 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
437 if (strcmp(attr->
GetName(),
"x") == 0) {
438 xpoints[currentDeadPointNum] =
441 if (strcmp(attr->
GetName(),
"y") == 0) {
447 currentDeadPointNum++;
452 dead_zone.
SetDeadZone(n_dead_points, xpoints, ypoints);
462 Int_t dead_point_cnt = 0;
465 if (strcmp(node->
GetNodeName(),
"DeadPoint") == 0) {
470 return dead_point_cnt;
Bool_t SetStripNumberingBorders(Double_t x_left, Double_t y_left, Double_t x_right, Double_t y_right)
Bool_t SetStripNumberingOrder(StripNumberingDirection strip_direction)
Bool_t AddDeadZone(Int_t n_points, Double_t *x_points, Double_t *y_points)
Double_t GetThicknessOfModule(Int_t module_num)
void ProcessPointsInStation()
Int_t CountNAddedToStationPoints()
Double_t GetZShiftOfModule(Int_t module_num)
virtual ~BmnSiBTStation()
BmnSiBTModule * GetModule(Int_t module_num)
Bool_t CreateConfigurationFromXMLNode(TXMLNode *node)
DeadZoneOfStripLayer ParseDeadZone(TXMLNode *node, Int_t iModule)
Double_t * ThicknessOfModules
void DefineStationBorders()
BmnSiBTLayer ParseLayer(TXMLNode *node, Int_t iLayer, Int_t iModule)
Int_t CountNumberOfModules(TXMLNode *node)
Double_t GetYShiftOfModule(Int_t module_num)
Int_t CountDeadZonePoints(TXMLNode *node)
Int_t CountNProcessedPointInStation()
Double_t * ZShiftOfModules
Double_t GetXShiftOfModule(Int_t module_num)
Bool_t ParseModule(TXMLNode *node, Int_t iModule)
Double_t * YShiftOfModules
Double_t * XShiftOfModules
Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord)
Int_t AddPointToStation(Double_t xcoord, Double_t ycoord, Double_t zcoord, Double_t px, Double_t py, Double_t pz, Double_t dEloss, Int_t refID)
Bool_t SetDeadZone(Int_t n_points, Double_t *xpoints, Double_t *ypoints)
const char * GetValue() const
const char * GetName() const override
const char * GetNodeName() const
Bool_t HasAttributes() const