CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
EcalEleCalibLooper Class Reference

ECAL TB 2006 calibration with matrix inversion technique. More...

#include <EcalEleCalibLooper.h>

Inheritance diagram for EcalEleCalibLooper:
edm::EDLooper edm::EDLooperBase edm::EDConsumerBase

Public Member Functions

void beginOfJob () override
 BeginOfJob. More...
 
Status duringLoop (const edm::Event &, const edm::EventSetup &) override
 
 EcalEleCalibLooper (const edm::ParameterSet &)
 ctor More...
 
void endOfJob () override
 
Status endOfLoop (const edm::EventSetup &, unsigned int iCounter) override
 
void startingNewLoop (unsigned int) override
 
 ~EcalEleCalibLooper () override
 dtor More...
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
 EDLooper (EDLooper const &)=delete
 
EDLooperoperator= (EDLooper const &)=delete
 
 ~EDLooper () override
 
- Public Member Functions inherited from edm::EDLooperBase
virtual void attachTo (ActivityRegistry &)
 Override this method if you need to monitor the state of the processing. More...
 
void beginOfJob (EventSetupImpl const &)
 
virtual void beginOfJob (EventSetup const &)
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
 
void doBeginRun (RunPrincipal &, EventSetupImpl const &, ProcessContext *)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetupImpl const &es, ProcessingController &, StreamContext *)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
 
Status doEndOfLoop (EventSetupImpl const &es)
 
void doEndRun (RunPrincipal &, EventSetupImpl const &, ProcessContext *)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
 EDLooperBase (EDLooperBase const &)=delete
 
void esPrefetchAsync (WaitingTaskHolder iTask, EventSetupImpl const &iImpl, Transition iTrans, ServiceToken const &iToken) const
 
virtual std::set< eventsetup::EventSetupRecordKeymodifyingRecords () const
 
EDLooperBaseoperator= (EDLooperBase const &)=delete
 
void prefetchAsync (WaitingTaskHolder iTask, ServiceToken const &token, Transition iTrans, Principal const &iPrincipal, EventSetupImpl const &iImpl) const
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ExceptionToActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger *)
 
 ~EDLooperBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

int EBregionCheck (const int eta, const int phi) const
 Tells if you are in the region to be calibrated. More...
 
void EBRegionDefinition ()
 DS EB Region Definition. More...
 
int EBRegionId (const int, const int) const
 Reg Id generator EB --— for the barrel. More...
 
int EBregionsNum () const
 DS number of regions in EB. More...
 
int EEregionCheck (const int, const int) const
 returns zero if the coordinates are in the right place. More...
 
void EERegionDefinition ()
 
int EERegionId (const int, const int) const
 Gives the id of the region. More...
 
int EEregionsNum () const
 DS Number of regions in EE. More...
 
int etaShifter (const int) const
 LP Change the coordinate system. More...
 
double giveLimit (int)
 copes with the infinitives of the tangent More...
 

Private Attributes

bool isfirstcall_
 
const edm::InputTag m_barrelAlCa
 EcalBarrel Input Collection name. More...
 
std::vector< DetIdm_barrelCells
 
EcalIntercalibConstantMap m_barrelMap
 the maps of recalib coeffs More...
 
const edm::EDGetTokenT< EBRecHitCollectionm_ebRecHitToken
 ED token. More...
 
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
 single blocks calibrators More...
 
const edm::EDGetTokenT< EERecHitCollectionm_eeRecHitToken
 
edm::InputTag m_ElectronLabel
 To take the electrons. More...
 
const edm::InputTag m_endcapAlCa
 EcalEndcap Input Collection name. More...
 
std::vector< DetIdm_endcapCells
 
EcalIntercalibConstantMap m_endcapMap
 
const int m_etaEnd
 eta end of the region of interest More...
 
const int m_etaStart
 phi size of the additive border to the sub-matrix More...
 
const int m_etaWidth
 eta size of the sub-matrix More...
 
const edm::ESGetToken< CaloGeometry, CaloGeometryRecordm_geometryToken
 ES token. More...
 
const edm::EDGetTokenT< reco::GsfElectronCollectionm_gsfElectronToken
 
const unsigned int m_loops
 DS sets the number of loops to do. More...
 
VFillMapm_MapFiller
 
const double m_maxCoeff
 maximum coefficient accepted (RAW) More...
 
const double m_maxEnergyPerCrystal
 maximum energy per crystal cut More...
 
const int m_maxSelectedNumPerXtal
 maximum number of events per crystal More...
 
const double m_minCoeff
 minimum coefficient accepted (RAW) More...
 
const double m_minEnergyPerCrystal
 minimum energy per crystal cut More...
 
const int m_phiEndEB
 phi end of the region of interest More...
 
const int m_phiEndEE
 
const int m_phiStartEB
 phi start of the region of interest More...
 
const int m_phiStartEE
 
const int m_phiWidthEB
 eta size of the additive border to the sub-matrix More...
 
const int m_phiWidthEE
 
const int m_radEnd
 
const int m_radStart
 DS For the EE. More...
 
const int m_radWidth
 
const int m_recoWindowSidex
 reconstruction window size More...
 
const int m_recoWindowSidey
 
std::vector< int > m_regions
 
const int m_usingBlockSolver
 to exclude the blocksolver More...
 
std::map< int, int > m_xtalNumOfHits
 
std::map< int, int > m_xtalPositionInRegion
 
std::map< int, int > m_xtalRegionId
 

Additional Inherited Members

- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDLooperBase
ModuleChangermoduleChanger ()
 This only returns a non-zero value during the call to endOfLoop. More...
 
ScheduleInfo const * scheduleInfo () const
 This returns a non-zero value after the constructor has been called. More...
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

ECAL TB 2006 calibration with matrix inversion technique.

Author

Definition at line 34 of file EcalEleCalibLooper.h.

Constructor & Destructor Documentation

◆ EcalEleCalibLooper()

EcalEleCalibLooper::EcalEleCalibLooper ( const edm::ParameterSet iConfig)
explicit

ctor

LP ctor.

Graphs to ckeck the region definition

End of Graphs

Definition at line 29 of file EcalEleCalibLooper.cc.

