54 <<
"Error: There are problems with creation of the configuration from XML node (in BmnSiProfStation)\n";
146 Modules[imodule]->ResetModuleData();
163 if (
Modules[module]->AddRealPointFullOne(xcoord, ycoord, zcoord, px, py, pz, dEloss, refID)) {
176 Int_t points_sum = 0;
178 points_sum +=
Modules[iModule]->GetNRealPoints();
186 Modules[iModule]->CalculateStripHitIntersectionPoints();
192 Int_t points_sum = 0;
194 points_sum +=
Modules[iModule]->GetNIntersectionPoints();
202 if (
Modules[imodule]->IsPointInsideModule(xcoord, ycoord, zcoord))
259 Int_t currentModuleNum = 0;
275 Int_t module_cnt = 0;
292 TIter next(attrList);
294 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
295 if (strcmp(attr->
GetName(),
"xShift") == 0) {
298 if (strcmp(attr->
GetName(),
"yShift") == 0) {
301 if (strcmp(attr->
GetName(),
"zShift") == 0) {
305 if (strcmp(attr->
GetName(),
"thickness") == 0) {
315 Int_t currentLayerNum = 0;
330 StripLayerType layer_type;
333 Double_t xsize, ysize, xorig, yorig;
334 StripNumberingDirection strip_direction;
341 TIter next(attrList);
343 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
344 if (strcmp(attr->
GetName(),
"zoneNumber") == 0) {
345 zone_number = atoi(attr->
GetValue());
347 if (strcmp(attr->
GetName(),
"type") == 0) {
348 if (strcmp(attr->
GetValue(),
"lower") == 0) {
351 if (strcmp(attr->
GetValue(),
"upper") == 0) {
355 if (strcmp(attr->
GetName(),
"stripAngle") == 0) {
358 if (strcmp(attr->
GetName(),
"pitch") == 0) {
361 if (strcmp(attr->
GetName(),
"xorig") == 0) {
364 if (strcmp(attr->
GetName(),
"yorig") == 0) {
367 if (strcmp(attr->
GetName(),
"xsize") == 0) {
370 if (strcmp(attr->
GetName(),
"ysize") == 0) {
373 if (strcmp(attr->
GetName(),
"stripDirection") == 0) {
374 if (strcmp(attr->
GetValue(),
"LeftToRight") == 0) {
377 if (strcmp(attr->
GetValue(),
"RightToLeft") == 0) {
381 if (strcmp(attr->
GetName(),
"lxborder") == 0) {
382 lx_border = -atof(attr->
GetValue());
384 if (strcmp(attr->
GetName(),
"lyborder") == 0) {
387 if (strcmp(attr->
GetName(),
"rxborder") == 0) {
388 rx_border = -atof(attr->
GetValue());
390 if (strcmp(attr->
GetName(),
"ryborder") == 0) {
407 Int_t currentDeadZoneNum = 0;
409 if (strcmp(node->
GetNodeName(),
"DeadZone") == 0) {
411 currentDeadZoneNum++;
429 Int_t currentDeadPointNum = 0;
431 if (strcmp(node->
GetNodeName(),
"DeadPoint") == 0) {
436 TIter next(attrList);
438 while ((attr = (
TXMLAttr*)next()) !=
nullptr) {
439 if (strcmp(attr->
GetName(),
"x") == 0) {
440 xpoints[currentDeadPointNum] =
443 if (strcmp(attr->
GetName(),
"y") == 0) {
449 currentDeadPointNum++;
454 dead_zone.
SetDeadZone(n_dead_points, xpoints, ypoints);
464 Int_t dead_point_cnt = 0;
467 if (strcmp(node->
GetNodeName(),
"DeadPoint") == 0) {
472 return dead_point_cnt;
Bool_t AddDeadZone(Int_t n_points, Double_t *x_points, Double_t *y_points)
Bool_t SetStripNumberingOrder(StripNumberingDirection strip_direction)
Bool_t SetStripNumberingBorders(Double_t x_left, Double_t y_left, Double_t x_right, Double_t y_right)
Double_t * XShiftOfModules
Bool_t ParseModule(TXMLNode *node, Int_t iModule)
Double_t * YShiftOfModules
Int_t CountDeadZonePoints(TXMLNode *node)
BmnSiProfModule ** Modules
Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord)
BmnSiProfModule * GetModule(Int_t module_num)
void ProcessPointsInStation()
Bool_t CreateConfigurationFromXMLNode(TXMLNode *node)
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)
Int_t CountNProcessedPointInStation()
Int_t CountNAddedToStationPoints()
virtual ~BmnSiProfStation()
Double_t GetThicknessOfModule(Int_t module_num)
BmnSiProfLayer ParseLayer(TXMLNode *node, Int_t iLayer, Int_t iModule)
Double_t * ZShiftOfModules
Int_t CountNumberOfModules(TXMLNode *node)
Double_t GetYShiftOfModule(Int_t module_num)
DeadZoneOfStripLayer ParseDeadZone(TXMLNode *node, Int_t iModule)
Double_t * ThicknessOfModules
void DefineStationBorders()
Double_t GetZShiftOfModule(Int_t module_num)
Double_t GetXShiftOfModule(Int_t module_num)
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