Skip to content

Commit

Permalink
Merge pull request #30466 from CTPPS/pps_direct_simu_A_11_1
Browse files Browse the repository at this point in the history
PPS: direct simulation update A
  • Loading branch information
cmsbuild committed Jul 7, 2020
2 parents baa5e2f + 83c4850 commit 199e654
Show file tree
Hide file tree
Showing 24 changed files with 480 additions and 86 deletions.
20 changes: 16 additions & 4 deletions CalibPPS/ESProducers/plugins/CTPPSBeamParametersESSource.cc
Expand Up @@ -61,9 +61,9 @@ class CTPPSBeamParametersESSource : public edm::ESProducer, public edm::EventSet
double beamDivX45_, beamDivY45_, beamDivX56_, beamDivY56_;
double halfXangleX45_, halfXangleY45_;
double halfXangleX56_, halfXangleY56_;
double vtxOffsetX45_, vtxOffsetY45_, vtxOffsetZ45_;
double vtxOffsetX56_, vtxOffsetY56_, vtxOffsetZ56_;
double vtxStddevX_, vtxStddevY_, vtxStddevZ_;
double vtxOffsetX45_, vtxOffsetY45_, vtxOffsetZ45_, vtxOffsetT45_;
double vtxOffsetX56_, vtxOffsetY56_, vtxOffsetZ56_, vtxOffsetT56_;
double vtxStddevX_, vtxStddevY_, vtxStddevZ_, vtxStddevT_;

