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 Member Functions | Private Attributes
FactorizedJetCorrectorDemo Class Reference
Inheritance diagram for FactorizedJetCorrectorDemo:
edm::EDAnalyzer

Public Types

typedef
reco::Particle::LorentzVector 
LorentzVector
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 

Public Member Functions

 FactorizedJetCorrectorDemo (const edm::ParameterSet &)
 
 ~FactorizedJetCorrectorDemo ()
 
- 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

edm::Service< TFileServicefs
 
bool mDebug
 
double mEtaMax
 
double mEtaMin
 
TH2F * mJECvsEta
 
TH2F * mJECvsPt
 
std::string mJetCorService
 
std::vector< std::string > mLevels
 
int mNGraphPoints
 
int mNHistoPoints
 
std::string mPayloadName
 
double mPtMax
 
double mPtMin
 
TRandom * mRandom
 
TGraph * mUncCorPt [100]
 
std::string mUncertaintyFile
 
std::string mUncertaintyTag
 
TGraph * mUncEta [100]
 
bool mUseCondDB
 
std::vector< double > mVEta
 
TGraphErrors * mVGraphCorPt [100]
 
TGraphErrors * mVGraphEta [100]
 
TGraphErrors * mVGraphPt [100]
 
std::vector< double > mVPt
 
double veta [100][1000]
 
double vex_eta [100][1000]
 
double vex_pt [100][1000]
 
double vjec_eta [100][1000]
 
double vjec_pt [100][1000]
 
double vjecUnc_eta [100][1000]
 
double vjecUnc_pt [100][1000]
 
double vpt [100][1000]
 
double vptcor [100][1000]
 
double vUnc_eta [100][1000]
 
double vUnc_pt [100][1000]
 

Additional Inherited Members

- 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

Definition at line 29 of file FactorizedJetCorrectorDemo.cc.

Member Typedef Documentation

Definition at line 33 of file FactorizedJetCorrectorDemo.cc.

Constructor & Destructor Documentation

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

Definition at line 58 of file FactorizedJetCorrectorDemo.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), mDebug, mEtaMax, mEtaMin, mLevels, mNGraphPoints, mNHistoPoints, mPayloadName, mPtMax, mPtMin, mUncertaintyFile, mUncertaintyTag, mVEta, and mVPt.

