CMS 3D CMS Logo

GlobalHitsProducer Class Reference

Class to fill PGlobalDigis object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry. More...

#include <Validation/GlobalHits/interface/GlobalHitsProducer.h>

Inheritance diagram for GlobalHitsProducer:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Types

typedef std::vector< float > FloatVector

Public Member Functions

virtual void beginJob (const edm::EventSetup &)
virtual void endJob ()
 GlobalHitsProducer (const edm::ParameterSet &)
virtual void produce (edm::Event &, const edm::EventSetup &)
virtual ~GlobalHitsProducer ()

Private Member Functions

void clear ()
void fillECal (edm::Event &, const edm::EventSetup &)
void fillG4MC (edm::Event &)
void fillHCal (edm::Event &, const edm::EventSetup &)
void fillMuon (edm::Event &, const edm::EventSetup &)
void fillTrk (edm::Event &, const edm::EventSetup &)
void storeECal (PGlobalSimHit &)
void storeG4MC (PGlobalSimHit &)
void storeHCal (PGlobalSimHit &)
void storeMuon (PGlobalSimHit &)
void storeTrk (PGlobalSimHit &)

Private Attributes

unsigned int count
FloatVector ECalE
edm::InputTag ECalEBSrc_
edm::InputTag ECalEESrc_
edm::InputTag ECalESSrc_
FloatVector ECalEta
FloatVector ECalPhi
FloatVector ECalToF
std::string fName
int frequency
FloatVector G4TrkE
FloatVector G4TrkPt
FloatVector G4VtxX
FloatVector G4VtxY
FloatVector G4VtxZ
bool getAllProvenances
FloatVector HCalE
FloatVector HCalEta
FloatVector HCalPhi
edm::InputTag HCalSrc_
FloatVector HCalToF
std::string label
FloatVector MuonCscEta
FloatVector MuonCscPhi
edm::InputTag MuonCscSrc_
FloatVector MuonCscToF
FloatVector MuonCscZ
FloatVector MuonDtEta
FloatVector MuonDtPhi
FloatVector MuonDtR
edm::InputTag MuonDtSrc_
FloatVector MuonDtToF
FloatVector MuonRpcBrlEta
FloatVector MuonRpcBrlPhi
FloatVector MuonRpcBrlR
FloatVector MuonRpcBrlToF
FloatVector MuonRpcFwdEta
FloatVector MuonRpcFwdPhi
FloatVector MuonRpcFwdToF
FloatVector MuonRpcFwdZ
edm::InputTag MuonRpcSrc_
int nRawGenPart
FloatVector PreShE
FloatVector PreShEta
FloatVector PreShPhi
FloatVector PreShToF
bool printProvenanceInfo
FloatVector PxlBrlEta
edm::InputTag PxlBrlHighSrc_
edm::InputTag PxlBrlLowSrc_
FloatVector PxlBrlPhi
FloatVector PxlBrlR
FloatVector PxlBrlToF
FloatVector PxlFwdEta
edm::InputTag PxlFwdHighSrc_
edm::InputTag PxlFwdLowSrc_
FloatVector PxlFwdPhi
FloatVector PxlFwdToF
FloatVector PxlFwdZ
FloatVector SiBrlEta
FloatVector SiBrlPhi
FloatVector SiBrlR
FloatVector SiBrlToF
FloatVector SiFwdEta
FloatVector SiFwdPhi
FloatVector SiFwdToF
FloatVector SiFwdZ
edm::InputTag SiTECHighSrc_
edm::InputTag SiTECLowSrc_
edm::InputTag SiTIBHighSrc_
edm::InputTag SiTIBLowSrc_
edm::InputTag SiTIDHighSrc_
edm::InputTag SiTIDLowSrc_
edm::InputTag SiTOBHighSrc_
edm::InputTag SiTOBLowSrc_
int verbosity
int vtxunit


Detailed Description

Class to fill PGlobalDigis object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry.

Class to fill PGlobalRecHit object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry.

Class to fill PGlobalSimHit object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry.

Date
2008/03/13 21:15:52
Revision
1.5
Author:
M. Strang SUNY-Buffalo
Date
2008/05/27 16:53:39
Revision
1.11
Author:
M. Strang SUNY-Buffalo
Date
2008/05/20 14:32:43
Revision
1.9
Author:
M. Strang SUNY-Buffalo
Date
2008/03/13 21:20:31
Revision
1.5
Author:
M. Strang SUNY-Buffalo
Date
2008/05/15 17:50:46
Revision
1.17
Author:
M. Strang SUNY-Buffalo

Definition at line 76 of file GlobalHitsProducer.h.


Member Typedef Documentation

typedef std::vector<float> GlobalHitsProducer::FloatVector

Definition at line 81 of file GlobalHitsProducer.h.


Constructor & Destructor Documentation

GlobalHitsProducer::GlobalHitsProducer ( const edm::ParameterSet iPSet  )  [explicit]

Definition at line 13 of file GlobalHitsProducer.cc.

References ECalEBSrc_, ECalEESrc_, ECalESSrc_, fName, frequency, getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HCalSrc_, edm::InputTag::instance(), label, edm::InputTag::label(), MuonCscSrc_, MuonDtSrc_, MuonRpcSrc_, printProvenanceInfo, PxlBrlHighSrc_, PxlBrlLowSrc_, PxlFwdHighSrc_, PxlFwdLowSrc_, SiTECHighSrc_, SiTECLowSrc_, SiTIBHighSrc_, SiTIBLowSrc_, SiTIDHighSrc_, SiTIDLowSrc_, SiTOBHighSrc_, SiTOBLowSrc_, verbosity, and vtxunit.

00013                                                                    :
00014   fName(""), verbosity(0), frequency(0), vtxunit(0), label(""), 
00015   getAllProvenances(false), printProvenanceInfo(false), nRawGenPart(0), 
00016   //ECalEBSrc_(""), ECalEESrc_(""), ECalESSrc_(""), HCalSrc_(""),
00017   //PxlBrlLowSrc_(""), PxlBrlHighSrc_(""), PxlFwdLowSrc_(""),
00018   //PxlFwdHighSrc_(""), SiTIBLowSrc_(""), SiTIBHighSrc_(""),
00019   //SiTOBLowSrc_(""), SiTOBHighSrc_(""), SiTIDLowSrc_(""), 
00020   //SiTIDHighSrc_(""), SiTECLowSrc_(""), SiTECHighSrc_(""),
00021   //MuonDtSrc_(""), MuonCscSrc_(""), MuonRpcSrc_(""), 
00022   count(0)
00023 {
00024   std::string MsgLoggerCat = "GlobalHitsProducer_GlobalHitsProducer";
00025 
00026   // get information from parameter set
00027   fName = iPSet.getUntrackedParameter<std::string>("Name");
00028   verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
00029   frequency = iPSet.getUntrackedParameter<int>("Frequency");
00030   vtxunit = iPSet.getUntrackedParameter<int>("VtxUnit");
00031   label = iPSet.getParameter<std::string>("Label");
00032   edm::ParameterSet m_Prov =
00033     iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
00034   getAllProvenances = 
00035     m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
00036   printProvenanceInfo = 
00037     m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
00038 
00039   //get Labels to use to extract information
00040   PxlBrlLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc");
00041   PxlBrlHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc");
00042   PxlFwdLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc");
00043   PxlFwdHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc");
00044 
00045   SiTIBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBLowSrc");
00046   SiTIBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBHighSrc");
00047   SiTOBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBLowSrc");
00048   SiTOBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBHighSrc");
00049   SiTIDLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDLowSrc");
00050   SiTIDHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDHighSrc");
00051   SiTECLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTECLowSrc");
00052   SiTECHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTECHighSrc");
00053 
00054   MuonCscSrc_ = iPSet.getParameter<edm::InputTag>("MuonCscSrc");
00055   MuonDtSrc_ = iPSet.getParameter<edm::InputTag>("MuonDtSrc");
00056   MuonRpcSrc_ = iPSet.getParameter<edm::InputTag>("MuonRpcSrc");
00057 
00058   ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
00059   ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
00060   ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
00061 
00062   HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
00063 
00064   // use value of first digit to determine default output level (inclusive)
00065   // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
00066   verbosity %= 10;
00067 
00068   // create persistent object
00069   produces<PGlobalSimHit>(label);
00070 
00071   // print out Parameter Set information being used
00072   if (verbosity >= 0) {
00073     edm::LogInfo(MsgLoggerCat) 
00074       << "\n===============================\n"
00075       << "Initialized as EDProducer with parameter values:\n"
00076       << "    Name          = " << fName << "\n"
00077       << "    Verbosity     = " << verbosity << "\n"
00078       << "    Frequency     = " << frequency << "\n"
00079       << "    VtxUnit       = " << vtxunit << "\n"
00080       << "    Label         = " << label << "\n"
00081       << "    GetProv       = " << getAllProvenances << "\n"
00082       << "    PrintProv     = " << printProvenanceInfo << "\n"
00083       << "    PxlBrlLowSrc  = " << PxlBrlLowSrc_.label() 
00084       << ":" << PxlBrlLowSrc_.instance() << "\n"
00085       << "    PxlBrlHighSrc = " << PxlBrlHighSrc_.label() 
00086       << ":" << PxlBrlHighSrc_.instance() << "\n"
00087       << "    PxlFwdLowSrc  = " << PxlFwdLowSrc_.label() 
00088       << ":" << PxlBrlLowSrc_.instance() << "\n"
00089       << "    PxlFwdHighSrc = " << PxlFwdHighSrc_.label() 
00090       << ":" << PxlBrlHighSrc_.instance() << "\n"
00091       << "    SiTIBLowSrc   = " << SiTIBLowSrc_.label() 
00092       << ":" << SiTIBLowSrc_.instance() << "\n"
00093       << "    SiTIBHighSrc  = " << SiTIBHighSrc_.label() 
00094       << ":" << SiTIBHighSrc_.instance() << "\n"
00095       << "    SiTOBLowSrc   = " << SiTOBLowSrc_.label() 
00096       << ":" << SiTOBLowSrc_.instance() << "\n"
00097       << "    SiTOBHighSrc  = " << SiTOBHighSrc_.label() 
00098       << ":" << SiTOBHighSrc_.instance() << "\n"
00099       << "    SiTIDLowSrc   = " << SiTIDLowSrc_.label() 
00100       << ":" << SiTIDLowSrc_.instance() << "\n"
00101       << "    SiTIDHighSrc  = " << SiTIDHighSrc_.label() 
00102       << ":" << SiTIDHighSrc_.instance() << "\n"
00103       << "    SiTECLowSrc   = " << SiTECLowSrc_.label() 
00104       << ":" << SiTECLowSrc_.instance() << "\n"
00105       << "    SiTECHighSrc  = " << SiTECHighSrc_.label() 
00106       << ":" << SiTECHighSrc_.instance() << "\n"
00107       << "    MuonCscSrc    = " << MuonCscSrc_.label() 
00108       << ":" << MuonCscSrc_.instance() << "\n"
00109       << "    MuonDtSrc     = " << MuonDtSrc_.label() 
00110       << ":" << MuonDtSrc_.instance() << "\n"
00111       << "    MuonRpcSrc    = " << MuonRpcSrc_.label() 
00112       << ":" << MuonRpcSrc_.instance() << "\n"
00113       << "    ECalEBSrc     = " << ECalEBSrc_.label() 
00114       << ":" << ECalEBSrc_.instance() << "\n"
00115       << "    ECalEESrc     = " << ECalEESrc_.label() 
00116       << ":" << ECalEESrc_.instance() << "\n"
00117       << "    ECalESSrc     = " << ECalESSrc_.label() 
00118       << ":" << ECalESSrc_.instance() << "\n"
00119       << "    HCalSrc       = " << HCalSrc_.label() 
00120       << ":" << HCalSrc_.instance() << "\n"
00121       << "===============================\n";
00122   }
00123 }

