CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
hcalCalib Class Reference

#include <hcalCalib.h>

Inheritance diagram for hcalCalib:

Public Member Functions

void Begin (TTree *tree) override
 
void GetCoefFromMtrxInvOfAve ()
 
Int_t GetEntry (Long64_t entry, Int_t getall=0) override
 
TList * GetOutputList () const override
 
 hcalCalib (TTree *=nullptr)
 
void Init (TTree *tree) override
 
void makeTextFile ()
 
Bool_t Notify () override
 
Bool_t Process (Long64_t entry) override
 
Bool_t ReadPhiSymCor ()
 
void SetApplyPhiSymCorFlag (Bool_t b)
 
void SetCalibAbsIEtaMax (Int_t i)
 
void SetCalibAbsIEtaMin (Int_t i)
 
void SetCalibMethod (const TString &s)
 
void SetCalibType (const TString &s)
 
void SetCaloGeometry (const CaloGeometry *g, const HcalTopology *topo)
 
void SetCombinePhiFlag (Bool_t b)
 
void SetConeMaxDist (Float_t d)
 
void SetHbClusterSize (Int_t i)
 
void SetHeClusterSize (Int_t i)
 
void SetHistoFileName (const TString &filename)
 
void SetInputList (TList *input) override
 
void SetMaxEOverP (Float_t e)
 
void SetMaxEtThirdJet (Float_t et)
 
void SetMaxProbeJetEmFrac (Float_t f)
 
void SetMaxTagJetAbsEta (Float_t e)
 
void SetMaxTagJetEmFrac (Float_t f)
 
void SetMaxTargetE (Float_t e)
 
void SetMaxTrkEmE (Float_t e)
 
void SetMinCellE (Float_t e)
 
void SetMinDPhiDiJets (Float_t dphi)
 
void SetMinEOverP (Float_t e)
 
void SetMinProbeJetAbsEta (Float_t e)
 
void SetMinTagJetEt (Float_t e)
 
void SetMinTargetE (Float_t e)
 
void SetObject (TObject *obj) override
 
void SetOption (const char *option) override
 
void SetOutputCorCoefFileName (const TString &filename)
 
void SetPhiSymCorFileName (const TString &filename)
 
void SetSumDepthsFlag (Bool_t b)
 
void SetSumSmallDepthsFlag (Bool_t b)
 
void SetUseConeClustering (Bool_t b)
 
void Terminate () override
 
Int_t Version () const override
 
 ~hcalCalib () override
 

Public Attributes

Bool_t APPLY_PHI_SYM_COR_FLAG
 
TBranch * b_cells
 
TBranch * b_emEnergy
 
TBranch * b_etVetoJet
 
TBranch * b_eventNumber
 
TBranch * b_iEtaHit
 
TBranch * b_iPhiHit
 
TBranch * b_probeJetEmFrac
 
TBranch * b_probeJetP4
 
TBranch * b_runNumber
 
TBranch * b_tagJetEmFrac
 
TBranch * b_tagJetP4
 
TBranch * b_targetE
 
TBranch * b_xTrkEcal
 
TBranch * b_xTrkHcal
 
TBranch * b_yTrkEcal
 
TBranch * b_yTrkHcal
 
TBranch * b_zTrkEcal
 
TBranch * b_zTrkHcal
 
Int_t CALIB_ABS_IETA_MAX
 
Int_t CALIB_ABS_IETA_MIN
 
TString CALIB_METHOD
 
TString CALIB_TYPE
 
std::vector< std::vector< Float_t > > cellEnergies
 
std::vector< std::vector< UInt_t > > cellIds
 
TClonesArray * cells
 
Bool_t COMBINE_PHI
 
Float_t emEnergy
 
Float_t etVetoJet
 
UInt_t eventNumber
 pointer to the analyzed TTree or TChain More...
 
TTree * fChain
 
Int_t HB_CLUSTER_SIZE
 
Int_t HE_CLUSTER_SIZE
 
TString HISTO_FILENAME
 
std::map< Int_t, Float_t > iEtaCoefMap
 
Int_t iEtaHit
 
UInt_t iPhiHit
 
Float_t MAX_CONE_DIST
 
Float_t MAX_EOVERP
 
Float_t MAX_ET_THIRD_JET
 
Float_t MAX_PROBEJET_EMFRAC
 
Float_t MAX_TAGJET_ABSETA
 
Float_t MAX_TAGJET_EMFRAC
 
Float_t MAX_TARGET_E
 
Float_t MAX_TRK_EME
 
Float_t MIN_CELL_E
 
Float_t MIN_DPHI_DIJETS
 
Float_t MIN_EOVERP
 
Float_t MIN_PROBEJET_ABSETA
 
Float_t MIN_TAGJET_ET
 
Float_t MIN_TARGET_E
 
TString OUTPUT_COR_COEF_FILENAME
 
TString PHI_SYM_COR_FILENAME
 
std::map< UInt_t, Float_t > phiSymCor
 
Float_t probeJetEmFrac
 
TLorentzVector * probeJetP4
 
std::vector< std::pair< Int_t, UInt_t > > refIEtaIPhi
 
UInt_t runNumber
 
std::map< UInt_t, Float_t > solution
 
Bool_t SUM_DEPTHS
 
Bool_t SUM_SMALL_DEPTHS
 
Float_t tagJetEmFrac
 
TLorentzVector * tagJetP4
 
Float_t targetE
 
std::vector< Float_t > targetEnergies
 
const CaloGeometrytheCaloGeometry
 
const HcalTopologytopo_
 
Bool_t USE_CONE_CLUSTERING
 
Float_t xTrkEcal
 
Float_t xTrkHcal
 
Float_t yTrkEcal
 
Float_t yTrkHcal
 
Float_t zTrkEcal
 
Float_t zTrkHcal
 

Detailed Description

Definition at line 38 of file hcalCalib.h.

Constructor & Destructor Documentation

◆ hcalCalib()

hcalCalib::hcalCalib ( TTree *  = nullptr)
inline

Definition at line 87 of file hcalCalib.h.

87 {}

◆ ~hcalCalib()

hcalCalib::~hcalCalib ( )
inlineoverride

Definition at line 88 of file hcalCalib.h.

88 {}

Member Function Documentation

◆ Begin()

void hcalCalib::Begin ( TTree *  tree)
override

Definition at line 67 of file hcalCalib.cc.

67  {
68  TString option = GetOption();
69 
70  nEvents = 0;
71 
73  cout << "\nERROR: Failed to read the phi symmetry corrections." << endl;
74  cout << "Check if the filename is correct. If the corrections are not needed, set the corresponding flag to "
75  "\"false\"\n"
76  << endl;
77 
78  cout << "\nThe program will be terminated\n" << endl;
79 
80  exit(1);
81  }
82 
83  // cellEnergies.reserve(1000000);
84  // cellIds.reserve(1000000);
85  // targetEnergies.reserve(1000000);
86 
87  histoFile = new TFile(HISTO_FILENAME.Data(), "RECREATE");
88 
89  h1_trkP = new TH1F("h1_trkP", "Track momenta; p_{trk} (GeV); Number of tracks", 100, 0, 200);
90  h1_allTrkP = new TH1F("h1_allTrkP", "Track momenta - all tracks; p_{trk} (GeV); Number of tracks", 100, 0, 200);
91 
92  h1_selTrkP_iEta10 = new TH1F(
93  "h1_selTrkP_iEta10", "Track momenta - tracks with |iEta|<10; p_{trk} (GeV); Number of tracks", 100, 0, 200);
94 
95  if (CALIB_TYPE == "ISO_TRACK")
96  h1_rawSumE = new TH1F("h1_rawSumE", "Cluster Energy; E_{cl} (GeV); Number of tracks", 100, 0, 200);
97  else
98  h1_rawSumE = new TH1F("h1_rawSumE", "Cluster Energy; E_{cl} (GeV); Number of tracks", 1000, 0, 2000);
99 
100  h1_rawResp = new TH1F("h1_rawResp", "Uncorrected response: |iEta|<24; E_{had}/p; Number of tracks", 300, 0, 3);
101  h1_corResp = new TH1F("h1_corResp", "Corrected response: |iEta|<24; E_{had}/p; Number of tracks", 300, 0, 3);
102 
104  new TH1F("h1_rawRespBarrel", "Uncorrected response: |iEta|<15; E_{had}/p; Number of tracks", 300, 0, 3);
106  new TH1F("h1_corRespBarrel", "Corrected response: |iEta|<15; E_{had}/p; Number of tracks", 300, 0, 3);
107 
109  new TH1F("h1_rawRespEndcap", "Uncorrected response: 17<|iEta|<24; E_{had}/p; Number of tracks", 300, 0, 3);
111  new TH1F("h1_corRespEndcap", "Corrected response: 17<|iEta|<24; E_{had}/p; Number of tracks", 300, 0, 3);
112 
113  h1_numEventsTwrIEta = new TH1F("h1_numEventsTwrIEta", "h1_numEventsTwrIEta", 80, -40, 40);
114 
115  h2_dHitRefBarrel = new TH2F("h2_dHitRefBarrel",
116  "{#Delta}i{#phi} vs {#Delta}i{#eta} of hit and most energetic "
117  "tower(|i{#eta}|<16);{#Delta}i{#eta}; {#Delta}i{#phi}",
118  10,
119  -5,
120  5,
121  10,
122  -5,
123  5);
124  h2_dHitRefEndcap = new TH2F("h2_dHitRefEndcap",
125  "{#Delta}i{#phi} vs {#Delta}i{#eta} of hit and most energetic tower (16<|i{#eta}|<25) "
126  ";{#Delta}i{#eta}; {#Delta}i{#phi}",
127  10,
128  -5,
129  5,
130  10,
131  -5,
132  5);
133 
134  TString histoName = "isoTrack_";
135 
136  for (Int_t i = 0; i < 48; ++i) {
137  Long_t iEta;
138  if (i < 24)
139  iEta = i - 24;
140  else
141  iEta = i - 23;
142  TString hn = histoName + iEta;
143  h1_corRespIEta[i] = new TH1F(hn, hn, 300, 0, 3.0);
144  }
145 
146 } // end of Begin()