References qcdUeDQM_cfi::algorithm, cms::cuda::assert(), EBRegionDefinition(), EBregionsNum(), EERegionDefinition(), EEregionsNum(), PVValHelper::eta, beamvalidation::exit(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_barrelMap, m_EcalCalibBlocks, m_endcapMap, m_etaEnd, m_etaStart, m_etaWidth, m_MapFiller, m_maxEnergyPerCrystal, m_minEnergyPerCrystal, m_radEnd, m_radStart, m_radWidth, m_recoWindowSidex, m_recoWindowSidey, m_regions, m_xtalPositionInRegion, m_xtalRegionId, MillePedeFileConverter_cfg::out, phi, HLT_2022v15_cff::region, AlCaHLTBitMon_QueryRunRegistry::string, EBDetId::unhashIndex(), EEDetId::validDetId(), x, and y.

30  : m_barrelAlCa(iConfig.getParameter<edm::InputTag>("alcaBarrelHitCollection")),
31  m_endcapAlCa(iConfig.getParameter<edm::InputTag>("alcaEndcapHitCollection")),
32  m_ElectronLabel(iConfig.getParameter<edm::InputTag>("electronLabel")),
33  m_recoWindowSidex(iConfig.getParameter<int>("recoWindowSidex")),
34  m_recoWindowSidey(iConfig.getParameter<int>("recoWindowSidey")),
35  m_etaWidth(iConfig.getParameter<int>("etaWidth")),
36  m_phiWidthEB(iConfig.getParameter<int>("phiWidthEB")),
37  m_etaStart(etaShifter(iConfig.getParameter<int>("etaStart"))),
38  m_etaEnd(etaShifter(iConfig.getParameter<int>("etaEnd"))),
39  m_phiStartEB(iConfig.getParameter<int>("phiStartEB")),
40  m_phiEndEB(iConfig.getParameter<int>("phiEndEB")),
41  m_radStart(iConfig.getParameter<int>("radStart")),
42  m_radEnd(iConfig.getParameter<int>("radEnd")),
43  m_radWidth(iConfig.getParameter<int>("radWidth")),
44  m_phiStartEE(iConfig.getParameter<int>("phiStartEE")),
45  m_phiEndEE(iConfig.getParameter<int>("phiEndEE")),
46  m_phiWidthEE(iConfig.getParameter<int>("phiWidthEE")),
47  m_maxSelectedNumPerXtal(iConfig.getParameter<int>("maxSelectedNumPerCrystal")),
48  m_minEnergyPerCrystal(iConfig.getParameter<double>("minEnergyPerCrystal")),
49  m_maxEnergyPerCrystal(iConfig.getParameter<double>("maxEnergyPerCrystal")),
50  m_minCoeff(iConfig.getParameter<double>("minCoeff")),
51  m_maxCoeff(iConfig.getParameter<double>("maxCoeff")),
52  m_usingBlockSolver(iConfig.getParameter<int>("usingBlockSolver")),
53  m_loops(iConfig.getParameter<int>("loops")),
54  m_ebRecHitToken(consumes<EBRecHitCollection>(m_barrelAlCa)),
55  m_eeRecHitToken(consumes<EERecHitCollection>(m_endcapAlCa)),
56  m_gsfElectronToken(consumes<reco::GsfElectronCollection>(m_ElectronLabel)),
58  edm::LogInfo("IML") << "[EcalEleCalibLooper][ctor] asserts";
60 
61  assert(m_etaStart >= 0 && m_etaStart <= 171);
62  assert(m_etaEnd >= m_etaStart && m_etaEnd <= 171);
64  assert(m_radStart >= 0 && m_radStart <= 50);
65  assert(m_radEnd >= m_radStart && m_radEnd <= 50);
66  edm::LogInfo("IML") << "[EcalEleCalibLooper][ctor] entering ";
67  edm::LogInfo("IML") << "[EcalEleCalibLooper][ctor] region definition";
71  TH2F* EBRegion = new TH2F("EBRegion", "EBRegion", 170, 0, 170, 360, 0, 360);
72  for (int eta = 0; eta < 170; ++eta)
73  for (int phi = 0; phi < 360; ++phi) {
74  EBRegion->Fill(eta, phi, m_xtalRegionId[EBDetId::unhashIndex(eta * 360 + phi).rawId()]);
75  }
76  TH2F* EERegion = new TH2F("EERegion", "EERegion", 100, 0, 100, 100, 0, 100);
77  for (int x = 0; x < 100; ++x)
78  for (int y = 0; y < 100; ++y) {
79  if (EEDetId::validDetId(x + 1, y + 1, 1))
80  EERegion->Fill(x, y, m_xtalRegionId[EEDetId(x + 1, y + 1, -1).rawId()]);
81  }
82 
83  TFile out("EBZone.root", "recreate");
84  EBRegion->Write();
85  EERegion->Write();
86  out.Close();
87  delete EERegion;
88  delete EBRegion;
90 
91  //PG build the calibration algorithms for the regions
92  //PG ------------------------------------------------
93 
94  edm::LogInfo("IML") << "[EcalEleCalibLooper][ctor] Calib Block";
95  std::string algorithm = iConfig.getParameter<std::string>("algorithm");
96  int eventWeight = iConfig.getUntrackedParameter<int>("L3EventWeight", 1);
97 
98  //PG loop over the regions set
99  for (int region = 0; region < EBregionsNum() + 2 * EEregionsNum(); ++region) {
100  if (algorithm == "IMA")
101  m_EcalCalibBlocks.push_back(new IMACalibBlock(m_regions.at(region)));
102  else if (algorithm == "L3")
103  m_EcalCalibBlocks.push_back(new L3CalibBlock(m_regions.at(region), eventWeight));
104  else {
105  edm::LogError("building") << algorithm << " is not a valid calibration algorithm";
106  exit(1);
107  }
108  } //PG loop over the regions set
109  std::string mapFiller = iConfig.getParameter<std::string>("FillType");
110  if (mapFiller == "Cluster")
117  &m_barrelMap,
118  &m_endcapMap);
119  if (mapFiller == "Matrix")
126  &m_barrelMap,
127  &m_endcapMap);
128 } //end ctor
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const int m_phiStartEB
phi start of the region of interest
const int m_usingBlockSolver
to exclude the blocksolver
const double m_maxCoeff
maximum coefficient accepted (RAW)
const int m_phiEndEB
phi end of the region of interest
const int m_phiWidthEB
eta size of the additive border to the sub-matrix
const edm::EDGetTokenT< EERecHitCollection > m_eeRecHitToken
const int m_radStart
DS For the EE.
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
single blocks calibrators
const int m_etaStart
phi size of the additive border to the sub-matrix
Log< level::Error, false > LogError
assert(be >=bs)
const int m_etaEnd
eta end of the region of interest
T getUntrackedParameter(std::string const &, T const &) const
int etaShifter(const int) const
LP Change the coordinate system.
const double m_minEnergyPerCrystal
minimum energy per crystal cut
interface to the L3Univ class for testing
Definition: L3CalibBlock.h:24
const edm::InputTag m_endcapAlCa
EcalEndcap Input Collection name.
edm::InputTag m_ElectronLabel
To take the electrons.
EcalIntercalibConstantMap m_barrelMap
the maps of recalib coeffs
Log< level::Info, false > LogInfo
const int m_recoWindowSidex
reconstruction window size
std::map< int, int > m_xtalRegionId
const edm::InputTag m_barrelAlCa
EcalBarrel Input Collection name.
void EBRegionDefinition()
DS EB Region Definition.
const edm::EDGetTokenT< EBRecHitCollection > m_ebRecHitToken
ED token.
const int m_etaWidth
eta size of the sub-matrix
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
const edm::EDGetTokenT< reco::GsfElectronCollection > m_gsfElectronToken
std::vector< int > m_regions
int EBregionsNum() const
DS number of regions in EB.
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > m_geometryToken
ES token.
static EBDetId unhashIndex(int hi)
get a DetId from a compact index for arrays
Definition: EBDetId.h:110
std::map< int, int > m_xtalPositionInRegion
const int m_maxSelectedNumPerXtal
maximum number of events per crystal
const unsigned int m_loops
DS sets the number of loops to do.
EcalIntercalibConstantMap m_endcapMap
int EEregionsNum() const
DS Number of regions in EE.
const double m_maxEnergyPerCrystal
maximum energy per crystal cut
const double m_minCoeff
minimum coefficient accepted (RAW)
def exit(msg="")

