CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MCPhotonAnalyzer Class Reference
Inheritance diagram for MCPhotonAnalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
 MCPhotonAnalyzer (const edm::ParameterSet &)
 
 ~MCPhotonAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

float etaTransformation (float a, float b)
 
float phiNormalization (float &a)
 

Private Attributes

TFile * fOutputFile_
 
std::string fOutputFileName_
 
TH1F * h_BremEnergy_
 
TH2F * h_bremEvsEleE_
 
TH1F * h_BremFrac_
 
TH2F * h_bremFracVsConvR_
 
TH1F * h_convFracEta1_
 
TH1F * h_convFracEta2_
 
TH1F * h_convFracEta3_
 
TH1F * h_convFracEta4_
 
TH2F * h_EleEvsPhoE_
 
TH1F * h_MCConvPhoE_
 
TH1F * h_MCConvPhoEta_
 
TH1F * h_MCConvPhoOneTrackE_
 Conversions with one track. More...
 
TH1F * h_MCConvPhoOneTrackEta_
 
TH1F * h_MCConvPhoOneTrackPhi_
 
TH1F * h_MCConvPhoOneTrackR_
 
TH1F * h_MCConvPhoPhi_
 
TH1F * h_MCConvPhoR_
 
TH1F * h_MCConvPhoREta1_
 
TH1F * h_MCConvPhoREta2_
 
TH1F * h_MCConvPhoREta3_
 
TH1F * h_MCConvPhoREta4_
 
TH1F * h_MCConvPhoTwoTracksE_
 Conversions with two tracks. More...
 
TH1F * h_MCConvPhoTwoTracksEta_
 
TH1F * h_MCConvPhoTwoTracksPhi_
 
TH1F * h_MCConvPhoTwoTracksR_
 
TH1F * h_MCEleE_
 
TH1F * h_MCEleEta_
 
TH1F * h_MCElePhi_
 
TH1F * h_MCPhoE_
 
TH1F * h_MCPhoEta1_
 
TH1F * h_MCPhoEta2_
 
TH1F * h_MCPhoEta3_
 
TH1F * h_MCPhoEta4_
 
TH1F * h_MCPhoEta_
 
TH1F * h_MCPhoPhi_
 
std::string HepMCLabel
 
double mcEta_
 
double mcPhi_
 global variable for the MC photon More...
 
int nEvt_
 
int nMatched_
 
TProfile * p_BremVsConvEta_
 
TProfile * p_BremVsConvR_
 
TProfile * p_BremVsEta_
 
TProfile * p_BremVsR_
 
std::string SimHitLabel
 
std::string SimTkLabel
 
std::string SimVtxLabel
 
PhotonMCTruthFinderthePhotonMCTruthFinder_
 
const TrackerGeometrytrackerGeom
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 32 of file MCPhotonAnalyzer.cc.

Constructor & Destructor Documentation

MCPhotonAnalyzer::MCPhotonAnalyzer ( const edm::ParameterSet pset)
explicit

Definition at line 122 of file MCPhotonAnalyzer.cc.

122 {}
MCPhotonAnalyzer::~MCPhotonAnalyzer ( )
override

Definition at line 124 of file MCPhotonAnalyzer.cc.

124 { delete thePhotonMCTruthFinder_; }
PhotonMCTruthFinder * thePhotonMCTruthFinder_

Member Function Documentation

void MCPhotonAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup  
)
overridevirtual

Loop over all MC photons in the event

Implements edm::one::EDAnalyzerBase.

Definition at line 243 of file MCPhotonAnalyzer.cc.

References gather_cfg::cout, edm::Event::getByLabel(), edm::EventBase::id(), log, and funct::tan().