GlobalHitsProducer::~GlobalHitsProducer (  )  [virtual]

Definition at line 125 of file GlobalHitsProducer.cc.

00126 {
00127 }


Member Function Documentation

void GlobalHitsProducer::beginJob ( const edm::EventSetup iSetup  )  [virtual]

Reimplemented from edm::EDProducer.

Definition at line 129 of file GlobalHitsProducer.cc.

References clear().

00130 {
00131   clear();
00132   return;
00133 }

void GlobalHitsProducer::clear ( void   )  [private]

Definition at line 1524 of file GlobalHitsProducer.cc.

References ECalE, ECalEta, ECalPhi, ECalToF, G4TrkE, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, HCalE, HCalEta, HCalPhi, HCalToF, MuonCscEta, MuonCscPhi, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, nRawGenPart, PreShE, PreShEta, PreShPhi, PreShToF, PxlBrlEta, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdPhi, PxlFwdToF, PxlFwdZ, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, and verbosity.

Referenced by beginJob(), and produce().

01525 {
01526   std::string MsgLoggerCat = "GlobalHitsProducer_clear";
01527 
01528   if (verbosity > 0)
01529     edm::LogInfo(MsgLoggerCat)
01530       << "Clearing event holders"; 
01531 
01532   // reset G4MC info
01533   nRawGenPart = 0;
01534   G4VtxX.clear();
01535   G4VtxY.clear();
01536   G4VtxZ.clear();
01537   G4TrkPt.clear();
01538   G4TrkE.clear();
01539 
01540   // reset electromagnetic info
01541   // reset ECal info
01542   ECalE.clear();
01543   ECalToF.clear();
01544   ECalPhi.clear();
01545   ECalEta.clear();
01546   // reset Preshower info
01547   PreShE.clear();
01548   PreShToF.clear();
01549   PreShPhi.clear();
01550   PreShEta.clear();
01551 
01552   // reset hadronic info
01553   // reset HCal info
01554   HCalE.clear();
01555   HCalToF.clear();
01556   HCalPhi.clear();
01557   HCalEta.clear();
01558 
01559   // reset tracker info
01560   // reset Pixel info
01561   PxlBrlToF.clear(); 
01562   PxlBrlR.clear(); 
01563   PxlBrlPhi.clear(); 
01564   PxlBrlEta.clear(); 
01565   PxlFwdToF.clear(); 
01566   PxlFwdZ.clear();
01567   PxlFwdPhi.clear(); 
01568   PxlFwdEta.clear();
01569   // reset strip info
01570   SiBrlToF.clear(); 
01571   SiBrlR.clear(); 
01572   SiBrlPhi.clear(); 
01573   SiBrlEta.clear(); 
01574   SiFwdToF.clear(); 
01575   SiFwdZ.clear();
01576   SiFwdPhi.clear(); 
01577   SiFwdEta.clear();
01578 
01579   // reset muon info
01580   // reset muon DT info
01581   MuonDtToF.clear(); 
01582   MuonDtR.clear();
01583   MuonDtPhi.clear();
01584   MuonDtEta.clear();
01585   // reset muon CSC info
01586   MuonCscToF.clear(); 
01587   MuonCscZ.clear();
01588   MuonCscPhi.clear();
01589   MuonCscEta.clear();
01590   // rest muon RPC info
01591   MuonRpcBrlToF.clear(); 
01592   MuonRpcBrlR.clear();
01593   MuonRpcBrlPhi.clear();
01594   MuonRpcBrlEta.clear(); 
01595   MuonRpcFwdToF.clear(); 
01596   MuonRpcFwdZ.clear();
01597   MuonRpcFwdPhi.clear();
01598   MuonRpcFwdEta.clear();
01599 
01600   return;
01601 }

void GlobalHitsProducer::endJob ( void   )  [virtual]

Reimplemented from edm::EDProducer.

Definition at line 135 of file GlobalHitsProducer.cc.

References count, and verbosity.

00136 {
00137   std::string MsgLoggerCat = "GlobalHitsProducer_endJob";
00138   if (verbosity >= 0)
00139     edm::LogInfo(MsgLoggerCat) 
00140       << "Terminating having processed " << count << " events.";
00141   return;
00142 }

void GlobalHitsProducer::fillECal ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [private]

Definition at line 1188 of file GlobalHitsProducer.cc.

References dEcal, ECalE, ECalEBSrc_, ECalEESrc_, ECalESSrc_, ECalEta, ECalPhi, ECalToF, PV3DBase< T, PVType, FrameType >::eta(), edm::EventSetup::get(), edm::Event::getByLabel(), CaloGeometry::getGeometry(), CaloCellGeometry::getPosition(), i, edm::Handle< T >::isValid(), edm::ESHandle< T >::isValid(), j, PV3DBase< T, PVType, FrameType >::phi(), PreShE, PreShEta, PreShPhi, PreShToF, sdEcalBrl, sdEcalFwd, sdEcalPS, and verbosity.

Referenced by produce().

01190 {
01191   std::string MsgLoggerCat = "GlobalHitsProducer_fillECal";
01192 
01193   TString eventout;
01194   if (verbosity > 0)
01195     eventout = "\nGathering info:";  
01196   
01197   // access the calorimeter geometry
01198   edm::ESHandle<CaloGeometry> theCaloGeometry;
01199   iSetup.get<CaloGeometryRecord>().get(theCaloGeometry);
01200   if (!theCaloGeometry.isValid()) {
01201     edm::LogWarning(MsgLoggerCat)
01202       << "Unable to find CaloGeometryRecord in event!";
01203     return;
01204   }
01205   const CaloGeometry& theCalo(*theCaloGeometry);
01206     
01207   // iterator to access containers
01208   edm::PCaloHitContainer::const_iterator itHit;
01209 
01211   // get  ECal information
01213   edm::PCaloHitContainer theECalHits;
01214   // extract EB container
01215   edm::Handle<edm::PCaloHitContainer> EBContainer;
01216   iEvent.getByLabel(ECalEBSrc_,EBContainer);
01217   if (!EBContainer.isValid()) {
01218     edm::LogWarning(MsgLoggerCat)
01219       << "Unable to find EcalHitsEB in event!";
01220     return;
01221   }
01222   // extract EE container
01223   edm::Handle<edm::PCaloHitContainer> EEContainer;
01224   iEvent.getByLabel(ECalEESrc_,EEContainer);
01225   if (!EEContainer.isValid()) {
01226     edm::LogWarning(MsgLoggerCat)
01227       << "Unable to find EcalHitsEE in event!";
01228     return;
01229   }
01230   // place both containers into new container
01231   theECalHits.insert(theECalHits.end(),EBContainer->begin(),
01232                        EBContainer->end());
01233   theECalHits.insert(theECalHits.end(),EEContainer->begin(),
01234                        EEContainer->end());
01235 
01236   // cycle through new container
01237   int i = 0, j = 0;
01238   for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
01239 
01240     ++i;
01241 
01242     // create a DetId from the detUnitId
01243     DetId theDetUnitId(itHit->id());
01244     int detector = theDetUnitId.det();
01245     int subdetector = theDetUnitId.subdetId();
01246 
01247     // check that expected detector is returned
01248     if ((detector == dEcal) && 
01249         ((subdetector == sdEcalBrl) ||
01250          (subdetector == sdEcalFwd))) {
01251 
01252       // get the Cell geometry
01253       const CaloCellGeometry *theDet = theCalo.
01254         getSubdetectorGeometry(theDetUnitId)->getGeometry(theDetUnitId);
01255 
01256       if (!theDet) {
01257         edm::LogWarning(MsgLoggerCat)
01258           << "Unable to get CaloCellGeometry from ECalHits for Hit " << i;
01259         continue;
01260       }
01261 
01262       ++j;
01263 
01264       // get the global position of the cell
01265       const GlobalPoint& globalposition = theDet->getPosition();
01266 
01267       // gather necessary information
01268       ECalE.push_back(itHit->energy());
01269       ECalToF.push_back(itHit->time());
01270       ECalPhi.push_back(globalposition.phi());
01271       ECalEta.push_back(globalposition.eta());
01272 
01273     } else {
01274       edm::LogWarning(MsgLoggerCat)
01275         << "ECal PCaloHit " << i 
01276         << " is expected to be (det,subdet) = (" 
01277         << dEcal << "," << sdEcalBrl
01278         << " || " << sdEcalFwd << "); value returned is: ("
01279         << detector << "," << subdetector << ")";
01280       continue;
01281     } // end detector type check
01282   } // end loop through ECal Hits
01283 
01284   if (verbosity > 1) {
01285     eventout += "\n          Number of ECal Hits collected:............. ";
01286     eventout += j;
01287   }  
01288 
01290   // Get Preshower information
01292   // extract PreShower container
01293   edm::Handle<edm::PCaloHitContainer> PreShContainer;
01294   iEvent.getByLabel(ECalESSrc_,PreShContainer);
01295   if (!PreShContainer.isValid()) {
01296     edm::LogWarning(MsgLoggerCat)
01297       << "Unable to find EcalHitsES in event!";
01298     return;
01299   }
01300 
01301   // cycle through container
01302   i = 0, j = 0;
01303   for (itHit = PreShContainer->begin(); 
01304        itHit != PreShContainer->end(); ++itHit) {
01305 
01306     ++i;
01307 
01308     // create a DetId from the detUnitId
01309     DetId theDetUnitId(itHit->id());
01310     int detector = theDetUnitId.det();
01311     int subdetector = theDetUnitId.subdetId();
01312 
01313     // check that expected detector is returned
01314     if ((detector == dEcal) && 
01315         (subdetector == sdEcalPS)) {
01316 
01317       // get the Cell geometry
01318       const CaloCellGeometry *theDet = theCalo.
01319         getSubdetectorGeometry(theDetUnitId)->getGeometry(theDetUnitId);
01320 
01321       if (!theDet) {
01322         edm::LogWarning(MsgLoggerCat)
01323           << "Unable to get CaloCellGeometry from PreShContainer for Hit " 
01324           << i;
01325         continue;
01326       }
01327 
01328       ++j;
01329 
01330       // get the global position of the cell
01331       const GlobalPoint& globalposition = theDet->getPosition();
01332 
01333       // gather necessary information
01334       PreShE.push_back(itHit->energy());
01335       PreShToF.push_back(itHit->time());
01336       PreShPhi.push_back(globalposition.phi());
01337       PreShEta.push_back(globalposition.eta());
01338 
01339     } else {
01340       edm::LogWarning(MsgLoggerCat)
01341         << "PreSh PCaloHit " << i 
01342         << " is expected to be (det,subdet) = (" 
01343         << dEcal << "," << sdEcalPS
01344         << "); value returned is: ("
01345         << detector << "," << subdetector << ")";
01346       continue;
01347     } // end detector type check
01348   } // end loop through PreShower Hits
01349 
01350   if (verbosity > 1) {
01351     eventout += "\n          Number of PreSh Hits collected:............ ";
01352     eventout += j;
01353   }  
01354 
01355   if (verbosity > 0)
01356     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01357 
01358   return;
01359 }