protected:
/// sets infinite validity of this data
Expand Down Expand Up @@ -93,12 +93,15 @@ CTPPSBeamParametersESSource::CTPPSBeamParametersESSource(const edm::ParameterSet
vtxOffsetX45_(0.),
vtxOffsetY45_(0.),
vtxOffsetZ45_(0.),
vtxOffsetT45_(0.),
vtxOffsetX56_(0.),
vtxOffsetY56_(0.),
vtxOffsetZ56_(0.),
vtxOffsetT56_(0.),
vtxStddevX_(0.),
vtxStddevY_(0.),
vtxStddevZ_(0.) {
vtxStddevZ_(0.),
vtxStddevT_(0.) {
if (setBeamPars_)
setBeamParameters(iConfig);

Expand Down Expand Up @@ -137,12 +140,15 @@ void CTPPSBeamParametersESSource::setBeamParameters(const edm::ParameterSet& iCo
vtxOffsetX45_ = iConfig.getParameter<double>("vtxOffsetX45");
vtxOffsetY45_ = iConfig.getParameter<double>("vtxOffsetY45");
vtxOffsetZ45_ = iConfig.getParameter<double>("vtxOffsetZ45");
vtxOffsetT45_ = iConfig.getParameter<double>("vtxOffsetT45");
vtxOffsetX56_ = iConfig.getParameter<double>("vtxOffsetX56");
vtxOffsetY56_ = iConfig.getParameter<double>("vtxOffsetY56");
vtxOffsetZ56_ = iConfig.getParameter<double>("vtxOffsetZ56");
vtxOffsetT56_ = iConfig.getParameter<double>("vtxOffsetT56");
vtxStddevX_ = iConfig.getParameter<double>("vtxStddevX");
vtxStddevY_ = iConfig.getParameter<double>("vtxStddevY");
vtxStddevZ_ = iConfig.getParameter<double>("vtxStddevZ");
vtxStddevT_ = iConfig.getParameter<double>("vtxStddevT");
}

//----------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -171,13 +177,16 @@ std::unique_ptr<CTPPSBeamParameters> CTPPSBeamParametersESSource::fillBeamParame
p->setVtxOffsetX45(vtxOffsetX45_);
p->setVtxOffsetY45(vtxOffsetY45_);
p->setVtxOffsetZ45(vtxOffsetZ45_);
p->setVtxOffsetT45(vtxOffsetT45_);
p->setVtxOffsetX56(vtxOffsetX56_);
p->setVtxOffsetY56(vtxOffsetY56_);
p->setVtxOffsetZ56(vtxOffsetZ56_);
p->setVtxOffsetT56(vtxOffsetT56_);

p->setVtxStddevX(vtxStddevX_);
p->setVtxStddevY(vtxStddevY_);
p->setVtxStddevZ(vtxStddevZ_);
p->setVtxStddevT(vtxStddevT_);

return p;
}
Expand Down Expand Up @@ -222,13 +231,16 @@ void CTPPSBeamParametersESSource::fillDescriptions(edm::ConfigurationDescription
desc.add<double>("vtxOffsetX45", 1.e-2);
desc.add<double>("vtxOffsetY45", 1.e-2);
desc.add<double>("vtxOffsetZ45", 1.e-2);
desc.add<double>("vtxOffsetT45", 1.e-2);
desc.add<double>("vtxOffsetX56", 1.e-2);
desc.add<double>("vtxOffsetY56", 1.e-2);
desc.add<double>("vtxOffsetZ56", 1.e-2);
desc.add<double>("vtxOffsetT56", 1.e-2);
// vertex sigma (cm)
desc.add<double>("vtxStddevX", 2.e-2);
desc.add<double>("vtxStddevY", 2.e-2);
desc.add<double>("vtxStddevZ", 2.e-2);
desc.add<double>("vtxStddevT", 2.e-2);

descriptions.add("ctppsBeamParametersESSource", desc);
}
Expand Down
8 changes: 8 additions & 0 deletions CondFormats/PPSObjects/interface/CTPPSBeamParameters.h
Expand Up @@ -49,13 +49,16 @@ class CTPPSBeamParameters {
double getVtxOffsetX45() const;
double getVtxOffsetY45() const;
double getVtxOffsetZ45() const;
double getVtxOffsetT45() const;
double getVtxOffsetX56() const;
double getVtxOffsetY56() const;
double getVtxOffsetZ56() const;
double getVtxOffsetT56() const;

double getVtxStddevX() const;
double getVtxStddevY() const;
double getVtxStddevZ() const;
double getVtxStddevT() const;

// Setters

Expand All @@ -80,13 +83,16 @@ class CTPPSBeamParameters {
void setVtxOffsetX45(double offset);
void setVtxOffsetY45(double offset);
void setVtxOffsetZ45(double offset);
void setVtxOffsetT45(double offset);
void setVtxOffsetX56(double offset);
void setVtxOffsetY56(double offset);
void setVtxOffsetZ56(double offset);
void setVtxOffsetT56(double offset);

void setVtxStddevX(double stddev);
void setVtxStddevY(double stddev);
void setVtxStddevZ(double stddev);
void setVtxStddevT(double stddev);

void printInfo(std::stringstream &s);

Expand All @@ -108,12 +114,14 @@ class CTPPSBeamParameters {
double vtx_offset_x_45_, vtx_offset_x_56_; // cm
double vtx_offset_y_45_, vtx_offset_y_56_; // cm
double vtx_offset_z_45_, vtx_offset_z_56_; // cm
double vtx_offset_t_45_, vtx_offset_t_56_; // cm

// the following variables might possibly be in another CMS record already,
// but we might want to keep them for completeness/independence
double vtx_stddev_x_; // cm
double vtx_stddev_y_; // cm
double vtx_stddev_z_; // cm
double vtx_stddev_t_; // cm

COND_SERIALIZABLE;
};
Expand Down
16 changes: 14 additions & 2 deletions CondFormats/PPSObjects/src/CTPPSBeamParameters.cc
Expand Up @@ -40,9 +40,12 @@ CTPPSBeamParameters::CTPPSBeamParameters()
vtx_offset_y_56_(0.),
vtx_offset_z_45_(0.),
vtx_offset_z_56_(0.),
vtx_offset_t_45_(0.),
vtx_offset_t_56_(0.),
vtx_stddev_x_(0.),
vtx_stddev_y_(0.),
vtx_stddev_z_(0.) {}
vtx_stddev_z_(0.),
vtx_stddev_t_(0.) {}

// Destructor
CTPPSBeamParameters::~CTPPSBeamParameters() {}
Expand Down Expand Up @@ -70,13 +73,16 @@ double CTPPSBeamParameters::getHalfXangleY56() const { return half_crossing_angl
double CTPPSBeamParameters::getVtxOffsetX45() const { return vtx_offset_x_45_; }
double CTPPSBeamParameters::getVtxOffsetY45() const { return vtx_offset_y_45_; }
double CTPPSBeamParameters::getVtxOffsetZ45() const { return vtx_offset_z_45_; }
double CTPPSBeamParameters::getVtxOffsetT45() const { return vtx_offset_t_45_; }
double CTPPSBeamParameters::getVtxOffsetX56() const { return vtx_offset_x_56_; }
double CTPPSBeamParameters::getVtxOffsetY56() const { return vtx_offset_y_56_; }
double CTPPSBeamParameters::getVtxOffsetZ56() const { return vtx_offset_z_56_; }
double CTPPSBeamParameters::getVtxOffsetT56() const { return vtx_offset_t_56_; }

double CTPPSBeamParameters::getVtxStddevX() const { return vtx_stddev_x_; }
double CTPPSBeamParameters::getVtxStddevY() const { return vtx_stddev_y_; }
double CTPPSBeamParameters::getVtxStddevZ() const { return vtx_stddev_z_; }
double CTPPSBeamParameters::getVtxStddevT() const { return vtx_stddev_t_; }

// Setters

Expand All @@ -101,13 +107,16 @@ void CTPPSBeamParameters::setHalfXangleY56(double angle) { half_crossing_angle_y
void CTPPSBeamParameters::setVtxOffsetX45(double offset) { vtx_offset_x_45_ = offset; }
void CTPPSBeamParameters::setVtxOffsetY45(double offset) { vtx_offset_y_45_ = offset; }
void CTPPSBeamParameters::setVtxOffsetZ45(double offset) { vtx_offset_z_45_ = offset; }
void CTPPSBeamParameters::setVtxOffsetT45(double offset) { vtx_offset_t_45_ = offset; }
void CTPPSBeamParameters::setVtxOffsetX56(double offset) { vtx_offset_x_56_ = offset; }
void CTPPSBeamParameters::setVtxOffsetY56(double offset) { vtx_offset_y_56_ = offset; }
void CTPPSBeamParameters::setVtxOffsetZ56(double offset) { vtx_offset_z_56_ = offset; }
void CTPPSBeamParameters::setVtxOffsetT56(double offset) { vtx_offset_t_56_ = offset; }

void CTPPSBeamParameters::setVtxStddevX(double stddev) { vtx_stddev_x_ = stddev; }
void CTPPSBeamParameters::setVtxStddevY(double stddev) { vtx_stddev_y_ = stddev; }
void CTPPSBeamParameters::setVtxStddevZ(double stddev) { vtx_stddev_z_ = stddev; }
void CTPPSBeamParameters::setVtxStddevT(double stddev) { vtx_stddev_t_ = stddev; }

void CTPPSBeamParameters::printInfo(std::stringstream& s) {
s << "\n Beam parameters : \n"
Expand All @@ -128,12 +137,15 @@ void CTPPSBeamParameters::printInfo(std::stringstream& s) {
<< "\n vtx_offset_x_45 = " << vtx_offset_x_45_ << " cm"
<< "\n vtx_offset_y_45 = " << vtx_offset_y_45_ << " cm"
<< "\n vtx_offset_z_45 = " << vtx_offset_z_45_ << " cm"
<< "\n vtx_offset_t_45 = " << vtx_offset_t_45_ << " cm"
<< "\n vtx_offset_x_56 = " << vtx_offset_x_56_ << " cm"
<< "\n vtx_offset_y_56 = " << vtx_offset_y_56_ << " cm"
<< "\n vtx_offset_z_56 = " << vtx_offset_z_56_ << " cm"
<< "\n vtx_offset_t_56 = " << vtx_offset_t_56_ << " cm"
<< "\n vtx_stddev_x = " << vtx_stddev_x_ << " cm"
<< "\n vtx_stddev_y = " << vtx_stddev_y_ << " cm"
<< "\n vtx_stddev_z = " << vtx_stddev_z_ << " cm" << std::endl;
<< "\n vtx_stddev_z = " << vtx_stddev_z_ << " cm"
<< "\n vtx_stddev_t = " << vtx_stddev_t_ << " cm" << std::endl;
}

std::ostream& operator<<(std::ostream& os, CTPPSBeamParameters info) {
Expand Down
4 changes: 3 additions & 1 deletion Configuration/Eras/python/Era_Run3_cff.py
Expand Up @@ -6,6 +6,8 @@
from Configuration.Eras.Modifier_run3_HB_cff import run3_HB
from Configuration.Eras.Modifier_run2_GEM_2017_cff import run2_GEM_2017
from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021
from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018
from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021

Run3 = cms.ModifierChain(Run2_2018.copyAndExclude([run2_GEM_2017]), run3_common, run3_GEM, run3_HB, stage2L1Trigger_2021)
Run3 = cms.ModifierChain(Run2_2018.copyAndExclude([run2_GEM_2017, ctpps_2018]), run3_common, run3_GEM, run3_HB, stage2L1Trigger_2021, ctpps_2021)

14 changes: 8 additions & 6 deletions IOMC/EventVertexGenerators/src/BeamDivergenceVtxGenerator.cc
Expand Up @@ -44,7 +44,7 @@ class BeamDivergenceVtxGenerator : public edm::stream::EDProducer<> {
bool simulateBeamDivergence_;

struct SmearingParameters {
double vtx_x, vtx_y, vtx_z; // cm
double vtx_x, vtx_y, vtx_z, vtx_t; // cm
double bd_x_45, bd_y_45, bd_x_56, bd_y_56; // rad
};

Expand Down Expand Up @@ -129,6 +129,7 @@ void BeamDivergenceVtxGenerator::produce(edm::Event &iEvent, const edm::EventSet
sp.vtx_x = hBeamParameters->getVtxOffsetX45() + CLHEP::RandGauss::shoot(rnd) * hBeamParameters->getVtxStddevX();
sp.vtx_y = hBeamParameters->getVtxOffsetY45() + CLHEP::RandGauss::shoot(rnd) * hBeamParameters->getVtxStddevY();
sp.vtx_z = hBeamParameters->getVtxOffsetZ45() + CLHEP::RandGauss::shoot(rnd) * hBeamParameters->getVtxStddevZ();
sp.vtx_t = hBeamParameters->getVtxOffsetT45() + CLHEP::RandGauss::shoot(rnd) * hBeamParameters->getVtxStddevT();
}

if (simulateBeamDivergence_) {
Expand Down Expand Up @@ -188,7 +189,7 @@ void BeamDivergenceVtxGenerator::applySmearingHepMC(const SmearingParameters &sp
(*vit)->set_position(HepMC::FourVector(pos.x() + sp.vtx_x * 1E1, // conversion: cm to mm
pos.y() + sp.vtx_y * 1E1,
pos.z() + sp.vtx_z * 1E1,
pos.t()));
pos.t() + sp.vtx_t * 1E1));
}
}

Expand All @@ -204,10 +205,11 @@ void BeamDivergenceVtxGenerator::addSmearedGenParticle(const reco::GenParticle &
const SmearingParameters &sp,
HepMC::GenEvent *genEvt) {
// add vertex of the particle
HepMC::GenVertex *vtx = new HepMC::GenVertex(HepMC::FourVector((gp.vx() + sp.vtx_x) * 1E1, // conversion: cm to mm
(gp.vy() + sp.vtx_y) * 1E1,
(gp.vz() + sp.vtx_z) * 1E1,
0.));
HepMC::GenVertex *vtx = new HepMC::GenVertex(HepMC::FourVector(
(gp.vx() + sp.vtx_x) * 1E1, // conversion: cm to mm
(gp.vy() + sp.vtx_y) * 1E1,
(gp.vz() + sp.vtx_z) * 1E1,
(/*gp.vt()*/ +sp.vtx_t) * 1E1)); // TODO: GenParticle doesn't seem to have time component of the vertex
genEvt->add_vertex(vtx);

// add the particle itself
Expand Down
@@ -1,12 +1,12 @@
<xml DocumentType="AlignmentDescription">
<!-- RP 23 -->
<rp id="2023227392" sh_x="-41700" sh_y="-4300" />
<rp id="2023227392" sh_x="-41600" sh_y="-4400" />

<!-- RP 3 -->
<rp id="2014838784" sh_x="-3600" sh_y="-4000" />
<rp id="2014838784" sh_x="-3600" sh_y="-4200" />

<!-- RP 103 -->
<rp id="2031616000" sh_x="-2800" sh_y="-3300" />
<rp id="2031616000" sh_x="-2700" sh_y="-3700" />

<!-- RP 123 -->
<rp id="2040004608" sh_x="-41700" sh_y="-3300" />
Expand Down
13 changes: 13 additions & 0 deletions Validation/CTPPS/alignment/2018_postTS2.xml
@@ -0,0 +1,13 @@
<xml DocumentType="AlignmentDescription">
<!-- RP 23 -->
<rp id="2023227392" sh_x="-41600" sh_y="-5000" />

<!-- RP 3 -->
<rp id="2014838784" sh_x="-3550" sh_y="-3800" />

<!-- RP 103 -->
<rp id="2031616000" sh_x="-2700" sh_y="-3100" />

<!-- RP 123 -->
<rp id="2040004608" sh_x="-41700" sh_y="-3700" />
</xml>
13 changes: 13 additions & 0 deletions Validation/CTPPS/alignment/2018_preTS1.xml
@@ -0,0 +1,13 @@
<xml DocumentType="AlignmentDescription">
<!-- RP 23 -->
<rp id="2023227392" sh_x="-41600" sh_y="-4000" />

<!-- RP 3 -->
<rp id="2014838784" sh_x="-3400" sh_y="-4600" />

<!-- RP 103 -->
<rp id="2031616000" sh_x="-2400" sh_y="-4100" />

<!-- RP 123 -->
<rp id="2040004608" sh_x="-41550" sh_y="-2800" />
</xml>
7 changes: 5 additions & 2 deletions Validation/CTPPS/plugins/CTPPSBeamSmearingValidator.cc
Expand Up @@ -34,7 +34,7 @@ class CTPPSBeamSmearingValidator : public edm::one::EDAnalyzer<> {

std::string outputFile_;

std::unique_ptr<TH1D> h_de_vtx_x_, h_de_vtx_y_, h_de_vtx_z_;
std::unique_ptr<TH1D> h_de_vtx_x_, h_de_vtx_y_, h_de_vtx_z_, h_de_vtx_t_;

struct SectorPlots {
std::unique_ptr<TH1D> h_de_th_x, h_de_th_y, h_de_p;
Expand Down Expand Up @@ -68,7 +68,8 @@ CTPPSBeamSmearingValidator::CTPPSBeamSmearingValidator(const edm::ParameterSet &
outputFile_(iConfig.getParameter<string>("outputFile")),
h_de_vtx_x_(new TH1D("h_de_vtx_x", ";#Delta vtx_{x} (mm)", 100, 0., 0.)),
h_de_vtx_y_(new TH1D("h_de_vtx_y", ";#Delta vtx_{y} (mm)", 100, 0., 0.)),
h_de_vtx_z_(new TH1D("h_de_vtx_z", ";#Delta vtx_{z} (mm)", 100, 0., 0.)) {}
h_de_vtx_z_(new TH1D("h_de_vtx_z", ";#Delta vtx_{z} (mm)", 100, 0., 0.)),
h_de_vtx_t_(new TH1D("h_de_vtx_t", ";#Delta vtx_{t} (mm)", 100, 0., 0.)) {}

//----------------------------------------------------------------------------------------------------

Expand All @@ -94,6 +95,7 @@ void CTPPSBeamSmearingValidator::analyze(const edm::Event &iEvent, const edm::Ev
h_de_vtx_x_->Fill(vn.x() - vo.x());
h_de_vtx_y_->Fill(vn.y() - vo.y());
h_de_vtx_z_->Fill(vn.z() - vo.z());
h_de_vtx_t_->Fill(vn.t() - vo.t());
}

// particles
Expand Down Expand Up @@ -143,6 +145,7 @@ void CTPPSBeamSmearingValidator::endJob() {
h_de_vtx_x_->Write();
h_de_vtx_y_->Write();
h_de_vtx_z_->Write();
h_de_vtx_t_->Write();

gDirectory = f_out->mkdir("sector 45");
sectorPlots_[0].write();
Expand Down

0 comments on commit 199e654

Please sign in to comment.