|
ATLAS Offline Software
|
Go to the documentation of this file.
27 return StatusCode::SUCCESS;
32 ATH_MSG_DEBUG(
"in the finalize of SiGlobAlignDBTool, bye bye");
33 return StatusCode::SUCCESS;
39 ATH_MSG_DEBUG(
"will get global alignment for run "<<ctx.eventID().run_number()<<
", lb "<<ctx.eventID().lumi_block()<<
", event "<<ctx.eventID().event_number());
43 if ( attrGlobList ==
nullptr )
49 if(attrGlobList->size()>1)
ATH_MSG_INFO(
"there should be only one real channel in "<<
m_rch_glob.fullKey() <<
", there are "<<attrGlobList->size()<<
" real channels, only the first one will be used ");
53 std::string
data = *(
static_cast<const std::string *
>((atr[
"data"]).addressOfData()));
61 ATH_MSG_DEBUG(
"will get global alignment for station "<<stationID);
66 std::vector<int> guess_ch_vec{stationID*4, stationID*4+1, stationID*4+2, stationID*4+3};
67 int guess_ch_correct=0;
68 for(
auto guess_ch : guess_ch_vec)
71 int st=aligndata[
"stationID"];
72 std::string alignType=aligndata[
"alignType"];
75 if(alignType==
"tracker" && !(guess_ch_correct&1))
77 ATH_MSG_DEBUG(
"channel guessed correctly, stationID "<<st<<
", alignType "<<alignType<<
", channel guess "<<guess_ch);
78 GA_guess.
setTracker(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
81 else if(alignType==
"beam" && !(guess_ch_correct&2))
83 ATH_MSG_DEBUG(
"channel guessed correctly, stationID "<<st<<
", alignType "<<alignType<<
", channel guess "<<guess_ch);
84 GA_guess.
setBeam(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
87 else if(alignType==
"RP" && !(guess_ch_correct&4))
89 ATH_MSG_DEBUG(
"channel guessed correctly, stationID "<<st<<
", alignType "<<alignType<<
", channel guess "<<guess_ch);
90 GA_guess.
setRP(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
93 else if(alignType==
"correction" && !(guess_ch_correct&8))
95 ATH_MSG_DEBUG(
"channel guessed correctly, stationID "<<st<<
", alignType "<<alignType<<
", channel guess "<<guess_ch);
96 GA_guess.
setCorr(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
99 else ATH_MSG_DEBUG(
"alignType or channel is probably incorrect, stationID "<<stationID<<
", alignType "<<alignType<<
", channel guess "<<guess_ch<<
", guess_ch_correct "<<guess_ch_correct);
103 if(guess_ch_correct==15)
105 ATH_MSG_DEBUG(
"channels guessed correctly, stationID "<<stationID);
110 ATH_MSG_DEBUG(
"channels were not guessed correctly, stationID "<<stationID);
115 int loop_ch_correct=0;
116 for(
auto&
chan : channeldata.items())
121 int st=aligndata[
"stationID"];
122 std::string alignType=aligndata[
"alignType"];
126 if(alignType==
"tracker" && !(loop_ch_correct&1))
128 ATH_MSG_DEBUG(
"channel found for stationID "<<st<<
", alignType "<<alignType<<
", channel nr. "<<
chan.key());
129 GA_loop.
setTracker(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
132 else if(alignType==
"beam" && !(loop_ch_correct&2))
134 ATH_MSG_DEBUG(
"channel found for stationID "<<st<<
", alignType "<<alignType<<
", channel nr. "<<
chan.key());
135 GA_loop.
setBeam(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
138 else if(alignType==
"RP" && !(loop_ch_correct&4))
140 ATH_MSG_DEBUG(
"channel found for stationID "<<st<<
", alignType "<<alignType<<
", channel nr. "<<
chan.key());
141 GA_loop.
setRP(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
144 else if(alignType==
"correction" && !(loop_ch_correct&8))
146 ATH_MSG_DEBUG(
"channel found for stationID "<<st<<
", alignType "<<alignType<<
", channel nr. "<<
chan.key());
147 GA_loop.
setCorr(aligndata[
"shiftX"], aligndata[
"shiftY"], aligndata[
"shiftZ"], aligndata[
"alpha"], aligndata[
"beta"], aligndata[
"gamma"]);
150 else ATH_MSG_DEBUG(
"alignType is probably incorrect, stationID "<<stationID<<
", alignType "<<alignType<<
", channel nr. "<<
chan.key()<<
", loop_ch_correct "<<loop_ch_correct);
153 if(loop_ch_correct==15)
155 ATH_MSG_DEBUG(
"channels found correctly, stationID "<<stationID);
160 ATH_MSG_DEBUG(
"channels were not found correctly, stationID "<<stationID);
164 ATH_MSG_WARNING(
"global alignment data stationID "<<stationID<<
" not found in any channels, returning zeros");
char data[hepevt_bytes_allocation_ATLAS]
void setRP(double x, double y, double z, double a, double b, double g)
void setCorr(double x, double y, double z, double a, double b, double g)
void setBeam(double x, double y, double z, double a, double b, double g)
This class is a collection of AttributeLists where each one is associated with a channel number....
Header file for interface of SiGlobAlignDBTool used to read global alignment for database.
::StatusCode StatusCode
StatusCode definition for legacy code.
void setTracker(double x, double y, double z, double a, double b, double g)
std::string to_string(const DetectorType &type)
StatusCode initialize(bool used=true)
#define ATH_MSG_WARNING(x)
ChanAttrListMap::const_iterator const_iterator