243  {
244  using namespace edm;
245  //UNUSED const float etaPhiDistance=0.01;
246  // Fiducial region
247  //UNUSED const float TRK_BARL =0.9;
248  //UNUSED const float BARL = 1.4442; // DAQ TDR p.290
249  //UNUSED const float END_LO = 1.566;
250  //UNUSED const float END_HI = 2.5;
251  // Electron mass
252  //UNUSED const Float_t mElec= 0.000511;
253 
254  nEvt_++;
255  LogInfo("mcEleAnalyzer") << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_
256  << "\n";
257  // LogDebug("MCPhotonAnalyzer") << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
258  std::cout << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n";
259 
261  std::cout << " MCPhotonAnalyzer Looking for MC truth "
262  << "\n";
263 
264  //get simtrack info
265  std::vector<SimTrack> theSimTracks;
266  std::vector<SimVertex> theSimVertices;
267 
270  e.getByLabel("g4SimHits", SimTk);
271  e.getByLabel("g4SimHits", SimVtx);
272 
273  theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end());
274  theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end());
275  std::cout << " MCPhotonAnalyzer This Event has " << theSimTracks.size() << " sim tracks " << std::endl;
276  std::cout << " MCPhotonAnalyzer This Event has " << theSimVertices.size() << " sim vertices " << std::endl;
277  if (theSimTracks.empty())
278  std::cout << " Event number " << e.id() << " has NO sim tracks " << std::endl;
279 
280  std::vector<PhotonMCTruth> mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices);
281  std::cout << " MCPhotonAnalyzer mcPhotons size " << mcPhotons.size() << std::endl;
282 
283  for (std::vector<PhotonMCTruth>::const_iterator iPho = mcPhotons.begin(); iPho != mcPhotons.end(); ++iPho) {
284  if ((*iPho).fourMomentum().e() < 35)
285  continue;
286 
287  h_MCPhoE_->Fill((*iPho).fourMomentum().e());
288  // float correta = etaTransformation( (*iPho).fourMomentum().pseudoRapidity(), (*iPho).primaryVertex().z() );
289  float Theta = (*iPho).fourMomentum().theta();
290  float correta = -log(tan(0.5 * Theta));
291  correta = etaTransformation(correta, (*iPho).primaryVertex().z());
292  //h_MCPhoEta_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
293  h_MCPhoEta_->Fill(fabs(correta) - 0.001);
294  h_MCPhoPhi_->Fill((*iPho).fourMomentum().phi());
295 
296  /*
297  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.25 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.15 )
298  h_MCPhoEta1_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
299  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.95 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.85 )
300  h_MCPhoEta2_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
301  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 1.65 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.55 )
302  h_MCPhoEta3_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
303  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 2.05 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.95 )
304  h_MCPhoEta4_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
305  */
306 
307  if (fabs(correta) <= 0.3 && fabs(correta) > 0.2)
308  h_MCPhoEta1_->Fill(correta);
309  if (fabs(correta) <= 1.00 && fabs(correta) > 0.9)
310  h_MCPhoEta2_->Fill(correta);
311  if (fabs(correta) <= 1.6 && fabs(correta) > 1.5)
312  h_MCPhoEta3_->Fill(correta);
313  if (fabs(correta) <= 2. && fabs(correta) > 1.9)
314  h_MCPhoEta4_->Fill(correta);
315 
316  // if ( (*iPho).isAConversion() && (*iPho).vertex().perp()< 10 ) {
317  if ((*iPho).isAConversion()) {
318  h_MCConvPhoE_->Fill((*iPho).fourMomentum().e());
319  // h_MCConvPhoEta_->Fill ( (*iPho).fourMomentum().pseudoRapidity() );
320 
321  h_MCConvPhoEta_->Fill(fabs(correta) - 0.001);
322  h_MCConvPhoPhi_->Fill((*iPho).fourMomentum().phi());
323  h_MCConvPhoR_->Fill((*iPho).vertex().perp());
324 
325  /*
326  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.25 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.15 )
327  h_MCConvPhoREta1_->Fill ( (*iPho).vertex().perp() );
328  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.95 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.85 )
329  h_MCConvPhoREta2_->Fill ( (*iPho).vertex().perp() );
330  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 1.65 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.55 )
331  h_MCConvPhoREta3_->Fill ( (*iPho).vertex().perp() );
332  if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 2.05 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.95 )
333  h_MCConvPhoREta4_->Fill ( (*iPho).vertex().perp() );
334  */
335 
336  if (fabs(correta) <= 0.3 && fabs(correta) > 0.2)
337  h_MCConvPhoREta1_->Fill((*iPho).vertex().perp());
338  if (fabs(correta) <= 1. && fabs(correta) > 0.9)
339  h_MCConvPhoREta2_->Fill((*iPho).vertex().perp());
340  if (fabs(correta) <= 1.6 && fabs(correta) > 1.5)
341  h_MCConvPhoREta3_->Fill((*iPho).vertex().perp());
342  if (fabs(correta) <= 2 && fabs(correta) > 1.9)
343  h_MCConvPhoREta4_->Fill((*iPho).vertex().perp());
344 
345  } // end conversions
346 
347  }
348 }
float etaTransformation(float a, float b)
static std::vector< std::string > checklist log
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:500
Log< level::Info, false > LogInfo
std::vector< PhotonMCTruth > find(const std::vector< SimTrack > &simTracks, const std::vector< SimVertex > &simVertices)
edm::EventID id() const
Definition: EventBase.h:59
PhotonMCTruthFinder * thePhotonMCTruthFinder_
tuple cout
Definition: gather_cfg.py:144
void MCPhotonAnalyzer::beginJob ( void  )
overridevirtual