References gather_cfg::cout, beamvalidation::exit(), h1_allTrkP, h1_corResp, h1_corRespBarrel, h1_corRespEndcap, h1_corRespIEta, h1_numEventsTwrIEta, h1_rawResp, h1_rawRespBarrel, h1_rawRespEndcap, h1_rawSumE, h1_selTrkP_iEta10, h1_trkP, h2_dHitRefBarrel, h2_dHitRefEndcap, histoFile, HltBtagPostValidation_cff::histoName, mps_fire::i, L1TowerCalibrationProducer_cfi::iEta, nEvents, and fileinputsource_cfi::option.

◆ GetCoefFromMtrxInvOfAve()

void hcalCalib::GetCoefFromMtrxInvOfAve ( )

Definition at line 511 of file hcalCalib.cc.

511  {
512  // these maps are keyed by iEta
513  map<Int_t, Float_t> aveTargetE;
514  map<Int_t, Int_t> nEntries; // count hits
515 
516  // iEtaRef iEtaCell, energy
517  map<Int_t, map<Int_t, Float_t> > aveHitE; // add energies in the loop, normalize after that
518 
519  for (unsigned int i = 0; i < cellEnergies.size(); ++i) {
520  Int_t iEtaRef = refIEtaIPhi[i].first;
521  aveTargetE[iEtaRef] += targetEnergies[i];
522  nEntries[iEtaRef]++;
523 
524  // for hybrid method: matrix inv of averages preceeded by L3
525  if (CALIB_METHOD == "L3_AND_MTRX_INV") {
526  for (unsigned int j = 0; j < (cellEnergies[i]).size(); ++j) {
527  aveHitE[iEtaRef][HcalDetId(cellIds[i][j]).ieta()] += (solution[cellIds[i][j]] * cellEnergies[i][j]);
528  }
529  } else if (CALIB_METHOD == "MATRIX_INV_OF_ETA_AVE") {
530  for (unsigned int j = 0; j < (cellEnergies[i]).size(); ++j) {
531  aveHitE[iEtaRef][HcalDetId(cellIds[i][j]).ieta()] += cellEnergies[i][j];
532  }
533  }
534 
535  } // end of loop of entries
536 
537  // scale by number of entries to get the averages
538  Float_t norm = 1.0;
539  for (map<Int_t, Float_t>::iterator m_it = aveTargetE.begin(); m_it != aveTargetE.end(); ++m_it) {
540  Int_t iEta = m_it->first;
541  norm = (nEntries[iEta] > 0) ? 1.0 / (nEntries[iEta]) : 1.0;
542  aveTargetE[iEta] *= norm;
543 
544  map<Int_t, Float_t>::iterator n_it = (aveHitE[iEta]).begin();
545 
546  Float_t sumRawE = 0;
547  for (; n_it != (aveHitE[iEta]).end(); ++n_it) {
548  (n_it->second) *= norm;
549  sumRawE += (n_it->second);
550  }
551 
552  } // end of scaling by number of entries
553 
554  Int_t ONE_SIDE_IETA_RANGE = CALIB_ABS_IETA_MAX - CALIB_ABS_IETA_MIN + 1;
555 
556  // conversion from iEta to index for the linear system
557  // contains elements only in the valid range for *matrix inversion*
558  vector<Int_t> iEtaList;
559 
560  for (Int_t i = -CALIB_ABS_IETA_MAX; i <= CALIB_ABS_IETA_MAX; ++i) {
561  if (abs(i) < CALIB_ABS_IETA_MIN)
562  continue;
563  iEtaList.push_back(i);
564  }
565 
566  TMatrixD A(2 * ONE_SIDE_IETA_RANGE, 2 * ONE_SIDE_IETA_RANGE);
567  TMatrixD b(2 * ONE_SIDE_IETA_RANGE, 1);
568  TMatrixD x(2 * ONE_SIDE_IETA_RANGE, 1);
569 
570  for (Int_t i = 0; i < 2 * ONE_SIDE_IETA_RANGE; ++i) {
571  for (Int_t j = 0; j < 2 * ONE_SIDE_IETA_RANGE; ++j) {
572  A(i, j) = 0.0;
573  }
574  }
575 
576  for (UInt_t i = 0; i < iEtaList.size(); ++i) {
577  b(i, 0) = aveTargetE[iEtaList[i]];
578 
579  map<Int_t, Float_t>::iterator n_it = aveHitE[iEtaList[i]].begin();
580  for (; n_it != aveHitE[iEtaList[i]].end(); ++n_it) {
581  if (fabs(n_it->first) > CALIB_ABS_IETA_MAX || fabs(n_it->first) < CALIB_ABS_IETA_MIN)
582  continue;
583  Int_t j = Int_t(find(iEtaList.begin(), iEtaList.end(), n_it->first) - iEtaList.begin());
584  A(i, j) = n_it->second;
585  }
586  }
587 
588  TMatrixD coef = b;
589  TDecompQRH qrh(A);
590  Bool_t hasSolution = qrh.MultiSolve(coef);
591 
592  if (hasSolution && (CALIB_METHOD == "L3_AND_MTRX_INV" || CALIB_METHOD == "MATRIX_INV_OF_ETA_AVE")) {
593  for (UInt_t i = 0; i < iEtaList.size(); ++i) {
594  iEtaCoefMap[iEtaList[i]] = coef(i, 0);
595  }
596  }
597 }

References MaterialEffects_cfi::A, funct::abs(), b, begin, end, spr::find(), mps_fire::i, L1TowerCalibrationProducer_cfi::iEta, HcalDetId::ieta(), dqmiolumiharvest::j, and std::size().

◆ GetEntry()

Int_t hcalCalib::GetEntry ( Long64_t  entry,
Int_t  getall = 0 
)
inlineoverride

Definition at line 95 of file hcalCalib.h.

95  {
96  return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0;
97  }

References mps_splice::entry, and fChain.

◆ GetOutputList()

TList* hcalCalib::GetOutputList ( ) const
inlineoverride

Definition at line 101 of file hcalCalib.h.

101 { return fOutput; }

◆ Init()

void hcalCalib::Init ( TTree *  tree)
override

◆ makeTextFile()

void hcalCalib::makeTextFile ( )

Definition at line 661 of file hcalCalib.cc.

661  {
662  //{ HcalEmpty=0, HcalBarrel=1, HcalEndcap=2, HcalOuter=3, HcalForward=4, HcalTriggerTower=5, HcalOther=7 };
663 
664  TString sdName[8] = {"EMPTY", "HB", "HE", "HO", "HF", "TRITWR", "UNDEF", "OTHER"};
665 
666  FILE* constFile = fopen(OUTPUT_COR_COEF_FILENAME.Data(), "w+");
667 
668  // header of the constants file
669  fprintf(constFile, "%1s%16s%16s%16s%16s%9s%11s\n", "#", "eta", "phi", "depth", "det", "value", "DetId");
670 
671  // Order loops to produce sequence of constants as for phi symmetry
672 
673  for (Int_t sd = 1; sd <= 4; sd++) {
674  for (Int_t e = 1; e <= 50; e++) {
675  Int_t eta;
676 
677  for (Int_t side = 0; side < 2; side++) {
678  eta = (side == 0) ? -e : e; //ta *= (-1);
679 
680  for (Int_t phi = 1; phi <= 72; phi++) {
681  for (Int_t d = 1; d < 5; d++) {
683  continue;
685  Float_t corrFactor = 1.0;
686 
688  // if (abs(eta)>=CALIB_ABS_IETA_MIN && abs(eta)<=22 && HcalSubdetector(sd)!=HcalOuter) {
689 
690  // need some care when depths were summed for iEta=16 =>
691  // the coeficients are saved in depth 1 of HB: affects
692  Int_t subdetInd = sd;
693 
694  if (abs(eta) == 16 && HcalSubdetector(sd) == HcalEndcap && SUM_DEPTHS) {
695  subdetInd = 1;
696  }
697 
698  if (CALIB_METHOD == "L3" || CALIB_METHOD == "L3_AND_MTRX_INV") {
699  if (SUM_DEPTHS && COMBINE_PHI)
700  corrFactor = solution[HcalDetId(HcalSubdetector(subdetInd), eta, 1, 1)];
701  else if (SUM_DEPTHS)
702  corrFactor = solution[HcalDetId(HcalSubdetector(subdetInd), eta, phi, 1)];
703  else if (COMBINE_PHI)
704  corrFactor = solution[HcalDetId(HcalSubdetector(sd), eta, 1, d)];
705  else
706  corrFactor = solution[HcalDetId(HcalSubdetector(sd), eta, phi, d)];
707 
708  // Remark: a new case was added (sumSmallDepths) where the first two depths in towers 15,16
709  // are summed and stored in depth 1.
710  // For now we create the correction coef for depth 2 (set equal to depth 1)
711  // after the call to the L3 minimizer so that this case is also handled without modifying the
712  // logic above. Probably it is better to move it here?
713 
714  } // L3
715 
716  else if (CALIB_METHOD == "MATRIX_INV_OF_ETA_AVE") {
717  corrFactor = iEtaCoefMap[eta];
718  }
719 
720  else if (CALIB_METHOD == "ISO_TRK_PHI_SYM") {
721  corrFactor = solution[HcalDetId(HcalSubdetector(sd), eta, phi, d)];
722  }
723 
724  } // if within the calibration range
725 
726  fprintf(constFile, "%17i%16i%16i%16s%9.5f%11X\n", eta, phi, d, sdName[sd].Data(), corrFactor, id.rawId());
727  }
728  }
729  }
730  }
731  }
732 
733  return;
734 }

