CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CTPPSPixGainCalibsESAnalyzer Class Reference
Inheritance diagram for CTPPSPixGainCalibsESAnalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
 CTPPSPixGainCalibsESAnalyzer (edm::ParameterSet const &p)
 
 CTPPSPixGainCalibsESAnalyzer (int i)
 
void setReadablePlaneNames ()
 
 ~CTPPSPixGainCalibsESAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

std::map< uint32_t, std::string > detId_readable
 
std::string m_outfilename
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 15 of file CTPPSPixGainCalibsESAnalyzer.cc.

Constructor & Destructor Documentation

◆ CTPPSPixGainCalibsESAnalyzer() [1/2]

CTPPSPixGainCalibsESAnalyzer::CTPPSPixGainCalibsESAnalyzer ( edm::ParameterSet const &  p)
inlineexplicit

Definition at line 17 of file CTPPSPixGainCalibsESAnalyzer.cc.

18  : m_outfilename(p.getUntrackedParameter<std::string>("outputrootfile", "output.root")) {
19  // std::cout<<"CTPPSPixGainCalibsESAnalyzer"<<std::endl;
21  }

References setReadablePlaneNames().

◆ CTPPSPixGainCalibsESAnalyzer() [2/2]

CTPPSPixGainCalibsESAnalyzer::CTPPSPixGainCalibsESAnalyzer ( int  i)
inlineexplicit

Definition at line 22 of file CTPPSPixGainCalibsESAnalyzer.cc.

22  {
23  //std::cout<<"CTPPSPixGainCalibsESAnalyzer "<<i<<std::endl;
25  }

References setReadablePlaneNames().

◆ ~CTPPSPixGainCalibsESAnalyzer()

CTPPSPixGainCalibsESAnalyzer::~CTPPSPixGainCalibsESAnalyzer ( )
inlineoverride

Definition at line 26 of file CTPPSPixGainCalibsESAnalyzer.cc.

26  {
27  //std::cout<<"~CTPPSPixGainCalibsESAnalyzer "<<std::endl;
28  }

Member Function Documentation

◆ analyze()

void CTPPSPixGainCalibsESAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 64 of file CTPPSPixGainCalibsESAnalyzer.cc.

64  {
65  edm::LogPrint("CTPPSPixGainCalibsReader") << "###CTPPSPixGainCalibsESAnalyzer::analyze";
66  edm::LogPrint("CTPPSPixGainCalibsReader") << " I AM IN RUN NUMBER " << e.id().run();
67  edm::LogPrint("CTPPSPixGainCalibsReader") << " ---EVENT NUMBER " << e.id().event();
69  edm::eventsetup::EventSetupRecordKey::TypeTag::findType("CTPPSPixelGainCalibrationsRcd"));
70  if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
71  //record not found
72  edm::LogPrint("CTPPSPixGainCalibsReader") << "Record \"CTPPSPixelGainCalibrationsRcd"
73  << "\" does not exist ";
74  }
75  //this part gets the handle of the event source and the record (i.e. the Database)
77  edm::LogPrint("CTPPSPixGainCalibsReader") << "got eshandle";
78  context.get<CTPPSPixelGainCalibrationsRcd>().get(calhandle);
79  edm::LogPrint("CTPPSPixGainCalibsReader") << "got context";
80  const CTPPSPixelGainCalibrations* pPixelGainCalibrations = calhandle.product();
81  edm::LogPrint("CTPPSPixGainCalibsReader") << "got CTPPSPixelGainCalibrations* ";
82  edm::LogPrint("CTPPSPixGainCalibsReader") << "print pointer address : ";
83  edm::LogPrint("CTPPSPixGainCalibsReader") << pPixelGainCalibrations;
84 
85  TFile myfile(m_outfilename.c_str(), "RECREATE");
86  myfile.cd();
87 
88  // the pPixelGainCalibrations object contains the map of detIds to pixel gains and pedestals for current run
89  // we get the map just to loop over the contents, but from here on it should be as the code (reconstruction etc) needs.
90  // Probably best to check that the key (detid) is in the list before calling the data
91 
92  edm::LogPrint("CTPPSPixGainCalibsReader") << "Size " << pPixelGainCalibrations->size();
93  const CTPPSPixelGainCalibrations::CalibMap& mymap = pPixelGainCalibrations->getCalibMap(); //just to get the keys?
94 
95  for (CTPPSPixelGainCalibrations::CalibMap::const_iterator it = mymap.begin(); it != mymap.end(); ++it) {
96  uint32_t detId = it->first;
97 
98  edm::LogPrint("CTPPSPixGainCalibsReader")
99  << "Address of detId = " << (&detId) << " and of it = " << (&it) << " and of it->first = " << (&(it->first));
100 
101  edm::LogPrint("CTPPSPixGainCalibsReader") << "Content of pPixelGainCalibrations for key: detId= " << detId;
102  CTPPSPixelGainCalibration mycalibs0 = pPixelGainCalibrations->getGainCalibration(detId);
103  const CTPPSPixelGainCalibration& mycalibs = it->second;
104 
105  edm::LogPrint("CTPPSPixGainCalibsReader")
106  << "Address of mycalibs0 = " << (&mycalibs0) << " and of mycalibs = " << (&mycalibs) << " and of it->second "
107  << (&(it->second));
108 
109  std::string namep("pedsFromDB_" + detId_readable[detId]);
110  std::string nameg("gainsFromDB_" + detId_readable[detId]);
111  std::string tlp("Pedestals for " + detId_readable[detId] + "; column; row");
112  std::string tlg("Gains for " + detId_readable[detId] + "; column; row");
113  TH2D mypeds(namep.c_str(), tlp.c_str(), 156, 0., 156., 160, 0., 160.);
114  TH2D mygains(nameg.c_str(), tlg.c_str(), 156, 0., 156., 160, 0., 160.);
115 
116  int ncols = mycalibs.getNCols();
117  int npix = mycalibs.getIEnd();
118  int nrows = mycalibs.getNRows(); //should be == 160
119  edm::LogPrint("CTPPSPixGainCalibsReader") << "Here ncols = " << ncols << " nrows =" << nrows << " npix=" << npix;
120  for (int jrow = 0; jrow < nrows; ++jrow)
121  for (int icol = 0; icol < ncols; ++icol) {
122  if (mycalibs.isDead(icol + jrow * ncols)) {
123  edm::LogPrint("CTPPSPixGainCalibsReader") << "Dead Pixel icol =" << icol << " jrow =" << jrow;
124  continue;
125  }
126  if (mycalibs.isNoisy(icol + jrow * ncols)) {
127  edm::LogPrint("CTPPSPixGainCalibsReader") << "Noisy Pixel icol =" << icol << " jrow =" << jrow;
128  continue;
129  }
130  mygains.Fill(icol, jrow, mycalibs.getGain(icol, jrow));
131  mypeds.Fill(icol, jrow, mycalibs.getPed(icol, jrow));
132  }
133 
134  mypeds.Write();
135  mygains.Write();
136  }
137  myfile.Write();
138  myfile.Close();
139 }