conversions

conversions with two tracks

electrons from conversions

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 126 of file MCPhotonAnalyzer.cc.

References TFileService::make().

126  {
127  nEvt_ = 0;
128 
130 
132 
134  h_MCPhoE_ = fs->make<TH1F>("MCPhoE", "MC photon energy", 100, 0., 100.);
135  h_MCPhoPhi_ = fs->make<TH1F>("MCPhoPhi", "MC photon phi", 40, -3.14, 3.14);
136  h_MCPhoEta_ = fs->make<TH1F>("MCPhoEta", "MC photon eta", 25, 0., 2.5);
137  h_MCPhoEta1_ = fs->make<TH1F>("MCPhoEta1", "MC photon eta", 40, -3., 3.);
138  h_MCPhoEta2_ = fs->make<TH1F>("MCPhoEta2", "MC photon eta", 40, -3., 3.);
139  h_MCPhoEta3_ = fs->make<TH1F>("MCPhoEta3", "MC photon eta", 40, -3., 3.);
140  h_MCPhoEta4_ = fs->make<TH1F>("MCPhoEta4", "MC photon eta", 40, -3., 3.);
142  h_MCConvPhoE_ = fs->make<TH1F>("MCConvPhoE", "MC converted photon energy", 100, 0., 100.);
143  h_MCConvPhoPhi_ = fs->make<TH1F>("MCConvPhoPhi", "MC converted photon phi", 40, -3.14, 3.14);
144  h_MCConvPhoEta_ = fs->make<TH1F>("MCConvPhoEta", "MC converted photon eta", 25, 0., 2.5);
145  h_MCConvPhoR_ = fs->make<TH1F>("MCConvPhoR", "MC converted photon R", 120, 0., 120.);
146 
147  h_MCConvPhoREta1_ = fs->make<TH1F>("MCConvPhoREta1", "MC converted photon R", 120, 0., 120.);
148  h_MCConvPhoREta2_ = fs->make<TH1F>("MCConvPhoREta2", "MC converted photon R", 120, 0., 120.);
149  h_MCConvPhoREta3_ = fs->make<TH1F>("MCConvPhoREta3", "MC converted photon R", 120, 0., 120.);
150  h_MCConvPhoREta4_ = fs->make<TH1F>("MCConvPhoREta4", "MC converted photon R", 120, 0., 120.);
151 
152  h_convFracEta1_ = fs->make<TH1F>("convFracEta1", "Integrated(R) fraction of conversion |eta|=0.2", 120, 0., 120.);
153  h_convFracEta2_ = fs->make<TH1F>("convFracEta2", "Integrated(R) fraction of conversion |eta|=0.9", 120, 0., 120.);
154  h_convFracEta3_ = fs->make<TH1F>("convFracEta3", "Integrated(R) fraction of conversion |eta|=1.5", 120, 0., 120.);
155  h_convFracEta4_ = fs->make<TH1F>("convFracEta4", "Integrated(R) fraction of conversion |eta|=2.0", 120, 0., 120.);
158  fs->make<TH1F>("MCConvPhoTwoTracksE", "MC converted photon with 2 tracks energy", 100, 0., 100.);
160  fs->make<TH1F>("MCConvPhoTwoTracksPhi", "MC converted photon 2 tracks phi", 40, -3.14, 3.14);
161  h_MCConvPhoTwoTracksEta_ = fs->make<TH1F>("MCConvPhoTwoTracksEta", "MC converted photon 2 tracks eta", 40, -3., 3.);
162  h_MCConvPhoTwoTracksR_ = fs->make<TH1F>("MCConvPhoTwoTracksR", "MC converted photon 2 tracks eta", 48, 0., 120.);
163  // conversions with one track
165  fs->make<TH1F>("MCConvPhoOneTrackE", "MC converted photon with 1 track energy", 100, 0., 100.);
166  h_MCConvPhoOneTrackPhi_ = fs->make<TH1F>("MCConvPhoOneTrackPhi", "MC converted photon 1 track phi", 40, -3.14, 3.14);
167  h_MCConvPhoOneTrackEta_ = fs->make<TH1F>("MCConvPhoOneTrackEta", "MC converted photon 1 track eta", 40, -3., 3.);
168  h_MCConvPhoOneTrackR_ = fs->make<TH1F>("MCConvPhoOneTrackR", "MC converted photon 1 track eta", 48, 0., 120.);
169 
171  h_MCEleE_ = fs->make<TH1F>("MCEleE", "MC ele energy", 100, 0., 200.);
172  h_MCElePhi_ = fs->make<TH1F>("MCElePhi", "MC ele phi", 40, -3.14, 3.14);
173  h_MCEleEta_ = fs->make<TH1F>("MCEleEta", "MC ele eta", 40, -3., 3.);
174  h_BremFrac_ = fs->make<TH1F>("bremFrac", "brem frac ", 100, 0., 1.);
175  h_BremEnergy_ = fs->make<TH1F>("BremE", "Brem energy", 100, 0., 200.);
176  h_EleEvsPhoE_ = fs->make<TH2F>("eleEvsPhoE", "eleEvsPhoE", 100, 0., 200., 100, 0., 200.);
177  h_bremEvsEleE_ = fs->make<TH2F>("bremEvsEleE", "bremEvsEleE", 100, 0., 200., 100, 0., 200.);
178 
179  p_BremVsR_ = fs->make<TProfile>("BremVsR", " Mean Brem Energy vs R ", 48, 0., 120.);
180  p_BremVsEta_ = fs->make<TProfile>("BremVsEta", " Mean Brem Energy vs Eta ", 50, -2.5, 2.5);
181 
182  p_BremVsConvR_ = fs->make<TProfile>("BremVsConvR", " Mean Brem Fraction vs conversion R ", 48, 0., 120.);
183  p_BremVsConvEta_ = fs->make<TProfile>("BremVsConvEta", " Mean Brem Fraction vs converion Eta ", 50, -2.5, 2.5);
184 
185  h_bremFracVsConvR_ = fs->make<TH2F>("bremFracVsConvR", "brem Fraction vs conversion R", 60, 0., 120., 100, 0., 1.);
186 
187  return;
188 }
TH1F * h_MCConvPhoOneTrackE_
Conversions with one track.
TH1F * h_MCConvPhoTwoTracksPhi_
TH1F * h_MCConvPhoOneTrackPhi_
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
TProfile * p_BremVsConvR_
TH1F * h_MCConvPhoTwoTracksE_
Conversions with two tracks.
TH1F * h_MCConvPhoOneTrackEta_
TProfile * p_BremVsConvEta_
TH1F * h_MCConvPhoTwoTracksEta_
PhotonMCTruthFinder * thePhotonMCTruthFinder_
void MCPhotonAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 350 of file MCPhotonAnalyzer.cc.