◆ ~EcalEleCalibLooper()

EcalEleCalibLooper::~EcalEleCalibLooper ( )
override

dtor

LP destructor.

Definition at line 133 of file EcalEleCalibLooper.cc.

References m_EcalCalibBlocks.

133  {
134  edm::LogInfo("IML") << "[EcalEleCalibLooper][dtor]";
135  for (std::vector<VEcalCalibBlock*>::iterator calibBlock = m_EcalCalibBlocks.begin();
136  calibBlock != m_EcalCalibBlocks.end();
137  ++calibBlock)
138  delete (*calibBlock);
139 }
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
single blocks calibrators
Log< level::Info, false > LogInfo

Member Function Documentation

◆ beginOfJob()

void EcalEleCalibLooper::beginOfJob ( )
overridevirtual

BeginOfJob.

Reimplemented from edm::EDLooperBase.

Definition at line 144 of file EcalEleCalibLooper.cc.

References isfirstcall_.

144 { isfirstcall_ = true; }

◆ duringLoop()

edm::EDLooper::Status EcalEleCalibLooper::duringLoop ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

duringLoop return the status Kcontinue, fills the calibBlock with the recHits

Implements edm::EDLooper.

Definition at line 166 of file EcalEleCalibLooper.cc.

References funct::abs(), DetId::Ecal, EcalBarrel, EcalEndcap, HcalObjRepresent::Fill(), VFillMap::fillMap(), first, edm::EventSetup::getData(), SiStripPI::getMaximum(), iEvent, isfirstcall_, edm::HandleBase::isValid(), edm::EDLooperBase::kContinue, m_barrelCells, m_barrelMap, m_ebRecHitToken, m_EcalCalibBlocks, m_eeRecHitToken, m_endcapCells, m_endcapMap, m_geometryToken, m_gsfElectronToken, m_MapFiller, m_maxSelectedNumPerXtal, m_xtalNumOfHits, m_xtalRegionId, METSkim_cff::Max, and edm::Handle< T >::product().