References funct::abs(), ztail::d, MillePedeFileConverter_cfg::e, PVValHelper::eta, HcalEndcap, HcalOuter, triggerObjects_cff::id, and sd.

◆ Notify()

Bool_t hcalCalib::Notify ( )
override

◆ Process()

Bool_t hcalCalib::Process ( Long64_t  entry)
override

Definition at line 152 of file hcalCalib.cc.

152  {
153  // fChain->GetTree()->GetEntry(entry);
154  GetEntry(entry);
155 
156  set<UInt_t> uniqueIds; // for testing: check if there are duplicate cells (AA)
157 
158  Bool_t acceptEvent = kTRUE;
159 
160  ++nEvents;
161 
162  if (!(nEvents % 100000))
163  cout << "event: " << nEvents << endl;
164 
165  h1_allTrkP->Fill(targetE);
166 
167  if (targetE < MIN_TARGET_E || targetE > MAX_TARGET_E)
168  return kFALSE;
169  ;
170 
171  // make local copy as the cells may be modified due to phi/depth sum, phi corrections etc
172  vector<TCell> selectCells;
173 
174  if (cells->GetSize() == 0)
175  return kFALSE;
176 
177  if (CALIB_TYPE == "DI_JET" && probeJetEmFrac > 0.999)
178  return kTRUE;
179 
180  for (Int_t i = 0; i < cells->GetSize(); ++i) {
181  TCell* thisCell = (TCell*)cells->At(i);
182 
183  if (HcalDetId(thisCell->id()).subdet() == HcalOuter)
184  continue; // reject HO, make a switch!
185 
186  if (HcalDetId(thisCell->id()).subdet() != HcalBarrel && HcalDetId(thisCell->id()).subdet() != HcalEndcap &&
187  HcalDetId(thisCell->id()).subdet() != HcalForward) {
188  cout << "Unknown or wrong hcal subdetector: " << HcalDetId(thisCell->id()).subdet() << endl;
189  }
190 
191  // Apply phi symmetry corrections if the flag is set
193  thisCell->SetE(phiSymCor[thisCell->id()] * thisCell->e());
194 
195  if (thisCell->e() > MIN_CELL_E)
196  selectCells.push_back(*thisCell);
197  }
198 
199  if (selectCells.empty()) {
200  cout << "NO CELLS ABOVE THRESHOLD FOUND FOR TARGET!!!" << endl;
201  }
202 
203  if (SUM_DEPTHS)
204  sumDepths(selectCells);
205  else if (SUM_SMALL_DEPTHS)
206  sumSmallDepths(selectCells); // depth 1,2 in twrs 15,16
207 
208  // most energetic tower (IsoTracks) or centroid of probe jet (DiJets)
209  pair<Int_t, UInt_t> refPos;
210 
211  Int_t dEtaHitRef = 999;
212  Int_t dPhiHitRef = 999;
213 
214  if (CALIB_TYPE == "ISO_TRACK") {
215  Int_t iEtaMaxE; // filled by reference in getIEtaIPhiForHighestE
216  UInt_t iPhiMaxE; //
217 
218  getIEtaIPhiForHighestE(selectCells, iEtaMaxE, iPhiMaxE);
219 
220  dEtaHitRef = iEtaMaxE - iEtaHit;
221  dPhiHitRef = iPhiMaxE - iPhiHit;
222 
223  if (dPhiHitRef < -36)
224  dPhiHitRef += 72;
225  if (dPhiHitRef > 36)
226  dPhiHitRef -= 72;
227 
228  if (iEtaHit * iEtaMaxE < 0) {
229  if (dEtaHitRef < 0)
230  dEtaHitRef += 1;
231  if (dEtaHitRef > 0)
232  dEtaHitRef -= 1;
233  }
234 
235  if (abs(iEtaHit) < 16)
236  h2_dHitRefBarrel->Fill(dEtaHitRef, dPhiHitRef);
237  if (abs(iEtaHit) > 16 && abs(iEtaHit) < 25)
238  h2_dHitRefEndcap->Fill(dEtaHitRef, dPhiHitRef);
239 
240  // --------------------------------------------------
241  // Choice of cluster definition
242  //
243  // fixed size NxN clusters as specified in to config file
244  if (!USE_CONE_CLUSTERING) {
245  if (abs(iEtaMaxE) < 16 && HB_CLUSTER_SIZE == 3)
246  filterCells3x3(selectCells, iEtaMaxE, iPhiMaxE);
247  if (abs(iEtaMaxE) > 15 && HE_CLUSTER_SIZE == 3)
248  filterCells3x3(selectCells, iEtaMaxE, iPhiMaxE);
249 
250  if (abs(iEtaMaxE) < 16 && HB_CLUSTER_SIZE == 5)
251  filterCells5x5(selectCells, iEtaMaxE, iPhiMaxE);
252  if (abs(iEtaMaxE) > 15 && HE_CLUSTER_SIZE == 5)
253  filterCells5x5(selectCells, iEtaMaxE, iPhiMaxE);
254  } else {
255  // calculate distance at hcal surface
256  const GlobalPoint hitPositionHcal(xTrkHcal, yTrkHcal, zTrkHcal);
257  filterCellsInCone(selectCells, hitPositionHcal, MAX_CONE_DIST, theCaloGeometry);
258  }
259 
260  refPos.first = iEtaMaxE;
261  refPos.second = iPhiMaxE;
262 
263  } else if (CALIB_TYPE == "DI_JET") { // Apply selection cuts on DiJet events here
264 
266  acceptEvent = kFALSE;
267 
268  Float_t jetsDPhi = probeJetP4->DeltaPhi(*tagJetP4);
269  if (fabs(jetsDPhi * 180.0 / M_PI) < MIN_DPHI_DIJETS)
270  acceptEvent = kFALSE;
271 
273  acceptEvent = kFALSE;
274  if (fabs(probeJetP4->Eta()) < MIN_PROBEJET_ABSETA)
275  acceptEvent = kFALSE;
276  if (fabs(tagJetP4->Eta()) > MAX_TAGJET_ABSETA)
277  acceptEvent = kFALSE;
278  if (fabs(tagJetP4->Et()) < MIN_TAGJET_ET)
279  acceptEvent = kFALSE;
280 
281  if (acceptEvent) {
282  Int_t iEtaMaxE; // filled by reference in getIEtaIPhiForHighestE
283  UInt_t iPhiMaxE; //
284 
285  getIEtaIPhiForHighestE(selectCells, iEtaMaxE, iPhiMaxE);
286 
287  // The ref position for the jet is not used in the minimization at this time.
288  // It will be needed if we attempt to do matrix inversion: then the question is
289  // which value is better suited: the centroid of the jet or the hottest tower...
290 
291  // refPos.first = iEtaHit;
292  // refPos.second = iPhiHit;
293 
294  refPos.first = iEtaMaxE;
295  refPos.second = iPhiMaxE;
296 
297  if (abs(iEtaMaxE) > 40)
298  acceptEvent = kFALSE; // for testing : set as parameter (AA)
299  }
300  }
301 
302  if (COMBINE_PHI)
303  combinePhi(selectCells);
304 
305  // fill the containers for the minimization prcedures
306  vector<Float_t> energies;
307  vector<UInt_t> ids;
308 
309  for (vector<TCell>::iterator i_it = selectCells.begin(); i_it != selectCells.end(); ++i_it) {
310  // for testing : fill only unique id's
311 
312  if (uniqueIds.insert(i_it->id()).second) {
313  energies.push_back(i_it->e());
314  ids.push_back(i_it->id());
315  }
316  }
317 
318  if (CALIB_TYPE == "ISO_TRACK") {
319  if (accumulate(energies.begin(), energies.end(), 0.0) / targetE < MIN_EOVERP)
320  acceptEvent = kFALSE;
321  if (accumulate(energies.begin(), energies.end(), 0.0) / targetE > MAX_EOVERP)
322  acceptEvent = kFALSE;
323 
324  if (emEnergy > MAX_TRK_EME)
325  acceptEvent = kFALSE;
326 
327  if (abs(dEtaHitRef) > 1 || abs(dPhiHitRef) > 1)
328  acceptEvent = kFALSE;
329 
330  // Have to check if for |iEta|>20 (and neighboring region) the dPhiHitRef
331  // should be relaxed to 2. The neighboring towers have dPhi=2...
332  }
333 
334  h1_rawSumE->Fill(accumulate(energies.begin(), energies.end(), 0.0));
335 
336  // here we fill the information for the minimization procedure
337  if (acceptEvent) {
338  cellEnergies.push_back(energies);
339  cellIds.push_back(ids);
340  targetEnergies.push_back(targetE);
341  refIEtaIPhi.push_back(refPos);
342 
343  if (abs(refPos.first) <= 10)
344  h1_selTrkP_iEta10->Fill(targetE);
345  }
346 
347  // Clean up
348  energies.clear();
349  ids.clear();
350  selectCells.clear();
351 
352  return kTRUE;
353 }