References gather_cfg::cout, and mps_fire::i.

350  {
351  double s1 = 0;
352  double s2 = 0;
353  double s3 = 0;
354  double s4 = 0;
355  int e1 = 0;
356  int e2 = 0;
357  int e3 = 0;
358  int e4 = 0;
359 
360  double nTotEta1 = h_MCPhoEta1_->GetEntries();
361  double nTotEta2 = h_MCPhoEta2_->GetEntries();
362  double nTotEta3 = h_MCPhoEta3_->GetEntries();
363  double nTotEta4 = h_MCPhoEta4_->GetEntries();
364 
365  for (int i = 1; i <= 120; ++i) {
366  e1 = (int)h_MCConvPhoREta1_->GetBinContent(i);
367  e2 = (int)h_MCConvPhoREta2_->GetBinContent(i);
368  e3 = (int)h_MCConvPhoREta3_->GetBinContent(i);
369  e4 = (int)h_MCConvPhoREta4_->GetBinContent(i);
370  s1 += e1;
371  s2 += e2;
372  s3 += e3;
373  s4 += e4;
374  h_convFracEta1_->SetBinContent(i, s1 * 100 / nTotEta1);
375  h_convFracEta2_->SetBinContent(i, s2 * 100 / nTotEta2);
376  h_convFracEta3_->SetBinContent(i, s3 * 100 / nTotEta3);
377  h_convFracEta4_->SetBinContent(i, s4 * 100 / nTotEta4);
378  }
379 
380  edm::LogInfo("MCPhotonAnalyzer") << "Analyzed " << nEvt_ << "\n";
381  std::cout << "MCPhotonAnalyzer::endJob Analyzed " << nEvt_ << " events "
382  << "\n";
383 
384  return;
385 }
Log< level::Info, false > LogInfo
tuple cout
Definition: gather_cfg.py:144
float MCPhotonAnalyzer::etaTransformation ( float  a,
float  b 
)
private