166  {
167  // this chunk used to belong to beginJob(isetup). Moved here
168  // with the beginJob without arguments migration
169 
170  if (isfirstcall_) {
171  const auto& geometry = iSetup.getData(m_geometryToken);
172  m_barrelCells = geometry.getValidDetIds(DetId::Ecal, EcalBarrel);
173  m_endcapCells = geometry.getValidDetIds(DetId::Ecal, EcalEndcap);
174  for (std::vector<DetId>::const_iterator barrelIt = m_barrelCells.begin(); barrelIt != m_barrelCells.end();
175  ++barrelIt) {
176  m_barrelMap[*barrelIt] = 1;
177  m_xtalNumOfHits[barrelIt->rawId()] = 0;
178  }
179  for (std::vector<DetId>::const_iterator endcapIt = m_endcapCells.begin(); endcapIt != m_endcapCells.end();
180  ++endcapIt) {
181  m_endcapMap[*endcapIt] = 1;
182  m_xtalNumOfHits[endcapIt->rawId()] = 0;
183  }
184 
185  isfirstcall_ = false;
186  }
187 
188  //take the collection of recHits in the barrel
189  const EBRecHitCollection* barrelHitsCollection = nullptr;
190  edm::Handle<EBRecHitCollection> barrelRecHitsHandle;
191  iEvent.getByToken(m_ebRecHitToken, barrelRecHitsHandle);
192  barrelHitsCollection = barrelRecHitsHandle.product();
193  if (!barrelRecHitsHandle.isValid()) {
194  edm::LogError("reading") << "[EcalEleCalibLooper] barrel rec hits not found";
195  return kContinue;
196  }
197 
198  //take the collection of rechis in the endcap
199  const EERecHitCollection* endcapHitsCollection = nullptr;
200  edm::Handle<EERecHitCollection> endcapRecHitsHandle;
201  iEvent.getByToken(m_eeRecHitToken, endcapRecHitsHandle);
202  endcapHitsCollection = endcapRecHitsHandle.product();
203  if (!endcapRecHitsHandle.isValid()) {
204  edm::LogError("reading") << "[EcalEleCalibLooper] endcap rec hits not found";
205  return kContinue;
206  }
207 
208  //Takes the electron collection of the pixel detector
210  iEvent.getByToken(m_gsfElectronToken, pElectrons);
211  if (!pElectrons.isValid()) {
212  edm::LogError("reading") << "[EcalEleCalibLooper] electrons not found";
213  return kContinue;
214  }
215 
216  //Start the loop over the electrons
217  for (reco::GsfElectronCollection::const_iterator eleIt = pElectrons->begin(); eleIt != pElectrons->end(); ++eleIt) {
218  double pSubtract = 0;
219  double pTk = 0;
220  std::map<int, double> xtlMap;
221  DetId Max = 0;
222  if (std::abs(eleIt->eta()) < 1.49)
223  Max = EcalClusterTools::getMaximum(eleIt->superCluster()->hitsAndFractions(), barrelHitsCollection).first;
224  else
225  Max = EcalClusterTools::getMaximum(eleIt->superCluster()->hitsAndFractions(), endcapHitsCollection).first;
226  if (Max.det() == 0)
227  continue;
229  eleIt->superCluster()->hitsAndFractions(), Max, barrelHitsCollection, endcapHitsCollection, xtlMap, pSubtract);
231  continue;
232  ++m_xtalNumOfHits[Max.rawId()];
233  if (m_xtalRegionId[Max.rawId()] == -1)
234  continue;
235  pTk = eleIt->trackMomentumAtVtx().R();
236  m_EcalCalibBlocks.at(m_xtalRegionId[Max.rawId()])->Fill(xtlMap.begin(), xtlMap.end(), pTk, pSubtract);
237  } //End of the loop over the electron collection
238 
239  return kContinue;
240 } //end of duringLoop
virtual void fillMap(const std::vector< std::pair< DetId, float > > &, const DetId, const EcalRecHitCollection *, const EcalRecHitCollection *, std::map< int, double > &xtlMap, double &)=0
The Map filler.
std::vector< DetId > m_barrelCells
const edm::EDGetTokenT< EERecHitCollection > m_eeRecHitToken
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
single blocks calibrators
T const * product() const
Definition: Handle.h:70
Log< level::Error, false > LogError
double getMaximum(TObjArray *array)
int iEvent
Definition: GenABIO.cc:224
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< DetId > m_endcapCells
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool getData(T &iHolder) const
Definition: EventSetup.h:122
EcalIntercalibConstantMap m_barrelMap
the maps of recalib coeffs
std::map< int, int > m_xtalRegionId
Definition: DetId.h:17
const edm::EDGetTokenT< EBRecHitCollection > m_ebRecHitToken
ED token.
const edm::EDGetTokenT< reco::GsfElectronCollection > m_gsfElectronToken
std::map< int, int > m_xtalNumOfHits
bool isValid() const
Definition: HandleBase.h:70
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > m_geometryToken
ES token.
const int m_maxSelectedNumPerXtal
maximum number of events per crystal
EcalIntercalibConstantMap m_endcapMap

◆ EBregionCheck()

int EcalEleCalibLooper::EBregionCheck ( const int  eta,
const int  phi 
) const
private

Tells if you are in the region to be calibrated.

Definition at line 342 of file EcalEleCalibLooper.cc.

References PVValHelper::eta, m_etaEnd, m_etaStart, m_phiEndEB, m_phiStartEB, and phi.

Referenced by EBRegionId().

342  {
343  if (eta < m_etaStart)
344  return 1;
345  if (eta >= m_etaEnd)
346  return 2;
347  if (phi < m_phiStartEB)
348  return 3;
349  if (phi >= m_phiEndEB)
350  return 4;
351  return 0;
352 }
const int m_phiStartEB
phi start of the region of interest
const int m_phiEndEB
phi end of the region of interest
const int m_etaStart
phi size of the additive border to the sub-matrix
const int m_etaEnd
eta end of the region of interest

◆ EBRegionDefinition()

void EcalEleCalibLooper::EBRegionDefinition ( )
private

DS EB Region Definition.

Definition at line 446 of file EcalEleCalibLooper.cc.

References EBRegionId(), EBregionsNum(), PVValHelper::eta, m_regions, m_xtalPositionInRegion, m_xtalRegionId, phi, DetId::rawId(), and EBDetId::unhashIndex().

Referenced by EcalEleCalibLooper().

446  {
447  int reg = -1;
448  for (int it = 0; it < EBregionsNum(); ++it)
449  m_regions.push_back(0);
450  for (int eta = 0; eta < 170; ++eta)
451  for (int phi = 0; phi < 360; ++phi) {
452  reg = EBRegionId(eta, phi);
453  m_xtalRegionId[EBDetId::unhashIndex(eta * 360 + phi).rawId()] = reg;
454  if (reg == -1)
455  continue;
457  ++m_regions.at(reg);
458  }
459 }
std::map< int, int > m_xtalRegionId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< int > m_regions
int EBregionsNum() const
DS number of regions in EB.
static EBDetId unhashIndex(int hi)
get a DetId from a compact index for arrays
Definition: EBDetId.h:110
std::map< int, int > m_xtalPositionInRegion
int EBRegionId(const int, const int) const
Reg Id generator EB --— for the barrel.

◆ EBRegionId()

int EcalEleCalibLooper::EBRegionId ( const int  etaXtl,
const int  phiXtl 
) const
private

Reg Id generator EB --— for the barrel.

Definition at line 388 of file EcalEleCalibLooper.cc.

References EBregionCheck(), m_etaStart, m_etaWidth, m_phiEndEB, m_phiStartEB, and m_phiWidthEB.

Referenced by EBRegionDefinition().