59 {
60  mLevels = iConfig.getParameter<std::vector<std::string> > ("levels");
61  mPayloadName = iConfig.getParameter<std::string> ("PayloadName");
62  mUncertaintyTag = iConfig.getParameter<std::string> ("UncertaintyTag");
63  mUncertaintyFile = iConfig.getParameter<std::string> ("UncertaintyFile");
64  mNHistoPoints = iConfig.getParameter<int> ("NHistoPoints");
65  mNGraphPoints = iConfig.getParameter<int> ("NGraphPoints");
66  mEtaMin = iConfig.getParameter<double> ("EtaMin");
67  mEtaMax = iConfig.getParameter<double> ("EtaMax");
68  mPtMin = iConfig.getParameter<double> ("PtMin");
69  mPtMax = iConfig.getParameter<double> ("PtMax");
70  mVEta = iConfig.getParameter<std::vector<double> > ("VEta");
71  mVPt = iConfig.getParameter<std::vector<double> > ("VPt");
72  mDebug = iConfig.getUntrackedParameter<bool> ("Debug",false);
73 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > mLevels
FactorizedJetCorrectorDemo::~FactorizedJetCorrectorDemo ( )

Definition at line 75 of file FactorizedJetCorrectorDemo.cc.

76 {
77 
78 }

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 80 of file FactorizedJetCorrectorDemo.cc.

References gather_cfg::cout, alignCSCRings::e, eta(), edm::EventSetup::get(), i, patTestJEC_cfi::jec, testEve_cfg::level, mDebug, mEtaMax, mEtaMin, mJECvsEta, mJECvsPt, mLevels, mNGraphPoints, mNHistoPoints, mPayloadName, mPtMax, mPtMin, mRandom, mVEta, mVPt, Parameters::parameters, funct::pow(), tmp, veta, vex_eta, vjec_eta, vjec_pt, vpt, and vptcor.

81 {
82 
83  if ( mDebug )
84  std::cout << "Hello from FactorizedJetCorrectorDemo" << std::endl;
85  // retreive parameters from the DB this still need a proper configurable
86  // payloadName like: JetCorrectorParametersCollection_Spring10_AK5Calo.
88  iSetup.get<JetCorrectionsRecord>().get(mPayloadName, parameters);
89 
90  std::vector<JetCorrectorParameters> params;
91  for(std::vector<std::string>::const_iterator level=mLevels.begin(); level!=mLevels.end(); ++level){
92  const JetCorrectorParameters& ip = (*parameters)[*level]; //ip.printScreen();
93  if ( mDebug )
94  std::cout << "Adding level " << *level << std::endl;
95  params.push_back(ip);
96  }
97 
98  boost::shared_ptr<FactorizedJetCorrector> corrector ( new FactorizedJetCorrector(params));
99 
100 
101  double jec,rawPt,corPt,eta;
102  TLorentzVector P4;
103  double dEta = (mEtaMax-mEtaMin)/mNGraphPoints;
104  if ( mDebug )
105  std::cout << "Making JEC vs Eta and pT" << std::endl;
106  for(int i=0;i<mNHistoPoints;i++)
107  {
108  rawPt = mRandom->Uniform(mPtMin,mPtMax);
109  eta = mRandom->Uniform(mEtaMin,mEtaMax);
110  P4.SetPtEtaPhiE(rawPt,eta,0,0);
111  corrector->setJetEta( eta );
112  corrector->setJetPt( rawPt );
113  corrector->setJetE( P4.E() );
114  jec = corrector->getCorrection();
115  mJECvsEta->Fill(eta,jec);
116  mJECvsPt->Fill(rawPt,jec);
117  }
118  if ( mDebug )
119  std::cout << "Making JEC vs pT for different etas" << std::endl;
120  //--------- Pt Graphs ------------------
121  for(unsigned ieta=0;ieta<mVEta.size();ieta++)
122  {
123  double rPt = pow((3500./TMath::CosH(mVEta[ieta]))/mPtMin,1./mNGraphPoints);
124  for(int i=0;i<mNGraphPoints;i++)
125  {
126  rawPt = mPtMin*pow(rPt,i);
127  eta = mVEta[ieta];
128  vpt[ieta][i] = rawPt;
129  P4.SetPtEtaPhiE(rawPt,eta,0,0);
130  corrector->setJetEta( eta );
131  corrector->setJetPt( rawPt );
132  corrector->setJetE( P4.E() );
133  jec = corrector->getCorrection();
134  vjec_eta[ieta][i] = jec;
135  vptcor[ieta][i] = rawPt*jec;
136  vex_eta[ieta][i] = 0.0;
137  if (mDebug)
138  std::cout<<rawPt<<" "<<eta<<" "<<jec<<" "<<rawPt*jec<<std::endl;
139  }
140  }
141  if ( mDebug )
142  std::cout << "Making JEC vs eta for different pTs" << std::endl;
143  //--------- Eta Graphs -------------------
144  for(unsigned ipt=0;ipt<mVPt.size();ipt++)
145  {
146  for(int i=0;i<mNGraphPoints;i++)
147  {
148  eta = mEtaMin + i*dEta;
149  corPt = mVPt[ipt];
150  veta[ipt][i] = eta;
151  //---------- find the raw pt -----------
152  double e = 1.0;
153  int nLoop(0);
154  rawPt = corPt;
155  while(e > 0.0001 && nLoop < 10)
156  {
157  P4.SetPtEtaPhiE(rawPt,eta,0,0);
158  LorentzVector rawP4(P4.Px(),P4.Py(),P4.Pz(),P4.E());
159  corrector->setJetEta( eta );
160  corrector->setJetPt( rawPt );
161  corrector->setJetE( P4.E() );
162  jec = corrector->getCorrection();
163  double tmp = rawPt * jec;
164  e = fabs(tmp-corPt)/corPt;
165  if (jec > 0)
166  rawPt = corPt/jec;
167  nLoop++;
168  }
169  //--------- calculate the jec for the rawPt --------
170  P4.SetPtEtaPhiE(rawPt,eta,0,0);
171  LorentzVector rawP4(P4.Px(),P4.Py(),P4.Pz(),P4.E());
172  corrector->setJetEta( eta );
173  corrector->setJetPt( rawPt );
174  corrector->setJetE( P4.E() );
175  jec = corrector->getCorrection();
176  vjec_pt[ipt][i] = jec;
177  if (mDebug)
178  std::cout<<rawPt<<" "<<eta<<" "<<jec<<" "<<rawPt*jec<<std::endl;
179  }
180  }
181  if ( mDebug )
182  std::cout << "See ya!" << std::endl;
183 
184 }
int i
Definition: DBlmapReader.cc:9
dictionary parameters
Definition: Parameters.py:2
math::XYZTLorentzVector LorentzVector
std::vector< std::string > mLevels
T eta() const
const T & get() const
Definition: EventSetup.h:55
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
tuple cout
Definition: gather_cfg.py:121
tuple level
Definition: testEve_cfg.py:34
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void FactorizedJetCorrectorDemo::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 186 of file FactorizedJetCorrectorDemo.cc.

References edm::hlt::Exception, fs, TFileDirectory::make(), mEtaMax, mEtaMin, mJECvsEta, mJECvsPt, mNGraphPoints, mPtMax, mPtMin, mRandom, mVEta, and mVPt.

187 {
188  if (mNGraphPoints > 1000)
189  throw cms::Exception("FactorizedJetCorrectorDemo","Too many graph points !!! Maximum is 1000 !!!");
190  if (mVEta.size() > 100)
191  throw cms::Exception("FactorizedJetCorrectorDemo","Too many eta values !!! Maximum is 100 !!!");
192  if (mVPt.size() > 100)
193  throw cms::Exception("FactorizedJetCorrectorDemo","Too many pt values !!! Maximum is 100 !!!");
194  mJECvsEta = fs->make<TH2F>("JECvsEta","JECvsEta",200,mEtaMin,mEtaMax,100,0,5);
195  mJECvsPt = fs->make<TH2F>("JECvsPt","JECvsPt",200,mPtMin,mPtMax,100,0,5);
196  mRandom = new TRandom();
197  mRandom->SetSeed(0);
198 }
edm::Service< TFileService > fs
T * make() const
make new ROOT object
void FactorizedJetCorrectorDemo::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 200 of file FactorizedJetCorrectorDemo.cc.

References fs, TFileDirectory::make(), mNGraphPoints, mUncCorPt, mUncEta, mVEta, mVGraphCorPt, mVGraphEta, mVGraphPt, mVPt, mergeVDriftHistosByStation::name, veta, vex_eta, vex_pt, vjec_eta, vjec_pt, vjecUnc_eta, vjecUnc_pt, vpt, vptcor, vUnc_eta, and vUnc_pt.

201 {
202  char name[1000];
203  for(unsigned ipt=0;ipt<mVPt.size();ipt++)
204  {
205  mVGraphEta[ipt] = fs->make<TGraphErrors>(mNGraphPoints,veta[ipt],vjec_pt[ipt],vex_pt[ipt],vjecUnc_pt[ipt]);
206  sprintf(name,"JEC_vs_Eta_CorPt%1.1f",mVPt[ipt]);
207  mVGraphEta[ipt]->SetName(name);
208  mUncEta[ipt] = fs->make<TGraph>(mNGraphPoints,veta[ipt],vUnc_pt[ipt]);
209  sprintf(name,"UNC_vs_Eta_CorPt%1.1f",mVPt[ipt]);
210  mUncEta[ipt]->SetName(name);
211  }
212  for(unsigned ieta=0;ieta<mVEta.size();ieta++)
213  {
214  mVGraphPt[ieta] = fs->make<TGraphErrors>(mNGraphPoints,vpt[ieta],vjec_eta[ieta],vex_eta[ieta],vjecUnc_eta[ieta]);
215  sprintf(name,"JEC_vs_RawPt_eta%1.1f",mVEta[ieta]);
216  mVGraphPt[ieta]->SetName(name);
217  mVGraphCorPt[ieta] = fs->make<TGraphErrors>(mNGraphPoints,vptcor[ieta],vjec_eta[ieta],vex_eta[ieta],vjecUnc_eta[ieta]);
218  sprintf(name,"JEC_vs_CorPt_eta%1.1f",mVEta[ieta]);
219  mVGraphCorPt[ieta]->SetName(name);
220  mUncCorPt[ieta] = fs->make<TGraph>(mNGraphPoints,vptcor[ieta],vUnc_eta[ieta]);
221  sprintf(name,"UNC_vs_CorPt_eta%1.1f",mVEta[ieta]);
222  mUncCorPt[ieta]->SetName(name);
223  }
224 }
edm::Service< TFileService > fs
T * make() const
make new ROOT object

Member Data Documentation

edm::Service<TFileService> FactorizedJetCorrectorDemo::fs
private

Definition at line 48 of file FactorizedJetCorrectorDemo.cc.

Referenced by beginJob(), and endJob().

bool FactorizedJetCorrectorDemo::mDebug
private

Definition at line 42 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and FactorizedJetCorrectorDemo().

double FactorizedJetCorrectorDemo::mEtaMax
private

Definition at line 44 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), beginJob(), and FactorizedJetCorrectorDemo().