References funct::abs(), postprocess-scan-build::cells, combinePhi(), gather_cfg::cout, TCell::e(), mps_splice::entry, filterCells3x3(), filterCells5x5(), filterCellsInCone(), getIEtaIPhiForHighestE(), h1_allTrkP, h1_rawSumE, h1_selTrkP_iEta10, h2_dHitRefBarrel, h2_dHitRefEndcap, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, mps_fire::i, TCell::id(), M_PI, nEvents, edm::second(), TCell::SetE(), sumDepths(), and sumSmallDepths().

◆ ReadPhiSymCor()

Bool_t hcalCalib::ReadPhiSymCor ( )

Definition at line 599 of file hcalCalib.cc.

599  {
600  std::ifstream phiSymFile(PHI_SYM_COR_FILENAME.Data());
601 
602  if (!phiSymFile) {
603  cout << "\nERROR: Can not find file with phi symmetry constants \"" << PHI_SYM_COR_FILENAME.Data() << "\"" << endl;
604  return kFALSE;
605  }
606 
607  // assumes the format used in CSA08, first line is a comment
608 
609  Int_t iEta;
610  UInt_t iPhi;
611  UInt_t depth;
612  TString sdName;
613  UInt_t detId;
614 
615  Float_t value;
617 
619 
620  while (getline(phiSymFile, line)) {
621  if (line.empty() || line[0] == '#')
622  continue;
623 
624  std::istringstream linestream(line);
625  linestream >> iEta >> iPhi >> depth >> sdName >> value >> hex >> detId;
626 
627  if (sdName == "HB")
628  sd = HcalBarrel;
629  else if (sdName == "HE")
630  sd = HcalEndcap;
631  else if (sdName == "HO")
632  sd = HcalOuter;
633  else if (sdName == "HF")
634  sd = HcalForward;
635  else {
636  cout << "\nInvalid detector name in phi symmetry constants file: " << sdName.Data() << endl;
637  cout << "Check file and rerun!\n" << endl;
638  return kFALSE;
639  }
640 
641  // check if the data is consistent
642 
643  if (HcalDetId(sd, iEta, iPhi, depth) != HcalDetId(detId)) {
644  cout << "\nInconsistent info in phi symmetry file: subdet, iEta, iPhi, depth do not match rawId!\n" << endl;
645  return kFALSE;
646  }
647  HcalDetId hId(detId);
648  if (!topo_->valid(hId)) {
649  cout << "\nInvalid DetId from: iEta=" << iEta << " iPhi=" << iPhi << " depth=" << depth
650  << " subdet=" << sdName.Data() << " detId=" << detId << endl
651  << endl;
652  return kFALSE;
653  }
654 
655  phiSymCor[HcalDetId(sd, iEta, iPhi, depth)] = value;
656  }
657 
658  return kTRUE;
659 }

References gather_cfg::cout, LEDCalibrationChannels::depth, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, L1TowerCalibrationProducer_cfi::iEta, mps_splice::line, sd, AlCaHLTBitMon_QueryRunRegistry::string, and relativeConstraints::value.

◆ SetApplyPhiSymCorFlag()

void hcalCalib::SetApplyPhiSymCorFlag ( Bool_t  b)
inline

Definition at line 170 of file hcalCalib.h.

References APPLY_PHI_SYM_COR_FLAG, and b.

Referenced by HcalCalibrator::endJob().

◆ SetCalibAbsIEtaMax()

void hcalCalib::SetCalibAbsIEtaMax ( Int_t  i)
inline

Definition at line 166 of file hcalCalib.h.

166 { CALIB_ABS_IETA_MAX = i; }

References CALIB_ABS_IETA_MAX, and mps_fire::i.

Referenced by HcalCalibrator::endJob().

◆ SetCalibAbsIEtaMin()

void hcalCalib::SetCalibAbsIEtaMin ( Int_t  i)
inline

Definition at line 167 of file hcalCalib.h.

167 { CALIB_ABS_IETA_MIN = i; }

References CALIB_ABS_IETA_MIN, and mps_fire::i.

Referenced by HcalCalibrator::endJob().

◆ SetCalibMethod()

void hcalCalib::SetCalibMethod ( const TString &  s)
inline

Definition at line 159 of file hcalCalib.h.

159 { CALIB_METHOD = s; }

References CALIB_METHOD, and alignCSCRings::s.

Referenced by HcalCalibrator::endJob().

◆ SetCalibType()

void hcalCalib::SetCalibType ( const TString &  s)
inline

Definition at line 158 of file hcalCalib.h.

158 { CALIB_TYPE = s; }

References CALIB_TYPE, and alignCSCRings::s.

Referenced by HcalCalibrator::endJob().

◆ SetCaloGeometry()

void hcalCalib::SetCaloGeometry ( const CaloGeometry g,
const HcalTopology topo 
)
inline

Definition at line 180 of file hcalCalib.h.

180  {
181  theCaloGeometry = g;
182  topo_ = topo;
183  }

References g, theCaloGeometry, and topo_.

Referenced by HcalCalibrator::endJob().

◆ SetCombinePhiFlag()

void hcalCalib::SetCombinePhiFlag ( Bool_t  b)
inline

Definition at line 153 of file hcalCalib.h.

153 { COMBINE_PHI = b; }

References b, and COMBINE_PHI.

Referenced by HcalCalibrator::endJob().

◆ SetConeMaxDist()

void hcalCalib::SetConeMaxDist ( Float_t  d)
inline

Definition at line 164 of file hcalCalib.h.

164 { MAX_CONE_DIST = d; }

References ztail::d, and MAX_CONE_DIST.

Referenced by HcalCalibrator::endJob().

◆ SetHbClusterSize()

void hcalCalib::SetHbClusterSize ( Int_t  i)
inline

Definition at line 160 of file hcalCalib.h.

160 { HB_CLUSTER_SIZE = i; }

References HB_CLUSTER_SIZE, and mps_fire::i.

Referenced by HcalCalibrator::endJob().

◆ SetHeClusterSize()

void hcalCalib::SetHeClusterSize ( Int_t  i)
inline

Definition at line 161 of file hcalCalib.h.

161 { HE_CLUSTER_SIZE = i; }

References HE_CLUSTER_SIZE, and mps_fire::i.

Referenced by HcalCalibrator::endJob().

◆ SetHistoFileName()

void hcalCalib::SetHistoFileName ( const TString &  filename)
inline

Definition at line 178 of file hcalCalib.h.

References corrVsCorr::filename, and HISTO_FILENAME.

Referenced by HcalCalibrator::endJob().

◆ SetInputList()

void hcalCalib::SetInputList ( TList *  input)
inlineoverride

Definition at line 100 of file hcalCalib.h.

100 { fInput = input; }

References input.

◆ SetMaxEOverP()

void hcalCalib::SetMaxEOverP ( Float_t  e)
inline

Definition at line 156 of file hcalCalib.h.

156 { MAX_EOVERP = e; }

References MillePedeFileConverter_cfg::e, and MAX_EOVERP.

Referenced by HcalCalibrator::endJob().

◆ SetMaxEtThirdJet()

void hcalCalib::SetMaxEtThirdJet ( Float_t  et)
inline

Definition at line 168 of file hcalCalib.h.

168 { MAX_ET_THIRD_JET = et; }

References EgHLTOffHistBins_cfi::et, and MAX_ET_THIRD_JET.

Referenced by HcalCalibrator::endJob().

◆ SetMaxProbeJetEmFrac()

void hcalCalib::SetMaxProbeJetEmFrac ( Float_t  f)
inline

Definition at line 172 of file hcalCalib.h.

172 { MAX_PROBEJET_EMFRAC = f; }

References f, and MAX_PROBEJET_EMFRAC.

Referenced by HcalCalibrator::endJob().

◆ SetMaxTagJetAbsEta()

void hcalCalib::SetMaxTagJetAbsEta ( Float_t  e)
inline

Definition at line 174 of file hcalCalib.h.

174 { MAX_TAGJET_ABSETA = e; }

References MillePedeFileConverter_cfg::e, and MAX_TAGJET_ABSETA.

Referenced by HcalCalibrator::endJob().