388  {
389  if (EBregionCheck(etaXtl, phiXtl))
390  return -1;
391  int phifake = m_phiStartEB;
392  if (m_phiStartEB > m_phiEndEB)
393  phifake = m_phiStartEB - 360;
394  int Nphi = (m_phiEndEB - phifake) / m_phiWidthEB;
395  int etaI = (etaXtl - m_etaStart) / m_etaWidth;
396  int phiI = (phiXtl - m_phiStartEB) / m_phiWidthEB;
397  int regionNumEB = phiI + Nphi * etaI;
398  return (int)regionNumEB;
399 }
const int m_phiStartEB
phi start of the region of interest
const int m_phiEndEB
phi end of the region of interest
const int m_phiWidthEB
eta size of the additive border to the sub-matrix
const int m_etaStart
phi size of the additive border to the sub-matrix
int EBregionCheck(const int eta, const int phi) const
Tells if you are in the region to be calibrated.
const int m_etaWidth
eta size of the sub-matrix

◆ EBregionsNum()

int EcalEleCalibLooper::EBregionsNum ( ) const
inlineprivate

DS number of regions in EB.

Definition at line 436 of file EcalEleCalibLooper.cc.

References m_etaEnd, m_etaStart, m_etaWidth, m_phiEndEB, m_phiStartEB, m_phiWidthEB, and phi.

Referenced by EBRegionDefinition(), EcalEleCalibLooper(), and EERegionDefinition().

436  {
437  int phi = m_phiStartEB;
438  if (m_phiStartEB > m_phiEndEB)
439  phi = m_phiStartEB - 360;
440  return ((m_etaEnd - m_etaStart) / m_etaWidth) * ((m_phiEndEB - phi) / m_phiWidthEB);
441 }
const int m_phiStartEB
phi start of the region of interest
const int m_phiEndEB
phi end of the region of interest
const int m_phiWidthEB
eta size of the additive border to the sub-matrix
const int m_etaStart
phi size of the additive border to the sub-matrix
const int m_etaEnd
eta end of the region of interest
const int m_etaWidth
eta size of the sub-matrix

◆ EEregionCheck()

int EcalEleCalibLooper::EEregionCheck ( const int  ics,
const int  ips 
) const
private

returns zero if the coordinates are in the right place.

Definition at line 501 of file EcalEleCalibLooper.cc.

References degrees(), Ecal07UnpackerData_cfi::ics, m_phiEndEE, m_phiStartEE, m_radEnd, m_radStart, phi, x, and y.

Referenced by EERegionId().

501  {
502  int x = ics - 50;
503  int y = ips - 50;
504  double radius2 = x * x + y * y;
505  if (radius2 < 10 * 10)
506  return 1; //center of the donut
507  if (radius2 > 50 * 50)
508  return 1; //outer part of the donut
509  if (radius2 < m_radStart * m_radStart)
510  return 2;
511  if (radius2 >= m_radEnd * m_radEnd)
512  return 2;
513  double phi = atan2(static_cast<double>(y), static_cast<double>(x));
514  phi = degrees(phi);
515  if (phi < 0)
516  phi += 360;
517  if (m_phiStartEE < m_phiEndEE && phi > m_phiStartEE && phi < m_phiEndEE)
518  return 0;
520  return 0;
521  return 3;
522 }
double degrees(double radiants)
def degrees
const int m_radStart
DS For the EE.

◆ EERegionDefinition()

void EcalEleCalibLooper::EERegionDefinition ( )
private

Definition at line 464 of file EcalEleCalibLooper.cc.

References bsc_activity_cfg::EBnum, EBregionsNum(), bsc_activity_cfg::EEnum, EERegionId(), EEregionsNum(), Ecal07UnpackerData_cfi::ics, m_regions, m_xtalPositionInRegion, m_xtalRegionId, DetId::rawId(), and EEDetId::validDetId().

Referenced by EcalEleCalibLooper().

464  {
465  // reset
466  int EBnum = EBregionsNum();
467  int EEnum = EEregionsNum();
468  for (int it = 0; it < 2 * EEnum; ++it)
469  m_regions.push_back(0);
470  // loop sui xtl
471  int reg = -1;
472  for (int ics = 0; ics < 100; ++ics)
473  for (int ips = 0; ips < 100; ++ips) {
474  int ireg = EERegionId(ics, ips);
475  if (ireg == -1)
476  reg = -1;
477  else
478  reg = EBnum + ireg;
479  if (EEDetId::validDetId(ics + 1, ips + 1, 1)) {
480  m_xtalRegionId[EEDetId(ics + 1, ips + 1, 1).rawId()] = reg;
481  if (reg == -1)
482  continue;
483  m_xtalPositionInRegion[EEDetId(ics + 1, ips + 1, 1).rawId()] = m_regions.at(reg);
484  ++m_regions.at(reg);
485  }
486  if (reg != -1)
487  reg += EEnum;
488  if (EEDetId::validDetId(ics + 1, ips + 1, -1)) {
489  m_xtalRegionId[EEDetId(ics + 1, ips + 1, -1).rawId()] = reg;
490  if (reg == -1)
491  continue;
492  m_xtalPositionInRegion[EEDetId(ics + 1, ips + 1, -1).rawId()] = m_regions.at(reg);
493  ++m_regions.at(reg);
494  }
495  }
496 }
int EERegionId(const int, const int) const
Gives the id of the region.
std::map< int, int > m_xtalRegionId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
std::vector< int > m_regions
int EBregionsNum() const
DS number of regions in EB.
std::map< int, int > m_xtalPositionInRegion
int EEregionsNum() const
DS Number of regions in EE.

◆ EERegionId()

int EcalEleCalibLooper::EERegionId ( const int  ics,
const int  ips 
) const
private

Gives the id of the region.

Definition at line 404 of file EcalEleCalibLooper.cc.

References degrees(), EEregionCheck(), Ecal07UnpackerData_cfi::ics, m_phiEndEE, m_phiStartEE, m_phiWidthEE, m_radStart, m_radWidth, phi, CosmicsPD_Skims::radius, and mathSSE::sqrt().

Referenced by EERegionDefinition().

404  {
405  if (EEregionCheck(ics, ips))
406  return -1;
407  int phifake = m_phiStartEE;
408  if (m_phiStartEE > m_phiEndEE)
409  phifake = m_phiStartEE - 360;
410  double radius = (ics - 50) * (ics - 50) + (ips - 50) * (ips - 50);
411  radius = sqrt(radius);
412  int Nphi = (m_phiEndEE - phifake) / m_phiWidthEE;
413  double phi = atan2(static_cast<double>(ips - 50), static_cast<double>(ics - 50));
414  phi = degrees(phi);
415  if (phi < 0)
416  phi += 360;
417  int radI = static_cast<int>((radius - m_radStart) / m_radWidth);
418  int phiI = static_cast<int>((m_phiEndEE - phi) / m_phiWidthEE);
419  int regionNumEE = phiI + Nphi * radI;
420  return regionNumEE;
421 }
double degrees(double radiants)
def degrees
const int m_radStart
DS For the EE.
int EEregionCheck(const int, const int) const
returns zero if the coordinates are in the right place.
T sqrt(T t)
Definition: SSEVec.h:19

◆ EEregionsNum()

int EcalEleCalibLooper::EEregionsNum ( ) const
inlineprivate

DS Number of regions in EE.

Definition at line 426 of file EcalEleCalibLooper.cc.

References m_phiEndEE, m_phiStartEE, m_phiWidthEE, m_radEnd, m_radStart, and m_radWidth.

Referenced by EcalEleCalibLooper(), and EERegionDefinition().

426  {
427  int phifake = m_phiStartEE;
428  if (m_phiStartEE > m_phiEndEE)
429  phifake = m_phiStartEE - 360;
430  return ((m_radEnd - m_radStart) / m_radWidth) * ((m_phiEndEE - phifake) / m_phiWidthEE);
431 }
const int m_radStart
DS For the EE.

◆ endOfJob()

void EcalEleCalibLooper::endOfJob ( )
overridevirtual

LP endOfJob writes the coefficients in the xml format and exits

Reimplemented from edm::EDLooperBase.

Definition at line 318 of file EcalEleCalibLooper.cc.

References EcalBarrel, EcalEndcap, m_barrelCells, m_barrelMap, m_endcapCells, m_endcapMap, and calibXMLwriter::writeLine().

318  {
319  edm::LogInfo("IML") << "[InvMatrixCalibLooper][endOfJob] saving calib coeffs";
320 
321  //Writes the coeffs
322  calibXMLwriter barrelWriter(EcalBarrel);
323  calibXMLwriter endcapWriter(EcalEndcap);
324  for (std::vector<DetId>::const_iterator barrelIt = m_barrelCells.begin(); barrelIt != m_barrelCells.end();
325  ++barrelIt) {
326  EBDetId eb(*barrelIt);
327  barrelWriter.writeLine(eb, m_barrelMap[*barrelIt]);
328  }
329  for (std::vector<DetId>::const_iterator endcapIt = m_endcapCells.begin(); endcapIt != m_endcapCells.end();
330  ++endcapIt) {
331  EEDetId ee(*endcapIt);
332  endcapWriter.writeLine(ee, m_endcapMap[*endcapIt]);
333  }
334  edm::LogInfo("IML") << "[InvMatrixCalibLooper][endOfJob] Exiting";
335 }
std::vector< DetId > m_barrelCells
std::vector< DetId > m_endcapCells
EcalIntercalibConstantMap m_barrelMap
the maps of recalib coeffs
Log< level::Info, false > LogInfo
EcalIntercalibConstantMap m_endcapMap

◆ endOfLoop()

edm::EDLooper::Status EcalEleCalibLooper::endOfLoop ( const edm::EventSetup dumb,
unsigned int  iCounter 
)
overridevirtual

EndOfLoop Return kContinue if there's still another loop to be done; otherwise stops returnig kStop; Takes the coefficients solving the calibBlock;

Implements edm::EDLooperBase.

Definition at line 247 of file EcalEleCalibLooper.cc.

References corrVsCorr::filename, EBDetId::ieta(), EBDetId::iphi(), EEDetId::ix(), EEDetId::iy(), edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, m_barrelCells, m_barrelMap, m_EcalCalibBlocks, m_endcapCells, m_endcapMap, m_loops, m_maxCoeff, m_minCoeff, m_usingBlockSolver, m_xtalPositionInRegion, m_xtalRegionId, and EEDetId::zside().

247  {
248  edm::LogInfo("IML") << "[InvMatrixCalibLooper][endOfLoop] entering...";
249  for (std::vector<VEcalCalibBlock*>::iterator calibBlock = m_EcalCalibBlocks.begin();
250  calibBlock != m_EcalCalibBlocks.end();
251  ++calibBlock)
252  (*calibBlock)->solve(m_usingBlockSolver, m_minCoeff, m_maxCoeff);
253 
254  TH1F* EBcoeffEnd = new TH1F("EBRegion", "EBRegion", 100, 0.5, 2.1);
255  TH2F* EBcoeffMap = new TH2F("EBcoeff", "EBcoeff", 171, -85, 85, 360, 1, 361);
256  TH1F* EEPcoeffEnd = new TH1F("EEPRegion", "EEPRegion", 100, 0.5, 2.1);
257  TH1F* EEMcoeffEnd = new TH1F("EEMRegion", "EEMRegion", 100, 0.5, 2.1);
258  TH2F* EEPcoeffMap = new TH2F("EEPcoeffMap", "EEPcoeffMap", 101, 1, 101, 101, 0, 101);
259  TH2F* EEMcoeffMap = new TH2F("EEMcoeffMap", "EEMcoeffMap", 101, 1, 101, 101, 0, 101);
260  //loop over the barrel xtals to get the coeffs
261  for (std::vector<DetId>::const_iterator barrelIt = m_barrelCells.begin(); barrelIt != m_barrelCells.end();
262  ++barrelIt) {
263  EBDetId ee(*barrelIt);
264  int index = barrelIt->rawId();
265  if (m_xtalRegionId[index] == -1)
266  continue;
268  EBcoeffEnd->Fill(m_barrelMap[*barrelIt]);
269  EBcoeffMap->Fill(ee.ieta(), ee.iphi(), m_barrelMap[*barrelIt]);
270  } //PG loop over phi
271 
272  // loop over the EndCap to get the recalib coefficients
273  for (std::vector<DetId>::const_iterator endcapIt = m_endcapCells.begin(); endcapIt != m_endcapCells.end();
274  ++endcapIt) {
275  EEDetId ee(*endcapIt);
276  int index = endcapIt->rawId();
277  if (ee.zside() > 0) {
278  if (m_xtalRegionId[index] == -1)
279  continue;
281  EEPcoeffEnd->Fill(m_endcapMap[*endcapIt]);
282  EEPcoeffMap->Fill(ee.ix(), ee.iy(), m_endcapMap[*endcapIt]);
283  } else {
285  EEMcoeffEnd->Fill(m_endcapMap[*endcapIt]);
286  EEMcoeffMap->Fill(ee.ix(), ee.iy(), m_endcapMap[*endcapIt]);
287  }
288  } // loop over the EndCap to get the recalib coefficients
289 
290  edm::LogInfo("IML") << "[InvMatrixCalibLooper][endOfLoop] End of endOfLoop";
291 
292  char filename[80];
293  sprintf(filename, "coeffs%d.root", iCounter);
294  TFile zout(filename, "recreate");
295  EBcoeffEnd->Write();
296  EBcoeffMap->Write();
297  EEPcoeffEnd->Write();
298  EEPcoeffMap->Write();
299  EEMcoeffEnd->Write();
300  EEMcoeffMap->Write();
301  zout.Close();
302  delete EBcoeffEnd;
303  delete EBcoeffMap;
304  delete EEPcoeffEnd;
305  delete EEMcoeffEnd;
306  delete EEPcoeffMap;
307  delete EEMcoeffMap;
308  if (iCounter < m_loops - 1)
309  return kContinue;
310  else
311  return kStop;
312 }
std::vector< DetId > m_barrelCells
const int m_usingBlockSolver
to exclude the blocksolver
const double m_maxCoeff
maximum coefficient accepted (RAW)
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
single blocks calibrators
std::vector< DetId > m_endcapCells
EcalIntercalibConstantMap m_barrelMap
the maps of recalib coeffs
Log< level::Info, false > LogInfo
std::map< int, int > m_xtalRegionId
std::map< int, int > m_xtalPositionInRegion
const unsigned int m_loops
DS sets the number of loops to do.
EcalIntercalibConstantMap m_endcapMap
const double m_minCoeff
minimum coefficient accepted (RAW)

