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)
 
- 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 1262 of file AlCaHOCalibProducer.cc.

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

1263 {
1264  //GMA Nevents = 0;
1265  //GMA Npass = 0;
1266  //GMA Noccu = 0;
1267 
1268  irunold = -1;
1269  nRuns = 0;
1270  // edm::ESHandle<MagneticField> bField;
1271  // iSetup.get<IdealMagneticFieldRecord>().get(bField);
1272  // stepProp = new SteppingHelixPropagator(&*bField,anyDirection);
1273  // stepProp->setMaterialMode(false);
1274  // stepProp->applyRadX0Correction(true);
1275 
1276  for (int i=0; i<netamx; i++) {
1277  for (int j=0; j<nphimx; j++) {
1278  for (int k=0; k<ncidmx; k++) {
1279  pedestal[i][j][k]=0.0;
1280  }
1281  }
1282  }
1283 
1284 
1285 }
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 1289 of file AlCaHOCalibProducer.cc.

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

Definition at line 1294 of file AlCaHOCalibProducer.cc.

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

Referenced by produce().

1294  {
1295 
1296  //18/12/06 : use only position, not angle phi
1297 
1298 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};
1299 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};
1300 
1301  double philow[6]={-76.27, -35.11, 0.35, 35.81, 71.77, 108.93}; //Ring+/-1 & 2
1302  double phihgh[6]={-35.81, -0.35, 35.11, 71.07, 108.23, 140.49};
1303 
1304  double philow00[6]={-60.27, -32.91, 0.35, 33.61, 67.37, 102.23}; //Ring0 L0
1305  double phihgh00[6]={-33.61, -0.35, 32.91, 66.67, 101.53, 129.49};
1306 
1307  double philow01[6]={-64.67, -34.91, 0.35, 35.61, 71.37, 108.33}; //Ring0 L1
1308  double phihgh01[6]={-35.61, -0.35, 34.91, 70.67, 107.63, 138.19};
1309 
1310 
1311  iring = -10;
1312 
1313  double tmpdy = std::abs(yhor1);
1314  for (int i=0; i<netabin; i++) {
1315  if (tmpdy >etalow[i] && tmpdy <etahgh[i]) {
1316  ietaho = i+1;
1317  float tmp1 = fabs(tmpdy-etalow[i]);
1318  float tmp2 = fabs(tmpdy-etahgh[i]);
1319 
1320  localyhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1321 
1322  if (i<4) iring =0;
1323  if (i>=4 && i<10) iring=1;
1324  if (i>=10 && i<netabin) iring=2;
1325  break;
1326  }
1327  }
1328 
1329  int tmpphi = 0;
1330  int tmpphi0 = 0;
1331 
1332  if (ietaho >4) { //Ring 1 and 2
1333  for (int i=0; i<6; i++) {
1334  if (xhor1 >philow[i] && xhor1 <phihgh[i]) {
1335  tmpphi=i+1;
1336  float tmp1 = fabs(xhor1-philow[i]);
1337  float tmp2 = fabs(xhor1-phihgh[i]);
1338  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1339  break;
1340  }
1341  }
1342  } else { //Ring 0
1343  for (int i=0; i<6; i++) {
1344  if (xhor1 >philow01[i] && xhor1 <phihgh01[i]) {
1345  tmpphi=i+1;
1346  float tmp1 = fabs(xhor1-philow01[i]);
1347  float tmp2 = fabs(xhor1-phihgh01[i]);
1348  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1349  break;
1350  }
1351  }
1352 
1353  for (int i=0; i<6; i++) {
1354  if (xhor0 >philow00[i] && xhor0 <phihgh00[i]) {
1355  tmpphi0=i+1;
1356  float tmp1 = fabs(xhor0-philow00[i]);
1357  float tmp2 = fabs(xhor0-phihgh00[i]);
1358  localxhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1359  if (tmpphi !=tmpphi0) localxhor0 +=10000.;
1360  break;
1361  }
1362  }
1363 
1364  double tmpdy = std::abs(yhor0);
1365  for (int i=0; i<4; i++) {
1366  if (tmpdy >etalow[i] && tmpdy <etahgh[i]) {
1367  float tmp1 = fabs(tmpdy-etalow[i]);
1368  float tmp2 = fabs(tmpdy-etahgh[i]);
1369  localyhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1370  if (i+1 != ietaho) localyhor0 +=10000.;
1371  break;
1372  }
1373  }
1374  }
1375 
1376  if (tmpphi!=0) {
1377  iphiho = 6*iphisect -2 + tmpphi;
1378  if (iphiho <=0) iphiho +=nphimx;
1379  if (iphiho >nphimx) iphiho -=nphimx;
1380  }
1381 
1382  // isect2 = 15*iring+iphisect+1;
1383 
1384  if (yhor1 <0) {
1385  if (std::abs(ietaho) >netabin) { //Initialised with 50
1386  ietaho +=1;
1387  } else {
1388  ietaho *=-1;
1389  }
1390  // isect2 *=-1;
1391  iring *=-1;
1392  }
1393 }
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 1395 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(), reco::Track::outerZ(), and Gflash::par.