◆ SetMaxTagJetEmFrac()

void hcalCalib::SetMaxTagJetEmFrac ( Float_t  f)
inline

Definition at line 173 of file hcalCalib.h.

173 { MAX_TAGJET_EMFRAC = f; }

References f, and MAX_TAGJET_EMFRAC.

Referenced by HcalCalibrator::endJob().

◆ SetMaxTargetE()

void hcalCalib::SetMaxTargetE ( Float_t  e)
inline

Definition at line 150 of file hcalCalib.h.

150 { MAX_TARGET_E = e; }

References MillePedeFileConverter_cfg::e, and MAX_TARGET_E.

Referenced by HcalCalibrator::endJob().

◆ SetMaxTrkEmE()

void hcalCalib::SetMaxTrkEmE ( Float_t  e)
inline

Definition at line 157 of file hcalCalib.h.

157 { MAX_TRK_EME = e; }

References MillePedeFileConverter_cfg::e, and MAX_TRK_EME.

Referenced by HcalCalibrator::endJob().

◆ SetMinCellE()

void hcalCalib::SetMinCellE ( Float_t  e)
inline

Definition at line 154 of file hcalCalib.h.

154 { MIN_CELL_E = e; }

References MillePedeFileConverter_cfg::e, and MIN_CELL_E.

Referenced by HcalCalibrator::endJob().

◆ SetMinDPhiDiJets()

void hcalCalib::SetMinDPhiDiJets ( Float_t  dphi)
inline

Definition at line 169 of file hcalCalib.h.

169 { MIN_DPHI_DIJETS = dphi; }

References MIN_DPHI_DIJETS.

Referenced by HcalCalibrator::endJob().

◆ SetMinEOverP()

void hcalCalib::SetMinEOverP ( Float_t  e)
inline

Definition at line 155 of file hcalCalib.h.

155 { MIN_EOVERP = e; }

References MillePedeFileConverter_cfg::e, and MIN_EOVERP.

Referenced by HcalCalibrator::endJob().

◆ SetMinProbeJetAbsEta()

void hcalCalib::SetMinProbeJetAbsEta ( Float_t  e)
inline

Definition at line 176 of file hcalCalib.h.

176 { MIN_PROBEJET_ABSETA = e; }

References MillePedeFileConverter_cfg::e, and MIN_PROBEJET_ABSETA.

Referenced by HcalCalibrator::endJob().

◆ SetMinTagJetEt()

void hcalCalib::SetMinTagJetEt ( Float_t  e)
inline

Definition at line 175 of file hcalCalib.h.

175 { MIN_TAGJET_ET = e; }

References MillePedeFileConverter_cfg::e, and MIN_TAGJET_ET.

Referenced by HcalCalibrator::endJob().

◆ SetMinTargetE()

void hcalCalib::SetMinTargetE ( Float_t  e)
inline

Definition at line 149 of file hcalCalib.h.

149 { MIN_TARGET_E = e; }

References MillePedeFileConverter_cfg::e, and MIN_TARGET_E.

Referenced by HcalCalibrator::endJob().

◆ SetObject()

void hcalCalib::SetObject ( TObject *  obj)
inlineoverride

Definition at line 99 of file hcalCalib.h.

99 { fObject = obj; }

References getGTfromDQMFile::obj.

◆ SetOption()

void hcalCalib::SetOption ( const char *  option)
inlineoverride

Definition at line 98 of file hcalCalib.h.

98 { fOption = option; }

References fileinputsource_cfi::option.

◆ SetOutputCorCoefFileName()

void hcalCalib::SetOutputCorCoefFileName ( const TString &  filename)
inline

Definition at line 177 of file hcalCalib.h.

References corrVsCorr::filename, and OUTPUT_COR_COEF_FILENAME.

Referenced by HcalCalibrator::endJob().

◆ SetPhiSymCorFileName()

void hcalCalib::SetPhiSymCorFileName ( const TString &  filename)
inline

Definition at line 171 of file hcalCalib.h.

References corrVsCorr::filename, and PHI_SYM_COR_FILENAME.

Referenced by HcalCalibrator::endJob().

◆ SetSumDepthsFlag()

void hcalCalib::SetSumDepthsFlag ( Bool_t  b)
inline

Definition at line 151 of file hcalCalib.h.

151 { SUM_DEPTHS = b; }

References b, and SUM_DEPTHS.

Referenced by HcalCalibrator::endJob().

◆ SetSumSmallDepthsFlag()

void hcalCalib::SetSumSmallDepthsFlag ( Bool_t  b)
inline

Definition at line 152 of file hcalCalib.h.

152 { SUM_SMALL_DEPTHS = b; }

References b, and SUM_SMALL_DEPTHS.

Referenced by HcalCalibrator::endJob().

◆ SetUseConeClustering()

void hcalCalib::SetUseConeClustering ( Bool_t  b)
inline

Definition at line 163 of file hcalCalib.h.

163 { USE_CONE_CLUSTERING = b; }

References b, and USE_CONE_CLUSTERING.

Referenced by HcalCalibrator::endJob().

◆ Terminate()

void hcalCalib::Terminate ( )
override

Definition at line 357 of file hcalCalib.cc.

357  {
358  cout << "\n\nFinished reading the events.\n";
359  cout << "Number of input objects: " << cellIds.size() << endl;
360  cout << "Performing minimization: depending on selected method can take some time...\n\n";
361 
362  for (vector<pair<Int_t, UInt_t> >::iterator it_rp = refIEtaIPhi.begin(); it_rp != refIEtaIPhi.end(); ++it_rp) {
363  Float_t weight = (abs(it_rp->first) < 21) ? 1.0 / 72.0 : 1.0 / 36.0;
364  h1_numEventsTwrIEta->Fill(it_rp->first, weight);
365  }
366 
367  if (CALIB_METHOD == "MATRIX_INV_OF_ETA_AVE") {
369  } else if (CALIB_METHOD == "L3" || CALIB_METHOD == "L3_AND_MTRX_INV") {
370  int eventWeight = 2; // 2 is the default (try at some point 0,1,2,3)
371  MinL3AlgoUniv<UInt_t>* thisL3Algo = new MinL3AlgoUniv<UInt_t>(eventWeight);
372  int numIterations = 10; // default 10
373 
374  solution = thisL3Algo->iterate(cellEnergies, cellIds, targetEnergies, numIterations);
375 
376  // in order to handle the case where sumDepths="false", but the flag to sum depths 1,2 in HB towers 15, 16
377  // is set (sumSmallDepths) we create entries in "solution" to create equal correction here
378  // for each encountered coef in depth one.
379 
380  if (!SUM_DEPTHS && SUM_SMALL_DEPTHS) {
381  vector<UInt_t> idForSummedCells;
382 
383  for (map<UInt_t, Float_t>::iterator m_it = solution.begin(); m_it != solution.end(); ++m_it) {
384  if (HcalDetId(m_it->first).ietaAbs() != 15 && HcalDetId(m_it->first).ietaAbs() != 16)
385  continue;
386  if (HcalDetId(m_it->first).subdet() != HcalBarrel)
387  continue;
388  if (HcalDetId(m_it->first).depth() == 1)
389  idForSummedCells.push_back(HcalDetId(m_it->first));
390  }
391 
392  for (vector<UInt_t>::iterator v_it = idForSummedCells.begin(); v_it != idForSummedCells.end(); ++v_it) {
393  UInt_t addCoefId = HcalDetId(HcalBarrel, HcalDetId(*v_it).ieta(), HcalDetId(*v_it).iphi(), 2);
394  solution[addCoefId] = solution[*v_it];
395  }
396 
397  } // end of special treatment for "sumSmallDepths" mode
398 
399  if (CALIB_METHOD == "L3_AND_MTRX_INV") {
401 
402  // loop over the solution from L3 and multiply by the additional factor from
403  // the matrix inversion. Set coef outside of the valid calibration region =1.
404  for (map<UInt_t, Float_t>::iterator it_s = solution.begin(); it_s != solution.end(); ++it_s) {
405  Int_t iEtaSol = HcalDetId(it_s->first).ieta();
406  if (abs(iEtaSol) < CALIB_ABS_IETA_MIN || abs(iEtaSol) > CALIB_ABS_IETA_MAX)
407  it_s->second = 1.0;
408  else
409  it_s->second *= iEtaCoefMap[iEtaSol];
410  }
411 
412  } // if CALIB_METHOD=="L3_AND_MTRX_INV"
413 
414  } // end of L3 or L3 + mtrx inversion minimization
415 
416  // done getting the constants -> write the formatted file
417  makeTextFile();
418 
419  // fill some histograms
420  Float_t rawResp = 0;
421  Float_t corResp = 0;
422  Int_t maxIEta = 0;
423  Int_t minIEta = 999;
424 
425  for (unsigned int i = 0; i < cellEnergies.size(); ++i) {
426  Int_t iEta;
427  for (unsigned int j = 0; j < (cellEnergies[i]).size(); ++j) {
428  iEta = HcalDetId(cellIds[i][j]).ieta();
429  rawResp += (cellEnergies[i])[j];
430 
431  if (CALIB_METHOD == "L3_AND_MTRX_INV") {
432  corResp += (solution[cellIds[i][j]] * cellEnergies[i][j]);
433  } else if (CALIB_METHOD == "L3") {
434  corResp += (solution[cellIds[i][j]] * (cellEnergies[i][j]));
435  } else if (CALIB_METHOD == "MATRIX_INV_OF_ETA_AVE") {
436  corResp += (iEtaCoefMap[iEta] * cellEnergies[i][j]);
437  }
438 
439  if (maxIEta < abs(iEta))
440  maxIEta = abs(iEta);
441  if (minIEta > abs(iEta))
442  minIEta = abs(iEta);
443  }
444 
445  rawResp /= targetEnergies[i];
446  corResp /= targetEnergies[i];
447 
448  // fill histograms based on iEta on ref point of the cluster (for now: hottest tower)
449  // expect range |iEta|<=24 (to do: add flexibility for arbitrary range)
450 
451  if (CALIB_TYPE == "ISO_TRACK") {
452  Int_t ind = refIEtaIPhi[i].first;
453  (ind < 0) ? (ind += 24) : (ind += 23);
454  if (ind >= 0 && ind < 48) {
455  h1_corRespIEta[ind]->Fill(corResp);
456  }
457 
458  // fill histograms for cases where all towers are in the barrel or endcap
459  if (maxIEta < 25) {
460  h1_rawResp->Fill(rawResp);
461  h1_corResp->Fill(corResp);
462  }
463  if (maxIEta < 15) {
464  h1_rawRespBarrel->Fill(rawResp);
465  h1_corRespBarrel->Fill(corResp);
466  } else if (maxIEta < 25 && minIEta > 16) {
467  h1_rawRespEndcap->Fill(rawResp);
468  h1_corRespEndcap->Fill(corResp);
469  }
470  } // histograms for isotrack calibration
471 
472  else {
473  // put jet plots here
474  }
475 
476  rawResp = 0;
477  corResp = 0;
478  maxIEta = 0;
479  minIEta = 999;
480  }
481 
482  // save the histograms
483  h1_trkP->Write();
484  h1_allTrkP->Write();
485 
486  h1_selTrkP_iEta10->Write();
487 
488  h1_rawSumE->Write();
489  h1_rawResp->Write();
490  h1_corResp->Write();
491  h1_rawRespBarrel->Write();
492  h1_corRespBarrel->Write();
493  h1_rawRespEndcap->Write();
494  h1_corRespEndcap->Write();
495  h1_numEventsTwrIEta->Write();
496  h2_dHitRefBarrel->Write();
497  h2_dHitRefEndcap->Write();
498  for (Int_t i = 0; i < 48; ++i) {
499  h1_corRespIEta[i]->Write();
500  }
501 
502  histoFile->Write();
503  histoFile->Close();
504 
505  cout << "\n Finished calibration.\n " << endl;
506 
507 } // end of Terminate()