Definition at line 190 of file MCPhotonAnalyzer.cc.

References ETA, etaBarrelEndcap, log, PI, R_ECAL, funct::tan(), Z_Endcap, and ZEcal.

190  {
191  //---Definitions
192  const float PI = 3.1415927;
193  // const float TWOPI = 2.0*PI;
194 
195  //---Definitions for ECAL
196  const float R_ECAL = 136.5;
197  const float Z_Endcap = 328.0;
198  const float etaBarrelEndcap = 1.479;
199 
200  //---ETA correction
201 
202  float Theta = 0.0;
203  float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex;
204 
205  if (ZEcal != 0.0)
206  Theta = atan(R_ECAL / ZEcal);
207  if (Theta < 0.0)
208  Theta = Theta + PI;
209  float ETA = -log(tan(0.5 * Theta));
210 
211  if (fabs(ETA) > etaBarrelEndcap) {
212  float Zend = Z_Endcap;
213  if (EtaParticle < 0.0)
214  Zend = -Zend;
215  float Zlen = Zend - Zvertex;
216  float RR = Zlen / sinh(EtaParticle);
217  Theta = atan(RR / Zend);
218  if (Theta < 0.0)
219  Theta = Theta + PI;
220  ETA = -log(tan(0.5 * Theta));
221  }
222  //---Return the result
223  return ETA;
224  //---end
225 }
static std::vector< std::string > checklist log
static constexpr float R_ECAL
#define ETA
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
static constexpr float etaBarrelEndcap
#define PI
Definition: QcdUeDQM.h:37
static constexpr float ZEcal
static constexpr float Z_Endcap
float MCPhotonAnalyzer::phiNormalization ( float &  a)
private

Definition at line 227 of file MCPhotonAnalyzer.cc.

References PI, and TWOPI.

227  {
228  //---Definitions
229  const float PI = 3.1415927;
230  const float TWOPI = 2.0 * PI;
231 
232  if (phi > PI) {
233  phi = phi - TWOPI;
234  }
235  if (phi < -PI) {
236  phi = phi + TWOPI;
237  }
238 
239  // cout << " Float_t PHInormalization out " << PHI << endl;
240  return phi;
241 }
#define TWOPI
#define PI
Definition: QcdUeDQM.h:37

Member Data Documentation

TFile* MCPhotonAnalyzer::fOutputFile_
private

Definition at line 52 of file MCPhotonAnalyzer.cc.

std::string MCPhotonAnalyzer::fOutputFileName_
private

Definition at line 51 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_BremEnergy_
private

Definition at line 104 of file MCPhotonAnalyzer.cc.

TH2F* MCPhotonAnalyzer::h_bremEvsEleE_
private

Definition at line 106 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_BremFrac_
private

Definition at line 103 of file MCPhotonAnalyzer.cc.

TH2F* MCPhotonAnalyzer::h_bremFracVsConvR_
private

Definition at line 114 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_convFracEta1_
private

Definition at line 84 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_convFracEta2_
private

Definition at line 85 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_convFracEta3_
private

Definition at line 86 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_convFracEta4_
private

Definition at line 87 of file MCPhotonAnalyzer.cc.

TH2F* MCPhotonAnalyzer::h_EleEvsPhoE_
private

Definition at line 105 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoE_
private

Definition at line 76 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoEta_
private

Definition at line 77 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoOneTrackE_
private

Conversions with one track.

Definition at line 95 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoOneTrackEta_
private

Definition at line 96 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoOneTrackPhi_
private

Definition at line 97 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoOneTrackR_
private

Definition at line 98 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoPhi_
private

Definition at line 78 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoR_
private

Definition at line 79 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoREta1_
private

Definition at line 80 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoREta2_
private

Definition at line 81 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoREta3_
private

Definition at line 82 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoREta4_
private

Definition at line 83 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoTwoTracksE_
private

Conversions with two tracks.

Definition at line 90 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoTwoTracksEta_
private

Definition at line 91 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoTwoTracksPhi_
private

Definition at line 92 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCConvPhoTwoTracksR_
private

Definition at line 93 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCEleE_
private

Definition at line 100 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCEleEta_
private

Definition at line 101 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCElePhi_
private

Definition at line 102 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoE_
private

Definition at line 68 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoEta1_
private

Definition at line 70 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoEta2_
private

Definition at line 71 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoEta3_
private

Definition at line 72 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoEta4_
private

Definition at line 73 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoEta_
private

Definition at line 69 of file MCPhotonAnalyzer.cc.

TH1F* MCPhotonAnalyzer::h_MCPhoPhi_
private

Definition at line 74 of file MCPhotonAnalyzer.cc.

std::string MCPhotonAnalyzer::HepMCLabel
private

Definition at line 62 of file MCPhotonAnalyzer.cc.

double MCPhotonAnalyzer::mcEta_
private

Definition at line 60 of file MCPhotonAnalyzer.cc.

double MCPhotonAnalyzer::mcPhi_
private

global variable for the MC photon

Definition at line 59 of file MCPhotonAnalyzer.cc.

int MCPhotonAnalyzer::nEvt_
private

Definition at line 54 of file MCPhotonAnalyzer.cc.

int MCPhotonAnalyzer::nMatched_
private

Definition at line 55 of file MCPhotonAnalyzer.cc.

TProfile* MCPhotonAnalyzer::p_BremVsConvEta_
private

Definition at line 112 of file MCPhotonAnalyzer.cc.

TProfile* MCPhotonAnalyzer::p_BremVsConvR_
private

Definition at line 111 of file MCPhotonAnalyzer.cc.

TProfile* MCPhotonAnalyzer::p_BremVsEta_
private

Definition at line 109 of file MCPhotonAnalyzer.cc.

TProfile* MCPhotonAnalyzer::p_BremVsR_
private

Definition at line 108 of file MCPhotonAnalyzer.cc.

std::string MCPhotonAnalyzer::SimHitLabel
private

Definition at line 65 of file MCPhotonAnalyzer.cc.

std::string MCPhotonAnalyzer::SimTkLabel
private

Definition at line 63 of file MCPhotonAnalyzer.cc.

std::string MCPhotonAnalyzer::SimVtxLabel
private

Definition at line 64 of file MCPhotonAnalyzer.cc.

PhotonMCTruthFinder* MCPhotonAnalyzer::thePhotonMCTruthFinder_
private

Definition at line 47 of file MCPhotonAnalyzer.cc.

const TrackerGeometry* MCPhotonAnalyzer::trackerGeom
private

Definition at line 49 of file MCPhotonAnalyzer.cc.