References detId_readable, MillePedeFileConverter_cfg::e, edm::eventsetup::heterocontainer::HCTypeTag::findType(), edm::EventSetup::get(), get, CTPPSPixelGainCalibrations::getCalibMap(), CTPPSPixelGainCalibration::getGain(), CTPPSPixelGainCalibrations::getGainCalibration(), CTPPSPixelGainCalibration::getIEnd(), CTPPSPixelGainCalibration::getNCols(), CTPPSPixelGainCalibration::getNRows(), CTPPSPixelGainCalibration::getPed(), CTPPSPixelGainCalibration::isDead(), CTPPSPixelGainCalibration::isNoisy(), m_outfilename, hgcalPlots::ncols, edm::ESHandle< T >::product(), CTPPSPixelGainCalibrations::size(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::eventsetup::EventSetupRecordKey::type().

◆ setReadablePlaneNames()

void CTPPSPixGainCalibsESAnalyzer::setReadablePlaneNames ( )

Definition at line 37 of file CTPPSPixGainCalibsESAnalyzer.cc.

37  {
38  detId_readable[2014838784] = "Arm_0_Sec_45_St_0_Pot_3_Plane_0";
39  detId_readable[2014904320] = "Arm_0_Sec_45_St_0_Pot_3_Plane_1";
40  detId_readable[2014969856] = "Arm_0_Sec_45_St_0_Pot_3_Plane_2";
41  detId_readable[2015035392] = "Arm_0_Sec_45_St_0_Pot_3_Plane_3";
42  detId_readable[2015100928] = "Arm_0_Sec_45_St_0_Pot_3_Plane_4";
43  detId_readable[2015166464] = "Arm_0_Sec_45_St_0_Pot_3_Plane_5";
44  detId_readable[2023227392] = "Arm_0_Sec_45_St_2_Pot_3_Plane_0";
45  detId_readable[2023292928] = "Arm_0_Sec_45_St_2_Pot_3_Plane_1";
46  detId_readable[2023358464] = "Arm_0_Sec_45_St_2_Pot_3_Plane_2";
47  detId_readable[2023424000] = "Arm_0_Sec_45_St_2_Pot_3_Plane_3";
48  detId_readable[2023489536] = "Arm_0_Sec_45_St_2_Pot_3_Plane_4";
49  detId_readable[2023555072] = "Arm_0_Sec_45_St_2_Pot_3_Plane_5";
50  detId_readable[2031616000] = "Arm_1_Sec_56_St_0_Pot_3_Plane_0";
51  detId_readable[2031681536] = "Arm_1_Sec_56_St_0_Pot_3_Plane_1";
52  detId_readable[2031747072] = "Arm_1_Sec_56_St_0_Pot_3_Plane_2";
53  detId_readable[2031812608] = "Arm_1_Sec_56_St_0_Pot_3_Plane_3";
54  detId_readable[2031878144] = "Arm_1_Sec_56_St_0_Pot_3_Plane_4";
55  detId_readable[2031943680] = "Arm_1_Sec_56_St_0_Pot_3_Plane_5";
56  detId_readable[2040004608] = "Arm_1_Sec_56_St_2_Pot_3_Plane_0";
57  detId_readable[2040070144] = "Arm_1_Sec_56_St_2_Pot_3_Plane_1";
58  detId_readable[2040135680] = "Arm_1_Sec_56_St_2_Pot_3_Plane_2";
59  detId_readable[2040201216] = "Arm_1_Sec_56_St_2_Pot_3_Plane_3";
60  detId_readable[2040266752] = "Arm_1_Sec_56_St_2_Pot_3_Plane_4";
61  detId_readable[2040332288] = "Arm_1_Sec_56_St_2_Pot_3_Plane_5";
62 }

References detId_readable.

Referenced by CTPPSPixGainCalibsESAnalyzer().

Member Data Documentation

◆ detId_readable

std::map<uint32_t, std::string> CTPPSPixGainCalibsESAnalyzer::detId_readable
private

Definition at line 33 of file CTPPSPixGainCalibsESAnalyzer.cc.

Referenced by analyze(), and setReadablePlaneNames().

◆ m_outfilename

std::string CTPPSPixGainCalibsESAnalyzer::m_outfilename
private

Definition at line 34 of file CTPPSPixGainCalibsESAnalyzer.cc.

Referenced by analyze().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
edm::eventsetup::heterocontainer::HCTypeTag::findType
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag
Definition: HCTypeTag.cc:121
hgcalPlots.ncols
ncols
Definition: hgcalPlots.py:105
CTPPSPixelGainCalibration::getNCols
uint32_t getNCols() const
Definition: CTPPSPixelGainCalibration.h:77
CTPPSPixGainCalibsESAnalyzer::setReadablePlaneNames
void setReadablePlaneNames()
Definition: CTPPSPixGainCalibsESAnalyzer.cc:37
CTPPSPixelGainCalibrations::size
int size() const
Definition: CTPPSPixelGainCalibrations.h:26
CTPPSPixGainCalibsESAnalyzer::m_outfilename
std::string m_outfilename
Definition: CTPPSPixGainCalibsESAnalyzer.cc:34
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CTPPSPixelGainCalibration::isDead
bool isDead(const uint32_t ipix) const
Definition: CTPPSPixelGainCalibration.h:73
edm::eventsetup::EventSetupRecordKey
Definition: EventSetupRecordKey.h:30
CTPPSPixelGainCalibration
Definition: CTPPSPixelGainCalibration.h:27
CTPPSPixelGainCalibration::getGain
float getGain(const int &col, const int &row) const
Definition: CTPPSPixelGainCalibration.cc:136
edm::ESHandle
Definition: DTSurvey.h:22
edm::eventsetup::EventSetupRecordKey::TypeTag
heterocontainer::HCTypeTag TypeTag
Definition: EventSetupRecordKey.h:32
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSPixelGainCalibration::getNRows
uint32_t getNRows() const
Definition: CTPPSPixelGainCalibration.h:80
CTPPSPixelGainCalibrations::getGainCalibration
const CTPPSPixelGainCalibration & getGainCalibration(const uint32_t &detid) const
Definition: CTPPSPixelGainCalibrations.cc:52
CTPPSPixelGainCalibration::getPed
float getPed(const int &col, const int &row) const
Definition: CTPPSPixelGainCalibration.cc:122
CTPPSPixelGainCalibrations
Definition: CTPPSPixelGainCalibrations.h:8
edm::LogPrint
Definition: MessageLogger.h:342
CTPPSPixelGainCalibrationsRcd
Definition: CTPPSPixelGainCalibrationsRcd.h:23
CTPPSPixelGainCalibrations::CalibMap
std::map< uint32_t, CTPPSPixelGainCalibration > CalibMap
Definition: CTPPSPixelGainCalibrations.h:10
get
#define get
CTPPSPixGainCalibsESAnalyzer::detId_readable
std::map< uint32_t, std::string > detId_readable
Definition: CTPPSPixGainCalibsESAnalyzer.cc:33
CTPPSPixelGainCalibrations::getCalibMap
const CalibMap & getCalibMap() const
Definition: CTPPSPixelGainCalibrations.h:22
CTPPSPixelGainCalibration::getIEnd
uint32_t getIEnd() const
Definition: CTPPSPixelGainCalibration.h:79
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
CTPPSPixelGainCalibration::isNoisy
bool isNoisy(const uint32_t ipix) const
Definition: CTPPSPixelGainCalibration.h:74