References funct::abs(), gather_cfg::cout, HcalDetId::depth(), h1_allTrkP, h1_corResp, h1_corRespBarrel, h1_corRespEndcap, h1_corRespIEta, h1_numEventsTwrIEta, h1_rawResp, h1_rawRespBarrel, h1_rawRespEndcap, h1_rawSumE, h1_selTrkP_iEta10, h1_trkP, h2_dHitRefBarrel, h2_dHitRefEndcap, HcalBarrel, histoFile, mps_fire::i, L1TowerCalibrationProducer_cfi::iEta, HcalDetId::ieta(), HcalDetId::ietaAbs(), HcalDetId::iphi(), MinL3AlgoUniv< IDdet >::iterate(), dqmiolumiharvest::j, std::size(), and HcalDetId::subdet().

◆ Version()

Int_t hcalCalib::Version ( ) const
inlineoverride

Definition at line 89 of file hcalCalib.h.

89 { return 2; }

Member Data Documentation

◆ APPLY_PHI_SYM_COR_FLAG

Bool_t hcalCalib::APPLY_PHI_SYM_COR_FLAG

Definition at line 141 of file hcalCalib.h.

Referenced by SetApplyPhiSymCorFlag().

◆ b_cells

TBranch* hcalCalib::b_cells

Definition at line 69 of file hcalCalib.h.

◆ b_emEnergy

TBranch* hcalCalib::b_emEnergy

Definition at line 70 of file hcalCalib.h.

◆ b_etVetoJet

TBranch* hcalCalib::b_etVetoJet

Definition at line 72 of file hcalCalib.h.

◆ b_eventNumber

TBranch* hcalCalib::b_eventNumber

Definition at line 65 of file hcalCalib.h.

◆ b_iEtaHit

TBranch* hcalCalib::b_iEtaHit

Definition at line 67 of file hcalCalib.h.

◆ b_iPhiHit

TBranch* hcalCalib::b_iPhiHit

Definition at line 68 of file hcalCalib.h.

◆ b_probeJetEmFrac

TBranch* hcalCalib::b_probeJetEmFrac

Definition at line 82 of file hcalCalib.h.

◆ b_probeJetP4

TBranch* hcalCalib::b_probeJetP4

Definition at line 85 of file hcalCalib.h.

◆ b_runNumber

TBranch* hcalCalib::b_runNumber

Definition at line 66 of file hcalCalib.h.

◆ b_tagJetEmFrac

TBranch* hcalCalib::b_tagJetEmFrac

Definition at line 81 of file hcalCalib.h.

◆ b_tagJetP4

TBranch* hcalCalib::b_tagJetP4

Definition at line 84 of file hcalCalib.h.

◆ b_targetE

TBranch* hcalCalib::b_targetE

Definition at line 71 of file hcalCalib.h.

◆ b_xTrkEcal

TBranch* hcalCalib::b_xTrkEcal

Definition at line 77 of file hcalCalib.h.

◆ b_xTrkHcal

TBranch* hcalCalib::b_xTrkHcal

Definition at line 74 of file hcalCalib.h.

◆ b_yTrkEcal

TBranch* hcalCalib::b_yTrkEcal

Definition at line 78 of file hcalCalib.h.

◆ b_yTrkHcal

TBranch* hcalCalib::b_yTrkHcal

Definition at line 75 of file hcalCalib.h.

◆ b_zTrkEcal

TBranch* hcalCalib::b_zTrkEcal

Definition at line 79 of file hcalCalib.h.

◆ b_zTrkHcal

TBranch* hcalCalib::b_zTrkHcal

Definition at line 76 of file hcalCalib.h.

◆ CALIB_ABS_IETA_MAX

Int_t hcalCalib::CALIB_ABS_IETA_MAX

Definition at line 127 of file hcalCalib.h.

Referenced by SetCalibAbsIEtaMax().

◆ CALIB_ABS_IETA_MIN

Int_t hcalCalib::CALIB_ABS_IETA_MIN

Definition at line 128 of file hcalCalib.h.

Referenced by SetCalibAbsIEtaMin().

◆ CALIB_METHOD

TString hcalCalib::CALIB_METHOD

Definition at line 138 of file hcalCalib.h.

Referenced by SetCalibMethod().

◆ CALIB_TYPE

TString hcalCalib::CALIB_TYPE

Definition at line 137 of file hcalCalib.h.

Referenced by SetCalibType().

◆ cellEnergies

std::vector<std::vector<Float_t> > hcalCalib::cellEnergies

Definition at line 192 of file hcalCalib.h.

◆ cellIds

std::vector<std::vector<UInt_t> > hcalCalib::cellIds

Definition at line 193 of file hcalCalib.h.

◆ cells

TClonesArray* hcalCalib::cells

Definition at line 46 of file hcalCalib.h.

◆ COMBINE_PHI

Bool_t hcalCalib::COMBINE_PHI

Definition at line 119 of file hcalCalib.h.

Referenced by SetCombinePhiFlag().

◆ emEnergy

Float_t hcalCalib::emEnergy

Definition at line 47 of file hcalCalib.h.

◆ etVetoJet

Float_t hcalCalib::etVetoJet

Definition at line 49 of file hcalCalib.h.

◆ eventNumber

UInt_t hcalCalib::eventNumber

pointer to the analyzed TTree or TChain

Definition at line 42 of file hcalCalib.h.

◆ fChain

TTree* hcalCalib::fChain

Definition at line 40 of file hcalCalib.h.

Referenced by GetEntry().

◆ HB_CLUSTER_SIZE

Int_t hcalCalib::HB_CLUSTER_SIZE

Definition at line 121 of file hcalCalib.h.

Referenced by SetHbClusterSize().

◆ HE_CLUSTER_SIZE

Int_t hcalCalib::HE_CLUSTER_SIZE

Definition at line 122 of file hcalCalib.h.

Referenced by SetHeClusterSize().

◆ HISTO_FILENAME

TString hcalCalib::HISTO_FILENAME

Definition at line 144 of file hcalCalib.h.

Referenced by SetHistoFileName().

◆ iEtaCoefMap

std::map<Int_t, Float_t> hcalCalib::iEtaCoefMap

Definition at line 201 of file hcalCalib.h.

◆ iEtaHit

Int_t hcalCalib::iEtaHit

Definition at line 44 of file hcalCalib.h.

◆ iPhiHit

UInt_t hcalCalib::iPhiHit

Definition at line 45 of file hcalCalib.h.

◆ MAX_CONE_DIST

