CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
CentralityTableProducer Class Reference

#include <yetkin/CentralityTableProducer/src/CentralityTableProducer.cc>

Inheritance diagram for CentralityTableProducer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 CentralityTableProducer (const edm::ParameterSet &)
 
 ~CentralityTableProducer ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginRun (const edm::EventSetup &)
 
virtual void endJob ()
 
void printBin (const CentralityTable::CBin *)
 

Private Attributes

const CentralityBinsCB
 
CentralityTableCT
 
bool debug_
 
bool firstRunOnly_
 
edm::Service< TFileServicefs
 
edm::ESHandle< CentralityTableinputDB_
 
TFile * inputTFile_
 
string inputTFileName_
 
bool makeDBFromTFile_
 
bool makeTFileFromDB_
 
string rootTag_
 
unsigned int runnum_
 
ofstream text_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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 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)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 58 of file CentralityTableProducer.cc.

Constructor & Destructor Documentation

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

Definition at line 101 of file CentralityTableProducer.cc.

References gather_cfg::cout, debug_, firstRunOnly_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputTFile_, inputTFileName_, makeDBFromTFile_, makeTFileFromDB_, and rootTag_.

101  :
102  text_("bins.txt"),
103  runnum_(0)
104 {
105  //now do what ever initialization is needed
106  makeDBFromTFile_ = iConfig.getUntrackedParameter<bool>("makeDBFromTFile",1);
107  makeTFileFromDB_ = iConfig.getUntrackedParameter<bool>("makeTFileFromDB",0);
108  firstRunOnly_ = iConfig.getUntrackedParameter<bool>("isMC",false);
109  debug_ = iConfig.getUntrackedParameter<bool>("debug",false);
110  if(makeDBFromTFile_){
111  inputTFileName_ = iConfig.getParameter<string>("inputTFile");
112  rootTag_ = iConfig.getParameter<string>("rootTag");
113  inputTFile_ = new TFile(inputTFileName_.data(),"read");
114  cout<<inputTFileName_.data()<<endl;
115  }
116 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
tuple cout
Definition: gather_cfg.py:121
CentralityTableProducer::~CentralityTableProducer ( )

Definition at line 118 of file CentralityTableProducer.cc.

119 {
120  // do anything here that needs to be done at desctruction time
121  // (e.g. close files, deallocate resources etc.)
122 }

Member Function Documentation

void CentralityTableProducer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 130 of file CentralityTableProducer.cc.

References CB, gather_cfg::cout, debug_, firstRunOnly_, fs, edm::EventBase::id(), TFileDirectory::make(), makeTFileFromDB_, TFileDirectory::mkdir(), CentralityProvider::print(), edm::EventID::run(), and runnum_.

131 {
132  if(!makeTFileFromDB_) return;
133  if((!firstRunOnly_ && runnum_ != iEvent.id().run()) || (firstRunOnly_ && runnum_ == 0)){
134  runnum_ = iEvent.id().run();
135  cout<<"Adding table for run : "<<runnum_<<endl;
136  CentralityProvider cent(iSetup);
137  if(debug_) cent.print();
138  TFileDirectory subDir = fs->mkdir(Form("run%d",runnum_));
139  CB = subDir.make<CentralityBins>((CentralityBins)cent);
140  }
141 }
RunNumber_t run() const
Definition: EventID.h:42
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
edm::Service< TFileService > fs
edm::EventID id() const
Definition: EventBase.h:56
T * make() const
make new ROOT object
tuple cout
Definition: gather_cfg.py:121
void CentralityTableProducer::beginRun ( const edm::EventSetup iSetup)
privatevirtual

Definition at line 145 of file CentralityTableProducer.cc.

146 {
147 }
void CentralityTableProducer::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 151 of file CentralityTableProducer.cc.

References cond::service::PoolDBOutputService::appendSinceTime(), CentralityTable::CBin::b, cond::service::PoolDBOutputService::beginOfTime(), CentralityTable::CBin::bin_edge, CentralityBins::bMeanOfBin(), CentralityBins::bSigmaOfBin(), CB, gather_cfg::cout, cond::service::PoolDBOutputService::createNewIOV(), CT, cond::service::PoolDBOutputService::currentTime(), cond::service::PoolDBOutputService::endOfTime(), CentralityBins::getNbins(), inputTFile_, edm::Service< T >::isAvailable(), cond::service::PoolDBOutputService::isNewTagRequest(), j, CentralityBins::lowEdgeOfBin(), CentralityTable::m_table, makeDBFromTFile_, CentralityTable::BinValues::mean, CentralityTable::CBin::n_coll, CentralityTable::CBin::n_hard, CentralityTable::CBin::n_part, CentralityBins::NcollMeanOfBin(), CentralityBins::NcollSigmaOfBin(), CentralityBins::NhardMeanOfBin(), CentralityBins::NhardSigmaOfBin(), CentralityBins::NpartMeanOfBin(), CentralityBins::NpartSigmaOfBin(), fetchall_from_DQM_v2::pool, printBin(), rootTag_, runnum_, text_, and CentralityTable::BinValues::var.

151  {
152 
153  if(makeDBFromTFile_){
154  runnum_ = 1;
155  // Get values from root file
156  CB = (CentralityBins*) inputTFile_->Get(Form("%s/run%d",rootTag_.data(),runnum_));
157  cout<<rootTag_.data()<<endl;
158  CT = new CentralityTable();
159  CT->m_table.reserve(CB->getNbins());
160 
161  text_<<"# BinEdge NpartMean NpartVar NcollMean NcollVar NhardMean NhardVar bMean bVar"<<endl;
162  for(int j=0; j<CB->getNbins(); j++){
164  thisBin->bin_edge = CB->lowEdgeOfBin(j);
165  thisBin->n_part.mean = CB->NpartMeanOfBin(j);
166  thisBin->n_part.var = CB->NpartSigmaOfBin(j);
167  thisBin->n_coll.mean = CB->NcollMeanOfBin(j);
168  thisBin->n_coll.var = CB->NcollSigmaOfBin(j);
169  thisBin->n_hard.mean = CB->NhardMeanOfBin(j);
170  thisBin->n_hard.var = CB->NhardSigmaOfBin(j);
171  thisBin->b.mean = CB->bMeanOfBin(j);
172  thisBin->b.var = CB->bSigmaOfBin(j);
173  printBin(thisBin);
174  CT->m_table.push_back(*thisBin);
175  if(thisBin) delete thisBin;
176  }
177 
179  if( pool.isAvailable() ){
180  if( pool->isNewTagRequest( "HeavyIonRcd" ) ){
181  pool->createNewIOV<CentralityTable>( CT, pool->beginOfTime(), pool->endOfTime(), "HeavyIonRcd" );
182  }else{
183  pool->appendSinceTime<CentralityTable>( CT, pool->currentTime(), "HeavyIonRcd" );
184  }
185  }
186  }
187 }
void printBin(const CentralityTable::CBin *)
std::vector< CBin > m_table
float NpartSigmaOfBin(int bin) const
float lowEdgeOfBin(int bin) const
void appendSinceTime(T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
float NcollMeanOfBin(int bin) const
bool isNewTagRequest(const std::string &recordName)
bool isAvailable() const
Definition: Service.h:47
int j
Definition: DBlmapReader.cc:9
float bSigmaOfBin(int bin) const
float NhardMeanOfBin(int bin) const
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
float NpartMeanOfBin(int bin) const
int getNbins() const
float bMeanOfBin(int bin) const
tuple cout
Definition: gather_cfg.py:121
float NhardSigmaOfBin(int bin) const
float NcollSigmaOfBin(int bin) const
void CentralityTableProducer::printBin ( const CentralityTable::CBin thisBin)
private

Definition at line 190 of file CentralityTableProducer.cc.

References CentralityTable::CBin::b, CentralityTable::CBin::bin_edge, gather_cfg::cout, CentralityTable::BinValues::mean, CentralityTable::CBin::n_coll, CentralityTable::CBin::n_hard, CentralityTable::CBin::n_part, text_, and CentralityTable::BinValues::var.

Referenced by endJob().

190  {
191 
192  cout<<"HF Cut = "<<thisBin->bin_edge<<endl;
193  cout<<"Npart = "<<thisBin->n_part.mean<<endl;
194  cout<<"sigma = "<<thisBin->n_part.var<<endl;
195  cout<<"Ncoll = "<<thisBin->n_coll.mean<<endl;
196  cout<<"sigma = "<<thisBin->n_coll.var<<endl;
197  cout<<"B = "<<thisBin->b.mean<<endl;
198  cout<<"sigma = "<<thisBin->b.var<<endl;
199  text_<<Form("%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f",
200  (Float_t)thisBin->bin_edge,
201  (Float_t)thisBin->n_part.mean,
202  (Float_t)thisBin->n_part.var,
203  (Float_t)thisBin->n_coll.mean,
204  (Float_t)thisBin->n_coll.var,
205  (Float_t)thisBin->n_hard.mean,
206  (Float_t)thisBin->n_hard.var,
207  (Float_t)thisBin->b.mean,
208  (Float_t)thisBin->b.var)
209  <<endl;
210  cout<<"__________________________________________________"<<endl;
211 
212 }
tuple cout
Definition: gather_cfg.py:121

Member Data Documentation

const CentralityBins* CentralityTableProducer::CB
private

Definition at line 84 of file CentralityTableProducer.cc.

Referenced by analyze(), and endJob().

CentralityTable* CentralityTableProducer::CT
private

Definition at line 83 of file CentralityTableProducer.cc.

Referenced by endJob().

bool CentralityTableProducer::debug_
private

Definition at line 73 of file CentralityTableProducer.cc.

Referenced by analyze(), and CentralityTableProducer().

bool CentralityTableProducer::firstRunOnly_
private

Definition at line 72 of file CentralityTableProducer.cc.

Referenced by analyze(), and CentralityTableProducer().

edm::Service<TFileService> CentralityTableProducer::fs
private

Definition at line 78 of file CentralityTableProducer.cc.

Referenced by analyze().

edm::ESHandle<CentralityTable> CentralityTableProducer::inputDB_
private

Definition at line 75 of file CentralityTableProducer.cc.

TFile* CentralityTableProducer::inputTFile_
private

Definition at line 76 of file CentralityTableProducer.cc.

Referenced by CentralityTableProducer(), and endJob().

string CentralityTableProducer::inputTFileName_
private

Definition at line 77 of file CentralityTableProducer.cc.

Referenced by CentralityTableProducer().

bool CentralityTableProducer::makeDBFromTFile_
private

Definition at line 70 of file CentralityTableProducer.cc.

Referenced by CentralityTableProducer(), and endJob().

bool CentralityTableProducer::makeTFileFromDB_
private

Definition at line 71 of file CentralityTableProducer.cc.

Referenced by analyze(), and CentralityTableProducer().

string CentralityTableProducer::rootTag_
private

Definition at line 80 of file CentralityTableProducer.cc.

Referenced by CentralityTableProducer(), and endJob().

unsigned int CentralityTableProducer::runnum_
private

Definition at line 86 of file CentralityTableProducer.cc.

Referenced by analyze(), and endJob().

ofstream CentralityTableProducer::text_
private

Definition at line 81 of file CentralityTableProducer.cc.

Referenced by endJob(), and printBin().