void GlobalHitsProducer::fillG4MC ( edm::Event iEvent  )  [private]

Definition at line 246 of file GlobalHitsProducer.cc.

References G4TrkE, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, edm::Event::getByType(), edm::Event::getManyByType(), i, edm::Handle< T >::isValid(), moduleLabel(), nRawGenPart, edm::Handle< T >::provenance(), funct::sqrt(), verbosity, and vtxunit.

Referenced by produce().

00247 {
00248 
00249   std::string MsgLoggerCat = "GlobalHitsProducer_fillG4MC";
00250  
00251   TString eventout;
00252   if (verbosity > 0)
00253     eventout = "\nGathering info:";
00254 
00256   // get MC information
00258   edm::Handle<edm::HepMCProduct> HepMCEvt;
00259   std::vector<edm::Handle<edm::HepMCProduct> > AllHepMCEvt;
00260   iEvent.getManyByType(AllHepMCEvt);
00261 
00262   // loop through products and extract VtxSmearing if available. Any of them
00263   // should have the information needed
00264   for (unsigned int i = 0; i < AllHepMCEvt.size(); ++i) {
00265     HepMCEvt = AllHepMCEvt[i];
00266     if ((HepMCEvt.provenance()->product()).moduleLabel() == "VtxSmeared")
00267       break;
00268   }
00269 
00270   if (!HepMCEvt.isValid()) {
00271     edm::LogWarning(MsgLoggerCat)
00272       << "Unable to find HepMCProduct in event!";
00273     return;
00274   } else {
00275     eventout += "\n          Using HepMCProduct: ";
00276     eventout += (HepMCEvt.provenance()->product()).moduleLabel();
00277   }
00278   const HepMC::GenEvent* MCEvt = HepMCEvt->GetEvent();
00279   nRawGenPart = MCEvt->particles_size();
00280 
00281   if (verbosity > 1) {
00282     eventout += "\n          Number of Raw Particles collected:......... ";
00283     eventout += nRawGenPart;
00284   }  
00285 
00287   // get G4Vertex information
00289   // convert unit stored in SimVertex to mm
00290   float unit = 0.;
00291   if (vtxunit == 0) unit = 1.;  // already in mm
00292   if (vtxunit == 1) unit = 10.; // stored in cm, convert to mm
00293 
00294   edm::Handle<edm::SimVertexContainer> G4VtxContainer;
00295   iEvent.getByType(G4VtxContainer);
00296   if (!G4VtxContainer.isValid()) {
00297     edm::LogWarning(MsgLoggerCat)
00298       << "Unable to find SimVertex in event!";
00299     return;
00300   }
00301   int i = 0;
00302   edm::SimVertexContainer::const_iterator itVtx;
00303   for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); 
00304        ++itVtx) {
00305     
00306     ++i;
00307 
00308     const math::XYZTLorentzVector G4Vtx1(itVtx->position().x(),
00309                                          itVtx->position().y(),
00310                                          itVtx->position().z(),
00311                                          itVtx->position().e());
00312     double G4Vtx[4];
00313     G4Vtx1.GetCoordinates(G4Vtx);
00314 
00315     G4VtxX.push_back((G4Vtx[0]*unit)/micrometer);
00316     G4VtxY.push_back((G4Vtx[1]*unit)/micrometer);
00317     G4VtxZ.push_back((G4Vtx[2]*unit)/millimeter);
00318   }
00319 
00320   if (verbosity > 1) {
00321     eventout += "\n          Number of G4Vertices collected:............ ";
00322     eventout += i;
00323   }  
00324 
00326   // get G4Track information
00328   edm::Handle<edm::SimTrackContainer> G4TrkContainer;
00329   iEvent.getByType(G4TrkContainer);
00330   if (!G4TrkContainer.isValid()) {
00331     edm::LogWarning(MsgLoggerCat)
00332       << "Unable to find SimTrack in event!";
00333     return;
00334   }
00335   i = 0;
00336   edm::SimTrackContainer::const_iterator itTrk;
00337   for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); 
00338        ++itTrk) {
00339 
00340     ++i;
00341 
00342     const math::XYZTLorentzVector G4Trk1(itTrk->momentum().x(),
00343                                          itTrk->momentum().y(),
00344                                          itTrk->momentum().z(),
00345                                          itTrk->momentum().e());
00346     double G4Trk[4];
00347     G4Trk1.GetCoordinates(G4Trk);
00348 
00349     G4TrkPt.push_back(sqrt(G4Trk[0]*G4Trk[0]+G4Trk[1]*G4Trk[1])); //GeV
00350     G4TrkE.push_back(G4Trk[3]);                                   //GeV
00351   } 
00352 
00353   if (verbosity > 1) {
00354     eventout += "\n          Number of G4Tracks collected:.............. ";
00355     eventout += i;
00356   }  
00357 
00358   if (verbosity > 0)
00359     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00360 
00361   return;
00362 }

void GlobalHitsProducer::fillHCal ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [private]

Definition at line 1401 of file GlobalHitsProducer.cc.

References dHcal, PV3DBase< T, PVType, FrameType >::eta(), edm::EventSetup::get(), edm::Event::getByLabel(), CaloGeometry::getGeometry(), CaloCellGeometry::getPosition(), HCalE, HCalEta, HCalPhi, HCalSrc_, HCalToF, i, edm::Handle< T >::isValid(), edm::ESHandle< T >::isValid(), j, PV3DBase< T, PVType, FrameType >::phi(), sdHcalBrl, sdHcalEC, sdHcalFwd, sdHcalOut, and verbosity.

Referenced by produce().

01403 {
01404   std::string MsgLoggerCat = "GlobalHitsProducer_fillHCal";
01405 
01406   TString eventout;
01407   if (verbosity > 0)
01408     eventout = "\nGathering info:";  
01409   
01410   // access the calorimeter geometry
01411   edm::ESHandle<CaloGeometry> theCaloGeometry;
01412   iSetup.get<CaloGeometryRecord>().get(theCaloGeometry);
01413   if (!theCaloGeometry.isValid()) {
01414     edm::LogWarning(MsgLoggerCat)
01415       << "Unable to find CaloGeometryRecord in event!";
01416     return;
01417   }
01418   const CaloGeometry& theCalo(*theCaloGeometry);
01419     
01420   // iterator to access containers
01421   edm::PCaloHitContainer::const_iterator itHit;
01422 
01424   // get  HCal information
01426   // extract HCal container
01427   edm::Handle<edm::PCaloHitContainer> HCalContainer;
01428   iEvent.getByLabel(HCalSrc_,HCalContainer);
01429   if (!HCalContainer.isValid()) {
01430     edm::LogWarning(MsgLoggerCat)
01431       << "Unable to find HCalHits in event!";
01432     return;
01433   }
01434 
01435   // cycle through container
01436   int i = 0, j = 0;
01437   for (itHit = HCalContainer->begin(); 
01438        itHit != HCalContainer->end(); ++itHit) {
01439 
01440     ++i;
01441 
01442     // create a DetId from the detUnitId
01443     DetId theDetUnitId(itHit->id());
01444     int detector = theDetUnitId.det();
01445     int subdetector = theDetUnitId.subdetId();
01446 
01447     // check that expected detector is returned
01448     if ((detector == dHcal) && 
01449         ((subdetector == sdHcalBrl) ||
01450          (subdetector == sdHcalEC) ||
01451          (subdetector == sdHcalOut) ||
01452          (subdetector == sdHcalFwd))) {
01453 
01454       // get the Cell geometry
01455       const CaloCellGeometry *theDet = theCalo.
01456         getSubdetectorGeometry(theDetUnitId)->getGeometry(theDetUnitId);
01457 
01458       if (!theDet) {
01459         edm::LogWarning(MsgLoggerCat)
01460           << "Unable to get CaloCellGeometry from HCalContainer for Hit " << i;
01461         continue;
01462       }
01463 
01464       ++j;
01465 
01466       // get the global position of the cell
01467       const GlobalPoint& globalposition = theDet->getPosition();
01468 
01469       // gather necessary information
01470       HCalE.push_back(itHit->energy());
01471       HCalToF.push_back(itHit->time());
01472       HCalPhi.push_back(globalposition.phi());
01473       HCalEta.push_back(globalposition.eta());
01474 
01475     } else {
01476       edm::LogWarning(MsgLoggerCat)
01477         << "HCal PCaloHit " << i 
01478         << " is expected to be (det,subdet) = (" 
01479         << dHcal << "," << sdHcalBrl
01480         << " || " << sdHcalEC << " || " << sdHcalOut << " || " << sdHcalFwd
01481         << "); value returned is: ("
01482         << detector << "," << subdetector << ")";
01483       continue;
01484     } // end detector type check
01485   } // end loop through HCal Hits
01486 
01487   if (verbosity > 1) {
01488     eventout += "\n          Number of HCal Hits collected:............. ";
01489     eventout += j;
01490   }  
01491 
01492   if (verbosity > 0)
01493     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01494 
01495   return;
01496 }

