16 template <
typename T,
typename R>
33 template <
typename T,
typename R>
36 printdebug_(
p.getUntrackedParameter<
bool>(
"printDebug",
true)),
37 formatedOutput_(
p.getUntrackedParameter<
std::
string>(
"outputFile",
"")) {
38 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"AlignPCLThresholdsReader" << std::endl;
41 template <
typename T,
typename R>
43 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"~AlignPCLThresholdsReader " << std::endl;
46 template <
typename T,
typename R>
48 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"### AlignPCLThresholdsReader::analyze ###" << std::endl;
49 edm::LogInfo(
"AlignPCLThresholdsReader") <<
" I AM IN RUN NUMBER " <<
e.id().run() << std::endl;
50 edm::LogInfo(
"AlignPCLThresholdsReader") <<
" ---EVENT NUMBER " <<
e.id().event() << std::endl;
59 <<
"Record \"" << inputKey.
type().
name() <<
"\" does not exist " << std::endl;
64 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"got eshandle" << std::endl;
66 if (!thresholdHandle.
isValid()) {
67 edm::LogError(
"AlignPCLThresholdsReader") <<
" Could not get Handle" << std::endl;
72 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"got AlignPCLThresholds* " << std::endl;
73 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"print pointer address : ";
77 edm::LogInfo(
"AlignPCLThresholdsReader") <<
"Content of myThresholds " << std::endl;
83 FILE* pFile =
nullptr;
84 if (!formatedOutput_.empty())
85 pFile = fopen(formatedOutput_.c_str(),
"w");
87 fprintf(pFile,
"AlignPCLThresholds::printAll() \n");
89 " =======================================================================================================" 91 fprintf(pFile,
"N records cut: %i \n",
thresholds->getNrecords());
96 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
100 for (
auto it = m_thresholds.begin(); it != m_thresholds.end(); ++it) {
101 bool hasFractionCut = (m_floatMap.find(it->first) != m_floatMap.end());
104 " =====================================================================================================" 106 fprintf(pFile,
"key : %s \n", (it->first).c_str());
107 fprintf(pFile,
"- Xcut : %8.3f um ", (it->second).getXcut());
108 fprintf(pFile,
"| sigXcut : %8.3f ", (it->second).getSigXcut());
109 fprintf(pFile,
"| maxMoveXcut : %8.3f um ", (it->second).getMaxMoveXcut());
110 fprintf(pFile,
"| ErrorXcut : %8.3f um ", (it->second).getErrorXcut());
111 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
112 if (hasFractionCut) {
114 "| X_fractionCut : %8.3f \n",
117 fprintf(pFile,
"\n");
120 fprintf(pFile,
"\n");
123 fprintf(pFile,
"- thetaXcut : %8.3f urad ", (it->second).getThetaXcut());
124 fprintf(pFile,
"| sigThetaXcut : %8.3f ", (it->second).getSigThetaXcut());
125 fprintf(pFile,
"| maxMoveThetaXcut : %8.3f urad ", (it->second).getMaxMoveThetaXcut());
126 fprintf(pFile,
"| ErrorThetaXcut : %8.3f urad ", (it->second).getErrorThetaXcut());
127 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
128 if (hasFractionCut) {
130 "| thetaX_fractionCut : %8.3f \n",
131 thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_X));
133 fprintf(pFile,
"\n");
136 fprintf(pFile,
"\n");
139 fprintf(pFile,
"- Ycut : %8.3f um ", (it->second).getYcut());
140 fprintf(pFile,
"| sigYcut : %8.3f ", (it->second).getSigXcut());
141 fprintf(pFile,
"| maxMoveYcut : %8.3f um ", (it->second).getMaxMoveYcut());
142 fprintf(pFile,
"| ErrorYcut : %8.3f um ", (it->second).getErrorYcut());
143 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
144 if (hasFractionCut) {
146 "| Y_fractionCut : %8.3f \n",
149 fprintf(pFile,
"\n");
152 fprintf(pFile,
"\n");
155 fprintf(pFile,
"- thetaYcut : %8.3f urad ", (it->second).getThetaYcut());
156 fprintf(pFile,
"| sigThetaYcut : %8.3f ", (it->second).getSigThetaYcut());
157 fprintf(pFile,
"| maxMoveThetaYcut : %8.3f urad ", (it->second).getMaxMoveThetaYcut());
158 fprintf(pFile,
"| ErrorThetaYcut : %8.3f urad ", (it->second).getErrorThetaYcut());
159 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
160 if (hasFractionCut) {
162 "| thetaY_fractionCut : %8.3f \n",
163 thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_Y));
165 fprintf(pFile,
"\n");
168 fprintf(pFile,
"\n");
171 fprintf(pFile,
"- Zcut : %8.3f um ", (it->second).getZcut());
172 fprintf(pFile,
"| sigZcut : %8.3f ", (it->second).getSigZcut());
173 fprintf(pFile,
"| maxMoveZcut : %8.3f um ", (it->second).getMaxMoveZcut());
174 fprintf(pFile,
"| ErrorZcut : %8.3f um ", (it->second).getErrorZcut());
175 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
176 if (hasFractionCut) {
178 "| Z_fractionCut : %8.3f \n",
181 fprintf(pFile,
"\n");
184 fprintf(pFile,
"\n");
187 fprintf(pFile,
"- thetaZcut : %8.3f urad ", (it->second).getThetaZcut());
188 fprintf(pFile,
"| sigThetaZcut : %8.3f ", (it->second).getSigThetaZcut());
189 fprintf(pFile,
"| maxMoveThetaZcut : %8.3f urad ", (it->second).getMaxMoveThetaZcut());
190 fprintf(pFile,
"| ErrorThetaZcut : %8.3f urad ", (it->second).getErrorThetaZcut());
191 if constexpr (std::is_same_v<T, AlignPCLThresholdsHG>) {
192 if (hasFractionCut) {
194 "| thetaZ_fractionCut : %8.3f \n",
195 thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_Z));
197 fprintf(pFile,
"\n");
200 fprintf(pFile,
"\n");
203 if ((it->second).hasExtraDOF()) {
204 for (
unsigned int j = 0;
j < (it->second).extraDOFSize();
j++) {
205 std::array<float, 4> extraDOFCuts =
thresholds->getExtraDOFCutsForAlignable(it->first,
j);
207 "Extra DOF: %i with label %s \n ",
209 thresholds->getExtraDOFLabelForAlignable(it->first,
j).c_str());
210 fprintf(pFile,
"- cut : %8.3f ", extraDOFCuts.at(0));
211 fprintf(pFile,
"| sigCut : %8.3f ", extraDOFCuts.at(1));
212 fprintf(pFile,
"| maxMoveCut : %8.3f ", extraDOFCuts.at(2));
213 fprintf(pFile,
"| maxErrorCut : %8.3f \n ", extraDOFCuts.at(3));
220 template <
typename T,
typename R>
223 desc.setComment(
"Reads payloads of type AlignPCLThresholds");
224 desc.addUntracked<
bool>(
"printDebug",
true);
const TypeTag & type() const
~AlignPCLThresholdsReader() override
const std::string formatedOutput_
std::unordered_map< std::string, std::vector< float > > param_map
std::map< std::string, AlignPCLThreshold > threshold_map
const edm::ESGetToken< T, R > thresholdToken_
AlignPCLThresholdsReader(edm::ParameterSet const &p)
std::string defaultModuleLabel()
Log< level::Error, false > LogError
char const * name() const
T const * product() const
#define DEFINE_FWK_MODULE(type)
AlignPCLThresholdsReader< AlignPCLThresholdsHG, AlignPCLThresholdsHGRcd > AlignPCLThresholdsHGReader
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Log< level::Info, false > LogInfo
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void analyze(const edm::Event &e, const edm::EventSetup &c) override
AlignPCLThresholdsReader< AlignPCLThresholds, AlignPCLThresholdsRcd > AlignPCLThresholdsLGReader
heterocontainer::HCTypeTag TypeTag
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag