diff --git a/offline/packages/tpccalib/TpcCentralMembraneMatching.cc b/offline/packages/tpccalib/TpcCentralMembraneMatching.cc index 2cb4942994..e790bb2b1d 100644 --- a/offline/packages/tpccalib/TpcCentralMembraneMatching.cc +++ b/offline/packages/tpccalib/TpcCentralMembraneMatching.cc @@ -2351,7 +2351,14 @@ int TpcCentralMembraneMatching::process_event(PHCompositeNode* topNode) } */ m_dcc_out->m_hDRint[s]->SetBinContent(i, j, gr_dR[s]->Interpolate(phiVal,RVal)); - m_dcc_out->m_hDPint[s]->SetBinContent(i, j, RVal*gr_dPhi[s]->Interpolate(phiVal,RVal)); + if(!m_phiHist_in_rad) + { + m_dcc_out->m_hDPint[s]->SetBinContent(i, j, RVal*gr_dPhi[s]->Interpolate(phiVal,RVal)); + } + else + { + m_dcc_out->m_hDPint[s]->SetBinContent(i, j, gr_dPhi[s]->Interpolate(phiVal,RVal)); + } } } } @@ -2660,13 +2667,27 @@ int TpcCentralMembraneMatching::End(PHCompositeNode* /*topNode*/) if(den > 0.0) { m_dcc_out_aggregated->m_hDRint[s]->SetBinContent(i, j, num_dR / den); - m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, RVal*(num_dPhi / den)); + if(!m_phiHist_in_rad) + { + m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, RVal*(num_dPhi / den)); + } + else + { + m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, num_dPhi / den); + } } } else { m_dcc_out_aggregated->m_hDRint[s]->SetBinContent(i, j, gr_dR_toInterp[s]->Interpolate(phiVal,RVal)); - m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, RVal*gr_dPhi_toInterp[s]->Interpolate(phiVal,RVal)); + if(!m_phiHist_in_rad) + { + m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, RVal*gr_dPhi_toInterp[s]->Interpolate(phiVal,RVal)); + } + else + { + m_dcc_out_aggregated->m_hDPint[s]->SetBinContent(i, j, gr_dPhi_toInterp[s]->Interpolate(phiVal,RVal)); + } } } } @@ -2873,8 +2894,8 @@ int TpcCentralMembraneMatching::GetNodes(PHCompositeNode* topNode) std::cout << "TpcCentralMembraneMatching::GetNodes - creating TpcDistortionCorrectionContainer in node " << dcc_out_node_name << std::endl; m_dcc_out = new TpcDistortionCorrectionContainer; m_dcc_out->m_dimensions = 2; - m_dcc_out->m_phi_hist_in_radians = false; - m_dcc_out->m_interpolate_z = true; + m_dcc_out->m_phi_hist_in_radians = m_phiHist_in_rad; + m_dcc_out->m_interpolate_z = false; auto* node = new PHDataNode(m_dcc_out, dcc_out_node_name); runNode->addNode(node); } diff --git a/offline/packages/tpccalib/TpcCentralMembraneMatching.h b/offline/packages/tpccalib/TpcCentralMembraneMatching.h index cdde093629..2bc44e5ede 100644 --- a/offline/packages/tpccalib/TpcCentralMembraneMatching.h +++ b/offline/packages/tpccalib/TpcCentralMembraneMatching.h @@ -124,6 +124,9 @@ class TpcCentralMembraneMatching : public SubsysReco m_stripePatternFile = stripePatternFile; } + void set_phiHistInRad(bool rad){ m_phiHist_in_rad = rad; } + + // void set_laminationFile(const std::string& filename) //{ // m_lamfilename = filename; @@ -156,6 +159,8 @@ class TpcCentralMembraneMatching : public SubsysReco //! tpc distortion correction utility class TpcDistortionCorrection m_distortionCorrection; + bool m_phiHist_in_rad{true}; + //! CMFlashClusterContainer *m_corrected_CMcluster_map{nullptr}; LaserClusterContainer *m_corrected_CMcluster_map{nullptr}; CMFlashDifferenceContainer *m_cm_flash_diffs{nullptr}; diff --git a/offline/packages/tpccalib/TpcLaminationFitting.cc b/offline/packages/tpccalib/TpcLaminationFitting.cc index 1b3062dd7d..9e1eda849d 100644 --- a/offline/packages/tpccalib/TpcLaminationFitting.cc +++ b/offline/packages/tpccalib/TpcLaminationFitting.cc @@ -412,22 +412,22 @@ int TpcLaminationFitting::process_event(PHCompositeNode *topNode) { for (int l = 0; l < 18; l++) { - double shift = m_laminationIdeal[l][side]; + double shift = m_laminationIdeal[l][side]; - double phi2pi = tmp_pos.Phi(); - if (side && phi2pi < -0.2) - { - phi2pi += 2 * M_PI; - } - if (!side && phi2pi < M_PI / 18 - 0.2) - { - phi2pi += 2 * M_PI; - } + double phi2pi = tmp_pos.Phi(); + if (side && phi2pi < -0.2) + { + phi2pi += 2 * M_PI; + } + if (!side && phi2pi < M_PI / 18 - 0.2) + { + phi2pi += 2 * M_PI; + } - if (phi2pi > shift - 0.2 && phi2pi < shift + 0.2) - { - m_hLamination[l][side]->Fill(tmp_pos.Perp(), phi2pi); - } + if (phi2pi > shift - 0.2 && phi2pi < shift + 0.2) + { + m_hLamination[l][side]->Fill(tmp_pos.Perp(), phi2pi); + } } } @@ -745,7 +745,7 @@ int TpcLaminationFitting::InterpolatePhiDistortions() int phiBin = phiDistortionLamination[s]->GetXaxis()->FindBin(phi); if(m_fieldOff) { - m_laminationOffset[l][s] = m_fLamination[l][s]->GetParameter(0); + m_laminationOffset[l][s] = m_fLamination[l][s]->GetParameter(0); m_fLamination[l][s]->SetParameter(1, 0.0); } else @@ -753,7 +753,11 @@ int TpcLaminationFitting::InterpolatePhiDistortions() //m_fLamination[l][s]->SetParameter(3, -1.0*m_laminationOffset[l][s]); m_fLamination[l][s]->SetParameter(3, 0.0); } - double phiDistortion = R * m_fLamination[l][s]->Integral(phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i), phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i + 1)) / (phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i + 1) - phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i)); + double phiDistortion = m_fLamination[l][s]->Integral(phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i), phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i + 1)) / (phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i + 1) - phiDistortionLamination[s]->GetYaxis()->GetBinLowEdge(i)); + if(!m_phiHist_in_rad) + { + phiDistortion *= R; + } if(m_fieldOff) { m_fLamination[l][s]->SetParameter(1, m_laminationIdeal[l][s]); @@ -1207,9 +1211,22 @@ int TpcLaminationFitting::End(PHCompositeNode * /*topNode*/) } m_laminationTree->Write(); - m_hLamination[13][0]->Write(); - m_hLamination[13][1]->Write(); - m_hLamination[14][1]->Write(); + if(m_saveAllLaminationHistograms) + { + for(auto &i : m_hLamination) + { + for(auto &j : i) + { + j->Write(); + } + } + } + else + { + m_hLamination[13][0]->Write(); + m_hLamination[13][1]->Write(); + m_hLamination[14][1]->Write(); + } outputfile->Close(); diff --git a/offline/packages/tpccalib/TpcLaminationFitting.h b/offline/packages/tpccalib/TpcLaminationFitting.h index 561a9ab199..5285dff0d2 100644 --- a/offline/packages/tpccalib/TpcLaminationFitting.h +++ b/offline/packages/tpccalib/TpcLaminationFitting.h @@ -50,6 +50,10 @@ class TpcLaminationFitting : public SubsysReco void set_ppMode(bool mode){ ppMode = mode; } + void set_phiHistInRad(bool rad){ m_phiHist_in_rad = rad; } + + void set_saveAllLaminationHistograms(bool save){ m_saveAllLaminationHistograms = save; } + void set_fieldOff(bool fieldOff){ m_fieldOff = fieldOff; } void set_grid_dimensions(int phibins, int rbins); @@ -121,6 +125,9 @@ class TpcLaminationFitting : public SubsysReco //std::map m_run_ZDC_map_pp; //std::map m_run_ZDC_map_auau; + bool m_phiHist_in_rad{true}; + bool m_saveAllLaminationHistograms{false}; + std::string m_stripePatternFile = "/sphenix/u/bkimelman/CMStripePattern.root"; bool m_fieldOff{false};