void GlobalHitsProducer::fillMuon ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [private]

Definition at line 842 of file GlobalHitsProducer.cc.

References dMuon, eta, edm::EventSetup::get(), edm::Event::getByLabel(), i, CSCGeometry::idToDetUnit(), RPCGeometry::idToDetUnit(), edm::Handle< T >::isValid(), edm::ESHandle< T >::isValid(), j, DTGeometry::layer(), MuonCscEta, MuonCscPhi, MuonCscSrc_, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtSrc_, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, MuonRpcSrc_, muonGeometry::perp(), phi, sdMuonCSC, sdMuonDT, sdMuonRPC, sdMuonRPCRgnBrl, sdMuonRPCRgnFwdn, sdMuonRPCRgnFwdp, GeomDet::surface(), Surface::toGlobal(), verbosity, and z.

Referenced by produce().

00844 {
00845   std::string MsgLoggerCat = "GlobalHitsProducer_fillMuon";
00846 
00847   TString eventout;
00848   if (verbosity > 0)
00849     eventout = "\nGathering info:";  
00850 
00851   // iterator to access containers
00852   edm::PSimHitContainer::const_iterator itHit;
00853 
00854   //int i = 0, j = 0;
00856   // access the CSC Muon
00858   // access the CSC Muon geometry
00859   edm::ESHandle<CSCGeometry> theCSCGeometry;
00860   iSetup.get<MuonGeometryRecord>().get(theCSCGeometry);
00861   if (!theCSCGeometry.isValid()) {
00862     edm::LogWarning(MsgLoggerCat)
00863       << "Unable to find MuonGeometryRecord for the CSCGeometry in event!";
00864     return;
00865   }
00866   const CSCGeometry& theCSCMuon(*theCSCGeometry);
00867 
00868   // get Muon CSC information
00869   edm::Handle<edm::PSimHitContainer> MuonCSCContainer;
00870   iEvent.getByLabel(MuonCscSrc_,MuonCSCContainer);
00871   if (!MuonCSCContainer.isValid()) {
00872     edm::LogWarning(MsgLoggerCat)
00873       << "Unable to find MuonCSCHits in event!";
00874     return;
00875   }
00876 
00877   // cycle through container
00878   int i = 0, j = 0;
00879   for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end(); 
00880        ++itHit) {
00881 
00882     ++i;
00883 
00884     // create a DetId from the detUnitId
00885     DetId theDetUnitId(itHit->detUnitId());
00886     int detector = theDetUnitId.det();
00887     int subdetector = theDetUnitId.subdetId();
00888 
00889     // check that expected detector is returned
00890     if ((detector == dMuon) && 
00891         (subdetector == sdMuonCSC)) {
00892 
00893       // get the GeomDetUnit from the geometry using theDetUnitID
00894       const GeomDetUnit *theDet = theCSCMuon.idToDetUnit(theDetUnitId);
00895     
00896       if (!theDet) {
00897         edm::LogWarning(MsgLoggerCat)
00898           << "Unable to get GeomDetUnit from theCSCMuon for hit " << i;
00899         continue;
00900       }
00901      
00902       ++j;
00903 
00904       // get the Surface of the hit (knows how to go from local <-> global)
00905       const BoundPlane& bSurface = theDet->surface();
00906     
00907       // gather necessary information
00908       MuonCscToF.push_back(itHit->tof());
00909       MuonCscZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
00910       MuonCscPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00911       MuonCscEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00912     } else {
00913       edm::LogWarning(MsgLoggerCat)
00914         << "MuonCsc PSimHit " << i 
00915         << " is expected to be (det,subdet) = (" 
00916         << dMuon << "," << sdMuonCSC
00917         << "); value returned is: ("
00918         << detector << "," << subdetector << ")";
00919       continue;
00920     } // end detector type check
00921   } // end loop through CSC Hits
00922 
00923   if (verbosity > 1) {
00924     eventout += "\n          Number of CSC muon Hits collected:......... ";
00925     eventout += j;
00926   }  
00927 
00928   //i = 0, j = 0;
00930   // access the DT Muon
00932   // access the DT Muon geometry
00933   edm::ESHandle<DTGeometry> theDTGeometry;
00934   iSetup.get<MuonGeometryRecord>().get(theDTGeometry);
00935   if (!theDTGeometry.isValid()) {
00936     edm::LogWarning(MsgLoggerCat)
00937       << "Unable to find MuonGeometryRecord for the DTGeometry in event!";
00938     return;
00939   }
00940   const DTGeometry& theDTMuon(*theDTGeometry);
00941 
00942   // get Muon DT information
00943   edm::Handle<edm::PSimHitContainer> MuonDtContainer;
00944   iEvent.getByLabel(MuonDtSrc_,MuonDtContainer);
00945   if (!MuonDtContainer.isValid()) {
00946     edm::LogWarning(MsgLoggerCat)
00947       << "Unable to find MuonDTHits in event!";
00948     return;
00949   }
00950 
00951   // cycle through container
00952   i = 0, j = 0;
00953   for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end(); 
00954        ++itHit) {
00955 
00956     ++i;
00957 
00958     // create a DetId from the detUnitId
00959     DetId theDetUnitId(itHit->detUnitId());
00960     int detector = theDetUnitId.det();
00961     int subdetector = theDetUnitId.subdetId();
00962 
00963     // check that expected detector is returned
00964     if ((detector == dMuon) && 
00965         (subdetector == sdMuonDT)) {
00966 
00967       // CSC uses wires and layers rather than the full detID
00968       // get the wireId
00969       DTWireId wireId(itHit->detUnitId());
00970 
00971       // get the DTLayer from the geometry using the wireID
00972       const DTLayer *theDet = theDTMuon.layer(wireId.layerId());
00973 
00974       if (!theDet) {
00975         edm::LogWarning(MsgLoggerCat)
00976           << "Unable to get GeomDetUnit from theDtMuon for hit " << i;
00977         continue;
00978       }
00979      
00980       ++j;
00981 
00982       // get the Surface of the hit (knows how to go from local <-> global)
00983       const BoundPlane& bSurface = theDet->surface();
00984     
00985       // gather necessary information
00986       MuonDtToF.push_back(itHit->tof());
00987       MuonDtR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
00988       MuonDtPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00989       MuonDtEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00990     } else {
00991       edm::LogWarning(MsgLoggerCat)
00992         << "MuonDt PSimHit " << i 
00993         << " is expected to be (det,subdet) = (" 
00994         << dMuon << "," << sdMuonDT
00995         << "); value returned is: ("
00996         << detector << "," << subdetector << ")";
00997       continue;
00998     } // end detector type check
00999   } // end loop through DT Hits
01000 
01001   if (verbosity > 1) {
01002     eventout += "\n          Number of DT muon Hits collected:.......... ";
01003     eventout += j;
01004   } 
01005 
01006   //i = 0, j = 0;
01007   //int RPCBrl = 0, RPCFwd = 0;
01009   // access the RPC Muon
01011   // access the RPC Muon geometry
01012   edm::ESHandle<RPCGeometry> theRPCGeometry;
01013   iSetup.get<MuonGeometryRecord>().get(theRPCGeometry);
01014   if (!theRPCGeometry.isValid()) {
01015     edm::LogWarning(MsgLoggerCat)
01016       << "Unable to find MuonGeometryRecord for the RPCGeometry in event!";
01017     return;
01018   }
01019   const RPCGeometry& theRPCMuon(*theRPCGeometry);
01020 
01021   // get Muon RPC information
01022   edm::Handle<edm::PSimHitContainer> MuonRPCContainer;
01023   iEvent.getByLabel(MuonRpcSrc_,MuonRPCContainer);
01024   if (!MuonRPCContainer.isValid()) {
01025     edm::LogWarning(MsgLoggerCat)
01026       << "Unable to find MuonRPCHits in event!";
01027     return;
01028   }
01029 
01030   // cycle through container
01031   i = 0, j = 0;
01032   int RPCBrl =0, RPCFwd = 0;
01033   for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end(); 
01034        ++itHit) {
01035 
01036     ++i;
01037 
01038     // create a DetID from the detUnitId
01039     DetId theDetUnitId(itHit->detUnitId());
01040     int detector = theDetUnitId.det();
01041     int subdetector = theDetUnitId.subdetId();
01042 
01043     // check that expected detector is returned
01044     if ((detector == dMuon) && 
01045         (subdetector == sdMuonRPC)) {
01046       
01047       // get an RPCDetID from the detUnitID
01048       RPCDetId RPCId(itHit->detUnitId());      
01049 
01050       // find the region of the RPC hit
01051       int region = RPCId.region();
01052 
01053       // get the GeomDetUnit from the geometry using the RPCDetId
01054       const GeomDetUnit *theDet = theRPCMuon.idToDetUnit(theDetUnitId);
01055 
01056       if (!theDet) {
01057         edm::LogWarning(MsgLoggerCat)
01058           << "Unable to get GeomDetUnit from theRPCMuon for hit " << i;
01059         continue;
01060       }
01061 
01062       ++j;
01063 
01064       // get the Surface of the hit (knows how to go from local <-> global)
01065       const BoundPlane& bSurface = theDet->surface();
01066     
01067       // gather necessary information
01068       if ((region == sdMuonRPCRgnFwdp) || (region == sdMuonRPCRgnFwdn)) {
01069         ++RPCFwd;
01070 
01071         MuonRpcFwdToF.push_back(itHit->tof());
01072         MuonRpcFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
01073         MuonRpcFwdPhi.
01074           push_back(bSurface.toGlobal(itHit->localPosition()).phi());
01075         MuonRpcFwdEta.
01076           push_back(bSurface.toGlobal(itHit->localPosition()).eta());
01077       } else if (region == sdMuonRPCRgnBrl) {
01078         ++RPCBrl;
01079 
01080         MuonRpcBrlToF.push_back(itHit->tof());
01081         MuonRpcBrlR.
01082           push_back(bSurface.toGlobal(itHit->localPosition()).perp());
01083         MuonRpcBrlPhi.
01084           push_back(bSurface.toGlobal(itHit->localPosition()).phi());
01085         MuonRpcBrlEta.
01086           push_back(bSurface.toGlobal(itHit->localPosition()).eta());   
01087       } else {
01088         edm::LogWarning(MsgLoggerCat)
01089           << "Invalid region for RPC Muon hit" << i;
01090         continue;
01091       } // end check of region
01092     } else {
01093       edm::LogWarning(MsgLoggerCat)
01094         << "MuonRpc PSimHit " << i 
01095         << " is expected to be (det,subdet) = (" 
01096         << dMuon << "," << sdMuonRPC
01097         << "); value returned is: ("
01098         << detector << "," << subdetector << ")";
01099       continue;
01100     } // end detector type check
01101   } // end loop through RPC Hits
01102 
01103   if (verbosity > 1) {
01104     eventout += "\n          Number of RPC muon Hits collected:......... ";
01105     eventout += j;
01106     eventout += "\n                    RPC Barrel muon Hits:............ ";
01107     eventout += RPCBrl;
01108     eventout += "\n                    RPC Forward muon Hits:........... ";
01109     eventout += RPCFwd;    
01110   }  
01111 
01112   if (verbosity > 0)
01113     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01114 
01115   return;
01116 }

