![]() |
![]() |
Public Types | |
enum | { dimension = 7 } |
typedef math::Error< dimension > ::type | CovarianceMatrix |
typedef math::XYZPoint | Point |
Public Member Functions | |
BeamSpotFromSimProducer (const edm::ParameterSet &iConfig) | |
Constructor/destructor. | |
virtual | ~BeamSpotFromSimProducer () |
Private Member Functions | |
virtual void | beginRun (edm::Run &run, const edm::EventSetup &iSetup) |
virtual void | endRun (edm::Run &run, const edm::EventSetup &iSetup) |
virtual void | produce (edm::Event &iEvent, const edm::EventSetup &iSetup) |
Private Attributes | |
double | dxdz_ |
double | dydz_ |
CovarianceMatrix | error_ |
double | meanX_ |
double | meanY_ |
double | meanZ_ |
Point | point_ |
double | sigmaX_ |
double | sigmaY_ |
double | sigmaZ_ |
Definition at line 45 of file BeamSpotFromSimProducer.cc.
typedef math::Error<dimension>::type BeamSpotFromSimProducer::CovarianceMatrix |
Definition at line 52 of file BeamSpotFromSimProducer.cc.
Definition at line 50 of file BeamSpotFromSimProducer.cc.
anonymous enum |
BeamSpotFromSimProducer::BeamSpotFromSimProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Constructor/destructor.
Definition at line 88 of file BeamSpotFromSimProducer.cc.
{ produces< reco::BeamSpot >( "BeamSpot" ).setBranchAlias("BeamSpot"); }
BeamSpotFromSimProducer::~BeamSpotFromSimProducer | ( | ) | [virtual] |
Definition at line 95 of file BeamSpotFromSimProducer.cc.
{ }
void BeamSpotFromSimProducer::beginRun | ( | edm::Run & | run, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
///////////////// /// MANDATORY METHODS ///
Reimplemented from edm::EDProducer.
Definition at line 108 of file BeamSpotFromSimProducer.cc.
References gather_cfg::cout.
{ std::cout << "BeamSpotFromSimProducer" << std::endl; }
void BeamSpotFromSimProducer::endRun | ( | edm::Run & | run, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Things to be done at the exit of the event Loop
Reimplemented from edm::EDProducer.
Definition at line 101 of file BeamSpotFromSimProducer.cc.
{ }
void BeamSpotFromSimProducer::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Prepare output
Implements edm::EDProducer.
Definition at line 115 of file BeamSpotFromSimProducer.cc.
References funct::cos(), reco::BeamSpot::Fake, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), edm::Event::getProcessParameterSet(), j, gen::k, edm::Event::processHistory(), edm::Event::put(), funct::sin(), edm::ProcessHistory::size(), mathSSE::sqrt(), and AlCaHLTBitMon_QueryRunRegistry::string.
{ static bool gotProcessParameterSet=false; if(!gotProcessParameterSet){ gotProcessParameterSet=true; edm::ParameterSet ps; //fetch the real process name using the processHistory accessor of //the edm::Event, then find the // last-1 entry and ask for it's processName unsigned int iProcess=iEvent.processHistory().size(); //std::cout << "Process History size = "<<iProcess<<std::endl; //for (unsigned int i=0;i<iProcess;i++){ // std::cout << "Process "<<i<<" name: " // <<iEvent.processHistory()[i].processName()<<std::endl; //} if (iProcess>0) iProcess=0; std::string nameProcess = iEvent.processHistory()[iProcess].processName(); //std::cout << "nameProcess:"<<nameProcess<<std::endl; // Now ask the edm::Event for the top level parameter set of this process, //return it in ps iEvent.getProcessParameterSet(nameProcess,ps); // The VtxSmeared has a parameter name "SigmaZ" this will // retrieve it. //cout << "Will print out ps:" << endl; //cout << ps << endl; //cout << "Done printing ps" << endl; // double SigmaZ = ps.getParameterSet("HLLHCVtxSmearingParameters").getParameter<double>("SigmaZ"); double SigmaX = ps.getParameterSet("VtxSmeared").getParameter<double>("SigmaX"); double SigmaY = ps.getParameterSet("VtxSmeared").getParameter<double>("SigmaY"); double SigmaZ = ps.getParameterSet("VtxSmeared").getParameter<double>("SigmaZ"); meanX_ = ps.getParameterSet("VtxSmeared").getParameter<double>("MeanX"); meanY_ = ps.getParameterSet("VtxSmeared").getParameter<double>("MeanY"); meanZ_ = ps.getParameterSet("VtxSmeared").getParameter<double>("MeanZ"); double HalfCrossingAngle = ps.getParameterSet("VtxSmeared").getParameter<double>("HalfCrossingAngle"); double CrabAngle = ps.getParameterSet("VtxSmeared").getParameter<double>("CrabAngle"); static const double sqrtOneHalf=sqrt(0.5); double sinbeta=sin(CrabAngle); double cosbeta=cos(CrabAngle); double cosalpha=cos(HalfCrossingAngle); double sinamb=sin(HalfCrossingAngle-CrabAngle); double cosamb=sin(HalfCrossingAngle-CrabAngle); sigmaX_=sqrtOneHalf*hypot(SigmaZ*sinbeta,SigmaX*cosbeta)/cosalpha; sigmaY_=sqrtOneHalf*SigmaY; sigmaZ_=sqrtOneHalf*hypot(sinamb/SigmaX,cosamb/SigmaZ); dxdz_=0.0; dydz_=0.0; point_=Point(meanX_,meanY_,meanZ_); for (unsigned int j=0; j<7; j++) { for (unsigned int k=j; k<7; k++) { error_(j,k) = 0.0; } } //arbitrarily set position errors to 1/10 of width. error_(0,0)=0.1*sigmaX_; error_(1,1)=0.1*sigmaY_; error_(2,2)=0.1*sigmaZ_; //arbitrarily set width errors to 1/10 of width. error_(3,3)=0.1*sigmaZ_; error_(6,6)=0.1*sigmaX_; //arbitrarily set error on beam axis direction to 1/100 of //beam aspect ratio error_(4,4)=0.01*sigmaX_/sigmaZ_; error_(5,5)=error_(4,4); } std::auto_ptr< reco::BeamSpot > BeamSpotForOutput( new reco::BeamSpot(point_, sigmaZ_, dxdz_, dydz_, sigmaX_, error_, reco::BeamSpot::Fake)); iEvent.put( BeamSpotForOutput, "BeamSpot"); }
double BeamSpotFromSimProducer::dxdz_ [private] |
Definition at line 77 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::dydz_ [private] |
Definition at line 78 of file BeamSpotFromSimProducer.cc.
Definition at line 81 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::meanX_ [private] |
Definition at line 69 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::meanY_ [private] |
Definition at line 70 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::meanZ_ [private] |
Definition at line 71 of file BeamSpotFromSimProducer.cc.
Point BeamSpotFromSimProducer::point_ [private] |
Definition at line 80 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::sigmaX_ [private] |
Definition at line 73 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::sigmaY_ [private] |
Definition at line 74 of file BeamSpotFromSimProducer.cc.
double BeamSpotFromSimProducer::sigmaZ_ [private] |
Definition at line 75 of file BeamSpotFromSimProducer.cc.