◆ etaShifter()

int EcalEleCalibLooper::etaShifter ( const int  etaOld) const
private

LP Change the coordinate system.

Definition at line 527 of file EcalEleCalibLooper.cc.

References cms::cuda::assert().

527  {
528  if (etaOld < 0)
529  return etaOld + 85;
530  else if (etaOld > 0)
531  return etaOld + 84;
532  assert(0 != etaOld); // etaOld = 0, apparently not a foreseen value, so fail
533  return 999; // dummy statement to silence compiler warning
534 }
assert(be >=bs)

◆ giveLimit()

double EcalEleCalibLooper::giveLimit ( int  degrees)
private

copes with the infinitives of the tangent

Definition at line 367 of file EcalEleCalibLooper.cc.

References degrees(), radiants(), and funct::tan().

367  {
368  //PG 200 > atan (50/0.5)
369  if (degrees == 90)
370  return 90;
371  return tan(radiants(degrees));
372 }
double degrees(double radiants)
def degrees
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
double radiants(int degrees)
DS def radiants.

◆ startingNewLoop()

void EcalEleCalibLooper::startingNewLoop ( unsigned int  ciclo)
overridevirtual

startingNewLoop empties the map of the calibBlock so that it can be filled

Implements edm::EDLooperBase.

Definition at line 150 of file EcalEleCalibLooper.cc.

References m_EcalCalibBlocks, and m_xtalNumOfHits.

150  {
151  edm::LogInfo("IML") << "[InvMatrixCalibLooper][Start] entering loop " << ciclo;
152 
153  for (std::vector<VEcalCalibBlock*>::iterator calibBlock = m_EcalCalibBlocks.begin();
154  calibBlock != m_EcalCalibBlocks.end();
155  ++calibBlock)
156  (*calibBlock)->reset();
157  for (std::map<int, int>::iterator it = m_xtalNumOfHits.begin(); it != m_xtalNumOfHits.end(); ++it)
158  it->second = 0;
159  return;
160 }
std::vector< VEcalCalibBlock * > m_EcalCalibBlocks
single blocks calibrators
Log< level::Info, false > LogInfo
std::map< int, int > m_xtalNumOfHits

Member Data Documentation

◆ isfirstcall_

bool EcalEleCalibLooper::isfirstcall_
private

Definition at line 140 of file EcalEleCalibLooper.h.

Referenced by beginOfJob(), and duringLoop().

◆ m_barrelAlCa

const edm::InputTag EcalEleCalibLooper::m_barrelAlCa
private

EcalBarrel Input Collection name.

Definition at line 65 of file EcalEleCalibLooper.h.

◆ m_barrelCells

std::vector<DetId> EcalEleCalibLooper::m_barrelCells
private

Definition at line 133 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), endOfJob(), and endOfLoop().

◆ m_barrelMap

EcalIntercalibConstantMap EcalEleCalibLooper::m_barrelMap
private

the maps of recalib coeffs

Definition at line 118 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), EcalEleCalibLooper(), endOfJob(), and endOfLoop().

◆ m_ebRecHitToken

const edm::EDGetTokenT<EBRecHitCollection> EcalEleCalibLooper::m_ebRecHitToken
private

ED token.

Definition at line 143 of file EcalEleCalibLooper.h.

Referenced by duringLoop().

◆ m_EcalCalibBlocks

std::vector<VEcalCalibBlock *> EcalEleCalibLooper::m_EcalCalibBlocks
private

single blocks calibrators

Definition at line 105 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), EcalEleCalibLooper(), endOfLoop(), startingNewLoop(), and ~EcalEleCalibLooper().

◆ m_eeRecHitToken

const edm::EDGetTokenT<EERecHitCollection> EcalEleCalibLooper::m_eeRecHitToken
private

Definition at line 144 of file EcalEleCalibLooper.h.

Referenced by duringLoop().

◆ m_ElectronLabel

edm::InputTag EcalEleCalibLooper::m_ElectronLabel
private

To take the electrons.

Definition at line 69 of file EcalEleCalibLooper.h.

◆ m_endcapAlCa

const edm::InputTag EcalEleCalibLooper::m_endcapAlCa
private

EcalEndcap Input Collection name.

Definition at line 67 of file EcalEleCalibLooper.h.

◆ m_endcapCells

