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 Attributes
cms::MinBias Class Reference

#include <MinBias.h>

Inheritance diagram for cms::MinBias:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void endJob ()
 
 MinBias (const edm::ParameterSet &)
 
 ~MinBias ()
 
- 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 Attributes

bool allowMissingInputs_
 
int depth
 
float eta
 
std::string fOutputFileName
 
const CaloGeometrygeo
 
std::string hbheLabel_
 
std::string hfLabel_
 
std::string hoLabel_
 
TFile * hOutputFile
 
int ieta
 
int ievent
 
int iphi
 
float mom1
 
float mom2
 
float mom3
 
float mom4
 
int mydet
 
int mysubd
 
TTree * myTree
 
float occup
 
float phi
 
std::map< DetId, double > theFillDetMap0
 
std::map< DetId, double > theFillDetMap1
 
std::map< DetId, double > theFillDetMap2
 
std::map< DetId, double > theFillDetMap3
 
std::map< DetId, double > theFillDetMap4
 

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

Definition at line 42 of file MinBias.h.

Constructor & Destructor Documentation

cms::MinBias::MinBias ( const edm::ParameterSet iConfig)
explicit

Definition at line 9 of file MinBias.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

10 {
11  // get names of modules, producing object collections
12  hbheLabel_= iConfig.getParameter<std::string>("hbheInput");
13  hoLabel_=iConfig.getParameter<std::string>("hoInput");
14  hfLabel_=iConfig.getParameter<std::string>("hfInput");
15  allowMissingInputs_=iConfig.getUntrackedParameter<bool>("AllowMissingInputs",false);
16  // get name of output file with histogramms
17  fOutputFileName = iConfig.getUntrackedParameter<std::string>("HistOutFile");
18 
19 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::string hoLabel_
Definition: MinBias.h:55
bool allowMissingInputs_
Definition: MinBias.h:59
std::string hbheLabel_
Definition: MinBias.h:55
std::string hfLabel_
Definition: MinBias.h:55
std::string fOutputFileName
Definition: MinBias.h:58
cms::MinBias::~MinBias ( )

Definition at line 22 of file MinBias.cc.

23 {
24 
25  // do anything here that needs to be done at desctruction time
26  // (e.g. close files, deallocate resources etc.)
27 
28 }

Member Function Documentation

void cms::MinBias::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDAnalyzer.

Definition at line 104 of file MinBias.cc.

References gather_cfg::cout, cond::rpcobgas::detid, edm::EventSetup::get(), edm::Event::getByLabel(), DetId::Hcal, edm::HandleBase::isValid(), funct::pow(), and edm::ESHandle< class >::product().

105 {
106 
107  using namespace edm;
108  if(ievent == 0 ){
110  iSetup.get<CaloGeometryRecord>().get(pG);
111  geo = pG.product();
112  std::vector<DetId> did = geo->getValidDetIds();
113 
114  for(std::vector<DetId>::const_iterator id=did.begin(); id != did.end(); id++)
115  {
116  if( (*id).det() == DetId::Hcal ) {
117  theFillDetMap0[*id] = 0.;
118  theFillDetMap1[*id] = 0.;
119  theFillDetMap2[*id] = 0.;
120  theFillDetMap3[*id] = 0.;
121  theFillDetMap4[*id] = 0.;
122  }
123  }
124  }
125 
126 
127 
128  if (!hbheLabel_.empty()) {
130  iEvent.getByLabel(hbheLabel_,hbhe);
131  if (!hbhe.isValid()) {
132  // can't find it!
133  if (!allowMissingInputs_) {
134  *hbhe; // will throw the proper exception
135  }
136  } else {
137  for(HBHERecHitCollection::const_iterator hbheItr = (*hbhe).begin();
138  hbheItr != (*hbhe).end(); ++hbheItr)
139  {
140  DetId id = (hbheItr)->detid();
141  if( (*hbheItr).energy() > 0. ) std::cout<<" Energy = "<<(*hbheItr).energy()<<std::endl;
142  theFillDetMap0[id] = theFillDetMap0[id]+ 1.;
143  theFillDetMap1[id] = theFillDetMap1[id]+(*hbheItr).energy();
144  theFillDetMap2[id] = theFillDetMap2[id]+pow((*hbheItr).energy(),2);
145  theFillDetMap3[id] = theFillDetMap3[id]+pow((*hbheItr).energy(),3);
146  theFillDetMap4[id] = theFillDetMap4[id]+pow((*hbheItr).energy(),4);
147  }
148  }
149  }
150 
151  if (!hoLabel_.empty()) {
153  iEvent.getByLabel(hoLabel_,ho);
154  if (!ho.isValid()) {
155  // can't find it!
156  if (!allowMissingInputs_) {
157  *ho; // will throw the proper exception
158  }
159  } else {
160  for(HORecHitCollection::const_iterator hoItr = (*ho).begin();
161  hoItr != (*ho).end(); ++hoItr)
162  {
163  DetId id = (hoItr)->detid();
164  theFillDetMap0[id] = theFillDetMap0[id]+ 1.;
165  theFillDetMap1[id] = theFillDetMap1[id]+(*hoItr).energy();
166  theFillDetMap2[id] = theFillDetMap2[id]+pow((*hoItr).energy(),2);
167  theFillDetMap3[id] = theFillDetMap3[id]+pow((*hoItr).energy(),3);
168  theFillDetMap4[id] = theFillDetMap4[id]+pow((*hoItr).energy(),4);
169  }
170  }
171  }
172 
173  if (!hfLabel_.empty()) {
175  iEvent.getByLabel(hfLabel_,hf);
176  if (!hf.isValid()) {
177  // can't find it!
178  if (!allowMissingInputs_) {
179  *hf; // will throw the proper exception
180  }
181  } else {
182  for(HFRecHitCollection::const_iterator hfItr = (*hf).begin();
183  hfItr != (*hf).end(); ++hfItr)
184  {
185  DetId id = (hfItr)->detid();
186  theFillDetMap0[id] = theFillDetMap0[id]+ 1.;
187  theFillDetMap1[id] = theFillDetMap1[id]+(*hfItr).energy();
188  theFillDetMap2[id] = theFillDetMap2[id]+pow((*hfItr).energy(),2);
189  theFillDetMap3[id] = theFillDetMap3[id]+pow((*hfItr).energy(),3);
190  theFillDetMap4[id] = theFillDetMap4[id]+pow((*hfItr).energy(),4);
191  }
192  }
193  }
194 
195 }
int ievent
Definition: MinBias.h:65
std::vector< T >::const_iterator const_iterator
std::string hoLabel_
Definition: MinBias.h:55
std::map< DetId, double > theFillDetMap4
Definition: MinBias.h:74
bool allowMissingInputs_
Definition: MinBias.h:59
std::map< DetId, double > theFillDetMap1
Definition: MinBias.h:71
const CaloGeometry * geo
Definition: MinBias.h:68
std::map< DetId, double > theFillDetMap0
Definition: MinBias.h:70
std::map< DetId, double > theFillDetMap2
Definition: MinBias.h:72
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
std::map< DetId, double > theFillDetMap3
Definition: MinBias.h:73
Definition: DetId.h:20
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
Definition: CaloGeometry.cc:90
std::string hbheLabel_
Definition: MinBias.h:55
tuple cout
Definition: gather_cfg.py:121
std::string hfLabel_
Definition: MinBias.h:55
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void cms::MinBias::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 30 of file MinBias.cc.

References eta(), and phi.

31 {
32  hOutputFile = new TFile( fOutputFileName.c_str(), "RECREATE" ) ;
33  myTree = new TTree("RecJet","RecJet Tree");
34  myTree->Branch("mydet", &mydet, "mydet/I");
35  myTree->Branch("mysubd", &mysubd, "mysubd/I");
36  myTree->Branch("depth", &depth, "depth/I");
37  myTree->Branch("ieta", &ieta, "ieta/I");
38  myTree->Branch("iphi", &iphi, "iphi/I");
39  myTree->Branch("eta", &eta, "eta/F");
40  myTree->Branch("phi", &phi, "phi/F");
41  myTree->Branch("mom1", &mom1, "mom1/F");
42  myTree->Branch("mom2", &mom2, "mom2/F");
43  myTree->Branch("mom3", &mom3, "mom3/F");
44  myTree->Branch("mom4", &mom4, "mom4/F");
45 
46  ievent = 0;
47 
48 }
float mom2
Definition: MinBias.h:67
float mom1
Definition: MinBias.h:67
float mom4
Definition: MinBias.h:67
int ievent
Definition: MinBias.h:65
int mydet
Definition: MinBias.h:65
int ieta
Definition: MinBias.h:65
int depth
Definition: MinBias.h:65
float eta
Definition: MinBias.h:66
TTree * myTree
Definition: MinBias.h:63
float phi
Definition: MinBias.h:66
float mom3
Definition: MinBias.h:67
int iphi
Definition: MinBias.h:65
TFile * hOutputFile
Definition: MinBias.h:61
int mysubd
Definition: MinBias.h:65
std::string fOutputFileName
Definition: MinBias.h:58
void cms::MinBias::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 50 of file MinBias.cc.

References gather_cfg::cout, HcalDetId::depth(), PV3DBase< T, PVType, FrameType >::eta(), eta(), DetId::Hcal, i, HcalDetId::ieta(), HcalDetId::iphi(), phi, PV3DBase< T, PVType, FrameType >::phi(), pos, funct::pow(), and HcalDetId::subdet().

51 {
52 
53  const std::vector<DetId>& did = geo->getSubdetectorGeometry( DetId::Hcal, 1 )->getValidDetIds() ;
54  int i=0;
55  for(std::vector<DetId>::const_iterator id=did.begin(); id != did.end(); id++)
56  {
57 // if( (*id).det() == DetId::Hcal ) {
59  mydet = ((*id).rawId()>>28)&0xF;
60  mysubd = ((*id).rawId()>>25)&0x7;
61  depth = HcalDetId(*id).depth();
62  ieta = HcalDetId(*id).ieta();
63  iphi = HcalDetId(*id).iphi();
64  phi = pos.phi();
65  eta = pos.eta();
66  if ( theFillDetMap0[*id] > 0. )
67  {
71  2.*pow(mom2,3);
72  mom4 = (theFillDetMap4[*id]-4.*mom1*theFillDetMap3[*id]+6.*pow(mom1,2)*theFillDetMap2[*id])/theFillDetMap0[*id]-3.*pow(mom1,4);
73 
74  } else
75  {
76  mom1 = 0.; mom2 = 0.; mom3 = 0.; mom4 = 0.;
77  }
78  std::cout<<" Detector "<<(*id).rawId()<<" mydet "<<mydet<<" "<<mysubd<<" "<<depth<<" "<<
79  HcalDetId(*id).subdet()<<" "<<ieta<<" "<<iphi<<" "<<pos.eta()<<" "<<pos.phi()<<std::endl;
80  std::cout<<" Energy "<<mom1<<" "<<mom2<<std::endl;
81  myTree->Fill();
82  i++;
83 // }
84  }
85  std::cout<<" The number of CaloDet records "<<did.size()<<std::endl;
86  std::cout<<" The number of Hcal records "<<i<<std::endl;
87 
88 
89  std::cout << "===== Start writing user histograms =====" << std::endl;
90  hOutputFile->SetCompressionLevel(2);
91  hOutputFile->cd();
92  myTree->Write();
93  hOutputFile->Close() ;
94  std::cout << "===== End writing user histograms =======" << std::endl;
95 }
float mom2
Definition: MinBias.h:67
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:43
int i
Definition: DBlmapReader.cc:9
float mom1
Definition: MinBias.h:67
float mom4
Definition: MinBias.h:67
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:32
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
std::map< DetId, double > theFillDetMap4
Definition: MinBias.h:74
virtual const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const
Get a list of valid detector ids (for the given subdetector)
int mydet
Definition: MinBias.h:65
int ieta
Definition: MinBias.h:65
int depth() const
get the tower depth
Definition: HcalDetId.h:42
std::map< DetId, double > theFillDetMap1
Definition: MinBias.h:71
const CaloGeometry * geo
Definition: MinBias.h:68
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
std::map< DetId, double > theFillDetMap0
Definition: MinBias.h:70
std::map< DetId, double > theFillDetMap2
Definition: MinBias.h:72
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:68
int depth
Definition: MinBias.h:65
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
std::map< DetId, double > theFillDetMap3
Definition: MinBias.h:73
float eta
Definition: MinBias.h:66
TTree * myTree
Definition: MinBias.h:63
float phi
Definition: MinBias.h:66
float mom3
Definition: MinBias.h:67
T eta() const
Definition: PV3DBase.h:76
int iphi
Definition: MinBias.h:65
TFile * hOutputFile
Definition: MinBias.h:61
tuple cout
Definition: gather_cfg.py:121
int mysubd
Definition: MinBias.h:65
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40

Member Data Documentation

bool cms::MinBias::allowMissingInputs_
private

Definition at line 59 of file MinBias.h.

int cms::MinBias::depth
private
float cms::MinBias::eta
private

Definition at line 66 of file MinBias.h.

std::string cms::MinBias::fOutputFileName
private

Definition at line 58 of file MinBias.h.

const CaloGeometry* cms::MinBias::geo
private

Definition at line 68 of file MinBias.h.

std::string cms::MinBias::hbheLabel_
private

Definition at line 55 of file MinBias.h.

std::string cms::MinBias::hfLabel_
private

Definition at line 55 of file MinBias.h.

std::string cms::MinBias::hoLabel_
private

Definition at line 55 of file MinBias.h.

TFile* cms::MinBias::hOutputFile
private

Definition at line 61 of file MinBias.h.

int cms::MinBias::ieta
private

Definition at line 65 of file MinBias.h.

int cms::MinBias::ievent
private

Definition at line 65 of file MinBias.h.

int cms::MinBias::iphi
private

Definition at line 65 of file MinBias.h.

float cms::MinBias::mom1
private

Definition at line 67 of file MinBias.h.

float cms::MinBias::mom2
private

Definition at line 67 of file MinBias.h.

float cms::MinBias::mom3
private

Definition at line 67 of file MinBias.h.

float cms::MinBias::mom4
private

Definition at line 67 of file MinBias.h.

int cms::MinBias::mydet
private

Definition at line 65 of file MinBias.h.

int cms::MinBias::mysubd
private

Definition at line 65 of file MinBias.h.

TTree* cms::MinBias::myTree
private

Definition at line 63 of file MinBias.h.

float cms::MinBias::occup
private

Definition at line 67 of file MinBias.h.

float cms::MinBias::phi
private

Definition at line 66 of file MinBias.h.

std::map<DetId,double> cms::MinBias::theFillDetMap0
private

Definition at line 70 of file MinBias.h.

std::map<DetId,double> cms::MinBias::theFillDetMap1
private

Definition at line 71 of file MinBias.h.

std::map<DetId,double> cms::MinBias::theFillDetMap2
private

Definition at line 72 of file MinBias.h.

std::map<DetId,double> cms::MinBias::theFillDetMap3
private

Definition at line 73 of file MinBias.h.

std::map<DetId,double> cms::MinBias::theFillDetMap4
private

Definition at line 74 of file MinBias.h.