CMS 3D CMS Logo

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

#include <MyPackages/HcalCalibrator/src/HcalCalibrator.cc>

Inheritance diagram for HcalCalibrator:
edm::EDAnalyzer

Public Member Functions

 HcalCalibrator (const edm::ParameterSet &)
 
 ~HcalCalibrator ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void endJob ()
 

Private Attributes

bool allowMissingInputs_
 
bool mApplyPhiSymCorFlag
 
int mCalibAbsIEtaMax
 
int mCalibAbsIEtaMin
 
std::string mCalibMethod
 
std::string mCalibType
 
bool mCombinePhi
 
int mHbClusterSize
 
int mHeClusterSize
 
std::string mHistoFileName
 
std::string mInputFileList
 
double mMaxConeDist
 
double mMaxEOverP
 
double mMaxEtThirdJet
 
double mMaxProbeJetEmFrac
 
double mMaxTagJetAbsEta
 
double mMaxTagJetEmFrac
 
double mMaxTargetE
 
double mMaxTrkEmE
 
double mMinCellE
 
double mMinDPhiDiJets
 
double mMinEOverP
 
double mMinProbeJetAbsEta
 
double mMinTagJetEt
 
double mMinTargetE
 
std::string mOutputCorCoefFileName
 
std::string mOutputFile
 
std::string mPhiSymCorFileName
 
bool mSumDepths
 
bool mSumSmallDepths
 
const CaloGeometrymTheCaloGeometry
 
bool mUseConeClustering
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

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

Implementation:

This is an interface to run the the hcal calibration code for isolated tracsk and dijets. It takes tha parameters for the calibration settings from a python file and passes them to the actual calibration code in "endJob()".

Definition at line 25 of file HcalCalibrator.h.

Constructor & Destructor Documentation

HcalCalibrator::HcalCalibrator ( const edm::ParameterSet conf)
explicit

Definition at line 73 of file HcalCalibrator.cc.

73  :
74 
75  mInputFileList(conf.getUntrackedParameter<string>("inputFileList")),
76  // mOutputFile(conf.getUntrackedParameter<string>("outputFile")),
77 
78  mCalibType(conf.getUntrackedParameter<string>("calibType")),
79  mCalibMethod(conf.getUntrackedParameter<string>("calibMethod")),
80  mMinTargetE(conf.getUntrackedParameter<double>("minTargetE")),
81  mMaxTargetE(conf.getUntrackedParameter<double>("maxTargetE")),
82  mMinCellE(conf.getUntrackedParameter<double>("minCellE")),
83  mMinEOverP(conf.getUntrackedParameter<double>("minEOverP")),
84  mMaxEOverP(conf.getUntrackedParameter<double>("maxEOverP")),
85  mMaxTrkEmE(conf.getUntrackedParameter<double>("maxTrkEmE")),
86  mMaxEtThirdJet(conf.getUntrackedParameter<double>("maxEtThirdJet")),
87  mMinDPhiDiJets(conf.getUntrackedParameter<double>("minDPhiDiJets")),
88  mSumDepths(conf.getUntrackedParameter<bool>("sumDepths")),
89  mSumSmallDepths(conf.getUntrackedParameter<bool>("sumSmallDepths")),
90  mCombinePhi (conf.getUntrackedParameter<bool>("combinePhi")),
91  mHbClusterSize(conf.getUntrackedParameter<int>("hbClusterSize")),
92  mHeClusterSize(conf.getUntrackedParameter<int>("heClusterSize")),
93 
94  mUseConeClustering(conf.getUntrackedParameter<bool>("useConeClustering")),
95  mMaxConeDist(conf.getUntrackedParameter<double>("maxConeDist")),
96 
97  mCalibAbsIEtaMax(conf.getUntrackedParameter<int>("calibAbsIEtaMax")),
98  mCalibAbsIEtaMin(conf.getUntrackedParameter<int>("calibAbsIEtaMin")),
99  mMaxProbeJetEmFrac(conf.getUntrackedParameter<double>("maxProbeJetEmFrac")),
100  mMaxTagJetEmFrac(conf.getUntrackedParameter<double>("maxTagJetEmFrac")),
101  mMaxTagJetAbsEta(conf.getUntrackedParameter<double>("maxTagJetAbsEta")),
102  mMinTagJetEt(conf.getUntrackedParameter<double>("minTagJetEt")),
103  mMinProbeJetAbsEta(conf.getUntrackedParameter<double>("minProbeJetAbsEta")),
104  mPhiSymCorFileName(conf.getUntrackedParameter<string>("phiSymCorFileName")),
105  mApplyPhiSymCorFlag(conf.getUntrackedParameter<bool>("applyPhiSymCorFlag")),
106  mOutputCorCoefFileName(conf.getUntrackedParameter<string>("outputCorCoefFileName")),
107  mHistoFileName(conf.getUntrackedParameter<string>("histoFileName"))
108 
109 {
110 }
T getUntrackedParameter(std::string const &, T const &) const
double mMinProbeJetAbsEta
std::string mHistoFileName
double mMaxTagJetAbsEta
double mMaxProbeJetEmFrac
double mMaxTagJetEmFrac
double mMinDPhiDiJets
std::string mInputFileList
std::string mCalibMethod
std::string mPhiSymCorFileName
bool mApplyPhiSymCorFlag
std::string mCalibType
std::string mOutputCorCoefFileName
double mMaxEtThirdJet
HcalCalibrator::~HcalCalibrator ( )