std::vector<DetId> EcalEleCalibLooper::m_endcapCells
private

Definition at line 134 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), endOfJob(), and endOfLoop().

◆ m_endcapMap

EcalIntercalibConstantMap EcalEleCalibLooper::m_endcapMap
private

Definition at line 119 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), EcalEleCalibLooper(), endOfJob(), and endOfLoop().

◆ m_etaEnd

const int EcalEleCalibLooper::m_etaEnd
private

eta end of the region of interest

Definition at line 87 of file EcalEleCalibLooper.h.

Referenced by EBregionCheck(), EBregionsNum(), and EcalEleCalibLooper().

◆ m_etaStart

const int EcalEleCalibLooper::m_etaStart
private

phi size of the additive border to the sub-matrix

eta start of the region of interest

Definition at line 85 of file EcalEleCalibLooper.h.

Referenced by EBregionCheck(), EBRegionId(), EBregionsNum(), and EcalEleCalibLooper().

◆ m_etaWidth

const int EcalEleCalibLooper::m_etaWidth
private

eta size of the sub-matrix

Definition at line 76 of file EcalEleCalibLooper.h.

Referenced by EBRegionId(), EBregionsNum(), and EcalEleCalibLooper().

◆ m_geometryToken

const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> EcalEleCalibLooper::m_geometryToken
private

ES token.

Definition at line 147 of file EcalEleCalibLooper.h.

Referenced by duringLoop().

◆ m_gsfElectronToken

const edm::EDGetTokenT<reco::GsfElectronCollection> EcalEleCalibLooper::m_gsfElectronToken
private

Definition at line 145 of file EcalEleCalibLooper.h.

Referenced by duringLoop().

◆ m_loops

const unsigned int EcalEleCalibLooper::m_loops
private

DS sets the number of loops to do.

Definition at line 122 of file EcalEleCalibLooper.h.

Referenced by endOfLoop().

◆ m_MapFiller

VFillMap* EcalEleCalibLooper::m_MapFiller
private

Definition at line 124 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), and EcalEleCalibLooper().

◆ m_maxCoeff

const double EcalEleCalibLooper::m_maxCoeff
private

maximum coefficient accepted (RAW)

Definition at line 113 of file EcalEleCalibLooper.h.

Referenced by endOfLoop().

◆ m_maxEnergyPerCrystal

const double EcalEleCalibLooper::m_maxEnergyPerCrystal
private

maximum energy per crystal cut

Definition at line 109 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper().

◆ m_maxSelectedNumPerXtal

const int EcalEleCalibLooper::m_maxSelectedNumPerXtal
private

maximum number of events per crystal

Definition at line 102 of file EcalEleCalibLooper.h.

Referenced by duringLoop().

◆ m_minCoeff

const double EcalEleCalibLooper::m_minCoeff
private

minimum coefficient accepted (RAW)

Definition at line 111 of file EcalEleCalibLooper.h.

Referenced by endOfLoop().

◆ m_minEnergyPerCrystal

const double EcalEleCalibLooper::m_minEnergyPerCrystal
private

minimum energy per crystal cut

Definition at line 107 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper().

◆ m_phiEndEB

const int EcalEleCalibLooper::m_phiEndEB
private

phi end of the region of interest

Definition at line 91 of file EcalEleCalibLooper.h.

Referenced by EBregionCheck(), EBRegionId(), and EBregionsNum().

◆ m_phiEndEE

const int EcalEleCalibLooper::m_phiEndEE
private

Definition at line 98 of file EcalEleCalibLooper.h.

Referenced by EEregionCheck(), EERegionId(), and EEregionsNum().

◆ m_phiStartEB

const int EcalEleCalibLooper::m_phiStartEB
private

phi start of the region of interest

Definition at line 89 of file EcalEleCalibLooper.h.

Referenced by EBregionCheck(), EBRegionId(), and EBregionsNum().

◆ m_phiStartEE

const int EcalEleCalibLooper::m_phiStartEE
private

Definition at line 97 of file EcalEleCalibLooper.h.

Referenced by EEregionCheck(), EERegionId(), and EEregionsNum().

◆ m_phiWidthEB

const int EcalEleCalibLooper::m_phiWidthEB
private

eta size of the additive border to the sub-matrix

phi size of the sub-matrix

Definition at line 80 of file EcalEleCalibLooper.h.

Referenced by EBRegionId(), and EBregionsNum().

◆ m_phiWidthEE

const int EcalEleCalibLooper::m_phiWidthEE
private

Definition at line 99 of file EcalEleCalibLooper.h.

Referenced by EERegionId(), and EEregionsNum().

◆ m_radEnd

const int EcalEleCalibLooper::m_radEnd
private

Definition at line 94 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper(), EEregionCheck(), and EEregionsNum().

◆ m_radStart

const int EcalEleCalibLooper::m_radStart
private

DS For the EE.

Definition at line 93 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper(), EEregionCheck(), EERegionId(), and EEregionsNum().

◆ m_radWidth

const int EcalEleCalibLooper::m_radWidth
private

Definition at line 95 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper(), EERegionId(), and EEregionsNum().

◆ m_recoWindowSidex

const int EcalEleCalibLooper::m_recoWindowSidex
private

reconstruction window size

Definition at line 72 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper().

◆ m_recoWindowSidey

const int EcalEleCalibLooper::m_recoWindowSidey
private

Definition at line 73 of file EcalEleCalibLooper.h.

Referenced by EcalEleCalibLooper().

◆ m_regions

std::vector<int> EcalEleCalibLooper::m_regions
private

◆ m_usingBlockSolver

const int EcalEleCalibLooper::m_usingBlockSolver
private

to exclude the blocksolver

Definition at line 115 of file EcalEleCalibLooper.h.

Referenced by endOfLoop().

◆ m_xtalNumOfHits

std::map<int, int> EcalEleCalibLooper::m_xtalNumOfHits
private

Definition at line 138 of file EcalEleCalibLooper.h.

Referenced by duringLoop(), and startingNewLoop().

◆ m_xtalPositionInRegion

std::map<int, int> EcalEleCalibLooper::m_xtalPositionInRegion
private

◆ m_xtalRegionId

std::map<int, int> EcalEleCalibLooper::m_xtalRegionId
private