void GlobalHitsProducer::fillTrk ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [private]

Definition at line 401 of file GlobalHitsProducer.cc.

References dTrk, eta, edm::EventSetup::get(), edm::Event::getByLabel(), i, TrackerGeometry::idToDetUnit(), edm::Handle< T >::isValid(), edm::ESHandle< T >::isValid(), j, muonGeometry::perp(), phi, PxlBrlEta, PxlBrlHighSrc_, PxlBrlLowSrc_, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdHighSrc_, PxlFwdLowSrc_, PxlFwdPhi, PxlFwdToF, PxlFwdZ, sdPxlBrl, sdPxlFwd, sdSiTEC, sdSiTIB, sdSiTID, sdSiTOB, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, SiTECHighSrc_, SiTECLowSrc_, SiTIBHighSrc_, SiTIBLowSrc_, SiTIDHighSrc_, SiTIDLowSrc_, SiTOBHighSrc_, SiTOBLowSrc_, GeomDet::surface(), Surface::toGlobal(), verbosity, and z.

Referenced by produce().

00403 {
00404   std::string MsgLoggerCat = "GlobalHitsProducer_fillTrk";
00405 
00406   TString eventout;
00407   if (verbosity > 0)
00408     eventout = "\nGathering info:";  
00409   
00410   // access the tracker geometry
00411   edm::ESHandle<TrackerGeometry> theTrackerGeometry;
00412   iSetup.get<TrackerDigiGeometryRecord>().get(theTrackerGeometry);
00413   if (!theTrackerGeometry.isValid()) {
00414     edm::LogWarning(MsgLoggerCat)
00415       << "Unable to find TrackerDigiGeometryRecord in event!";
00416     return;
00417   }
00418   const TrackerGeometry& theTracker(*theTrackerGeometry);
00419     
00420   // iterator to access containers
00421   edm::PSimHitContainer::const_iterator itHit;
00422 
00424   // get Pixel Barrel information
00426   edm::PSimHitContainer thePxlBrlHits;
00427   // extract low container
00428   edm::Handle<edm::PSimHitContainer> PxlBrlLowContainer;
00429   iEvent.getByLabel(PxlBrlLowSrc_,PxlBrlLowContainer);
00430   if (!PxlBrlLowContainer.isValid()) {
00431     edm::LogWarning(MsgLoggerCat)
00432       << "Unable to find TrackerHitsPixelBarrelLowTof in event!";
00433     return;
00434   }
00435   // extract high container
00436   edm::Handle<edm::PSimHitContainer> PxlBrlHighContainer;
00437   iEvent.getByLabel(PxlBrlHighSrc_,PxlBrlHighContainer);
00438   if (!PxlBrlHighContainer.isValid()) {
00439     edm::LogWarning(MsgLoggerCat)
00440       << "Unable to find TrackerHitsPixelBarrelHighTof in event!";
00441     return;
00442   }
00443   // place both containers into new container
00444   thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlLowContainer->begin(),
00445                        PxlBrlLowContainer->end());
00446   thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlHighContainer->begin(),
00447                        PxlBrlHighContainer->end());
00448 
00449   // cycle through new container
00450   int i = 0, j = 0;
00451   for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
00452 
00453     ++i;
00454 
00455     // create a DetId from the detUnitId
00456     DetId theDetUnitId(itHit->detUnitId());
00457     int detector = theDetUnitId.det();
00458     int subdetector = theDetUnitId.subdetId();
00459 
00460     // check that expected detector is returned
00461     if ((detector == dTrk) && (subdetector == sdPxlBrl)) {
00462 
00463       // get the GeomDetUnit from the geometry using theDetUnitID
00464       const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
00465 
00466       if (!theDet) {
00467         edm::LogWarning(MsgLoggerCat)
00468           << "Unable to get GeomDetUnit from PxlBrlHits for Hit " << i;
00469         continue;
00470       }
00471 
00472       ++j;
00473 
00474       // get the Surface of the hit (knows how to go from local <-> global)
00475       const BoundPlane& bSurface = theDet->surface();
00476 
00477       // gather necessary information
00478       PxlBrlToF.push_back(itHit->tof());
00479       PxlBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
00480       PxlBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00481       PxlBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00482 
00483     } else {
00484       edm::LogWarning(MsgLoggerCat)
00485         << "PxlBrl PSimHit " << i 
00486         << " is expected to be (det,subdet) = (" 
00487         << dTrk << "," << sdPxlBrl
00488         << "); value returned is: ("
00489         << detector << "," << subdetector << ")";
00490       continue;
00491     } // end detector type check
00492   } // end loop through PxlBrl Hits
00493 
00494   if (verbosity > 1) {
00495     eventout += "\n          Number of Pixel Barrel Hits collected:..... ";
00496     eventout += j;
00497   }  
00498   
00500   // get Pixel Forward information
00502   edm::PSimHitContainer thePxlFwdHits;
00503   // extract low container
00504   edm::Handle<edm::PSimHitContainer> PxlFwdLowContainer;
00505   iEvent.getByLabel(PxlFwdLowSrc_,PxlFwdLowContainer);
00506   if (!PxlFwdLowContainer.isValid()) {
00507     edm::LogWarning(MsgLoggerCat)
00508       << "Unable to find TrackerHitsPixelEndcapLowTof in event!";
00509     return;
00510   }
00511   // extract high container
00512   edm::Handle<edm::PSimHitContainer> PxlFwdHighContainer;
00513   iEvent.getByLabel(PxlFwdHighSrc_,PxlFwdHighContainer);
00514   if (!PxlFwdHighContainer.isValid()) {
00515     edm::LogWarning("GlobalHitsProducer_fillTrk")
00516       << "Unable to find TrackerHitsPixelEndcapHighTof in event!";
00517     return;
00518   }
00519   // place both containers into new container
00520   thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdLowContainer->begin(),
00521                        PxlFwdLowContainer->end());
00522   thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdHighContainer->begin(),
00523                        PxlFwdHighContainer->end());
00524 
00525   // cycle through new container
00526   i = 0; j = 0;
00527   for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
00528 
00529     ++i;
00530 
00531     // create a DetId from the detUnitId
00532     DetId theDetUnitId(itHit->detUnitId());
00533     int detector = theDetUnitId.det();
00534     int subdetector = theDetUnitId.subdetId();
00535 
00536     // check that expected detector is returned
00537     if ((detector == dTrk) && (subdetector == sdPxlFwd)) {
00538 
00539       // get the GeomDetUnit from the geometry using theDetUnitID
00540       const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
00541 
00542       if (!theDet) {
00543         edm::LogWarning(MsgLoggerCat)
00544           << "Unable to get GeomDetUnit from PxlFwdHits for Hit " << i;;
00545         continue;
00546       }
00547 
00548       ++j;
00549 
00550       // get the Surface of the hit (knows how to go from local <-> global)
00551       const BoundPlane& bSurface = theDet->surface();
00552 
00553       // gather necessary information
00554       PxlFwdToF.push_back(itHit->tof());
00555       PxlFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
00556       PxlFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00557       PxlFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00558     } else {
00559       edm::LogWarning(MsgLoggerCat)
00560         << "PxlFwd PSimHit " << i 
00561         << " is expected to be (det,subdet) = (" 
00562         << dTrk << "," << sdPxlFwd
00563         << "); value returned is: ("
00564         << detector << "," << subdetector << ")";
00565       continue;
00566     } // end detector type check
00567   } // end loop through PxlFwd Hits
00568 
00569   if (verbosity > 1) {
00570     eventout += "\n          Number of Pixel Forward Hits collected:.... ";
00571     eventout += j;
00572   }  
00573 
00575   // get Silicon Barrel information
00577   edm::PSimHitContainer theSiBrlHits;
00578   // extract TIB low container
00579   edm::Handle<edm::PSimHitContainer> SiTIBLowContainer;
00580   iEvent.getByLabel(SiTIBLowSrc_,SiTIBLowContainer);
00581   if (!SiTIBLowContainer.isValid()) {
00582     edm::LogWarning(MsgLoggerCat)
00583       << "Unable to find TrackerHitsTIBLowTof in event!";
00584     return;
00585   }
00586   // extract TIB high container
00587   edm::Handle<edm::PSimHitContainer> SiTIBHighContainer;
00588   iEvent.getByLabel(SiTIBHighSrc_,SiTIBHighContainer);
00589   if (!SiTIBHighContainer.isValid()) {
00590     edm::LogWarning(MsgLoggerCat)
00591       << "Unable to find TrackerHitsTIBHighTof in event!";
00592     return;
00593   }
00594   // extract TOB low container
00595   edm::Handle<edm::PSimHitContainer> SiTOBLowContainer;
00596   iEvent.getByLabel(SiTOBLowSrc_,SiTOBLowContainer);
00597   if (!SiTOBLowContainer.isValid()) {
00598     edm::LogWarning(MsgLoggerCat)
00599       << "Unable to find TrackerHitsTOBLowTof in event!";
00600     return;
00601   }
00602   // extract TOB high container
00603   edm::Handle<edm::PSimHitContainer> SiTOBHighContainer;
00604   iEvent.getByLabel(SiTOBHighSrc_,SiTOBHighContainer);
00605   if (!SiTOBHighContainer.isValid()) {
00606     edm::LogWarning(MsgLoggerCat)
00607       << "Unable to find TrackerHitsTOBHighTof in event!";
00608     return;
00609   }
00610   // place all containers into new container
00611   theSiBrlHits.insert(theSiBrlHits.end(),SiTIBLowContainer->begin(),
00612                        SiTIBLowContainer->end());
00613   theSiBrlHits.insert(theSiBrlHits.end(),SiTIBHighContainer->begin(),
00614                        SiTIBHighContainer->end());
00615   theSiBrlHits.insert(theSiBrlHits.end(),SiTOBLowContainer->begin(),
00616                        SiTOBLowContainer->end());
00617   theSiBrlHits.insert(theSiBrlHits.end(),SiTOBHighContainer->begin(),
00618                        SiTOBHighContainer->end());
00619 
00620   // cycle through new container
00621   i = 0; j = 0;
00622   for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
00623 
00624     ++i;
00625 
00626     // create a DetId from the detUnitId
00627     DetId theDetUnitId(itHit->detUnitId());
00628     int detector = theDetUnitId.det();
00629     int subdetector = theDetUnitId.subdetId();
00630 
00631     // check that expected detector is returned
00632     if ((detector == dTrk) && 
00633         ((subdetector == sdSiTIB) ||
00634          (subdetector == sdSiTOB))) {
00635 
00636       // get the GeomDetUnit from the geometry using theDetUnitID
00637       const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
00638 
00639       if (!theDet) {
00640         edm::LogWarning(MsgLoggerCat)
00641           << "Unable to get GeomDetUnit from SiBrlHits for Hit " << i;
00642         continue;
00643       }
00644 
00645       ++j;
00646 
00647       // get the Surface of the hit (knows how to go from local <-> global)
00648       const BoundPlane& bSurface = theDet->surface();
00649 
00650       // gather necessary information
00651       SiBrlToF.push_back(itHit->tof());
00652       SiBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
00653       SiBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00654       SiBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00655     } else {
00656       edm::LogWarning(MsgLoggerCat)
00657         << "SiBrl PSimHit " << i 
00658         << " is expected to be (det,subdet) = (" 
00659         << dTrk << "," << sdSiTIB
00660         << " || " << sdSiTOB << "); value returned is: ("
00661         << detector << "," << subdetector << ")";
00662       continue;
00663     } // end detector type check
00664   } // end loop through SiBrl Hits
00665 
00666   if (verbosity > 1) {
00667     eventout += "\n          Number of Silicon Barrel Hits collected:... ";
00668     eventout += j;
00669   }  
00670 
00672   // get Silicon Forward information
00674   edm::PSimHitContainer theSiFwdHits;
00675   // extract TID low container
00676   edm::Handle<edm::PSimHitContainer> SiTIDLowContainer;
00677   iEvent.getByLabel(SiTIDLowSrc_,SiTIDLowContainer);
00678   if (!SiTIDLowContainer.isValid()) {
00679     edm::LogWarning(MsgLoggerCat)
00680       << "Unable to find TrackerHitsTIDLowTof in event!";
00681     return;
00682   }
00683   // extract TID high container
00684   edm::Handle<edm::PSimHitContainer> SiTIDHighContainer;
00685   iEvent.getByLabel(SiTIDHighSrc_,SiTIDHighContainer);
00686   if (!SiTIDHighContainer.isValid()) {
00687     edm::LogWarning("GlobalHitsProducer_fillTrk")
00688       << "Unable to find TrackerHitsTIDHighTof in event!";
00689     return;
00690   }
00691   // extract TEC low container
00692   edm::Handle<edm::PSimHitContainer> SiTECLowContainer;
00693   iEvent.getByLabel(SiTECLowSrc_,SiTECLowContainer);
00694   if (!SiTECLowContainer.isValid()) {
00695     edm::LogWarning(MsgLoggerCat)
00696       << "Unable to find TrackerHitsTECLowTof in event!";
00697     return;
00698   }
00699   // extract TEC high container
00700   edm::Handle<edm::PSimHitContainer> SiTECHighContainer;
00701   iEvent.getByLabel(SiTECHighSrc_,SiTECHighContainer);
00702   if (!SiTECHighContainer.isValid()) {
00703     edm::LogWarning(MsgLoggerCat)
00704       << "Unable to find TrackerHitsTECHighTof in event!";
00705     return;
00706   }
00707   // place all containers into new container
00708   theSiFwdHits.insert(theSiFwdHits.end(),SiTIDLowContainer->begin(),
00709                        SiTIDLowContainer->end());
00710   theSiFwdHits.insert(theSiFwdHits.end(),SiTIDHighContainer->begin(),
00711                        SiTIDHighContainer->end());
00712   theSiFwdHits.insert(theSiFwdHits.end(),SiTECLowContainer->begin(),
00713                        SiTECLowContainer->end());
00714   theSiFwdHits.insert(theSiFwdHits.end(),SiTECHighContainer->begin(),
00715                        SiTECHighContainer->end());
00716 
00717   // cycle through container
00718   i = 0; j = 0;
00719   for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
00720 
00721     ++i;
00722 
00723     // create a DetId from the detUnitId
00724     DetId theDetUnitId(itHit->detUnitId());
00725     int detector = theDetUnitId.det();
00726     int subdetector = theDetUnitId.subdetId();
00727 
00728     // check that expected detector is returned 
00729     if ((detector == dTrk) && 
00730         ((subdetector == sdSiTID) ||
00731          (subdetector == sdSiTEC))) {
00732       
00733       // get the GeomDetUnit from the geometry using theDetUnitID
00734       const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
00735       
00736       if (!theDet) {
00737         edm::LogWarning(MsgLoggerCat)
00738           << "Unable to get GeomDetUnit from SiFwdHits Hit " << i;
00739         return;
00740       }
00741       
00742       ++j;
00743 
00744       // get the Surface of the hit (knows how to go from local <-> global)
00745       const BoundPlane& bSurface = theDet->surface();
00746       
00747       // gather necessary information
00748       SiFwdToF.push_back(itHit->tof());
00749       SiFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
00750       SiFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
00751       SiFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
00752     } else {
00753       edm::LogWarning(MsgLoggerCat)
00754         << "SiFwd PSimHit " << i 
00755         << " is expected to be (det,subdet) = (" 
00756         << dTrk << "," << sdSiTOB
00757         << " || " << sdSiTEC << "); value returned is: ("
00758         << detector << "," << subdetector << ")";
00759       continue;
00760     } // end check detector type
00761   } // end loop through SiFwd Hits
00762 
00763   if (verbosity > 1) {
00764     eventout += "\n          Number of Silicon Forward Hits collected:.. ";
00765     eventout += j;
00766   }  
00767 
00768   if (verbosity > 0)
00769     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00770 
00771   return;
00772 }

void GlobalHitsProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Implements edm::EDProducer.

Definition at line 144 of file GlobalHitsProducer.cc.

References clear(), count, fillECal(), fillG4MC(), fillHCal(), fillMuon(), fillTrk(), frequency, edm::Event::getAllProvenance(), getAllProvenances, i, edm::Event::id(), label, printProvenanceInfo, edm::Event::put(), storeECal(), storeG4MC(), storeHCal(), storeMuon(), storeTrk(), and verbosity.

00146 {
00147   std::string MsgLoggerCat = "GlobalHitsProducer_produce";
00148 
00149   // keep track of number of events processed
00150   ++count;
00151 
00152   // get event id information
00153   int nrun = iEvent.id().run();
00154   int nevt = iEvent.id().event();
00155 
00156   if (verbosity > 0) {
00157     edm::LogInfo(MsgLoggerCat)
00158       << "Processing run " << nrun << ", event " << nevt
00159       << " (" << count << " events total)";
00160   } else if (verbosity == 0) {
00161     if (nevt%frequency == 0 || nevt == 1) {
00162       edm::LogInfo(MsgLoggerCat)
00163         << "Processing run " << nrun << ", event " << nevt
00164         << " (" << count << " events total)";
00165     }
00166   }
00167 
00168   // clear event holders
00169   clear();
00170 
00171   // look at information available in the event
00172   if (getAllProvenances) {
00173 
00174     std::vector<const edm::Provenance*> AllProv;
00175     iEvent.getAllProvenance(AllProv);
00176 
00177     if (verbosity >= 0)
00178       edm::LogInfo(MsgLoggerCat)
00179         << "Number of Provenances = " << AllProv.size();
00180 
00181     if (printProvenanceInfo && (verbosity >= 0)) {
00182       TString eventout("\nProvenance info:\n");      
00183 
00184       for (unsigned int i = 0; i < AllProv.size(); ++i) {
00185         eventout += "\n       ******************************";
00186         eventout += "\n       Module       : ";
00187         eventout += AllProv[i]->moduleLabel();
00188         eventout += "\n       ProductID    : ";
00189         eventout += AllProv[i]->productID().id();
00190         eventout += "\n       ClassName    : ";
00191         eventout += AllProv[i]->className();
00192         eventout += "\n       InstanceName : ";
00193         eventout += AllProv[i]->productInstanceName();
00194         eventout += "\n       BranchName   : ";
00195         eventout += AllProv[i]->branchName();
00196       }
00197       eventout += "\n       ******************************\n";
00198       edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00199       printProvenanceInfo = false;
00200     }
00201     getAllProvenances = false;
00202   }
00203 
00204   // call fill functions
00205   //gather G4MC information from event
00206   fillG4MC(iEvent);
00207   // gather Tracker information from event
00208   fillTrk(iEvent,iSetup);
00209   // gather muon information from event
00210   fillMuon(iEvent, iSetup);
00211   // gather Ecal information from event
00212   fillECal(iEvent, iSetup);
00213   // gather Hcal information from event
00214   fillHCal(iEvent, iSetup);
00215 
00216   if (verbosity > 0)
00217     edm::LogInfo (MsgLoggerCat)
00218       << "Done gathering data from event.";
00219 
00220   // produce object to put into event
00221   std::auto_ptr<PGlobalSimHit> pOut(new PGlobalSimHit);
00222 
00223   if (verbosity > 2)
00224     edm::LogInfo (MsgLoggerCat)
00225       << "Saving event contents:";
00226 
00227   // call store functions
00228   // store G4MC information in product
00229   storeG4MC(*pOut);
00230   // store Tracker information in produce
00231   storeTrk(*pOut);
00232   // store Muon information in produce
00233   storeMuon(*pOut);
00234   // store ECal information in produce
00235   storeECal(*pOut);
00236   // store HCal information in produce
00237   storeHCal(*pOut);
00238 
00239   // store information in event
00240   iEvent.put(pOut,label);
00241 
00242   return;
00243 }