double FactorizedJetCorrectorDemo::mEtaMin
private

Definition at line 44 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), beginJob(), and FactorizedJetCorrectorDemo().

TH2F* FactorizedJetCorrectorDemo::mJECvsEta
private

Definition at line 49 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and beginJob().

TH2F * FactorizedJetCorrectorDemo::mJECvsPt
private

Definition at line 49 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and beginJob().

std::string FactorizedJetCorrectorDemo::mJetCorService
private

Definition at line 40 of file FactorizedJetCorrectorDemo.cc.

std::vector<std::string> FactorizedJetCorrectorDemo::mLevels
private

Definition at line 41 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and FactorizedJetCorrectorDemo().

int FactorizedJetCorrectorDemo::mNGraphPoints
private
int FactorizedJetCorrectorDemo::mNHistoPoints
private

Definition at line 43 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and FactorizedJetCorrectorDemo().

std::string FactorizedJetCorrectorDemo::mPayloadName
private

Definition at line 40 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and FactorizedJetCorrectorDemo().

double FactorizedJetCorrectorDemo::mPtMax
private

Definition at line 44 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), beginJob(), and FactorizedJetCorrectorDemo().

double FactorizedJetCorrectorDemo::mPtMin
private

Definition at line 44 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), beginJob(), and FactorizedJetCorrectorDemo().