Definition at line 115 of file HcalCalibrator.cc.

115  {
116 }

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 121 of file HcalCalibrator.cc.

References edm::EventSetup::get(), mTheCaloGeometry, and edm::ESHandle< class >::product().

121  {
123  iSetup.get<CaloGeometryRecord>().get(pG);
124  mTheCaloGeometry = pG.product();
125 }
const CaloGeometry * mTheCaloGeometry
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
void HcalCalibrator::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 130 of file HcalCalibrator.cc.

130  {
131 
132  // ESHandle<CaloGeometry> theGeometry;
133  // ESHandle<CaloSubdetectorGeometry> theEndcapGeometry_handle, theBarrelGeometry_handle;
134  // evtSetup.get<CaloGeometryRecord>().get( theGeometry );
135 
136 
137  // edm::ESHandle<CaloGeometry> pG;
138  // evtSetup.get<CaloGeometryRecord>().get(pG);
139  // mTheCaloGeometry = pG.product();
140 
141 }
void HcalCalibrator::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 146 of file HcalCalibrator.cc.

References gather_cfg::cout, convertXMLtoSQLite_cfg::fileName, MainPageGenerator::files, diJetCalib::inputFileList, merge::inputFiles, mApplyPhiSymCorFlag, mCalibAbsIEtaMax, mCalibAbsIEtaMin, mCalibMethod, mCalibType, mCombinePhi, mHbClusterSize, mHeClusterSize, mHistoFileName, mInputFileList, mMaxConeDist, mMaxEOverP, mMaxEtThirdJet, mMaxProbeJetEmFrac, mMaxTagJetAbsEta, mMaxTagJetEmFrac, mMaxTargetE, mMaxTrkEmE, mMinCellE, mMinDPhiDiJets, mMinEOverP, mMinProbeJetAbsEta, mMinTagJetEt, mMinTargetE, mOutputCorCoefFileName, mPhiSymCorFileName, mSumDepths, mSumSmallDepths, mTheCaloGeometry, mUseConeClustering, hcalCalib::SetApplyPhiSymCorFlag(), hcalCalib::SetCalibAbsIEtaMax(), hcalCalib::SetCalibAbsIEtaMin(), hcalCalib::SetCalibMethod(), hcalCalib::SetCalibType(), hcalCalib::SetCaloGeometry(), hcalCalib::SetCombinePhiFlag(), hcalCalib::SetConeMaxDist(), hcalCalib::SetHbClusterSize(), hcalCalib::SetHeClusterSize(), hcalCalib::SetHistoFileName(), hcalCalib::SetMaxEOverP(), hcalCalib::SetMaxEtThirdJet(), hcalCalib::SetMaxProbeJetEmFrac(), hcalCalib::SetMaxTagJetAbsEta(), hcalCalib::SetMaxTagJetEmFrac(), hcalCalib::SetMaxTargetE(), hcalCalib::SetMaxTrkEmE(), hcalCalib::SetMinCellE(), hcalCalib::SetMinDPhiDiJets(), hcalCalib::SetMinEOverP(), hcalCalib::SetMinProbeJetAbsEta(), hcalCalib::SetMinTagJetEt(), hcalCalib::SetMinTargetE(), hcalCalib::SetOutputCorCoefFileName(), hcalCalib::SetPhiSymCorFileName(), hcalCalib::SetSumDepthsFlag(), hcalCalib::SetSumSmallDepthsFlag(), and hcalCalib::SetUseConeClustering().