void GlobalHitsProducer::storeECal ( PGlobalSimHit product  )  [private]

Definition at line 1361 of file GlobalHitsProducer.cc.

References ECalE, ECalEta, ECalPhi, ECalToF, i, PreShE, PreShEta, PreShPhi, PreShToF, PGlobalSimHit::putECalHits(), PGlobalSimHit::putPreShHits(), and verbosity.

Referenced by produce().

01362 {
01363   std::string MsgLoggerCat = "GlobalHitsProducer_storeECal";
01364 
01365   if (verbosity > 2) {
01366     TString eventout("\n       nECalHits          = ");
01367     eventout += ECalE.size();
01368     for (unsigned int i = 0; i < ECalE.size(); ++i) {
01369       eventout += "\n          (e,tof,phi,eta) = (";
01370       eventout += ECalE[i];
01371       eventout += ", ";
01372       eventout += ECalToF[i];
01373       eventout += ", ";
01374       eventout += ECalPhi[i];
01375       eventout += ", ";
01376       eventout += ECalEta[i];  
01377       eventout += ")";   
01378     } // end ECal output
01379     eventout += "\n       nPreShHits         = ";
01380     eventout += PreShE.size();
01381     for (unsigned int i = 0; i < PreShE.size(); ++i) {
01382       eventout += "\n          (e,tof,phi,eta) = (";
01383       eventout += PreShE[i];
01384       eventout += ", ";
01385       eventout += PreShToF[i];
01386       eventout += ", ";
01387       eventout += PreShPhi[i];
01388       eventout += ", ";
01389       eventout += PreShEta[i]; 
01390       eventout += ")";    
01391     } // end PreShower output
01392     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01393   } // end verbose output
01394 
01395   product.putECalHits(ECalE,ECalToF,ECalPhi,ECalEta);
01396   product.putPreShHits(PreShE,PreShToF,PreShPhi,PreShEta);
01397 
01398   return;
01399 }

void GlobalHitsProducer::storeG4MC ( PGlobalSimHit product  )  [private]

Definition at line 364 of file GlobalHitsProducer.cc.

References G4TrkE, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, i, nRawGenPart, PGlobalSimHit::putG4Trk(), PGlobalSimHit::putG4Vtx(), PGlobalSimHit::putRawGenPart(), and verbosity.

Referenced by produce().

00365 {
00366   std::string MsgLoggerCat = "GlobalHitsProducer_storeG4MC";
00367 
00368   if (verbosity > 2) {
00369     TString eventout("\n       nRawGenPart        = ");
00370     eventout += nRawGenPart;
00371     eventout += "\n       nG4Vtx             = ";
00372     eventout += G4VtxX.size();
00373     for (unsigned int i = 0; i < G4VtxX.size(); ++i) {
00374       eventout += "\n          (x,y,z)         = (";
00375       eventout += G4VtxX[i];
00376       eventout += ", ";
00377       eventout += G4VtxY[i];
00378       eventout += ", ";
00379       eventout += G4VtxZ[i];
00380       eventout += ")";      
00381     }
00382     eventout += "\n       nG4Trk             = ";
00383     eventout += G4TrkPt.size();
00384     for (unsigned int i = 0; i < G4TrkPt.size(); ++i) {
00385       eventout += "\n          (pt,e)          = (";
00386       eventout += G4TrkPt[i];
00387       eventout += ", ";
00388       eventout += G4TrkE[i];
00389       eventout += ")";
00390     }    
00391     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00392   } // end verbose output
00393 
00394   product.putRawGenPart(nRawGenPart);
00395   product.putG4Vtx(G4VtxX, G4VtxY, G4VtxZ);
00396   product.putG4Trk(G4TrkPt, G4TrkE);
00397 
00398   return;
00399 }

void GlobalHitsProducer::storeHCal ( PGlobalSimHit product  )  [private]

Definition at line 1498 of file GlobalHitsProducer.cc.

References HCalE, HCalEta, HCalPhi, HCalToF, i, PGlobalSimHit::putHCalHits(), and verbosity.

Referenced by produce().

01499 {
01500   std::string MsgLoggerCat = "GlobalHitsProducer_storeHCal";
01501 
01502   if (verbosity > 2) {
01503     TString eventout("\n       nHCalHits          = ");
01504     eventout += HCalE.size();
01505     for (unsigned int i = 0; i < HCalE.size(); ++i) {
01506       eventout += "\n          (e,tof,phi,eta) = (";
01507       eventout += HCalE[i];
01508       eventout += ", ";
01509       eventout += HCalToF[i];
01510       eventout += ", ";
01511       eventout += HCalPhi[i];
01512       eventout += ", ";
01513       eventout += HCalEta[i];  
01514       eventout += ")";      
01515     } // end HCal output
01516     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01517   } // end verbose output
01518 
01519   product.putHCalHits(HCalE,HCalToF,HCalPhi,HCalEta);
01520 
01521   return;
01522 }

void GlobalHitsProducer::storeMuon ( PGlobalSimHit product  )  [private]

Definition at line 1118 of file GlobalHitsProducer.cc.

References i, MuonCscEta, MuonCscPhi, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, PGlobalSimHit::putMuonCscHits(), PGlobalSimHit::putMuonDtHits(), PGlobalSimHit::putMuonRpcBrlHits(), PGlobalSimHit::putMuonRpcFwdHits(), and verbosity.

Referenced by produce().

01119 {
01120   std::string MsgLoggerCat = "GlobalHitsProducer_storeMuon";
01121 
01122   if (verbosity > 2) {
01123     TString eventout("\n       nMuonCSCHits       = ");
01124     eventout += MuonCscToF.size();
01125     for (unsigned int i = 0; i < MuonCscToF.size(); ++i) {
01126       eventout += "\n          (tof,z,phi,eta) = (";
01127       eventout += MuonCscToF[i];
01128       eventout += ", ";
01129       eventout += MuonCscZ[i];
01130       eventout += ", ";
01131       eventout += MuonCscPhi[i];
01132       eventout += ", ";
01133       eventout += MuonCscEta[i];
01134       eventout += ")";      
01135     } // end MuonCsc output
01136     eventout += "\n       nMuonDtHits        = ";
01137     eventout += MuonDtToF.size();
01138     for (unsigned int i = 0; i < MuonDtToF.size(); ++i) {
01139       eventout += "\n          (tof,r,phi,eta) = (";
01140       eventout += MuonDtToF[i];
01141       eventout += ", ";
01142       eventout += MuonDtR[i];
01143       eventout += ", ";
01144       eventout += MuonDtPhi[i];
01145       eventout += ", ";
01146       eventout += MuonDtEta[i];
01147       eventout += ")";      
01148     } // end MuonDt output
01149     eventout += "\n       nMuonRpcBrlHits    = ";
01150     eventout += MuonRpcBrlToF.size();
01151     for (unsigned int i = 0; i < MuonRpcBrlToF.size(); ++i) {
01152       eventout += "\n          (tof,r,phi,eta) = (";
01153       eventout += MuonRpcBrlToF[i];
01154       eventout += ", ";
01155       eventout += MuonRpcBrlR[i];
01156       eventout += ", ";
01157       eventout += MuonRpcBrlPhi[i];
01158       eventout += ", ";
01159       eventout += MuonRpcBrlEta[i];
01160       eventout += ")";      
01161     } // end MuonRpcBrl output
01162     eventout += "\n       nMuonRpcFwdHits    = ";
01163     eventout += MuonRpcFwdToF.size();
01164     for (unsigned int i = 0; i < MuonRpcFwdToF.size(); ++i) {
01165       eventout += "\n          (tof,z,phi,eta) = (";
01166       eventout += MuonRpcFwdToF[i];
01167       eventout += ", ";
01168       eventout += MuonRpcFwdZ[i];
01169       eventout += ", ";
01170       eventout += MuonRpcFwdPhi[i];
01171       eventout += ", ";
01172       eventout += MuonRpcFwdEta[i]; 
01173       eventout += ")";      
01174     } // end MuonRpcFwd output
01175     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
01176   } // end verbose output
01177 
01178   product.putMuonCscHits(MuonCscToF,MuonCscZ,MuonCscPhi,MuonCscEta);
01179   product.putMuonDtHits(MuonDtToF,MuonDtR,MuonDtPhi,MuonDtEta);
01180   product.putMuonRpcBrlHits(MuonRpcBrlToF,MuonRpcBrlR,MuonRpcBrlPhi,
01181                              MuonRpcBrlEta);
01182   product.putMuonRpcFwdHits(MuonRpcFwdToF,MuonRpcFwdZ,MuonRpcFwdPhi,
01183                              MuonRpcFwdEta);
01184 
01185   return;
01186 }

