ATLAS Offline Software
MuonChambersRange.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 
8 bool selectChambersRange(const std::string& f_hardware_name, const std::string& f_chamberName,
9  int f_stationEta, int f_StationEta,
10  int f_stationPhi, int f_StationPhi,
11  const std::string& f_StationSize)
12 {
13  bool pass=false;
14  std::string size="XXX";
15  int f_StationPhi_check=f_StationPhi;
16  int f_StationEta_check=f_StationEta;
17  std::string::size_type small_chamber = f_hardware_name.find( 'S', 0 );
18  std::string::size_type feet_chamber = f_hardware_name.find( 'F', 0 );
19  std::string::size_type ground_chamber = f_hardware_name.find( 'G', 0 );
20  std::string::size_type large_chamber = f_hardware_name.find( 'L', 0 );
21  //BIM and BIR still not in!!!!
22 
23  if (small_chamber != std::string::npos) {
24  size="S";
25  if (f_StationPhi!=-100 && f_StationPhi!=1 && (f_StationPhi%2)==0) {f_StationPhi_check=(f_StationPhi/2);}
26  else if (f_StationPhi==-100) {f_StationPhi_check=-100;}
27  else {f_StationPhi_check=-99;}
28  }
29  if (feet_chamber != std::string::npos) {
30  size="S";
31  if (f_StationPhi!=-100 && f_StationPhi!=1 && (f_StationPhi%2)==0) {f_StationPhi_check=(f_StationPhi/2);}
32  else if (f_StationPhi==-100) {f_StationPhi_check=-100;}
33  else {f_StationPhi_check=-99;}
34  if (f_StationEta!=-100 && (f_StationEta%2)!=0) {f_StationEta_check=(f_StationEta/2)+1;}
35  else if (f_StationEta==-100) {f_StationEta_check=-100;}
36  else {f_StationEta_check=-99;}
37  }
38  if (ground_chamber != std::string::npos) {
39  size="S";
40  if (f_StationPhi!=-100 && f_StationPhi!=1 && (f_StationPhi%2)==0) {f_StationPhi_check=(f_StationPhi/2);}
41  else if (f_StationPhi==-100) {f_StationPhi_check=-100;}
42  else {f_StationPhi_check=-99;}
43  if (f_StationEta!=-100 && (f_StationEta%2)==0) {f_StationEta_check=(f_StationEta/2);}
44  else if (f_StationEta==-100) {f_StationEta_check=-100;}
45  else {f_StationEta_check=-99;}
46  }
47  if (large_chamber != std::string::npos) {
48  size="L";
49  if (f_StationPhi==1) {f_StationPhi_check=1;}
50  else if (f_StationPhi!=-100 && f_StationPhi!=1 && (f_StationPhi%2)!=0) {f_StationPhi_check=(f_StationPhi/2)+1;}
51  else if (f_StationPhi==-100) {f_StationPhi_check=-100;}
52  else {f_StationPhi_check=-99;}
53  }
54  if ((f_chamberName=="XXX" || f_chamberName==f_hardware_name)
55  && (f_StationEta_check==f_stationEta || f_StationEta_check==-100)
56  && (f_StationPhi_check==f_stationPhi || f_StationPhi_check==-100)
57  && (f_StationSize=="XXX" || f_StationSize==size) ){pass=true;}
58 
59  return pass;
60 }
MuonChambersRange.h
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
selectChambersRange
bool selectChambersRange(const std::string &f_hardware_name, const std::string &f_chamberName, int f_stationEta, int f_StationEta, int f_stationPhi, int f_StationPhi, const std::string &f_StationSize)
Definition: MuonChambersRange.cxx:8