146  {
147 
148 
149  if (mCalibType!="DI_JET" && mCalibType!="ISO_TRACK") {
150  cout << "\n\nUnknown calibration type " << mCalibType << endl;
151  cout << "Please select ISO_TRACK or DI_JET in the python file." << endl;
152  return;
153  }
154 
155  if (mCalibMethod != "L3" && mCalibMethod != "MATRIX_INV_OF_ETA_AVE" && mCalibMethod != "L3_AND_MTRX_INV") {
156  cout << "\n\nUnknown calibration method " << mCalibMethod << endl;
157  cout << "Supported methods for IsoTrack calibration are: L3, MATRIX_INV_OF_ETA_AVE, L3_AND_MTRX_INV" << endl;
158  cout << "For DiJets the supported method is L3" << endl;
159  return;
160  }
161 
162  if (mCalibType=="DI_JET" && mCalibMethod!="L3") {
163  cout << "\n\nDiJet calibration can use only the L3 method. Please change the python file." << endl;
164  return;
165  }
166 
167  if (mCalibAbsIEtaMin<1 || mCalibAbsIEtaMax>41 || mCalibAbsIEtaMin>mCalibAbsIEtaMax) {
168  cout << "\n\nInvalid ABS(iEta) calibration range. Check calibAbsIEtaMin and calibAbsIEtaMax in the python file." << endl;
169  return;
170  }
171 
172 
173 
174  hcalCalib* calibrator = new hcalCalib();
175 
176  // set the parameters controlling the calibratoration
177 
178  calibrator->SetCalibType(mCalibType);
179  calibrator->SetCalibMethod(mCalibMethod);
180  calibrator->SetMinTargetE(mMinTargetE);
181  calibrator->SetMaxTargetE(mMaxTargetE);
182  calibrator->SetMaxEtThirdJet(mMaxEtThirdJet);
183  calibrator->SetMinDPhiDiJets(mMinDPhiDiJets);
184  calibrator->SetSumDepthsFlag(mSumDepths);
186  calibrator->SetCombinePhiFlag(mCombinePhi);
187  calibrator->SetMinCellE(mMinCellE);
188  calibrator->SetMinEOverP(mMinEOverP);
189  calibrator->SetMaxEOverP(mMaxEOverP);
190  calibrator->SetMaxTrkEmE(mMaxTrkEmE);
191  calibrator->SetHbClusterSize(mHbClusterSize);
192  calibrator->SetHeClusterSize(mHeClusterSize);
193 
195  calibrator->SetConeMaxDist(mMaxConeDist);
196 
202 
203  calibrator->SetMinTagJetEt(mMinTagJetEt);
204 
209 
210  calibrator->SetHistoFileName(mHistoFileName);
211 
212  calibrator->SetCaloGeometry(mTheCaloGeometry);
213 
214 
215  ifstream inputFileList; // contains list of input root files
216 
217  TString files = mInputFileList;
218  inputFileList.open(files.Data());
219 
220  std::vector<TString> inputFiles;
221  while (!inputFileList.eof()) {
222  TString fileName;
223  inputFileList >> fileName;
224  if (!fileName.BeginsWith("#") && !fileName.Contains(" ") && fileName!="")
225  inputFiles.push_back(fileName);
226  }
227  inputFileList.close();
228 
229  std::cout << "\nInput files for processing:" << std::endl;
230  for (std::vector<TString>::iterator it=inputFiles.begin(); it!=inputFiles.end(); ++it) {
231  std::cout << "file: " << it->Data() << std::endl;
232  }
233  std::cout << std::endl;
234 
235 
236  TChain* fChain = new TChain("hcalCalibTree");
237 
238  for (std::vector<TString>::iterator f_it=inputFiles.begin();f_it!=inputFiles.end(); ++f_it) {
239  fChain->Add(f_it->Data());
240  }
241 
242 
243  fChain->Process(calibrator);
244 
245  if (fChain) delete fChain;
246  delete calibrator;
247 
248  return;
249 }
void SetMaxTagJetAbsEta(Float_t e)
Definition: hcalCalib.h:175
void SetHbClusterSize(Int_t i)
Definition: hcalCalib.h:161
void SetMinTagJetEt(Float_t e)
Definition: hcalCalib.h:176
void SetOutputCorCoefFileName(TString filename)
Definition: hcalCalib.h:178
void SetMaxEOverP(Float_t e)
Definition: hcalCalib.h:157
double mMinProbeJetAbsEta
void SetMaxProbeJetEmFrac(Float_t f)
Definition: hcalCalib.h:173
void SetSumSmallDepthsFlag(Bool_t b)
Definition: hcalCalib.h:153
void SetConeMaxDist(Float_t d)
Definition: hcalCalib.h:165
void SetApplyPhiSymCorFlag(Bool_t b)
Definition: hcalCalib.h:171
const CaloGeometry * mTheCaloGeometry
void SetMinDPhiDiJets(Float_t dphi)
Definition: hcalCalib.h:170
void SetSumDepthsFlag(Bool_t b)
Definition: hcalCalib.h:152
std::string mHistoFileName
void SetUseConeClustering(Bool_t b)
Definition: hcalCalib.h:164
double mMaxTagJetAbsEta
double mMaxProbeJetEmFrac
double mMaxTagJetEmFrac
void SetHistoFileName(TString filename)
Definition: hcalCalib.h:179
void SetMinTargetE(Float_t e)
Definition: hcalCalib.h:150
void SetCaloGeometry(const CaloGeometry *g)
Definition: hcalCalib.h:182
void SetCalibAbsIEtaMax(Int_t i)
Definition: hcalCalib.h:167
void SetPhiSymCorFileName(TString filename)
Definition: hcalCalib.h:172
double mMinDPhiDiJets
std::string mInputFileList
tuple inputFileList
Definition: diJetCalib.py:17
void SetMaxTargetE(Float_t e)
Definition: hcalCalib.h:151
std::string mCalibMethod
void SetMaxTrkEmE(Float_t e)
Definition: hcalCalib.h:158
std::string mPhiSymCorFileName
void SetMaxTagJetEmFrac(Float_t f)
Definition: hcalCalib.h:174
bool mApplyPhiSymCorFlag
void SetCalibAbsIEtaMin(Int_t i)
Definition: hcalCalib.h:168
void SetCalibMethod(TString s)
Definition: hcalCalib.h:160
std::string mCalibType
std::string mOutputCorCoefFileName
void SetCombinePhiFlag(Bool_t b)
Definition: hcalCalib.h:154
void SetCalibType(TString s)
Definition: hcalCalib.h:159
tuple inputFiles
Definition: merge.py:5
tuple cout
Definition: gather_cfg.py:121
void SetHeClusterSize(Int_t i)
Definition: hcalCalib.h:162
void SetMinCellE(Float_t e)
Definition: hcalCalib.h:155
void SetMaxEtThirdJet(Float_t et)
Definition: hcalCalib.h:169
void SetMinProbeJetAbsEta(Float_t e)
Definition: hcalCalib.h:177
double mMaxEtThirdJet
void SetMinEOverP(Float_t e)
Definition: hcalCalib.h:156