void GlobalHitsProducer::storeTrk ( PGlobalSimHit product  )  [private]

Definition at line 774 of file GlobalHitsProducer.cc.

References i, PGlobalSimHit::putPxlBrlHits(), PGlobalSimHit::putPxlFwdHits(), PGlobalSimHit::putSiBrlHits(), PGlobalSimHit::putSiFwdHits(), PxlBrlEta, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdPhi, PxlFwdToF, PxlFwdZ, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, and verbosity.

Referenced by produce().

00775 {
00776   std::string MsgLoggerCat = "GlobalHitsProducer_storeTrk";
00777 
00778   if (verbosity > 2) {
00779     TString eventout("\n       nPxlBrlHits        = ");
00780     eventout += PxlBrlToF.size();
00781     for (unsigned int i = 0; i < PxlBrlToF.size(); ++i) {
00782       eventout += "\n          (tof,r,phi,eta) = (";
00783       eventout += PxlBrlToF[i];
00784       eventout += ", ";
00785       eventout += PxlBrlR[i];
00786       eventout += ", ";
00787       eventout += PxlBrlPhi[i];
00788       eventout += ", ";
00789       eventout += PxlBrlEta[i];
00790       eventout += ")";      
00791     } // end PxlBrl output
00792     eventout += "\n       nPxlFwdHits        = ";
00793     eventout += PxlFwdToF.size();
00794     for (unsigned int i = 0; i < PxlFwdToF.size(); ++i) {
00795       eventout += "\n          (tof,z,phi,eta) = (";
00796       eventout += PxlFwdToF[i];
00797       eventout += ", ";
00798       eventout += PxlFwdZ[i];
00799       eventout += ", ";
00800       eventout += PxlFwdPhi[i];
00801       eventout += ", ";
00802       eventout += PxlFwdEta[i];
00803       eventout += ")";      
00804     } // end PxlFwd output
00805     eventout += "\n       nSiBrlHits         = ";
00806     eventout += SiBrlToF.size();
00807     for (unsigned int i = 0; i < SiBrlToF.size(); ++i) {
00808       eventout += "\n          (tof,r,phi,eta) = (";
00809       eventout += SiBrlToF[i];
00810       eventout += ", ";
00811       eventout += SiBrlR[i];
00812       eventout += ", ";
00813       eventout += SiBrlPhi[i];
00814       eventout += ", ";
00815       eventout += SiBrlEta[i];
00816       eventout += ")";      
00817     } // end SiBrl output
00818     eventout += "\n       nSiFwdHits         = ";
00819     eventout += SiFwdToF.size();
00820     for (unsigned int i = 0; i < SiFwdToF.size(); ++i) {
00821       eventout += "\n          (tof,z,phi,eta) = (";
00822       eventout += SiFwdToF[i];
00823       eventout += ", ";
00824       eventout += SiFwdZ[i];
00825       eventout += ", ";
00826       eventout += SiFwdPhi[i];
00827       eventout += ", ";
00828       eventout += SiFwdEta[i];
00829       eventout += ")";      
00830     } // end SiFwd output
00831     edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00832   } // end verbose output
00833 
00834   product.putPxlBrlHits(PxlBrlToF,PxlBrlR,PxlBrlPhi,PxlBrlEta);
00835   product.putPxlFwdHits(PxlFwdToF,PxlFwdZ,PxlFwdPhi,PxlFwdEta);
00836   product.putSiBrlHits(SiBrlToF,SiBrlR,SiBrlPhi,SiBrlEta);
00837   product.putSiFwdHits(SiFwdToF,SiFwdZ,SiFwdPhi,SiFwdEta);
00838 
00839   return;
00840 }


Member Data Documentation

unsigned int GlobalHitsProducer::count [private]

Definition at line 209 of file GlobalHitsProducer.h.

Referenced by endJob(), and produce().

FloatVector GlobalHitsProducer::ECalE [private]

Definition at line 129 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

edm::InputTag GlobalHitsProducer::ECalEBSrc_ [private]

Definition at line 133 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::ECalEESrc_ [private]

Definition at line 134 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::ECalESSrc_ [private]

Definition at line 141 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::ECalEta [private]

Definition at line 132 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::ECalPhi [private]

Definition at line 131 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::ECalToF [private]

Definition at line 130 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

std::string GlobalHitsProducer::fName [private]

Definition at line 111 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

int GlobalHitsProducer::frequency [private]

Definition at line 113 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::G4TrkE [private]

Definition at line 125 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

FloatVector GlobalHitsProducer::G4TrkPt [private]

Definition at line 124 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

FloatVector GlobalHitsProducer::G4VtxX [private]

Definition at line 121 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

FloatVector GlobalHitsProducer::G4VtxY [private]

Definition at line 122 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

FloatVector GlobalHitsProducer::G4VtxZ [private]

Definition at line 123 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

bool GlobalHitsProducer::getAllProvenances [private]

Definition at line 116 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::HCalE [private]

Definition at line 145 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

FloatVector GlobalHitsProducer::HCalEta [private]

Definition at line 148 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

FloatVector GlobalHitsProducer::HCalPhi [private]

Definition at line 147 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

edm::InputTag GlobalHitsProducer::HCalSrc_ [private]

Definition at line 149 of file GlobalHitsProducer.h.

Referenced by fillHCal(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::HCalToF [private]

Definition at line 146 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

std::string GlobalHitsProducer::label [private]

Definition at line 115 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::MuonCscEta [private]

Definition at line 195 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonCscPhi [private]

Definition at line 194 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonCscSrc_ [private]

Definition at line 196 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::MuonCscToF [private]

Definition at line 192 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonCscZ [private]

Definition at line 193 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtEta [private]

Definition at line 189 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtPhi [private]

Definition at line 188 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtR [private]

Definition at line 187 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonDtSrc_ [private]

Definition at line 190 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::MuonDtToF [private]

Definition at line 186 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlEta [private]

Definition at line 201 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlPhi [private]

Definition at line 200 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlR [private]

Definition at line 199 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlToF [private]

Definition at line 198 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdEta [private]

Definition at line 205 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdPhi [private]

Definition at line 204 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdToF [private]

Definition at line 202 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdZ [private]

Definition at line 203 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonRpcSrc_ [private]

Definition at line 206 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

int GlobalHitsProducer::nRawGenPart [private]

Definition at line 120 of file GlobalHitsProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

FloatVector GlobalHitsProducer::PreShE [private]

Definition at line 137 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShEta [private]

Definition at line 140 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShPhi [private]

Definition at line 139 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShToF [private]

Definition at line 138 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

bool GlobalHitsProducer::printProvenanceInfo [private]

Definition at line 117 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::PxlBrlEta [private]

Definition at line 156 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

edm::InputTag GlobalHitsProducer::PxlBrlHighSrc_ [private]

Definition at line 162 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::PxlBrlLowSrc_ [private]

Definition at line 161 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::PxlBrlPhi [private]

Definition at line 155 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::PxlBrlR [private]

Definition at line 154 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::PxlBrlToF [private]

Definition at line 153 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::PxlFwdEta [private]

Definition at line 160 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

edm::InputTag GlobalHitsProducer::PxlFwdHighSrc_ [private]

Definition at line 164 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::PxlFwdLowSrc_ [private]

Definition at line 163 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::PxlFwdPhi [private]

Definition at line 159 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::PxlFwdToF [private]

Definition at line 157 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::PxlFwdZ [private]

Definition at line 158 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiBrlEta [private]

Definition at line 170 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiBrlPhi [private]

Definition at line 169 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiBrlR [private]

Definition at line 168 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiBrlToF [private]

Definition at line 167 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiFwdEta [private]

Definition at line 174 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiFwdPhi [private]

Definition at line 173 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiFwdToF [private]

Definition at line 171 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

FloatVector GlobalHitsProducer::SiFwdZ [private]

Definition at line 172 of file GlobalHitsProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

edm::InputTag GlobalHitsProducer::SiTECHighSrc_ [private]

Definition at line 182 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTECLowSrc_ [private]

Definition at line 181 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIBHighSrc_ [private]

Definition at line 176 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIBLowSrc_ [private]

Definition at line 175 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIDHighSrc_ [private]

Definition at line 180 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIDLowSrc_ [private]

Definition at line 179 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTOBHighSrc_ [private]

Definition at line 178 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTOBLowSrc_ [private]

Definition at line 177 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

int GlobalHitsProducer::verbosity [private]

Definition at line 112 of file GlobalHitsProducer.h.

Referenced by clear(), endJob(), fillECal(), fillG4MC(), fillHCal(), fillMuon(), fillTrk(), GlobalHitsProducer(), produce(), storeECal(), storeG4MC(), storeHCal(), storeMuon(), and storeTrk().

int GlobalHitsProducer::vtxunit [private]

Definition at line 114 of file GlobalHitsProducer.h.

Referenced by fillG4MC(), and GlobalHitsProducer().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:21:41 2009 for CMSSW by  doxygen 1.5.4