TRandom* FactorizedJetCorrectorDemo::mRandom
private

Definition at line 52 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and beginJob().

TGraph * FactorizedJetCorrectorDemo::mUncCorPt[100]
private

Definition at line 51 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

std::string FactorizedJetCorrectorDemo::mUncertaintyFile
private

Definition at line 40 of file FactorizedJetCorrectorDemo.cc.

Referenced by FactorizedJetCorrectorDemo().

std::string FactorizedJetCorrectorDemo::mUncertaintyTag
private

Definition at line 40 of file FactorizedJetCorrectorDemo.cc.

Referenced by FactorizedJetCorrectorDemo().

TGraph* FactorizedJetCorrectorDemo::mUncEta[100]
private

Definition at line 51 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

bool FactorizedJetCorrectorDemo::mUseCondDB
private

Definition at line 42 of file FactorizedJetCorrectorDemo.cc.

std::vector<double> FactorizedJetCorrectorDemo::mVEta
private
TGraphErrors * FactorizedJetCorrectorDemo::mVGraphCorPt[100]
private

Definition at line 50 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

TGraphErrors* FactorizedJetCorrectorDemo::mVGraphEta[100]
private

Definition at line 50 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

TGraphErrors * FactorizedJetCorrectorDemo::mVGraphPt[100]
private

Definition at line 50 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

std::vector<double> FactorizedJetCorrectorDemo::mVPt
private
double FactorizedJetCorrectorDemo::veta[100][1000]
private

Definition at line 46 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vex_eta[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vex_pt[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

double FactorizedJetCorrectorDemo::vjec_eta[100][1000]
private

Definition at line 46 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vjec_pt[100][1000]
private

Definition at line 46 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vjecUnc_eta[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

double FactorizedJetCorrectorDemo::vjecUnc_pt[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

double FactorizedJetCorrectorDemo::vpt[100][1000]
private

Definition at line 46 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vptcor[100][1000]
private

Definition at line 46 of file FactorizedJetCorrectorDemo.cc.

Referenced by analyze(), and endJob().

double FactorizedJetCorrectorDemo::vUnc_eta[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().

double FactorizedJetCorrectorDemo::vUnc_pt[100][1000]
private

Definition at line 47 of file FactorizedJetCorrectorDemo.cc.

Referenced by endJob().