Float_t hcalCalib::MAX_CONE_DIST

Definition at line 125 of file hcalCalib.h.

Referenced by SetConeMaxDist().

◆ MAX_EOVERP

Float_t hcalCalib::MAX_EOVERP

Definition at line 111 of file hcalCalib.h.

Referenced by SetMaxEOverP().

◆ MAX_ET_THIRD_JET

Float_t hcalCalib::MAX_ET_THIRD_JET

Definition at line 114 of file hcalCalib.h.

Referenced by SetMaxEtThirdJet().

◆ MAX_PROBEJET_EMFRAC

Float_t hcalCalib::MAX_PROBEJET_EMFRAC

Definition at line 130 of file hcalCalib.h.

Referenced by SetMaxProbeJetEmFrac().

◆ MAX_TAGJET_ABSETA

Float_t hcalCalib::MAX_TAGJET_ABSETA

Definition at line 132 of file hcalCalib.h.

Referenced by SetMaxTagJetAbsEta().

◆ MAX_TAGJET_EMFRAC

Float_t hcalCalib::MAX_TAGJET_EMFRAC

Definition at line 131 of file hcalCalib.h.

Referenced by SetMaxTagJetEmFrac().

◆ MAX_TARGET_E

Float_t hcalCalib::MAX_TARGET_E

Definition at line 107 of file hcalCalib.h.

Referenced by SetMaxTargetE().

◆ MAX_TRK_EME

Float_t hcalCalib::MAX_TRK_EME

Definition at line 112 of file hcalCalib.h.

Referenced by SetMaxTrkEmE().

◆ MIN_CELL_E

Float_t hcalCalib::MIN_CELL_E

Definition at line 109 of file hcalCalib.h.

Referenced by SetMinCellE().

◆ MIN_DPHI_DIJETS

Float_t hcalCalib::MIN_DPHI_DIJETS

Definition at line 115 of file hcalCalib.h.

Referenced by SetMinDPhiDiJets().

◆ MIN_EOVERP

Float_t hcalCalib::MIN_EOVERP

Definition at line 110 of file hcalCalib.h.

Referenced by SetMinEOverP().

◆ MIN_PROBEJET_ABSETA

Float_t hcalCalib::MIN_PROBEJET_ABSETA

Definition at line 135 of file hcalCalib.h.

Referenced by SetMinProbeJetAbsEta().

◆ MIN_TAGJET_ET

Float_t hcalCalib::MIN_TAGJET_ET

Definition at line 133 of file hcalCalib.h.

Referenced by SetMinTagJetEt().

◆ MIN_TARGET_E

Float_t hcalCalib::MIN_TARGET_E

Definition at line 106 of file hcalCalib.h.

Referenced by SetMinTargetE().

◆ OUTPUT_COR_COEF_FILENAME

TString hcalCalib::OUTPUT_COR_COEF_FILENAME

Definition at line 143 of file hcalCalib.h.

Referenced by SetOutputCorCoefFileName().

◆ PHI_SYM_COR_FILENAME

TString hcalCalib::PHI_SYM_COR_FILENAME

Definition at line 140 of file hcalCalib.h.

Referenced by SetPhiSymCorFileName().

◆ phiSymCor

std::map<UInt_t, Float_t> hcalCalib::phiSymCor

Definition at line 197 of file hcalCalib.h.

◆ probeJetEmFrac

Float_t hcalCalib::probeJetEmFrac

Definition at line 62 of file hcalCalib.h.

◆ probeJetP4

TLorentzVector* hcalCalib::probeJetP4

Definition at line 59 of file hcalCalib.h.

◆ refIEtaIPhi

std::vector<std::pair<Int_t, UInt_t> > hcalCalib::refIEtaIPhi

Definition at line 194 of file hcalCalib.h.

◆ runNumber

UInt_t hcalCalib::runNumber

Definition at line 43 of file hcalCalib.h.

Referenced by TH2PolyOfflineMaps.TH2PolyOfflineMaps::PrintTrackerMaps().

◆ solution

std::map<UInt_t, Float_t> hcalCalib::solution

Definition at line 199 of file hcalCalib.h.

◆ SUM_DEPTHS

Bool_t hcalCalib::SUM_DEPTHS

Definition at line 117 of file hcalCalib.h.

Referenced by SetSumDepthsFlag().

◆ SUM_SMALL_DEPTHS

Bool_t hcalCalib::SUM_SMALL_DEPTHS

Definition at line 118 of file hcalCalib.h.

Referenced by SetSumSmallDepthsFlag().

◆ tagJetEmFrac

Float_t hcalCalib::tagJetEmFrac

Definition at line 61 of file hcalCalib.h.

◆ tagJetP4

TLorentzVector* hcalCalib::tagJetP4

Definition at line 58 of file hcalCalib.h.

◆ targetE

Float_t hcalCalib::targetE

Definition at line 48 of file hcalCalib.h.

◆ targetEnergies

std::vector<Float_t> hcalCalib::targetEnergies

Definition at line 195 of file hcalCalib.h.

◆ theCaloGeometry

const CaloGeometry* hcalCalib::theCaloGeometry

Definition at line 146 of file hcalCalib.h.

Referenced by SetCaloGeometry().

◆ topo_

const HcalTopology* hcalCalib::topo_

Definition at line 147 of file hcalCalib.h.

Referenced by SetCaloGeometry().

◆ USE_CONE_CLUSTERING

Bool_t hcalCalib::USE_CONE_CLUSTERING

Definition at line 124 of file hcalCalib.h.

Referenced by SetUseConeClustering().

◆ xTrkEcal

Float_t hcalCalib::xTrkEcal

Definition at line 54 of file hcalCalib.h.

◆ xTrkHcal

Float_t hcalCalib::xTrkHcal

Definition at line 51 of file hcalCalib.h.

◆ yTrkEcal

Float_t hcalCalib::yTrkEcal

Definition at line 55 of file hcalCalib.h.

◆ yTrkHcal

Float_t hcalCalib::yTrkHcal

Definition at line 52 of file hcalCalib.h.

◆ zTrkEcal

Float_t hcalCalib::zTrkEcal

Definition at line 56 of file hcalCalib.h.

◆ zTrkHcal

Float_t hcalCalib::zTrkHcal

Definition at line 53 of file hcalCalib.h.