Referenced by produce().

1396 {
1397 
1398  if (iiner ==0) {
1399  GlobalPoint gpos( tk.outerX(), tk.outerY(), tk.outerZ());
1400  GlobalVector gmom( tk.outerPx(), tk.outerPy(), tk.outerPz());
1401  if (dir) gmom *=-1.;
1402  GlobalTrajectoryParameters par( gpos, gmom, tk.charge(), field);
1403  CurvilinearTrajectoryError err( tk.extra()->outerStateCovariance());
1404  return FreeTrajectoryState( par, err);
1405  } else {
1406  GlobalPoint gpos( tk.innerPosition().X(), tk.innerPosition().Y(), tk.innerPosition().Z());
1407  GlobalVector gmom( tk.innerMomentum().X(), tk.innerMomentum().Y(), tk.innerMomentum().Z());
1408  if (dir) gmom *=-1.;
1409  GlobalTrajectoryParameters par( gpos, -gmom, tk.charge(), field);
1410  CurvilinearTrajectoryError err( tk.extra()->innerStateCovariance());
1411  return FreeTrajectoryState( par, err);
1412  }
1413 
1414 }
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
const double par[8 *NPar][4]
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(), 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(), 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(), 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 python.JSONExport.JsonExport::export(), and python.HTMLExport.HTMLExport::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  GlobalVector magfld = theMagField->inInverseGeV(glbpt);
730 
731 
732  SteppingHelixPropagator myHelix(&*theMagField,anyDirection);
733  myHelix.setMaterialMode(false);
734  myHelix.applyRadX0Correction(true);
735 
736  double phiho = trkpos.phi();
737  if (phiho<0) phiho +=2*pival;
738 
739  int iphisect_dt=int(6*(phiho+pival/18.)/pival); //for u 18/12/06
740  if (iphisect_dt>=12) iphisect_dt=0;
741 
742  int iphisect = -1;
743 
744  int ipath = 0;
745  for (int kl = 0; kl<=2; kl++) {
746 
747  int iphisecttmp = (kl<2) ? iphisect_dt + kl : iphisect_dt - 1;
748  if (iphisecttmp <0) iphisecttmp = 11;
749  if (iphisecttmp >=12) iphisecttmp = 0;
750 
751  double phipos = iphisecttmp*pival/6.;
752  double phirot = phipos;
753 
754  GlobalVector xLocal(-sin(phirot), cos(phirot), 0.);
755 
756  GlobalVector yLocal(0., 0., 1.);
757  GlobalVector zLocal = xLocal.cross(yLocal).unit();
758  // GlobalVector zLocal(cos(phirot), sin(phirot), 0.0);
759 
760 
761  FreeTrajectoryState freetrajectorystate_ = getFreeTrajectoryState(*ncosm,&(*theMagField), iiner, samedir);
762 
763  Surface::RotationType rot(xLocal, yLocal, zLocal);
764 
765  for (int ik=1; ik>=0; ik--) { //propagate track in two HO layers
766 
767  double radial = 407.0;
768  if (ik==0) radial = 382.0;
769 
770  Surface::PositionType pos(radial*cos(phipos), radial*sin(phipos), 0.);
772 
773  Surface* aPlane2 = new Plane(pos,rot);
774 
775  SteppingHelixStateInfo steppingHelixstateinfo_ = myHelix.propagate(freetrajectorystate_, (*aPlane2));
776 
777  if (steppingHelixstateinfo_.isValid()) {
778 
779  GlobalVector hotrkpos2(steppingHelixstateinfo_.position().x(), steppingHelixstateinfo_.position().y(), steppingHelixstateinfo_.position().z());
780  CLHEP::Hep3Vector hotrkdir2(steppingHelixstateinfo_.momentum().x(), steppingHelixstateinfo_.momentum().y(),steppingHelixstateinfo_.momentum().z());
781 
782  LocalVector lclvt0 = (*aPlane).toLocal(hotrkpos2);
783 
784  double xx = lclvt0.x();
785  double yy = lclvt0.y();
786 
787  if (ik ==1) {
788  if ((std::abs(yy) < 130 && xx >-64.7 && xx <138.2)
789  ||(std::abs(yy) > 130 && std::abs(yy) <700 && xx >-76.3 && xx <140.5)) {
790  ipath = 1; //Only look for tracks which as hits in layer 1
791  iphisect = iphisecttmp;
792  }
793  }
794 
795  if (iphisect != iphisecttmp) continue; //Look for ring-0 only when ring1 is accepted for that sector
796 
797  switch (ik)
798  {
799  case 0 :
800  xhor0 = xx; //lclvt0.x();
801  yhor0 = yy; //lclvt0.y();
802  break;
803  case 1 :
804  xhor1 = xx; //lclvt0.x();
805  yhor1 = yy; //lclvt0.y();
806 
807  tmpHOCalib.hoang = CLHEP::Hep3Vector(zLocal.x(),zLocal.y(),zLocal.z()).dot(hotrkdir2.unit());
808  break;
809  default : break;
810  }
811  } else {
812  break;
813  }
814  }
815  if (ipath) break;
816  }
817  if (ipath) { //If muon crossed HO laeyrs
818 
819  int ietaho = 50;
820  int iphiho = -1;
821 
822  for (int i=0; i<9; i++) {tmpHOCalib.hosig[i]=-100.0;}
823  for (int i=0; i<18; i++) {tmpHOCalib.hocorsig[i]=-100.0;}
824  for (int i=0; i<9; i++) {tmpHOCalib.hbhesig[i]=-100.0;}
825  tmpHOCalib.hocro = -100;
826  tmpHOCalib.htime = -1000;
827 
828  int isect = 0;
829 
830  findHOEtaPhi(iphisect, ietaho, iphiho);
831 
832  if (ietaho !=0 && iphiho !=0 && std::abs(iring)<=2) { //Muon passed through a tower
833  isect = 100*std::abs(ietaho+30)+std::abs(iphiho);
834  if (std::abs(ietaho) >=netabin || iphiho<0) isect *=-1; //Not extrapolated to any tower
835  if (std::abs(ietaho) >=netabin) isect -=1000000; //not matched with eta
836  if (iphiho<0) isect -=2000000; //not matched with phi
837  tmpHOCalib.isect = isect;
838 
839  tmpHOCalib.hodx = localxhor1;
840  tmpHOCalib.hody = localyhor1;
841 
842  if (iring==0) {
843  tmpHOCalib.hocorsig[8] = localxhor0;
844  tmpHOCalib.hocorsig[9] = localyhor0;
845  }
846 
847  int etamn=-4;
848  int etamx=4;
849  if (iring==1) {etamn=5; etamx = 10;}
850  if (iring==2) {etamn=11; etamx = 16;}
851  if (iring==-1){etamn=-10; etamx = -5;}
852  if (iring==-2){etamn=-16; etamx = -11;}
853 
854  int phimn = 1;
855  int phimx = 2;
856  if (iring ==0) {
857  phimx =2*int((iphiho+1)/2.);
858  phimn = phimx - 1;
859  } else {
860  phimn = 3*int((iphiho+1)/3.) - 1;
861  phimx = phimn + 2;
862  }
863 
864  if (phimn <1) phimn += nphimx;
865  if (phimx >72) phimx -= nphimx;
866 
867  int sigstr = m_startTS; // 5;
868  int sigend = m_endTS; // 8;
869 
870  // if (iphiho <=nphimx/2) { //GMA310508
871  // sigstr -=1; //GMA300608
872  // sigend -=1;
873  // }
874 
875  if (m_hbinfo) {
876  for (int i=0; i<9; i++) {tmpHOCalib.hbhesig[i]=-100.0;}
877 
878  if (m_digiInput) {
879  if ((*hbhe).size() >0) {
880  for (HBHEDigiCollection::const_iterator j=(*hbhe).begin(); j!=(*hbhe).end(); j++){
881  // const HBHEDataFrame digi = (const HBHEDataFrame)(*j);
882  // HcalDetId id =digi.id();
883  HcalDetId id =(*j).id();
884  int tmpeta= id.ieta();
885  int tmpphi= id.iphi();
886  m_coder = (*conditions_).getHcalCoder(id);
887  calibped = conditions_->getHcalCalibrations(id);
888 
889  int deta = tmpeta-ietaho;
890  if (tmpeta==-1 && ietaho== 1) deta = -1;
891  if (tmpeta== 1 && ietaho==-1) deta = 1;
892  int dphi = tmpphi-iphiho;
893  if (phimn >phimx) {
894  if (dphi==71) dphi=-1;
895  if (dphi==-71) dphi=1;
896  }
897 
898  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0; //NEED correction in full CMS detector
899 
900  if (ipass2 ==0 ) continue;
901 
902  float tmpdata[nchnmx];
903  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
904  tmpdata[i] = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
905  }
906 
907  float signal = 0;
908  for (int i=1; i<(*j).size() && i<=8; i++) {
909  signal += tmpdata[i] - calibped.pedestal((*j).sample(i).capid());;
910  }
911 
912  if (ipass2 == 1) {
913  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hbhesig[3*(deta+1)+dphi+1] = signal;
914  }
915  }
916  }
917 
918  } else {
919 
920  edm::Handle<HBHERecHitCollection> hbheht;// iEvent.getByType(hbheht);
921  iEvent.getByLabel(hbheLabel_,hbheht);
922 
923 
924  if ((*hbheht).size()>0) {
925  if(!(*hbheht).size()) throw (int)(*hbheht).size();
926 
927  for (HBHERecHitCollection::const_iterator j=(*hbheht).begin(); j!=(*hbheht).end(); j++){
928  // const HBHERecHit hbhehtrec = (const HBHERecHit)(*j);
929  // HcalDetId id =hbhehtrec.id();
930  HcalDetId id =(*j).id();
931  int tmpeta= id.ieta();
932  int tmpphi= id.iphi();
933 
934  int deta = tmpeta-ietaho;
935  if (tmpeta==-1 && ietaho== 1) deta = -1;
936  if (tmpeta== 1 && ietaho==-1) deta = 1;
937  int dphi = tmpphi-iphiho;
938  if (phimn >phimx) {
939  if (dphi==71) dphi=-1;
940  if (dphi==-71) dphi=1;
941  }
942 
943  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0; //NEED correction in full CMS detector
944  if ( ipass2 ==0 ) continue;
945 
946  float signal = (*j).energy();
947 
948  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hbhesig[3*(deta+1)+dphi+1] = signal;
949  }
950  }
951 
952  } //else m_digilevel
953 
954  } //m_hbinfo #endif
955 
956  if (m_digiInput) {
957  if ((*ho).size()>0) {
958  int isFilled[netamx*nphimx];
959  for (int j=0; j<netamx*nphimx; j++) {isFilled[j]=0;}
960 
961  double sumEt = 0;
962  double sumE = 0;
963 
964  for (HODigiCollection::const_iterator j=(*ho).begin(); j!=(*ho).end(); j++){
965  // const HODataFrame digi = (const HODataFrame)(*j);
966  // HcalDetId id =digi.id();
967 
968  HcalDetId id =(*j).id();
969  int tmpeta= id.ieta();
970  int tmpphi= id.iphi();
971  m_coder = (*conditions_).getHcalCoder(id);
972 
973  int ipass1 =0;
974  if (tmpeta >=etamn && tmpeta <=etamx) {
975  if (phimn < phimx) {
976  ipass1 = (tmpphi >=phimn && tmpphi <=phimx ) ? 1 : 0;
977  } else {
978  ipass1 = (tmpphi==71 || tmpphi ==72 || tmpphi==1) ? 1 : 0;
979  }
980  }
981 
982  int deta = tmpeta-ietaho;
983  if (tmpeta==-1 && ietaho== 1) deta = -1;
984  if (tmpeta== 1 && ietaho==-1) deta = 1;
985 
986  int dphi = tmpphi -iphiho;
987  if (phimn>phimx) {
988  if (dphi==71) dphi=-1;
989  if (dphi==-71) dphi=1;
990  }
991 
992  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0;
993 
994  int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
995 
996  float tmpdata[nchnmx]={0,0,0,0,0,0,0,0,0,0};
997  float sigvall[nsigpk]={0,0,0,0,0,0,0};
998 
999  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
1000  tmpdata[i] = m_coder->charge(*m_shape,(*j).sample(i).adc(),(*j).sample(i).capid());
1001  if (deta==0 && dphi==0) {
1002  double tmpE = tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1003  if (tmpE >0) {
1004  sumEt += i*tmpE;
1005  sumE += tmpE;
1006  }
1007  if (m_hotime) {
1008  //calculate signals in 4 time slices, 0-3,.. 6-9
1009  if (i>=7-nsigpk) {
1010  for (int ncap=0; ncap<nsigpk; ncap++) {
1011  if (i-ncap >= nstrbn && i-ncap <= nstrbn+3) {
1012  sigvall[ncap] +=tmpdata[i];
1013  }
1014  }
1015  }
1016  if (i==(*j).size()-1) {
1017  float mxled=-1;
1018  int imxled = 0;
1019  for (int ij=0; ij<nsigpk; ij++) {
1020  if (sigvall[ij] > mxled) {mxled = sigvall[ij]; imxled=ij;}
1021  }
1022  double pedx = 0.0;
1023  for (int ij=0; ij<4; ij++) {
1024  pedx +=pedestal[tmpeta1][tmpphi-1][ij];
1025  }
1026  if (mxled-pedx >2 && mxled-pedx <20 ) {
1027  hopeak[ntrgp_gm]->Fill(nphimx*tmpeta1 + tmpphi-1, imxled+nstrbn);
1028  for (int jk=0; jk<ntrgp_gm; jk++) {
1029  if (ntrgpas_gm[jk]>0) {
1030  hopeak[jk]->Fill(nphimx*tmpeta1 + tmpphi-1, imxled+nstrbn);
1031  }
1032  }
1033  if (tmpdata[5]+tmpdata[6] >1) {
1034  horatio->Fill(nphimx*tmpeta1 + tmpphi-1, (tmpdata[5]-tmpdata[6])/(tmpdata[5]+tmpdata[6]));
1035  }
1036  for (int ij=0; ij<(*j).size() && ij<nchnmx; ij++) {
1037  hotime[ntrgp_gm]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, tmpdata[ij]);
1038  Nhotime[ntrgp_gm]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, 1.);
1039  for (int jk=0; jk<ntrgp_gm; jk++) {
1040  if (ntrgpas_gm[jk]>0) {
1041  hotime[jk]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, tmpdata[ij]);
1042  Nhotime[jk]->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + ij, 1.);
1043  }
1044  }
1045  }
1046  }
1047  }
1048  }
1049  }
1050  }
1051 
1052  if (std::abs(tmpeta) <=15 && deta==0 && dphi ==0) {
1053  float signal = 0;
1054  int icnt = 0;
1055  for (int i =0; i<nchnmx && i< (*j).size(); i++) {
1056  if (i >=sigstr && i<=sigend) continue;
1057  signal += tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1058  if (++icnt >=4) break;
1059  }
1060  tmpHOCalib.hocro = signal;
1061  }
1062 
1063  if (m_hotime) {
1064  if (ipass1 ==0 && ipass2 ==0 && cosmicmuon->size()<=2) {
1065  if (std::abs(ietaho) <=netabin && iphiho >0) {
1066  if ((iphiho >=1 && iphiho<=nphimx/2 && tmpphi >=1 && tmpphi <=nphimx/2) ||
1067  (iphiho >nphimx/2 && iphiho<=nphimx && tmpphi >nphimx/2 && tmpphi <=nphimx)) {
1068  if (isFilled[nphimx*tmpeta1+tmpphi-1]==0) {
1069  isFilled[nphimx*tmpeta1+tmpphi-1]=1;
1070  for (int i=0; i<(*j).size() && i<nchnmx; i++) {
1071  hopedtime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, tmpdata[i]);
1072  Nhopedtime->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, 1.);
1073  hopedpr->Fill(nphimx*nchnmx*tmpeta1 + nchnmx*(tmpphi-1) + i, tmpdata[i]);
1074  }
1075  } //isFilled
1076  }
1077  }
1078  }
1079  }
1080 
1081  if (ipass1 ==0 && ipass2 ==0 ) continue;
1082 
1083  float signal = 0;
1084  for (int i=sigstr; i<(*j).size() && i<=sigend; i++) {
1085  signal += tmpdata[i] - pedestal[tmpeta1][tmpphi-1][(*j).sample(i).capid()];
1086  }
1087  if (signal <-100 || signal >100000) signal = -100;
1088  if (m_hotime) {
1089  if (signal >-100 && Noccu == Noccu_old) {
1090  for (int i=0; i<5; i++) {
1091  if (signal >(i+2)*m_sigma) {
1092  ho_occupency[i]->Fill(nphimx*tmpeta1+tmpphi-1);
1093  }
1094  }
1095  }
1096  }
1097 
1098  if (ipass1 ==0 && ipass2 ==0 ) continue;
1099 
1100  if (ipass1 ==1) {
1101  int tmpdph = tmpphi-phimn;
1102  if (tmpdph<0) tmpdph = 2; //only case of iphi==1, where phimn=71
1103 
1104  int ilog = 2*(tmpeta-etamn)+tmpdph;
1105  if (iring !=0) {
1106  if (iring >0) {
1107  ilog = 3*(tmpeta-etamn)+tmpdph; //Again CMS correction
1108  } else {
1109  ilog = 3*(etamx-tmpeta)+tmpdph; //Again CMS correction
1110  }
1111  }
1112  if (ilog>-1 && ilog<18) {
1113  tmpHOCalib.hocorsig[ilog] = signal;
1114  }
1115  }
1116 
1117  if (ipass2 ==1) {
1118  if (3*(deta+1)+dphi+1<9) tmpHOCalib.hosig[3*(deta+1)+dphi+1] = signal; //Again CMS azimuthal near phi 1&72
1119  }
1120 
1121  /*
1122  // Possibility to store pedestal by shifting phi tower by 6
1123  // But, due to missing tower at +-5, we do not have always proper
1124  // statistics and also in pedestal subtracted data, we do not have
1125  // signal in that tower
1126  //
1127  if (deta==0 && dphi ==0) {
1128  int crphi = tmpphi + 6;
1129  if (crphi >72) crphi -=72;
1130 
1131  for (HODigiCollection::const_iterator jcr=(*ho).begin(); jcr!=(*ho).end(); jcr++){
1132  // const HODataFrame (*jcr) = (const HODataFrame)(*jcr);
1133  // HcalDetId idcr =(*jcr).id();
1134  HcalDetId id =(*jcr).id();
1135  int etacr= idcr.ieta();
1136  int phicr= idcr.iphi();
1137  m_coder = (*conditions_).getHcalCoder(idcr);
1138 
1139  if (tmpeta==etacr && crphi ==phicr) {
1140 
1141  float tmpdatacr[nchnmx];
1142  for (int i=0; i<(*jcr).size() && i<nchnmx; i++) {
1143  tmpdatacr[i] = m_coder->charge(*m_shape,(*jcr).sample(i).adc(),(*jcr).sample(i).capid());
1144  }
1145  }
1146  }
1147  }
1148  */
1149 
1150  }
1151  tmpHOCalib.htime = sumEt/max(sumE,1.e-6);
1152  }
1153  } else {
1155  iEvent.getByLabel(hoLabel_,hoht);
1156 
1157 
1158  if ((*hoht).size()>0) {
1159  for (HORecHitCollection::const_iterator j=(*hoht).begin(); j!=(*hoht).end(); j++){
1160  // const HORecHit hohtrec = (const HORecHit)(*j);
1161  // HcalDetId id =hohtrec.id();
1162  HcalDetId id =(*j).id();
1163  int tmpeta= id.ieta();
1164  int tmpphi= id.iphi();
1165 
1166  int ipass1 =0;
1167  if (tmpeta >=etamn && tmpeta <=etamx) {
1168  if (phimn < phimx) {
1169  ipass1 = (tmpphi >=phimn && tmpphi <=phimx ) ? 1 : 0;
1170  } else {
1171  ipass1 = (tmpphi==71 || tmpphi ==72 || tmpphi==1) ? 1 : 0;
1172  }
1173  }
1174 
1175  int deta = tmpeta-ietaho;
1176  if (tmpeta==-1 && ietaho== 1) deta = -1;
1177  if (tmpeta== 1 && ietaho==-1) deta = 1;
1178 
1179  int dphi = tmpphi -iphiho;
1180  if (phimn>phimx) {
1181  if (dphi==71) dphi=-1;
1182  if (dphi==-71) dphi=1;
1183  }
1184 
1185  float signal = (*j).energy();
1186  if (m_hotime) {
1187  int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
1188  if (signal >-100 && Noccu == Noccu_old) {
1189  for (int i=0; i<5; i++) {
1190  if (signal >(i+2)*m_sigma) {
1191  ho_occupency[i]->Fill(nphimx*tmpeta1+tmpphi-1);
1192  }
1193  }
1194  }
1195  }
1196 
1197  int ipass2 = (std::abs(deta) <=1 && std::abs(dphi)<=1) ? 1 : 0;
1198 
1199  if (ipass1 ==0 && ipass2 ==0 ) continue;
1200 
1201  if (ipass1 ==1) {
1202  int tmpdph = tmpphi-phimn;
1203  if (tmpdph<0) tmpdph = 2; //only case of iphi==1, where phimn=71
1204 
1205  int ilog = 2*(tmpeta-etamn)+tmpdph;
1206  if (iring !=0) {
1207  if (iring >0) {
1208  ilog = 3*(tmpeta-etamn)+tmpdph; //Again CMS correction
1209  } else {
1210  ilog = 3*(etamx-tmpeta)+tmpdph; //Again CMS correction
1211  }
1212  }
1213  if (ilog>-1 && ilog<18) {
1214  tmpHOCalib.hocorsig[ilog] = signal;
1215  }
1216  }
1217 
1218  if (ipass2 ==1) {
1219 
1220  if (3*(deta+1)+dphi+1<9) {
1221  tmpHOCalib.hosig[3*(deta+1)+dphi+1] = signal; //Again CMS azimuthal near phi 1&72
1222  }
1223  }
1224 
1225  if (deta==0 && dphi ==0) {
1226  tmpHOCalib.htime = (*j).time();
1227  int crphi = tmpphi + 6;
1228  if (crphi >72) crphi -=72;
1229 
1230  for (HORecHitCollection::const_iterator jcr=(*hoht).begin(); jcr!=(*hoht).end(); jcr++){
1231  const HORecHit reccr = (const HORecHit)(*jcr);
1232  HcalDetId idcr =reccr.id();
1233  int etacr= idcr.ieta();
1234  int phicr= idcr.iphi();
1235  if (tmpeta==etacr && crphi ==phicr) {
1236 
1237  tmpHOCalib.hocro = reccr.energy();
1238 
1239  }
1240  }
1241  }
1242  }
1243  }
1244  }
1245 
1246  //GMA Npass++;
1247  if (Noccu == Noccu_old) Noccu++;
1248  hostore->push_back(tmpHOCalib);
1249 
1250  }
1251  }
1252 
1253  }
1254  }
1255 
1256  iEvent.put(hostore, "HOCalibVariableCollection");
1257 
1258 }
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:57
#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:84
float energy() const
Definition: CaloRecHit.h:19
GlobalPoint position() const
T sqrt(T t)
Definition: SSEVec.h:28
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:119
T z() const
Definition: PV3DBase.h:58
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:355
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:56
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().