Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:44

0001 
0002 #include "RecoEcal/EgammaCoreTools/interface/BremRecoveryPhiRoadAlgo.h"
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 
0005 #include <iostream>
0006 
0007 BremRecoveryPhiRoadAlgo::BremRecoveryPhiRoadAlgo(const edm::ParameterSet& pset) {
0008   // get barrel and endcap parametersets
0009   edm::ParameterSet barrelPset = pset.getParameter<edm::ParameterSet>("barrel");
0010   edm::ParameterSet endcapPset = pset.getParameter<edm::ParameterSet>("endcap");
0011 
0012   // set barrel parameters
0013   etVec_ = barrelPset.getParameter<std::vector<double> >("etVec");
0014   cryVec_ = barrelPset.getParameter<std::vector<int> >("cryVec");
0015   cryMin_ = barrelPset.getParameter<int>("cryMin");
0016 
0017   // set endcap parameters
0018   a_ = endcapPset.getParameter<double>("a");
0019   b_ = endcapPset.getParameter<double>("b");
0020   c_ = endcapPset.getParameter<double>("c");
0021 }
0022 
0023 int BremRecoveryPhiRoadAlgo::barrelPhiRoad(double et) {
0024   //
0025   // Take as input the ET in 5x5 crystals
0026   // and compute the optimal phi road
0027   // as a number of crystals
0028 
0029   for (unsigned int i = 0; i < cryVec_.size(); ++i) {
0030     if (et < etVec_[i])
0031       return cryVec_[i];
0032   }
0033   return cryMin_;
0034 }
0035 
0036 double BremRecoveryPhiRoadAlgo::endcapPhiRoad(double energy) {
0037   //
0038   // Take as input the energy in the seed BasicCluster
0039   // and return the optimal phi road
0040   // length in radians
0041 
0042   return ((a_ / (energy + b_)) + c_);
0043 }