filterCells3x3
void filterCells3x3(std::vector< TCell > &selectCells, Int_t iEta, UInt_t iPhi)
Definition: hcalCalibUtils.cc:173
hcalCalib::emEnergy
Float_t emEnergy
Definition: hcalCalib.h:47
mps_fire.i
i
Definition: mps_fire.py:355
h2_dHitRefBarrel
TH2F * h2_dHitRefBarrel
Definition: hcalCalib.cc:60
input
static const std::string input
Definition: EdmProvDump.cc:48
hcalCalib::APPLY_PHI_SYM_COR_FLAG
Bool_t APPLY_PHI_SYM_COR_FLAG
Definition: hcalCalib.h:141
h1_rawSumE
TH1F * h1_rawSumE
Definition: hcalCalib.cc:51
hcalCalib::makeTextFile
void makeTextFile()
Definition: hcalCalib.cc:661
TCell::e
Float_t e()
Definition: TCell.h:31
hcalCalib::tagJetP4
TLorentzVector * tagJetP4
Definition: hcalCalib.h:58
hcalCalib::ReadPhiSymCor
Bool_t ReadPhiSymCor()
Definition: hcalCalib.cc:599
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
hcalCalib::zTrkHcal
Float_t zTrkHcal
Definition: hcalCalib.h:53
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
hcalCalib::topo_
const HcalTopology * topo_
Definition: hcalCalib.h:147
hcalCalib::refIEtaIPhi
std::vector< std::pair< Int_t, UInt_t > > refIEtaIPhi
Definition: hcalCalib.h:194
hcalCalib::MAX_TAGJET_ABSETA
Float_t MAX_TAGJET_ABSETA
Definition: hcalCalib.h:132
hcalCalib::MAX_PROBEJET_EMFRAC
Float_t MAX_PROBEJET_EMFRAC
Definition: hcalCalib.h:130
hcalCalib::MIN_CELL_E
Float_t MIN_CELL_E
Definition: hcalCalib.h:109
mps_splice.entry
entry
Definition: mps_splice.py:68
hcalCalib::probeJetP4
TLorentzVector * probeJetP4
Definition: hcalCalib.h:59
gather_cfg.cout
cout
Definition: gather_cfg.py:144
hcalCalib::MIN_PROBEJET_ABSETA
Float_t MIN_PROBEJET_ABSETA
Definition: hcalCalib.h:135
combinePhi
void combinePhi(std::vector< TCell > &selectCells)
Definition: hcalCalibUtils.cc:90
histoFile
TFile * histoFile
Definition: hcalCalib.cc:43
MinL3AlgoUniv::iterate
IDmap iterate(const std::vector< std::vector< float > > &eventMatrix, const std::vector< std::vector< IDdet > > &idMatrix, const std::vector< float > &energyVector, const int &nIter, const bool &normalizeFlag=false)
Definition: MinL3AlgoUniv.h:76
h1_corRespIEta
TH1F * h1_corRespIEta[48]
Definition: hcalCalib.cc:65
hcalCalib::yTrkHcal
Float_t yTrkHcal
Definition: hcalCalib.h:52
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
filterCellsInCone
void filterCellsInCone(std::vector< TCell > &selectCells, const GlobalPoint hitPositionHcal, Float_t maxConeDist, const CaloGeometry *theCaloGeometry)
Definition: hcalCalibUtils.cc:326
h1_rawRespBarrel
TH1F * h1_rawRespBarrel
Definition: hcalCalib.cc:54
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
DDAxes::x
h1_allTrkP
TH1F * h1_allTrkP
Definition: hcalCalib.cc:47
HcalBarrel
Definition: HcalAssistant.h:33
hcalCalib::cellEnergies
std::vector< std::vector< Float_t > > cellEnergies
Definition: hcalCalib.h:192
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
fileinputsource_cfi.option
option
Definition: fileinputsource_cfi.py:87
h2_dHitRefEndcap
TH2F * h2_dHitRefEndcap
Definition: hcalCalib.cc:61
TCell::id
UInt_t id()
Definition: TCell.h:32
end
#define end
Definition: vmac.h:39
hcalCalib::etVetoJet
Float_t etVetoJet
Definition: hcalCalib.h:49
sumDepths
void sumDepths(std::vector< TCell > &selectCells)
Definition: hcalCalibUtils.cc:16
hcalCalib::iPhiHit
UInt_t iPhiHit
Definition: hcalCalib.h:45
alignCSCRings.s
s
Definition: alignCSCRings.py:92
hcalCalib::cells
TClonesArray * cells
Definition: hcalCalib.h:46
h1_rawResp
TH1F * h1_rawResp
Definition: hcalCalib.cc:52
filterCells5x5
void filterCells5x5(std::vector< TCell > &selectCells, Int_t iEta, UInt_t iPhi)
Definition: hcalCalibUtils.cc:237
h1_numEventsTwrIEta
TH1F * h1_numEventsTwrIEta
Definition: hcalCalib.cc:58
PVValHelper::eta
Definition: PVValidationHelpers.h:69
hcalCalib::MAX_TARGET_E
Float_t MAX_TARGET_E
Definition: hcalCalib.h:107
hcalCalib::MIN_TARGET_E
Float_t MIN_TARGET_E
Definition: hcalCalib.h:106
hcalCalib::GetCoefFromMtrxInvOfAve
void GetCoefFromMtrxInvOfAve()
Definition: hcalCalib.cc:511
TCell::SetE
void SetE(Float_t e)
Definition: TCell.h:34
h1_trkP
TH1F * h1_trkP
Definition: hcalCalib.cc:46
h1_corResp
TH1F * h1_corResp
Definition: hcalCalib.cc:53
corrVsCorr.filename
filename
Definition: corrVsCorr.py:123
HcalOuter
Definition: HcalAssistant.h:35
getIEtaIPhiForHighestE
void getIEtaIPhiForHighestE(std::vector< TCell > &selectCells, Int_t &iEta, UInt_t &iPhi)
Definition: hcalCalibUtils.cc:144
Point3DBase< float, GlobalTag >
hcalCalib::CALIB_TYPE
TString CALIB_TYPE
Definition: hcalCalib.h:137
b
double b
Definition: hdecay.h:118
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
hcalCalib::iEtaCoefMap
std::map< Int_t, Float_t > iEtaCoefMap
Definition: hcalCalib.h:201
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
hcalCalib::phiSymCor
std::map< UInt_t, Float_t > phiSymCor
Definition: hcalCalib.h:197
hcalCalib::COMBINE_PHI
Bool_t COMBINE_PHI
Definition: hcalCalib.h:119
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
hcalCalib::MAX_ET_THIRD_JET
Float_t MAX_ET_THIRD_JET
Definition: hcalCalib.h:114
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
hcalCalib::CALIB_METHOD
TString CALIB_METHOD
Definition: hcalCalib.h:138
h1_selTrkP_iEta10
TH1F * h1_selTrkP_iEta10
Definition: hcalCalib.cc:49
hcalCalib::PHI_SYM_COR_FILENAME
TString PHI_SYM_COR_FILENAME
Definition: hcalCalib.h:140
hcalCalib::targetE
Float_t targetE
Definition: hcalCalib.h:48
hcalCalib::SUM_DEPTHS
Bool_t SUM_DEPTHS
Definition: hcalCalib.h:117
hcalCalib::MIN_DPHI_DIJETS
Float_t MIN_DPHI_DIJETS
Definition: hcalCalib.h:115
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
hcalCalib::CALIB_ABS_IETA_MAX
Int_t CALIB_ABS_IETA_MAX
Definition: hcalCalib.h:127
HcalDetId
Definition: HcalDetId.h:12
value
Definition: value.py:1
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
EgHLTOffHistBins_cfi.et
et
Definition: EgHLTOffHistBins_cfi.py:8
hcalCalib::probeJetEmFrac
Float_t probeJetEmFrac
Definition: hcalCalib.h:62
hcalCalib::CALIB_ABS_IETA_MIN
Int_t CALIB_ABS_IETA_MIN
Definition: hcalCalib.h:128
hcalCalib::SUM_SMALL_DEPTHS
Bool_t SUM_SMALL_DEPTHS
Definition: hcalCalib.h:118
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
hcalCalib::HE_CLUSTER_SIZE
Int_t HE_CLUSTER_SIZE
Definition: hcalCalib.h:122
hcalCalib::MAX_TRK_EME
Float_t MAX_TRK_EME
Definition: hcalCalib.h:112
HcalForward
Definition: HcalAssistant.h:36
HcalTopology::valid
bool valid(const DetId &id) const override
Definition: HcalTopology.cc:225
hcalCalib::GetEntry
Int_t GetEntry(Long64_t entry, Int_t getall=0) override
Definition: hcalCalib.h:95
DDAxes::phi
MaterialEffects_cfi.A
A
Definition: MaterialEffects_cfi.py:11
TCell
Definition: TCell.h:15
hcalCalib::theCaloGeometry
const CaloGeometry * theCaloGeometry
Definition: hcalCalib.h:146
hcalCalib::USE_CONE_CLUSTERING
Bool_t USE_CONE_CLUSTERING
Definition: hcalCalib.h:124
HcalEndcap
Definition: HcalAssistant.h:34
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
relativeConstraints.value
value
Definition: relativeConstraints.py:53
hcalCalib::MAX_CONE_DIST
Float_t MAX_CONE_DIST
Definition: hcalCalib.h:125
hcalCalib::solution
std::map< UInt_t, Float_t > solution
Definition: hcalCalib.h:199
hcalCalib::fChain
TTree * fChain
Definition: hcalCalib.h:40
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
hcalCalib::MIN_EOVERP
Float_t MIN_EOVERP
Definition: hcalCalib.h:110
h1_rawRespEndcap
TH1F * h1_rawRespEndcap
Definition: hcalCalib.cc:56
sd
double sd
Definition: CascadeWrapper.h:113
h1_corRespBarrel
TH1F * h1_corRespBarrel
Definition: hcalCalib.cc:55
L1TowerCalibrationProducer_cfi.iEta
iEta
Definition: L1TowerCalibrationProducer_cfi.py:60
ztail.d
d
Definition: ztail.py:151
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
hcalCalib::xTrkHcal
Float_t xTrkHcal
Definition: hcalCalib.h:51
h1_corRespEndcap
TH1F * h1_corRespEndcap
Definition: hcalCalib.cc:57
beamvalidation.exit
def exit(msg="")
Definition: beamvalidation.py:53
HcalDetId::ietaAbs
constexpr int ietaAbs() const
get the absolute value of the cell ieta
Definition: HcalDetId.h:148
hcalCalib::iEtaHit
Int_t iEtaHit
Definition: hcalCalib.h:44
hcalCalib::targetEnergies
std::vector< Float_t > targetEnergies
Definition: hcalCalib.h:195
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
nEvents
UInt_t nEvents
Definition: hcalCalib.cc:41
mps_splice.line
line
Definition: mps_splice.py:76
hcalCalib::HB_CLUSTER_SIZE
Int_t HB_CLUSTER_SIZE
Definition: hcalCalib.h:121
MinL3AlgoUniv
Definition: MinL3AlgoUniv.h:20
A
hcalCalib::MAX_EOVERP
Float_t MAX_EOVERP
Definition: hcalCalib.h:111
hcalCalib::MIN_TAGJET_ET
Float_t MIN_TAGJET_ET
Definition: hcalCalib.h:133
begin
#define begin
Definition: vmac.h:32
sumSmallDepths
void sumSmallDepths(std::vector< TCell > &selectCells)
Definition: hcalCalibUtils.cc:268
weight
Definition: weight.py:1
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
hcalCalib::cellIds
std::vector< std::vector< UInt_t > > cellIds
Definition: hcalCalib.h:193
hcalCalib::HISTO_FILENAME
TString HISTO_FILENAME
Definition: hcalCalib.h:144
hcalCalib::OUTPUT_COR_COEF_FILENAME
TString OUTPUT_COR_COEF_FILENAME
Definition: hcalCalib.h:143
hcalCalib::MAX_TAGJET_EMFRAC
Float_t MAX_TAGJET_EMFRAC
Definition: hcalCalib.h:131
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37