CMS 3D CMS Logo

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

#include <Calibration/AlCaHOCalibProducer/src/AlCaHOCalibProducer.cc>

Inheritance diagram for AlCaHOCalibProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Types

typedef Basic3DVector< float > DirectionType
 
typedef Basic3DVector< float > PositionType
 
typedef Basic3DVector< float > RotationType
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 

Public Member Functions

 AlCaHOCalibProducer (const edm::ParameterSet &)
 
 ~AlCaHOCalibProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Types

typedef math::Error< 5 >::type CovarianceMatrix
 

Private Member Functions

virtual void beginJob ()
 
virtual void endJob ()
 
void findHOEtaPhi (int iphsect, int &ietaho, int &iphiho)
 
FreeTrajectoryState getFreeTrajectoryState (const reco::Track &tk, const MagneticField *field, int itag, bool dir)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 

Private Attributes

TH1F * allhb1
 
TH1F * allhb2
 
TH1F * allhb3
 
TH1F * allhotime
 
HcalCalibrations calibped
 
HcalCalibrationWidths calibwidth
 
edm::ESHandle< HcalDbServiceconditions_
 
bool debug
 
std::string digiLabel
 
std::map< std::string, bool > fired
 
TProfile * hb1pedpr
 
TH1F * hb1pedrms
 
edm::InputTag hbheLabel_
 
edm::InputTag hltLabel_
 
TH1F * ho_occupency [5]
 
edm::InputTag hoLabel_
 
TProfile * hopeak [ntrgp_gm+1]
 
TProfile * hopedpr
 
TH1F * hopedrms
 
TH1F * hopedtime
 
TProfile * horatio
 
TH1F * hotime [ntrgp_gm+1]
 
TH1F * hst_hb1pedrms
 
TH1F * hst_hopedrms
 
int iring
 
int irunold
 
edm::InputTag l1Label_
 
TH1F * libhoped
 
TH1F * libhoped1
 
float localxhor0
 
float localxhor1
 
float localyhor0
 
float localyhor1
 
const HcalQIECoderm_coder
 
bool m_digiInput
 
int m_endTS
 
bool m_hbinfo
 
bool m_hotime
 
double m_magscale
 
const HcalQIEShapem_shape
 
double m_sigma
 
int m_startTS
 
edm::InputTag muonTags_
 
TH1F * Nallhb1
 
TH1F * Nallhb2
 
TH1F * Nallhb3
 
TH1F * Nallhotime
 
TH1F * Nhopedtime
 
TH1F * Nhotime [ntrgp_gm+1]
 
int Noccu
 
int nRuns
 
unsigned int Ntp
 
float pedestal [netamx][nphimx][ncidmx]
 
std::string theRootFileName
 
edm::InputTag towerLabel_
 
float xhor0
 
float xhor1
 
float yhor0
 
float yhor1
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

change magnetic field inside ../data/HOCosmicCalib_RecoLocalMuon.cff ../data/HOCosmicCalib_RecoLocalTracker.cff

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

Implementation: <Notes on="" implementation>=""> Missing towers : eta=5, phi=18-19 : eta = -5, phi =11-14

HO tile sizes Ring +-2 : width Tray 6:404.6, 5&4:347.6, 3:352.6, 2:364.6, 1:315.6 (phi ordering is opposite) lenght Tile 1:420.1, 2:545.1, 3:583.3, 4:626.0, 5:335.5

    (five tiles, 1 is close to Ring 1 and 5 is towardslc endcap)

Ring +-1 : width Tray 6:404.6, 5&4:347.6, 3:352.6, 2:364.6, 1:315.6 (same as Ring+-2) lenght Tile 1:391.5, 2:394.2, 3:411.0, 4:430.9, 5:454.0, 6:426.0 (1: near R0 and 6 near R2)