Member Data Documentation

bool HcalCalibrator::allowMissingInputs_
private

Definition at line 82 of file HcalCalibrator.h.

bool HcalCalibrator::mApplyPhiSymCorFlag
private

Definition at line 73 of file HcalCalibrator.h.

Referenced by endJob().

int HcalCalibrator::mCalibAbsIEtaMax
private

Definition at line 62 of file HcalCalibrator.h.

Referenced by endJob().

int HcalCalibrator::mCalibAbsIEtaMin
private

Definition at line 63 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mCalibMethod
private

Definition at line 43 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mCalibType
private

Definition at line 42 of file HcalCalibrator.h.

Referenced by endJob().

bool HcalCalibrator::mCombinePhi
private

Definition at line 55 of file HcalCalibrator.h.

Referenced by endJob().

int HcalCalibrator::mHbClusterSize
private

Definition at line 56 of file HcalCalibrator.h.

Referenced by endJob().

int HcalCalibrator::mHeClusterSize
private

Definition at line 57 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mHistoFileName
private

Definition at line 76 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mInputFileList
private

Definition at line 40 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxConeDist
private

Definition at line 60 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxEOverP
private

Definition at line 48 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxEtThirdJet
private

Definition at line 51 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxProbeJetEmFrac
private

Definition at line 65 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxTagJetAbsEta
private

Definition at line 67 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxTagJetEmFrac
private

Definition at line 66 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxTargetE
private

Definition at line 45 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMaxTrkEmE
private

Definition at line 49 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinCellE
private

Definition at line 46 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinDPhiDiJets
private

Definition at line 52 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinEOverP
private

Definition at line 47 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinProbeJetAbsEta
private

Definition at line 69 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinTagJetEt
private

Definition at line 68 of file HcalCalibrator.h.

Referenced by endJob().

double HcalCalibrator::mMinTargetE
private

Definition at line 44 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mOutputCorCoefFileName
private

Definition at line 75 of file HcalCalibrator.h.

Referenced by endJob().

std::string HcalCalibrator::mOutputFile
private

Definition at line 39 of file HcalCalibrator.h.

std::string HcalCalibrator::mPhiSymCorFileName
private

Definition at line 72 of file HcalCalibrator.h.

Referenced by endJob().

bool HcalCalibrator::mSumDepths
private

Definition at line 53 of file HcalCalibrator.h.

Referenced by endJob().

bool HcalCalibrator::mSumSmallDepths
private

Definition at line 54 of file HcalCalibrator.h.

Referenced by endJob().

const CaloGeometry* HcalCalibrator::mTheCaloGeometry
private

Definition at line 79 of file HcalCalibrator.h.

Referenced by analyze(), and endJob().

bool HcalCalibrator::mUseConeClustering
private

Definition at line 59 of file HcalCalibrator.h.

Referenced by endJob().