Ring 0 L1 : Width Tray (6:290.6, 5&4:345.6, 3:350.6, 2:362.6, 1:298.6 lenght 1:351.2, 2:353.8, 3:359.2, 4:189.1 (4 is towards Ring1)

Ring 0 L0 : Width Tray 6:266.6, 5&4:325.6, 3:330.6, 2:341.6, 1:272.6 length 1:331.5, 2:334.0, 3:339.0, 4:248.8 (4 is towards Ring1)

Definition at line 173 of file AlCaHOCalibProducer.cc.

Member Typedef Documentation

Definition at line 260 of file AlCaHOCalibProducer.cc.

Definition at line 179 of file AlCaHOCalibProducer.cc.

Definition at line 178 of file AlCaHOCalibProducer.cc.

Definition at line 180 of file AlCaHOCalibProducer.cc.

Constructor & Destructor Documentation

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

Definition at line 295 of file AlCaHOCalibProducer.cc.

References allhb1, allhb2, allhb3, allhotime, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hb1pedpr, hb1pedrms, hbheLabel_, hltLabel_, ho_occupency, hoLabel_, hopeak, hopedpr, hopedrms, hopedtime, horatio, hotime, hst_hb1pedrms, hst_hopedrms, i, l1Label_, libhoped, libhoped1, m_digiInput, m_endTS, m_hbinfo, m_hotime, m_magscale, m_sigma, m_startTS, TFileDirectory::make(), Nallhb1, Nallhb2, Nallhb3, Nallhotime, nchnmx, ncidmx, netahb3mx, netahbmx, netamx, Nhopedtime, Nhotime, nphimx, ntrgp_gm, theRootFileName, indexGen::title, and towerLabel_.

296  : muonTags_(iConfig.getUntrackedParameter<edm::InputTag>("muons"))
297 
298 {
299  //register your products
300 
301  theRootFileName = iConfig.getUntrackedParameter<string>("RootFileName","tmp.root");
302  m_digiInput = iConfig.getUntrackedParameter<bool>("digiInput", true);
303  m_hbinfo = iConfig.getUntrackedParameter<bool>("hbinfo", false);
304  m_startTS = iConfig.getUntrackedParameter<int>("firstTS", 4);
305 
306  m_hotime = iConfig.getUntrackedParameter<bool>("hotime", false);
307 
308  if(m_startTS<0) m_startTS=0;
309  m_endTS = iConfig.getUntrackedParameter<int>("lastTS", 7);
310  if (m_endTS < m_startTS) m_endTS = m_startTS + 3;
311  if (m_endTS >9) m_endTS=9;
312  m_magscale = iConfig.getUntrackedParameter<double>("m_scale", 4.0);
313  m_sigma = iConfig.getUntrackedParameter<double>("sigma", 1.0);
314 
315  hoLabel_ = iConfig.getParameter<edm::InputTag>("hoInput");
316  hbheLabel_ = iConfig.getParameter<edm::InputTag>("hbheInput");
317  hltLabel_ = iConfig.getParameter<edm::InputTag>("hltInput");
318  l1Label_ = iConfig.getParameter<edm::InputTag>("l1Input");
319  towerLabel_ = iConfig.getParameter<edm::InputTag>("towerInput");
320 
321  produces<HOCalibVariableCollection>("HOCalibVariableCollection").setBranchAlias("HOCalibVariableCollection");
322 
323 
324  if (m_hotime) {
326 
327  char title[200];
328  if ( m_digiInput) {
329  libhoped = fs->make<TH1F>("libhoped", "libhoped", ncidmx*netamx*nphimx, -0.5, ncidmx*netamx*nphimx-0.5);
330  libhoped1 = fs->make<TH1F>("libhoped1", "libhoped1", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
331  allhotime = fs->make<TH1F>("allhotime", "allhotime", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
332  for (int ij=0; ij<=ntrgp_gm; ij++) {
333  sprintf(title, "hotime_trgp_%i", ij+1);
334  hotime[ij] = fs->make<TH1F>(title, title, nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
335  sprintf(title, "hopeak_trgp_%i", ij+1);
336  hopeak[ij] = fs->make<TProfile>(title, title,netamx*nphimx, -0.5, netamx*nphimx-0.5);
337  }
338 
339  horatio = fs->make<TProfile>("horatio", "horatio",netamx*nphimx, -0.5, netamx*nphimx-0.5);
340  hopedtime = fs->make<TH1F>("hopedtime", "hopedtime", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
341 
342  Nallhotime = fs->make<TH1F>("Nallhotime", "Nallhotime", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
343  hopedpr = fs->make<TProfile>("hopedpr", "hopedpr", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
344  hopedrms = fs->make<TH1F>("hopedrms", "hopedrms", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
345  hst_hopedrms = fs->make<TH1F>("hst_hopedrms", "hst_hopedrms", 100, 0.0, 0.1);
346  for (int ij=0; ij<=ntrgp_gm; ij++) {
347  sprintf(title, "Nhotime_trgp_%i", ij+1);
348  Nhotime[ij] = fs->make<TH1F>(title, title, nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
349  }
350  Nhopedtime = fs->make<TH1F>("Nhopedtime", "Nhopedtime", nchnmx*netamx*nphimx, -0.5, nchnmx*netamx*nphimx-0.5);
351  allhb1 = fs->make<TH1F>("allhb1", "allhb1", nchnmx*netahbmx*nphimx, -0.5, nchnmx*netahbmx*nphimx-0.5);
352  allhb2 = fs->make<TH1F>("allhb2", "allhb2", nchnmx*netahb3mx*nphimx, -0.5, nchnmx*netahb3mx*nphimx-0.5);
353  allhb3 = fs->make<TH1F>("allhb3", "allhb3", nchnmx*netahb3mx*nphimx, -0.5, nchnmx*netahb3mx*nphimx-0.5);
354  Nallhb1 = fs->make<TH1F>("Nallhb1", "Nallhb1", nchnmx*netahbmx*nphimx, -0.5, nchnmx*netahbmx*nphimx-0.5);
355  Nallhb2 = fs->make<TH1F>("Nallhb2", "Nallhb2", nchnmx*netahb3mx*nphimx, -0.5, nchnmx*netahb3mx*nphimx-0.5);
356  Nallhb3 = fs->make<TH1F>("Nallhb3", "Nallhb3", nchnmx*netahb3mx*nphimx, -0.5, nchnmx*netahb3mx*nphimx-0.5);
357  hb1pedpr = fs->make<TProfile>("hb1pedpr", "hb1pedpr", nchnmx*netahbmx*nphimx, -0.5, nchnmx*netahbmx*nphimx-0.5);
358  hb1pedrms = fs->make<TH1F>("hb1pedrms", "hb1pedrms", nchnmx*netahbmx*nphimx, -0.5, nchnmx*netahbmx*nphimx-0.5);
359  hst_hb1pedrms = fs->make<TH1F>("hst_hb1pedrms", "hst_hb1pedrms", 100, 0., 0.1);
360 
361  }
362  for (int i=0; i<5; i++) {
363  sprintf(title, "ho_occupency (>%i #sigma)", i+2);
364  ho_occupency[i] = fs->make<TH1F>(title, title, netamx*nphimx, -0.5, netamx*nphimx-0.5);
365  }
366  }
367 
368 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
TProfile * hopeak[ntrgp_gm+1]
const int ncidmx
const int netahbmx
const int ntrgp_gm
TH1F * Nhotime[ntrgp_gm+1]
const int nphimx
const int netamx
T * make() const
make new ROOT object
const int nchnmx
TH1F * hotime[ntrgp_gm+1]
const int netahb3mx
AlCaHOCalibProducer::~AlCaHOCalibProducer ( )

Definition at line 370 of file AlCaHOCalibProducer.cc.

References allhb1, allhb2, allhb3, allhotime, hb1pedpr, hb1pedrms, ho_occupency, hopedpr, hopedrms, hopedtime, hotime, hst_hb1pedrms, hst_hopedrms, i, libhoped, libhoped1, m_digiInput, m_hotime, max(), Nallhb1, Nallhb2, Nallhb3, Nallhotime, nchnmx, netahbmx, netamx, Nhopedtime, Nhotime, Noccu, nphimx, nRuns, and ntrgp_gm.

371 {
372 
373  // do anything here that needs to be done at desctruction time
374  // (e.g. close files, deallocate resources etc.)
375 
376  if (m_hotime) {
377  // Write the histos to file
378  if ( m_digiInput) {
379  allhotime->Divide(Nallhotime);
380  for (int ij=0; ij<=ntrgp_gm; ij++) {
381  hotime[ij]->Divide(Nhotime[ij]);
382  }
383  hopedtime->Divide(Nhopedtime);
384  libhoped->Scale(1./max(1,nRuns));
385  libhoped1->Scale(1./max(1,nRuns));
386  for (int i=0; i<nchnmx*netamx*nphimx; i++) {
387  float xx = hopedpr->GetBinError(i+1);
388  if (hopedpr->GetBinEntries(i+1) >0) {
389  hopedrms->Fill(i, xx);
390  hst_hopedrms->Fill(xx);
391  }
392  }
393  allhb1->Divide(Nallhb1);
394  allhb2->Divide(Nallhb2);
395  allhb3->Divide(Nallhb3);
396  for (int i=0; i<nchnmx*netahbmx*nphimx; i++) {
397  float xx = hb1pedpr->GetBinError(i+1);
398  if (hb1pedpr->GetBinEntries(i+1) >0) {
399  hb1pedrms->Fill(i, xx);
400  hst_hb1pedrms->Fill(xx);
401  }
402  }
403  }
404  for (int i=0; i<5; i++) {
405  ho_occupency[i]->Scale(1./max(1,Noccu));
406  }
407  }
408 
409 }
int i
Definition: DBlmapReader.cc:9
const int netahbmx
const T & max(const T &a, const T &b)
const int ntrgp_gm
TH1F * Nhotime[ntrgp_gm+1]
const int nphimx
const int netamx
const int nchnmx
TH1F * hotime[ntrgp_gm+1]

Member Function Documentation

void AlCaHOCalibProducer::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 1260 of file AlCaHOCalibProducer.cc.

References i, irunold, j, gen::k, ncidmx, netamx, nphimx, nRuns, and pedestal.

1261 {
1262  //GMA Nevents = 0;
1263  //GMA Npass = 0;
1264  //GMA Noccu = 0;
1265 
1266  irunold = -1;
1267  nRuns = 0;
1268  // edm::ESHandle<MagneticField> bField;
1269  // iSetup.get<IdealMagneticFieldRecord>().get(bField);
1270  // stepProp = new SteppingHelixPropagator(&*bField,anyDirection);
1271  // stepProp->setMaterialMode(false);
1272  // stepProp->applyRadX0Correction(true);
1273 
1274  for (int i=0; i<netamx; i++) {
1275  for (int j=0; j<nphimx; j++) {
1276  for (int k=0; k<ncidmx; k++) {
1277  pedestal[i][j][k]=0.0;
1278  }
1279  }
1280  }
1281 
1282 
1283 }
int i
Definition: DBlmapReader.cc:9
const int ncidmx
int j
Definition: DBlmapReader.cc:9
float pedestal[netamx][nphimx][ncidmx]
int k[5][pyjets_maxn]
const int nphimx
const int netamx
void AlCaHOCalibProducer::endJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 1287 of file AlCaHOCalibProducer.cc.

1287  {
1288 
1289 
1290 }
void AlCaHOCalibProducer::findHOEtaPhi ( int  iphsect,
int &  ietaho,
int &  iphiho 
)
private

Definition at line 1292 of file AlCaHOCalibProducer.cc.

References abs, i, iring, localxhor0, localxhor1, localyhor0, localyhor1, netabin, nphimx, xhor0, xhor1, yhor0, and yhor1.

Referenced by produce().

1292  {
1293 
1294  //18/12/06 : use only position, not angle phi
1295 
1296 double etalow[netabin]={ 0.025, 35.195, 70.625, 106.595, 141.565, 180.765, 220.235, 261.385, 304.525, 349.975, 410.025, 452.085, 506.645, 565.025, 627.725, 660.25};
1297 double etahgh[netabin]={ 35.145, 70.575, 106.545, 125.505, 180.715, 220.185, 261.335, 304.475, 349.925, 392.575, 452.035, 506.595, 564.975, 627.675, 661.075, 700.25};
1298 
1299  double philow[6]={-76.27, -35.11, 0.35, 35.81, 71.77, 108.93}; //Ring+/-1 & 2
1300  double phihgh[6]={-35.81, -0.35, 35.11, 71.07, 108.23, 140.49};
1301 
1302  double philow00[6]={-60.27, -32.91, 0.35, 33.61, 67.37, 102.23}; //Ring0 L0
1303  double phihgh00[6]={-33.61, -0.35, 32.91, 66.67, 101.53, 129.49};
1304 
1305  double philow01[6]={-64.67, -34.91, 0.35, 35.61, 71.37, 108.33}; //Ring0 L1
1306  double phihgh01[6]={-35.61, -0.35, 34.91, 70.67, 107.63, 138.19};
1307 
1308 
1309  iring = -10;
1310 
1311  double tmpdy = std::abs(yhor1);
1312  for (int i=0; i<netabin; i++) {
1313  if (tmpdy >etalow[i] && tmpdy <etahgh[i]) {
1314  ietaho = i+1;
1315  float tmp1 = fabs(tmpdy-etalow[i]);
1316  float tmp2 = fabs(tmpdy-etahgh[i]);
1317 
1318  localyhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1319 
1320  if (i<4) iring =0;
1321  if (i>=4 && i<10) iring=1;
1322  if (i>=10 && i<netabin) iring=2;
1323  break;
1324  }
1325  }
1326 
1327  int tmpphi = 0;
1328  int tmpphi0 = 0;
1329 
1330  if (ietaho >4) { //Ring 1 and 2
1331  for (int i=0; i<6; i++) {
1332  if (xhor1 >philow[i] && xhor1 <phihgh[i]) {
1333  tmpphi=i+1;
1334  float tmp1 = fabs(xhor1-philow[i]);
1335  float tmp2 = fabs(xhor1-phihgh[i]);
1336  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1337  break;
1338  }
1339  }
1340  } else { //Ring 0
1341  for (int i=0; i<6; i++) {
1342  if (xhor1 >philow01[i] && xhor1 <phihgh01[i]) {
1343  tmpphi=i+1;
1344  float tmp1 = fabs(xhor1-philow01[i]);
1345  float tmp2 = fabs(xhor1-phihgh01[i]);
1346  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1347  break;
1348  }
1349  }
1350 
1351  for (int i=0; i<6; i++) {
1352  if (xhor0 >philow00[i] && xhor0 <phihgh00[i]) {
1353  tmpphi0=i+1;
1354  float tmp1 = fabs(xhor0-philow00[i]);
1355  float tmp2 = fabs(xhor0-phihgh00[i]);
1356  localxhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1357  if (tmpphi !=tmpphi0) localxhor0 +=10000.;
1358  break;
1359  }
1360  }
1361 
1362  double tmpdy = std::abs(yhor0);
1363  for (int i=0; i<4; i++) {
1364  if (tmpdy >etalow[i] && tmpdy <etahgh[i]) {
1365  float tmp1 = fabs(tmpdy-etalow[i]);
1366  float tmp2 = fabs(tmpdy-etahgh[i]);
1367  localyhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1368  if (i+1 != ietaho) localyhor0 +=10000.;
1369  break;
1370  }
1371  }
1372  }
1373 
1374  if (tmpphi!=0) {
1375  iphiho = 6*iphisect -2 + tmpphi;
1376  if (iphiho <=0) iphiho +=nphimx;
1377  if (iphiho >nphimx) iphiho -=nphimx;
1378  }
1379 
1380  // isect2 = 15*iring+iphisect+1;
1381 
1382  if (yhor1 <0) {
1383  if (std::abs(ietaho) >netabin) { //Initialised with 50
1384  ietaho +=1;
1385  } else {
1386  ietaho *=-1;
1387  }
1388  // isect2 *=-1;
1389  iring *=-1;
1390  }
1391 }
int i
Definition: DBlmapReader.cc:9
const int netabin
#define abs(x)
Definition: mlp_lapack.h:159
const int nphimx
FreeTrajectoryState AlCaHOCalibProducer::getFreeTrajectoryState ( const reco::Track tk,
const MagneticField field,
int  itag,
bool  dir 
)
private

Definition at line 1393 of file AlCaHOCalibProducer.cc.

References reco::TrackBase::charge(), reco::Track::extra(), reco::Track::innerMomentum(), reco::Track::innerPosition(), reco::Track::outerPx(), reco::Track::outerPy(), reco::Track::outerPz(), reco::Track::outerX(), reco::Track::outerY(), and reco::Track::outerZ().

Referenced by produce().

1394 {
1395 
1396  if (iiner ==0) {
1397  GlobalPoint gpos( tk.outerX(), tk.outerY(), tk.outerZ());
1398  GlobalVector gmom( tk.outerPx(), tk.outerPy(), tk.outerPz());
1399  if (dir) gmom *=-1.;
1400  GlobalTrajectoryParameters par( gpos, gmom, tk.charge(), field);
1401  CurvilinearTrajectoryError err( tk.extra()->outerStateCovariance());
1402  return FreeTrajectoryState( par, err);
1403  } else {
1404  GlobalPoint gpos( tk.innerPosition().X(), tk.innerPosition().Y(), tk.innerPosition().Z());
1405  GlobalVector gmom( tk.innerMomentum().X(), tk.innerMomentum().Y(), tk.innerMomentum().Z());
1406  if (dir) gmom *=-1.;
1407  GlobalTrajectoryParameters par( gpos, -gmom, tk.charge(), field);
1408  CurvilinearTrajectoryError err( tk.extra()->innerStateCovariance());
1409  return FreeTrajectoryState( par, err);
1410  }
1411 
1412 }
double outerPy() const
y coordinate of momentum vector at the outermost hit position
Definition: Track.h:73
const TrackExtraRef & extra() const
reference to &quot;extra&quot; object
Definition: Track.h:97
double outerZ() const
z coordinate of the outermost hit position
Definition: Track.h:81
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:42
double outerX() const
x coordinate of the outermost hit position
Definition: Track.h:77
double outerPz() const
z coordinate of momentum vector at the outermost hit position
Definition: Track.h:75
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:45
double outerY() const
y coordinate of the outermost hit position
Definition: Track.h:79
int charge() const
track electric charge
Definition: TrackBase.h:113
dbl *** dir
Definition: mlp_gen.cc:35
double outerPx() const
x coordinate of momentum vector at the outermost hit position
Definition: Track.h:71
void AlCaHOCalibProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 418 of file AlCaHOCalibProducer.cc.

References abs, allhb1, allhb2, allhb3, allhotime, angle(), anyDirection, SteppingHelixPropagator::applyRadX0Correction(), calibped, HOCalibVariables::caloen, HcalQIECoder::charge(), DeDxDiscriminatorTools::charge(), HOCalibVariables::chisq, conditions_, funct::cos(), Vector3DBase< T, FrameTag >::cross(), dot(), alignCSCRings::e, CaloRecHit::energy(), findHOEtaPhi(), edm::EventSetup::get(), edm::Event::getByLabel(), getFreeTrajectoryState(), hb1pedpr, hbheLabel_, HOCalibVariables::hbhesig, HcalOuter, ho_occupency, HOCalibVariables::hoang, HOCalibVariables::hocorsig, HOCalibVariables::hocro, HOCalibVariables::hodx, HOCalibVariables::hody, hoLabel_, hopeak, hopedpr, hopedtime, horatio, HOCalibVariables::hosig, hotime, HOCalibVariables::htime, i, HORecHit::id(), edm::EventBase::id(), errorMatrix2Lands_multiChannel::id, HcalDetId::ieta(), HcalDetId::iphi(), iring, irunold, HOCalibVariables::isect, SteppingHelixStateInfo::isValid(), j, gen::k, edm::InputTag::label(), libhoped, libhoped1, localxhor0, localxhor1, localyhor0, localyhor1, m_coder, m_digiInput, m_endTS, m_hbinfo, m_hotime, m_shape, m_sigma, m_startTS, max(), min, SteppingHelixStateInfo::momentum(), muonTags_, Nallhb1, Nallhb2, Nallhb3, Nallhotime, nchnmx, ncidmx, HOCalibVariables::ndof, netabin, netamx, Nhopedtime, Nhotime, HOCalibVariables::nmuon, Noccu, nphimx, nRuns, nsigpk, nstrbn, ntrgp_gm, HcalCalibrations::pedestal(), pedestal, HOCalibVariables::pherr, Basic3DVector< T >::phi(), PlaneBuilder::plane(), pos, SteppingHelixStateInfo::position(), SteppingHelixPropagator::propagate(), edm::Event::put(), makeMuonMisalignmentScenario::rot, edm::EventID::run(), SteppingHelixPropagator::setMaterialMode(), funct::sin(), mathSSE::sqrt(), HOCalibVariables::therr, Basic3DVector< T >::theta(), towerLabel_, HOCalibVariables::trig1, HOCalibVariables::trig2, HOCalibVariables::trkdr, HOCalibVariables::trkdz, HOCalibVariables::trkmm, HOCalibVariables::trkph, HOCalibVariables::trkth, HOCalibVariables::trkvx, HOCalibVariables::trkvy, HOCalibVariables::trkvz, PV3DBase< T, PVType, FrameType >::x(), xhor0, xhor1, PV3DBase< T, PVType, FrameType >::y(), yhor0, yhor1, and PV3DBase< T, PVType, FrameType >::z().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

419 {
420 
421  using namespace edm;
422  int irun = iEvent.id().run();
423  if (m_digiInput) {
424  if (irunold !=irun) {
425  iSetup.get<HcalDbRecord>().get(conditions_);
426  m_shape = (*conditions_).getHcalShape();
427 
428  for (int i=0; i<netamx; i++) {
429  for (int j=0; j<nphimx; j++) {
430  for (int k=0; k<ncidmx; k++) {
431  pedestal[i][j][k]=0.0;
432  }
433  }
434  }
435  }
436  }
437 
438  // if (m_hotime && m_digiInput) {
439  if (m_digiInput) {
440  if (irunold !=irun) {
441  nRuns++;
442  for (int i =-netabin+1; i<=netabin-1; i++) {
443  if (i==0) continue;
444  int tmpeta1 = (i>0) ? i -1 : -i +14;
445  if (tmpeta1 <0 || tmpeta1 >netamx) continue;
446  for (int j=0; j<nphimx; j++) {
447 
448  HcalDetId id(HcalOuter, i, j+1, 4);
449  calibped = conditions_->getHcalCalibrations(id);
450 
451  for (int k =0; k<ncidmx-1; k++) {
452  pedestal[tmpeta1][j][k] = calibped.pedestal(k); // pedm->getValue(k);
453  pedestal[tmpeta1][j][ncidmx-1] += (1./(ncidmx-1))*pedestal[tmpeta1][j][k];
454  }
455 
456  if (m_hotime) {
457  for (int k =0; k<ncidmx; k++) {
458  libhoped->Fill(nphimx*ncidmx*tmpeta1 + ncidmx*j + k, pedestal[tmpeta1][j][k]);
459  }
460  for (int k =0; k<nchnmx; k++) {
461  libhoped1->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*j + k, pedestal[tmpeta1][j][min(k,ncidmx-1)]);
462  }
463  }
464 
465  }
466  }
467  }
468  }
469 
470  // Nevents++;
471  irunold = irun;
472 
473  //GMA if (Nevents%500==1)
474  //GMA cout <<"AlCaHOCalibProducer Processing event # "<<Nevents<<" "<<Npass<<" "<<Noccu<<" "<<irun<<" "<<iEvent.id().event()<<endl;
475 
476  std::auto_ptr<HOCalibVariableCollection> hostore (new HOCalibVariableCollection);
477 
479 
481 
482  if (m_digiInput) {
483  iEvent.getByLabel(hoLabel_,ho);
484  iEvent.getByLabel(hbheLabel_,hbhe);
485  }
486 
487  if (m_hotime && m_digiInput) {
488  if ((*ho).size()>0) {
489  for (HODigiCollection::const_iterator j=(*ho).begin(); j!=(*ho).end(); j++){
490  HcalDetId id =(*j).id();
491  int tmpeta= id.ieta();
492  int tmpphi= id.iphi();
493  m_coder = (*conditions_).getHcalCoder(id);
494  float tmpdata[nchnmx];
495  int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
496  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
497  tmpdata[i] = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
498  allhotime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, tmpdata[i]);
499  Nallhotime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1.);
500  }
501  }
502  }
503  if ((*hbhe).size()>0) {
504  for (HBHEDigiCollection::const_iterator j=(*hbhe).begin(); j!=(*hbhe).end(); j++){
505  HcalDetId id =(*j).id();
506  int tmpeta= id.ieta();
507  int tmpphi= id.iphi();
508  int tmpdepth =id.depth();
509  m_coder = (*conditions_).getHcalCoder(id);
510  int tmpeta1 = (tmpeta>0) ? tmpeta -15 : -tmpeta + 1;
511  if (tmpdepth==1) tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +29;
512  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
513  float signal = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
514  if (tmpdepth==1) {
515  allhb1->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, signal);
516  Nallhb1->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1);
517  hb1pedpr->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, signal);}
518  if (tmpdepth==2) {
519  allhb2->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, signal);
520  Nallhb2->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1);}
521  if (tmpdepth==3) {
522  allhb3->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, signal);
523  Nallhb3->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1);}
524  }
525  }
526  }
527  }
528 
529  double pival = acos(-1.);
530 
532  iEvent.getByLabel(muonTags_, cosmicmuon);
533 
534  if (cosmicmuon->size()>0) {
535 
536  int l1trg = 0;
537  int hlttr = 0;
538 
539  int ntrgpas_gm[ntrgp_gm]={0,0,0,0,0,0,0,0,0,0};
540 
541  /*
542  //L1 trigger
543  Handle<L1GlobalTriggerReadoutRecord> L1GTRR;
544  iEvent.getByLabel(l1Label_,L1GTRR); //gtDigis
545 
546  if ( L1GTRR.isValid()) {
547  const unsigned int n(L1GTRR->decisionWord().size());
548  const bool accept(L1GTRR->decision());
549  if (accept) {
550  for (unsigned int i=0; i!=n && i<32; ++i) {
551  // for (unsigned int i=0; i!=n ; ++i) {
552  int il1trg = (L1GTRR->decisionWord()[i]) ? 1 : 0;
553  if (il1trg>0 && i<32) l1trg +=int(std::pow(2., double(i%32))*il1trg);
554  }
555  }
556  }// else { return;}
557 
558  //HLT
559 
560  Handle<edm::TriggerResults> trigRes;
561  iEvent.getByLabel(hltLabel_, trigRes);
562 
563 
564  unsigned int size = trigRes->size();
565  edm::TriggerNames triggerNames(*trigRes);
566 
567  // loop over all paths, get trigger decision
568  for(unsigned i = 0; i != size && i<32; ++i) {
569  std::string name = triggerNames.triggerName(i);
570  fired[name] = trigRes->accept(i);
571  int ihlt = trigRes->accept(i);
572  if (m_hotime){
573  if (ihlt >0 && i < (int)ntrgp_gm) { ntrgpas_gm[i] = 1;}
574  }
575  if (i<32 && ihlt>0) hlttr += int(std::pow(2., double(i%32))*ihlt);
576  }
577 
578  */
579 
580  int Noccu_old = Noccu;
581 
582  for(reco::TrackCollection::const_iterator ncosm = cosmicmuon->begin();
583  ncosm != cosmicmuon->end(); ++ncosm) {
584 
585  if ((*ncosm).ndof() < 15) continue;
586  if ((*ncosm).normalizedChi2() >30.0) continue;
587 
588  HOCalibVariables tmpHOCalib;
589 
590  tmpHOCalib.trig1 = l1trg;
591  tmpHOCalib.trig2 = hlttr;
592 
593  int charge = ncosm->charge();
594 
595  double innerr = (*ncosm).innerPosition().Perp2();
596  double outerr = (*ncosm).outerPosition().Perp2();
597  int iiner = (innerr <outerr) ? 1 : 0;
598 
599  //---------------------------------------------------
600  // in_to_out Dir in_to_out Dir
601  // StandAlone ^ ^ Cosmic ^ |
602  // | | | v
603  //---------------------------------------------------Y=0
604  // StandAlone | | Cosmic ^ |
605  // v v | v
606  //----------------------------------------------------
607 
608  double posx, posy, posz;
609  double momx, momy, momz;
610 
611  if (iiner==1) {
612  posx = (*ncosm).innerPosition().X();
613  posy = (*ncosm).innerPosition().Y();
614  posz = (*ncosm).innerPosition().Z();
615 
616  momx = (*ncosm).innerMomentum().X();
617  momy = (*ncosm).innerMomentum().Y();
618  momz = (*ncosm).innerMomentum().Z();
619 
620  } else {
621  posx = (*ncosm).outerPosition().X();
622  posy = (*ncosm).outerPosition().Y();
623  posz = (*ncosm).outerPosition().Z();
624 
625  momx = (*ncosm).outerMomentum().X();
626  momy = (*ncosm).outerMomentum().Y();
627  momz = (*ncosm).outerMomentum().Z();
628  }
629 
630 
631  PositionType trkpos(posx, posy, posz);
632 
633  CLHEP::Hep3Vector tmpmuon3v(posx, posy, posz);
634  CLHEP::Hep3Vector tmpmuondir(momx, momy, momz);
635 
636  bool samedir = (tmpmuon3v.dot(tmpmuondir) >0) ? true : false;
637  for (int i=0; i<3; i++) {tmpHOCalib.caloen[i] = 0.0;}
638  int inearbymuon = 0;
639  for(reco::TrackCollection::const_iterator ncosmcor = cosmicmuon->begin();
640  ncosmcor != cosmicmuon->end(); ++ncosmcor) {
641  if (ncosmcor==ncosm) continue;
642 
643  CLHEP::Hep3Vector tmpmuon3vcor;
644  CLHEP::Hep3Vector tmpmom3v;
645  if (iiner==1) {
646  tmpmuon3vcor = CLHEP::Hep3Vector((*ncosmcor).innerPosition().X(),(*ncosmcor).innerPosition().Y(),(*ncosmcor).innerPosition().Z());
647  tmpmom3v = CLHEP::Hep3Vector((*ncosmcor).innerMomentum().X(),(*ncosmcor).innerMomentum().Y(),(*ncosmcor).innerMomentum().Z());
648  } else {
649  tmpmuon3vcor = CLHEP::Hep3Vector((*ncosmcor).outerPosition().X(),(*ncosmcor).outerPosition().Y(),(*ncosmcor).outerPosition().Z());
650  tmpmom3v = CLHEP::Hep3Vector((*ncosmcor).outerMomentum().X(),(*ncosmcor).outerMomentum().Y(),(*ncosmcor).outerMomentum().Z());
651 
652  }
653  if (tmpmom3v.mag()<0.2 || (*ncosmcor).ndof()<5) continue;
654 
655  double angle = tmpmuon3v.angle(tmpmuon3vcor);
656  if (angle < 7.5*pival/180.) {inearbymuon=1;} // break;}
657 
658  if (muonTags_.label() =="cosmicMuons") {
659  if (angle <7.5*pival/180.) { tmpHOCalib.caloen[0] +=1.;}
660  if (angle <15.0*pival/180.) { tmpHOCalib.caloen[1] +=1.;}
661  if (angle <35.0*pival/180.) { tmpHOCalib.caloen[2] +=1.;}
662  }
663  }
664 
665  localxhor0 = localyhor0 = 20000; //GM for 22OCT07 data
666 
667  if (muonTags_.label() =="standAloneMuons") {
668 
669  Handle<CaloTowerCollection> calotower;
670  iEvent.getByLabel(towerLabel_, calotower);
671 
672  for (CaloTowerCollection::const_iterator calt = calotower->begin();
673  calt !=calotower->end(); calt++) {
674  //CMSSW_2_1_x const math::XYZVector towermom = (*calt).momentum();
675  double ith = (*calt).momentum().theta();
676  double iph = (*calt).momentum().phi();
677 
678  CLHEP::Hep3Vector calo3v(sin(ith)*cos(iph), sin(ith)*sin(iph), cos(ith));
679 
680  double angle = tmpmuon3v.angle(calo3v);
681 
682  if (angle < 7.5*pival/180.) {tmpHOCalib.caloen[0] += calt->emEnergy()+calt->hadEnergy();}
683  if (angle < 15*pival/180.) {tmpHOCalib.caloen[1] += calt->emEnergy()+calt->hadEnergy();}
684  if (angle < 35*pival/180.) {tmpHOCalib.caloen[2] += calt->emEnergy()+calt->hadEnergy();}
685  }
686 
687 
688  }
689  if (tmpHOCalib.caloen[0] >10.0) continue;
690 
691  GlobalPoint glbpt(posx, posy, posz);
692 
693  double mom = sqrt(momx*momx + momy*momy +momz*momz);
694 
695  momx /= mom;
696  momy /= mom;
697  momz /= mom;
698 
699  DirectionType trkdir(momx, momy, momz);
700 
701  tmpHOCalib.trkdr = (*ncosm).d0();
702  tmpHOCalib.trkdz = (*ncosm).dz();
703 
704  tmpHOCalib.nmuon = cosmicmuon->size();
705  tmpHOCalib.trkvx = glbpt.x();
706  tmpHOCalib.trkvy = glbpt.y();
707  tmpHOCalib.trkvz = glbpt.z();
708  tmpHOCalib.trkmm = mom*charge;
709  tmpHOCalib.trkth = trkdir.theta();
710  tmpHOCalib.trkph = trkdir.phi();
711 
712  tmpHOCalib.ndof = (inearbymuon ==0) ? (int)(*ncosm).ndof() : -(int)(*ncosm).ndof();
713  tmpHOCalib.chisq = (*ncosm).normalizedChi2(); // max(1.,tmpHOCalib.ndof);
714  tmpHOCalib.therr = 0.;
715  tmpHOCalib.pherr = 0.;
716 
717  if (iiner==1) {
718  reco::TrackBase::CovarianceMatrix innercov = (*ncosm).innerStateCovariance();
719  tmpHOCalib.therr = innercov(1,1); //thetaError();
720  tmpHOCalib.pherr = innercov(2,2); //phi0Error();
721  } else {
722  reco::TrackBase::CovarianceMatrix outercov = (*ncosm).outerStateCovariance();
723  tmpHOCalib.therr = outercov(1,1); //thetaError();
724  tmpHOCalib.pherr = outercov(2,2); //phi0Error();
725  }
726 
727  ESHandle<MagneticField> theMagField;
728  iSetup.get<IdealMagneticFieldRecord>().get(theMagField );
729 
730  SteppingHelixPropagator myHelix(&*theMagField,anyDirection);
731  myHelix.setMaterialMode(false);
732  myHelix.applyRadX0Correction(true);
733 
734  double phiho = trkpos.phi();
735  if (phiho<0) phiho +=2*pival;
736 
737  int iphisect_dt=int(6*(phiho+pival/18.)/pival); //for u 18/12/06
738  if (iphisect_dt>=12) iphisect_dt=0;
739 
740  int iphisect = -1;
741 
742  bool ipath = false;
743  for (int kl = 0; kl<=2; kl++) {
744 
745  int iphisecttmp = (kl<2) ? iphisect_dt + kl : iphisect_dt - 1;
746  if (iphisecttmp <0) iphisecttmp = 11;
747  if (iphisecttmp >=12) iphisecttmp = 0;
748 
749  double phipos = iphisecttmp*pival/6.;
750  double phirot = phipos;
751 
752  GlobalVector xLocal(-sin(phirot), cos(phirot), 0.);
753 
754  GlobalVector yLocal(0., 0., 1.);
755  GlobalVector zLocal = xLocal.cross(yLocal).unit();
756  // GlobalVector zLocal(cos(phirot), sin(phirot), 0.0);
757 
758 
759  FreeTrajectoryState freetrajectorystate_ = getFreeTrajectoryState(*ncosm,&(*theMagField), iiner, samedir);
760 
761  Surface::RotationType rot(xLocal, yLocal, zLocal);
762 
763  for (int ik=1; ik>=0; ik--) { //propagate track in two HO layers
764 
765  double radial = 407.0;
766  if (ik==0) radial = 382.0;
767 
768  Surface::PositionType pos(radial*cos(phipos), radial*sin(phipos), 0.);
770 
771  Surface* aPlane2 = new Plane(pos,rot);
772 
773  SteppingHelixStateInfo steppingHelixstateinfo_ = myHelix.propagate(freetrajectorystate_, (*aPlane2));
774 
775  if (steppingHelixstateinfo_.isValid()) {
776 
777  GlobalVector hotrkpos2(steppingHelixstateinfo_.position().x(), steppingHelixstateinfo_.position().y(), steppingHelixstateinfo_.position().z());
778  CLHEP::Hep3Vector hotrkdir2(steppingHelixstateinfo_.momentum().x(), steppingHelixstateinfo_.momentum().y(),steppingHelixstateinfo_.momentum().z());
779 
780  LocalVector lclvt0 = (*aPlane).toLocal(hotrkpos2);
781 
782  double xx = lclvt0.x();
783  double yy = lclvt0.y();
784 
785  if (ik ==1) {
786  if ((std::abs(yy) < 130 && xx >-64.7 && xx <138.2)
787  ||(std::abs(yy) > 130 && std::abs(yy) <700 && xx >-76.3 && xx <140.5)) {
788  ipath = true; //Only look for tracks which as hits in layer 1
789  iphisect = iphisecttmp;
790  }
791  }
792 
793  if (iphisect != iphisecttmp) continue; //Look for ring-0 only when ring1 is accepted for that sector
794 
795  switch (ik)
796  {
797  case 0 :
798  xhor0 = xx; //lclvt0.x();
799  yhor0 = yy; //lclvt0.y();
800  break;
801  case 1 :
802  xhor1 = xx; //lclvt0.x();
803  yhor1 = yy; //lclvt0.y();
804 
805  tmpHOCalib.hoang = CLHEP::Hep3Vector(zLocal.x(),zLocal.y(),zLocal.z()).dot(hotrkdir2.unit());
806  break;
807  default : break;
808  }
809  } else {
810  break;
811  }
812  }
813  if (ipath) break;
814  }
815  if (ipath) { //If muon crossed HO laeyrs
816 
817  int ietaho = 50;
818  int iphiho = -1;
819 
820  for (int i=0; i<9; i++) {tmpHOCalib.hosig[i]=-100.0;}
821  for (int i=0; i<18; i++) {tmpHOCalib.hocorsig[i]=-100.0;}
822  for (int i=0; i<9; i++) {tmpHOCalib.hbhesig[i]=-100.0;}
823  tmpHOCalib.hocro = -100;
824  tmpHOCalib.htime = -1000;
825 
826  int isect = 0;
827 
828  findHOEtaPhi(iphisect, ietaho, iphiho);
829 
830  if (ietaho !=0 && iphiho !=0 && std::abs(iring)<=2) { //Muon passed through a tower
831  isect = 100*std::abs(ietaho+30)+std::abs(iphiho);
832  if (std::abs(ietaho) >=netabin || iphiho<0) isect *=-1; //Not extrapolated to any tower
833  if (std::abs(ietaho) >=netabin) isect -=1000000; //not matched with eta
834  if (iphiho<0) isect -=2000000; //not matched with phi
835  tmpHOCalib.isect = isect;
836 
837  tmpHOCalib.hodx = localxhor1;
838  tmpHOCalib.hody = localyhor1;
839 
840  if (iring==0) {
841  tmpHOCalib.hocorsig[8] = localxhor0;
842  tmpHOCalib.hocorsig[9] = localyhor0;
843  }
844 
845  int etamn=-4;
846  int etamx=4;
847  if (iring==1) {etamn=5; etamx = 10;}
848  if (iring==2) {etamn=11; etamx = 16;}
849  if (iring==-1){etamn=-10; etamx = -5;}
850  if (iring==-2){etamn=-16; etamx = -11;}
851 
852  int phimn = 1;
853  int phimx = 2;
854  if (iring ==0) {
855  phimx =2*int((iphiho+1)/2.);
856  phimn = phimx - 1;
857  } else {
858  phimn = 3*int((iphiho+1)/3.) - 1;
859  phimx = phimn + 2;
860  }
861 
862  if (phimn <1) phimn += nphimx;
863  if (phimx >72) phimx -= nphimx;
864 
865  int sigstr = m_startTS; // 5;
866  int sigend = m_endTS; // 8;
867 
868  // if (iphiho <=nphimx/2) { //GMA310508
869  // sigstr -=1; //GMA300608
870  // sigend -=1;
871  // }
872 
873  if (m_hbinfo) {
874  for (int i=0; i<9; i++) {tmpHOCalib.hbhesig[i]=-100.0;}
875 
876  if (m_digiInput) {
877  if ((*hbhe).size() >0) {
878  for (HBHEDigiCollection::const_iterator j=(*hbhe).begin(); j!=(*hbhe).end(); j++){
879  // const HBHEDataFrame digi = (const HBHEDataFrame)(*j);
880  // HcalDetId id =digi.id();
881  HcalDetId id =(*j).id();
882  int tmpeta= id.ieta();
883  int tmpphi= id.iphi();
884  m_coder = (*conditions_).getHcalCoder(id);
885  calibped = conditions_->getHcalCalibrations(id);
886 
887  int deta = tmpeta-ietaho;
888  if (tmpeta==-1 && ietaho== 1) deta = -1;
889  if (tmpeta== 1 && ietaho==-1) deta = 1;
890  int dphi = tmpphi-iphiho;
891  if (phimn >phimx) {
892  if (dphi==71) dphi=-1;
893  if (dphi==-71) dphi=1;
894  }
895 
896  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0; //NEED correction in full CMS detector
897 
898  if (ipass2 ==0 ) continue;
899 
900  float tmpdata[nchnmx];
901  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
902  tmpdata[i] = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
903  }
904 
905  float signal = 0;
906  for (int i=1; i<(*j).size() && i<=8; i++) {
907  signal += tmpdata[i] - calibped.pedestal((*j).sample(i).capid());;
908  }
909 
910  if (ipass2 == 1) {
911  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hbhesig[3*(deta+1)+dphi+1] = signal;
912  }
913  }
914  }
915 
916  } else {
917 
918  edm::Handle<HBHERecHitCollection> hbheht;// iEvent.getByType(hbheht);
919  iEvent.getByLabel(hbheLabel_,hbheht);
920 
921 
922  if ((*hbheht).size()>0) {
923  if(!(*hbheht).size()) throw (int)(*hbheht).size();
924 
925  for (HBHERecHitCollection::const_iterator j=(*hbheht).begin(); j!=(*hbheht).end(); j++){
926  // const HBHERecHit hbhehtrec = (const HBHERecHit)(*j);
927  // HcalDetId id =hbhehtrec.id();
928  HcalDetId id =(*j).id();
929  int tmpeta= id.ieta();
930  int tmpphi= id.iphi();
931 
932  int deta = tmpeta-ietaho;
933  if (tmpeta==-1 && ietaho== 1) deta = -1;
934  if (tmpeta== 1 && ietaho==-1) deta = 1;
935  int dphi = tmpphi-iphiho;
936  if (phimn >phimx) {
937  if (dphi==71) dphi=-1;
938  if (dphi==-71) dphi=1;
939  }
940 
941  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0; //NEED correction in full CMS detector
942  if ( ipass2 ==0 ) continue;
943 
944  float signal = (*j).energy();
945 
946  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hbhesig[3*(deta+1)+dphi+1] = signal;
947  }
948  }
949 
950  } //else m_digilevel
951 
952  } //m_hbinfo #endif
953 
954  if (m_digiInput) {
955  if ((*ho).size()>0) {
956  int isFilled[netamx*nphimx];
957  for (int j=0; j<netamx*nphimx; j++) {isFilled[j]=0;}
958 
959  double sumEt = 0;
960  double sumE = 0;
961 
962  for (HODigiCollection::const_iterator j=(*ho).begin(); j!=(*ho).end(); j++){
963  // const HODataFrame digi = (const HODataFrame)(*j);
964  // HcalDetId id =digi.id();
965 
966  HcalDetId id =(*j).id();
967  int tmpeta= id.ieta();
968  int tmpphi= id.iphi();
969  m_coder = (*conditions_).getHcalCoder(id);
970 
971  int ipass1 =0;
972  if (tmpeta >=etamn && tmpeta <=etamx) {
973  if (phimn < phimx) {
974  ipass1 = (tmpphi >=phimn && tmpphi <=phimx ) ? 1 : 0;
975  } else {
976  ipass1 = (tmpphi==71 || tmpphi ==72 || tmpphi==1) ? 1 : 0;
977  }
978  }
979 
980  int deta = tmpeta-ietaho;
981  if (tmpeta==-1 && ietaho== 1) deta = -1;
982  if (tmpeta== 1 && ietaho==-1) deta = 1;
983 
984  int dphi = tmpphi -iphiho;
985  if (phimn>phimx) {
986  if (dphi==71) dphi=-1;
987  if (dphi==-71) dphi=1;
988  }
989 
990  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0;
991 
992  int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
993 
994  float tmpdata[nchnmx]={0,0,0,0,0,0,0,0,0,0};
995  float sigvall[nsigpk]={0,0,0,0,0,0,0};
996 
997  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
998  tmpdata[i] = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
999  if (deta==0 && dphi==0) {
1000  double tmpE = tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1001  if (tmpE >0) {
1002  sumEt += i*tmpE;
1003  sumE += tmpE;
1004  }
1005  if (m_hotime) {
1006  //calculate signals in 4 time slices, 0-3,.. 6-9
1007  if (i>=7-nsigpk) {
1008  for (int ncap=0; ncap<nsigpk; ncap++) {
1009  if (i-ncap >= nstrbn && i-ncap <= nstrbn+3) {
1010  sigvall[ncap] +=tmpdata[i];
1011  }
1012  }
1013  }
1014  if (i==(*j).size()-1) {
1015  float mxled=-1;
1016  int imxled = 0;
1017  for (int ij=0; ij<nsigpk; ij++) {
1018  if (sigvall[ij] > mxled) {mxled = sigvall[ij]; imxled=ij;}
1019  }
1020  double pedx = 0.0;
1021  for (int ij=0; ij<4; ij++) {
1022  pedx +=pedestal[tmpeta1][tmpphi-1][ij];
1023  }
1024  if (mxled-pedx >2 && mxled-pedx <20 ) {
1025  hopeak[ntrgp_gm]->Fill(nphimx*tmpeta1 + tmpphi-1, imxled+nstrbn);
1026  for (int jk=0; jk<ntrgp_gm; jk++) {
1027  if (ntrgpas_gm[jk]>0) {
1028  hopeak[jk]->Fill(nphimx*tmpeta1 + tmpphi-1, imxled+nstrbn);
1029  }
1030  }
1031  if (tmpdata[5]+tmpdata[6] >1) {
1032  horatio->Fill(nphimx*tmpeta1 + tmpphi-1, (tmpdata[5]-tmpdata[6])/(tmpdata[5]+tmpdata[6]));
1033  }
1034  for (int ij=0; ij<(*j).size() && ij<nchnmx; ij++) {
1035  hotime[ntrgp_gm]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, tmpdata[ij]);
1036  Nhotime[ntrgp_gm]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, 1.);
1037  for (int jk=0; jk<ntrgp_gm; jk++) {
1038  if (ntrgpas_gm[jk]>0) {
1039  hotime[jk]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, tmpdata[ij]);
1040  Nhotime[jk]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, 1.);
1041  }
1042  }
1043  }
1044  }
1045  }
1046  }
1047  }
1048  }
1049 
1050  if (std::abs(tmpeta) <=15 && deta==0 && dphi ==0) {
1051  float signal = 0;
1052  size_t icnt = 0;
1053  for (int i =0; i<nchnmx && i< (*j).size(); i++) {
1054  if (i >=sigstr && i<=sigend) continue;
1055  signal += tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1056  if (++icnt >=4) break;
1057  }
1058  tmpHOCalib.hocro = signal;
1059  }
1060 
1061  if (m_hotime) {
1062  if (ipass1 ==0 && ipass2 ==0 && cosmicmuon->size()<=2) {
1063  if (std::abs(ietaho) <=netabin && iphiho >0) {
1064  if ((iphiho >=1 && iphiho<=nphimx/2 && tmpphi >=1 && tmpphi <=nphimx/2) ||
1065  (iphiho >nphimx/2 && iphiho<=nphimx && tmpphi >nphimx/2 && tmpphi <=nphimx)) {
1066  if (isFilled[nphimx*tmpeta1+tmpphi-1]==0) {
1067  isFilled[nphimx*tmpeta1+tmpphi-1]=1;
1068  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
1069  hopedtime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, tmpdata[i]);
1070  Nhopedtime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1.);
1071  hopedpr->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, tmpdata[i]);
1072  }
1073  } //isFilled
1074  }
1075  }
1076  }
1077  }
1078 
1079  if (ipass1 ==0 && ipass2 ==0 ) continue;
1080 
1081  float signal = 0;
1082  for (int i=sigstr; i<(*j).size() && i<=sigend; i++) {
1083  signal += tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1084  }
1085  if (signal <-100 || signal >100000) signal = -100;
1086  if (m_hotime) {
1087  if (signal >-100 && Noccu == Noccu_old) {
1088  for (int i=0; i<5; i++) {
1089  if (signal >(i+2)*m_sigma) {
1090  ho_occupency[i]->Fill(nphimx*tmpeta1+tmpphi-1);
1091  }
1092  }
1093  }
1094  }
1095 
1096  if (ipass1 ==0 && ipass2 ==0 ) continue;
1097 
1098  if (ipass1 ==1) {
1099  int tmpdph = tmpphi-phimn;
1100  if (tmpdph<0) tmpdph = 2; //only case of iphi==1, where phimn=71
1101 
1102  int ilog = 2*(tmpeta-etamn)+tmpdph;
1103  if (iring !=0) {
1104  if (iring >0) {
1105  ilog = 3*(tmpeta-etamn)+tmpdph; //Again CMS correction
1106  } else {
1107  ilog = 3*(etamx-tmpeta)+tmpdph; //Again CMS correction
1108  }
1109  }
1110  if (ilog>-1 && ilog<18) {
1111  tmpHOCalib.hocorsig[ilog] = signal;
1112  }
1113  }
1114 
1115  if (ipass2 ==1) {
1116  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hosig[3*(deta+1)+dphi+1] = signal; //Again CMS azimuthal near phi 1&72
1117  }
1118 
1119  /*
1120  // Possibility to store pedestal by shifting phi tower by 6
1121  // But, due to missing tower at +-5, we do not have always proper
1122  // statistics and also in pedestal subtracted data, we do not have
1123  // signal in that tower
1124  //
1125  if (deta==0 && dphi ==0) {
1126  int crphi = tmpphi + 6;
1127  if (crphi >72) crphi -=72;
1128 
1129  for (HODigiCollection::const_iterator jcr=(*ho).begin(); jcr!=(*ho).end(); jcr++){
1130  // const HODataFrame (*jcr) = (const HODataFrame)(*jcr);
1131  // HcalDetId idcr =(*jcr).id();
1132  HcalDetId id =(*jcr).id();
1133  int etacr= idcr.ieta();
1134  int phicr= idcr.iphi();
1135  m_coder = (*conditions_).getHcalCoder(idcr);
1136 
1137  if (tmpeta==etacr && crphi ==phicr) {
1138 
1139  float tmpdatacr[nchnmx];
1140  for (int i=0; i<(*jcr).size() && i<nchnmx; i++) {
1141  tmpdatacr[i] = m_coder->charge(*m_shape,(*jcr).sample(i).adc(),(*jcr).sample(i).capid());
1142  }
1143  }
1144  }
1145  }
1146  */
1147 
1148  }
1149  tmpHOCalib.htime = sumEt/max(sumE,1.e-6);
1150  }
1151  } else {
1153  iEvent.getByLabel(hoLabel_,hoht);
1154 
1155 
1156  if ((*hoht).size()>0) {
1157  for (HORecHitCollection::const_iterator j=(*hoht).begin(); j!=(*hoht).end(); j++){
1158  // const HORecHit hohtrec = (const HORecHit)(*j);
1159  // HcalDetId id =hohtrec.id();
1160  HcalDetId id =(*j).id();
1161  int tmpeta= id.ieta();
1162  int tmpphi= id.iphi();
1163 
1164  int ipass1 =0;
1165  if (tmpeta >=etamn && tmpeta <=etamx) {
1166  if (phimn < phimx) {
1167  ipass1 = (tmpphi >=phimn && tmpphi <=phimx ) ? 1 : 0;
1168  } else {
1169  ipass1 = (tmpphi==71 || tmpphi ==72 || tmpphi==1) ? 1 : 0;
1170  }
1171  }
1172 
1173  int deta = tmpeta-ietaho;
1174  if (tmpeta==-1 && ietaho== 1) deta = -1;
1175  if (tmpeta== 1 && ietaho==-1) deta = 1;
1176 
1177  int dphi = tmpphi -iphiho;
1178  if (phimn>phimx) {
1179  if (dphi==71) dphi=-1;
1180  if (dphi==-71) dphi=1;
1181  }
1182 
1183  float signal = (*j).energy();
1184  if (m_hotime) {
1185  int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
1186  if (signal >-100 && Noccu == Noccu_old) {
1187  for (int i=0; i<5; i++) {
1188  if (signal >(i+2)*m_sigma) {
1189  ho_occupency[i]->Fill(nphimx*tmpeta1+tmpphi-1);
1190  }
1191  }
1192  }
1193  }
1194 
1195  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0;
1196 
1197  if (ipass1 ==0 && ipass2 ==0 ) continue;
1198 
1199  if (ipass1 ==1) {
1200  int tmpdph = tmpphi-phimn;
1201  if (tmpdph<0) tmpdph = 2; //only case of iphi==1, where phimn=71
1202 
1203  int ilog = 2*(tmpeta-etamn)+tmpdph;
1204  if (iring !=0) {
1205  if (iring >0) {
1206  ilog = 3*(tmpeta-etamn)+tmpdph; //Again CMS correction
1207  } else {
1208  ilog = 3*(etamx-tmpeta)+tmpdph; //Again CMS correction
1209  }
1210  }
1211  if (ilog>-1 && ilog<18) {
1212  tmpHOCalib.hocorsig[ilog] = signal;
1213  }
1214  }
1215 
1216  if (ipass2 ==1) {
1217 
1218  if (3*(deta+1)+dphi+1<9) {
1219  tmpHOCalib.hosig[3*(deta+1)+dphi+1] = signal; //Again CMS azimuthal near phi 1&72
1220  }
1221  }
1222 
1223  if (deta==0 && dphi ==0) {
1224  tmpHOCalib.htime = (*j).time();
1225  int crphi = tmpphi + 6;
1226  if (crphi >72) crphi -=72;
1227 
1228  for (HORecHitCollection::const_iterator jcr=(*hoht).begin(); jcr!=(*hoht).end(); jcr++){
1229  const HORecHit reccr = (const HORecHit)(*jcr);
1230  HcalDetId idcr =reccr.id();
1231  int etacr= idcr.ieta();
1232  int phicr= idcr.iphi();
1233  if (tmpeta==etacr && crphi ==phicr) {
1234 
1235  tmpHOCalib.hocro = reccr.energy();
1236 
1237  }
1238  }
1239  }
1240  }
1241  }
1242  }
1243 
1244  //GMA Npass++;
1245  if (Noccu == Noccu_old) Noccu++;
1246  hostore->push_back(tmpHOCalib);
1247 
1248  }
1249  }
1250 
1251  }
1252  }
1253 
1254  iEvent.put(hostore, "HOCalibVariableCollection");
1255 
1256 }
RunNumber_t run() const
Definition: EventID.h:42
Basic3DVector< float > DirectionType
int i
Definition: DBlmapReader.cc:9
TProfile * hopeak[ntrgp_gm+1]
FreeTrajectoryState getFreeTrajectoryState(const reco::Track &tk, const MagneticField *field, int itag, bool dir)
const int netabin
HcalCalibrations calibped
const int ncidmx
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
ReturnType plane(const PositionType &pos, const RotationType &rot) const
Definition: PlaneBuilder.h:22
std::vector< T >::const_iterator const_iterator
edm::ESHandle< HcalDbService > conditions_
T y() const
Definition: PV3DBase.h:62
#define abs(x)
Definition: mlp_lapack.h:159
#define min(a, b)
Definition: mlp_lapack.h:161
double pedestal(int fCapId) const
get pedestal for capid=0..3
const HcalQIEShape * m_shape
GlobalVector momentum() const
void findHOEtaPhi(int iphsect, int &ietaho, int &iphiho)
double charge(const std::vector< uint8_t > &Ampls)
Definition: Plane.h:17
const HcalQIECoder * m_coder
const T & max(const T &a, const T &b)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
float energy() const
Definition: CaloRecHit.h:19
GlobalPoint position() const
T sqrt(T t)
Definition: SSEVec.h:46
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:119
T z() const
Definition: PV3DBase.h:63
const int nsigpk
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
int j
Definition: DBlmapReader.cc:9
Basic3DVector< float > PositionType
const int nstrbn
const int ntrgp_gm
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
float pedestal[netamx][nphimx][ncidmx]
int k[5][pyjets_maxn]
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
TH1F * Nhotime[ntrgp_gm+1]
const T & get() const
Definition: EventSetup.h:55
std::vector< HOCalibVariables > HOCalibVariableCollection
collection of HOcalibration variabale
std::string const & label() const
Definition: InputTag.h:25
edm::EventID id() const
Definition: EventBase.h:56
T dot(const Basic3DVector &v) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
const int nphimx
const int netamx
const int nchnmx
TH1F * hotime[ntrgp_gm+1]
T x() const
Definition: PV3DBase.h:61
HcalDetId id() const
get the id
Definition: HORecHit.h:21
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:72
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
float charge(const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -&gt; fC conversion.
Definition: HcalQIECoder.cc:22

Member Data Documentation

TH1F* AlCaHOCalibProducer::allhb1
private

Definition at line 229 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::allhb2
private

Definition at line 230 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::allhb3
private

Definition at line 231 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::allhotime
private

Definition at line 214 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

HcalCalibrations AlCaHOCalibProducer::calibped
private

Definition at line 276 of file AlCaHOCalibProducer.cc.

Referenced by produce().

HcalCalibrationWidths AlCaHOCalibProducer::calibwidth
private

Definition at line 277 of file AlCaHOCalibProducer.cc.

edm::ESHandle<HcalDbService> AlCaHOCalibProducer::conditions_
private

Definition at line 272 of file AlCaHOCalibProducer.cc.

Referenced by produce().

bool AlCaHOCalibProducer::debug
private

Definition at line 206 of file AlCaHOCalibProducer.cc.

std::string AlCaHOCalibProducer::digiLabel
private

Definition at line 204 of file AlCaHOCalibProducer.cc.

std::map<std::string, bool> AlCaHOCalibProducer::fired
private

Definition at line 280 of file AlCaHOCalibProducer.cc.

TProfile* AlCaHOCalibProducer::hb1pedpr
private

Definition at line 237 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::hb1pedrms
private

Definition at line 238 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and ~AlCaHOCalibProducer().

edm::InputTag AlCaHOCalibProducer::hbheLabel_
private

Definition at line 247 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

edm::InputTag AlCaHOCalibProducer::hltLabel_
private

Definition at line 249 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::ho_occupency[5]
private

Definition at line 241 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

edm::InputTag AlCaHOCalibProducer::hoLabel_
private

Definition at line 248 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

TProfile* AlCaHOCalibProducer::hopeak[ntrgp_gm+1]
private

Definition at line 222 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

TProfile* AlCaHOCalibProducer::hopedpr
private

Definition at line 218 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::hopedrms
private

Definition at line 219 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::hopedtime
private

Definition at line 216 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TProfile* AlCaHOCalibProducer::horatio
private

Definition at line 223 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

TH1F* AlCaHOCalibProducer::hotime[ntrgp_gm+1]
private

Definition at line 215 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::hst_hb1pedrms
private

Definition at line 239 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::hst_hopedrms
private

Definition at line 220 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and ~AlCaHOCalibProducer().

int AlCaHOCalibProducer::iring
private

Definition at line 195 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

int AlCaHOCalibProducer::irunold
private

Definition at line 268 of file AlCaHOCalibProducer.cc.

Referenced by beginJob(), and produce().

edm::InputTag AlCaHOCalibProducer::l1Label_
private

Definition at line 250 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::libhoped
private

Definition at line 211 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::libhoped1
private

Definition at line 212 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

float AlCaHOCalibProducer::localxhor0
private

Definition at line 197 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::localxhor1
private

Definition at line 199 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::localyhor0
private

Definition at line 198 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::localyhor1
private

Definition at line 200 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

const HcalQIECoder* AlCaHOCalibProducer::m_coder
private

Definition at line 274 of file AlCaHOCalibProducer.cc.

Referenced by produce().

bool AlCaHOCalibProducer::m_digiInput
private

Definition at line 253 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

int AlCaHOCalibProducer::m_endTS
private

Definition at line 256 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

bool AlCaHOCalibProducer::m_hbinfo
private

Definition at line 254 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

bool AlCaHOCalibProducer::m_hotime
private

Definition at line 243 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

double AlCaHOCalibProducer::m_magscale
private

Definition at line 257 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

const HcalQIEShape* AlCaHOCalibProducer::m_shape
private

Definition at line 273 of file AlCaHOCalibProducer.cc.

Referenced by produce().

double AlCaHOCalibProducer::m_sigma
private

Definition at line 258 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

int AlCaHOCalibProducer::m_startTS
private

Definition at line 255 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

edm::InputTag AlCaHOCalibProducer::muonTags_
private

Definition at line 246 of file AlCaHOCalibProducer.cc.

Referenced by produce().

TH1F* AlCaHOCalibProducer::Nallhb1
private

Definition at line 233 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::Nallhb2
private

Definition at line 234 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::Nallhb3
private

Definition at line 235 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::Nallhotime
private

Definition at line 225 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::Nhopedtime
private

Definition at line 227 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

TH1F* AlCaHOCalibProducer::Nhotime[ntrgp_gm+1]
private

Definition at line 226 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), produce(), and ~AlCaHOCalibProducer().

int AlCaHOCalibProducer::Noccu
private

Definition at line 263 of file AlCaHOCalibProducer.cc.

Referenced by produce(), and ~AlCaHOCalibProducer().

int AlCaHOCalibProducer::nRuns
private

Definition at line 265 of file AlCaHOCalibProducer.cc.

Referenced by beginJob(), produce(), and ~AlCaHOCalibProducer().

unsigned int AlCaHOCalibProducer::Ntp
private

Definition at line 279 of file AlCaHOCalibProducer.cc.

float AlCaHOCalibProducer::pedestal[netamx][nphimx][ncidmx]
private

Definition at line 202 of file AlCaHOCalibProducer.cc.

Referenced by beginJob(), and produce().

std::string AlCaHOCalibProducer::theRootFileName
private

Definition at line 207 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

edm::InputTag AlCaHOCalibProducer::towerLabel_
private

Definition at line 251 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

float AlCaHOCalibProducer::xhor0
private

Definition at line 191 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::xhor1
private

Definition at line 193 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::yhor0
private

Definition at line 192 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().

float AlCaHOCalibProducer::yhor1
private

Definition at line 194 of file AlCaHOCalibProducer.cc.

Referenced by findHOEtaPhi(), and produce().