CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Attributes

ZdcSimHitStudy Class Reference

#include <ZdcSimHitStudy.h>

Inheritance diagram for ZdcSimHitStudy:
edm::EDAnalyzer

List of all members.

Public Member Functions

 ZdcSimHitStudy (const edm::ParameterSet &ps)
 ~ZdcSimHitStudy ()

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
void analyzeHits (std::vector< PCaloHit > &)
void beginJob ()
void endJob ()
void endRun (const edm::Run &run, const edm::EventSetup &c)
int FillHitValHist (int side, int section, int channel, double energy, double time)

Private Attributes

bool checkHit_
DQMStoredbe_
double enetot
double enetotEmN
double enetotEmP
double enetotHadN
double enetotHadP
double enetotN
double enetotP
std::string g4Label
MonitorElementgenpart_GammaB
MonitorElementgenpart_GammaB_energydist
MonitorElementgenpart_GammaF
MonitorElementgenpart_GammaF_energydist
MonitorElementgenpart_NeutB
MonitorElementgenpart_NeutB_energydist
MonitorElementgenpart_NeutF
MonitorElementgenpart_NeutF_energydist
MonitorElementgenpart_Pi0B
MonitorElementgenpart_Pi0B_energydist
MonitorElementgenpart_Pi0F
MonitorElementgenpart_Pi0F_energydist
MonitorElementmeAllZdcNHit_
MonitorElementmeBadZdcDetHit_
MonitorElementmeBadZdcIdHit_
MonitorElementmeBadZdcSecHit_
MonitorElementmeZdc10Ene_
MonitorElementmeZdc10EneP_
MonitorElementmeZdcChannelHit_
MonitorElementmeZdcCorEEmNEHadN_
MonitorElementmeZdcCorEEmPEHadP_
MonitorElementmeZdcCorEtotNEtotP_
MonitorElementmeZdcDetectHit_
MonitorElementmeZdcEEMCh_
MonitorElementmeZdcEHadCh_
MonitorElementmeZdcEMEnergyHit_
MonitorElementmeZdcEML10EneP_
MonitorElementmeZdcEneEmN1_
MonitorElementmeZdcEneEmN2_
MonitorElementmeZdcEneEmN3_
MonitorElementmeZdcEneEmN4_
MonitorElementmeZdcEneEmN5_
MonitorElementmeZdcEneEmNTot_
MonitorElementmeZdcEneEmP1_
MonitorElementmeZdcEneEmP2_
MonitorElementmeZdcEneEmP3_
MonitorElementmeZdcEneEmP4_
MonitorElementmeZdcEneEmP5_
MonitorElementmeZdcEneEmPTot_
MonitorElementmeZdcEneHadN1_
MonitorElementmeZdcEneHadN2_
MonitorElementmeZdcEneHadN3_
MonitorElementmeZdcEneHadN4_
MonitorElementmeZdcEneHadNTot_
MonitorElementmeZdcEneHadP1_
MonitorElementmeZdcEneHadP2_
MonitorElementmeZdcEneHadP3_
MonitorElementmeZdcEneHadP4_
MonitorElementmeZdcEneHadPTot_
MonitorElementmeZdcEneNTot_
MonitorElementmeZdcEnePTot_
MonitorElementmeZdcEnergyHit_
MonitorElementmeZdcEneTEmN1_
MonitorElementmeZdcEneTEmN2_
MonitorElementmeZdcEneTEmN3_
MonitorElementmeZdcEneTEmN4_
MonitorElementmeZdcEneTEmN5_
MonitorElementmeZdcEneTEmP1_
MonitorElementmeZdcEneTEmP2_
MonitorElementmeZdcEneTEmP3_
MonitorElementmeZdcEneTEmP4_
MonitorElementmeZdcEneTEmP5_
MonitorElementmeZdcEneTHadN1_
MonitorElementmeZdcEneTHadN2_
MonitorElementmeZdcEneTHadN3_
MonitorElementmeZdcEneTHadN4_
MonitorElementmeZdcEneTHadP1_
MonitorElementmeZdcEneTHadP2_
MonitorElementmeZdcEneTHadP3_
MonitorElementmeZdcEneTHadP4_
MonitorElementmeZdcEneTot_
MonitorElementmeZdcETime_
MonitorElementmeZdcHadEnergyHit_
MonitorElementmeZdcHadL10EneP_
MonitorElementmeZdcNHit_
MonitorElementmeZdcNHitEM_
MonitorElementmeZdcNHitHad_
MonitorElementmeZdcNHitLum_
MonitorElementmeZdcSectionHit_
MonitorElementmeZdcSideHit_
MonitorElementmeZdcTimeHit_
MonitorElementmeZdcTimeWHit_
std::string outFile_
bool verbose_
std::string zdcHits

Detailed Description

Definition at line 53 of file ZdcSimHitStudy.h.


Constructor & Destructor Documentation

ZdcSimHitStudy::ZdcSimHitStudy ( const edm::ParameterSet ps)

Definition at line 30 of file ZdcSimHitStudy.cc.

References checkHit_, dbe_, g4Label, edm::ParameterSet::getUntrackedParameter(), cppFunctionSkipper::operator, outFile_, DQMStore::setVerbose(), DQMStore::showDirStructure(), stor::utils::sleep(), AlCaHLTBitMon_QueryRunRegistry::string, verbose_, and zdcHits.

                                                        {

  g4Label  = ps.getUntrackedParameter<std::string>("moduleLabel","g4SimHits");
  zdcHits = ps.getUntrackedParameter<std::string>("HitCollection","ZdcHits");
  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "zdcHitStudy.root");
  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
  checkHit_= true;

  edm::LogInfo("ZdcSimHitStudy") 
    //std::cout
    << "Module Label: " << g4Label << "   Hits: "
    << zdcHits << " / "<< checkHit_ 
    << "   Output: " << outFile_;

  dbe_ = edm::Service<DQMStore>().operator->();
  if (dbe_) {
    if (verbose_) {
      dbe_->setVerbose(1);
      sleep (3);
      dbe_->showDirStructure();
    } else {
      dbe_->setVerbose(0);
    }
  }
}
ZdcSimHitStudy::~ZdcSimHitStudy ( )

Definition at line 56 of file ZdcSimHitStudy.cc.

{}

Member Function Documentation

void ZdcSimHitStudy::analyze ( const edm::Event e,
const edm::EventSetup c 
) [protected, virtual]

Implements edm::EDAnalyzer.

Definition at line 471 of file ZdcSimHitStudy.cc.

References analyzeHits(), checkHit_, reco::LeafCandidate::energy(), reco::LeafCandidate::eta(), edm::EventID::event(), MonitorElement::Fill(), g4Label, cmsDownloadME::gen, genpart_GammaB, genpart_GammaB_energydist, genpart_GammaF, genpart_GammaF_energydist, genpart_NeutB, genpart_NeutB_energydist, genpart_NeutF, genpart_NeutF_energydist, genpart_Pi0B, genpart_Pi0B_energydist, genpart_Pi0F, genpart_Pi0F_energydist, configurableAnalysis::GenParticle, edm::Event::getByLabel(), edm::EventBase::id(), LogDebug, reco::LeafCandidate::pdgId(), reco::LeafCandidate::phi(), edm::EventID::run(), and zdcHits.

                                                                                 {

   using namespace edm;
   bool gotGenParticles=true;
   
 
   Handle<reco::GenParticleCollection> genhandle;
   
   if (!(iEvent.getByLabel("genParticles",genhandle)))
   {
    gotGenParticles=false; //this is the same kind of boolean except for the genparticles collection
   }
   if (!(genhandle.isValid()))
   {
    gotGenParticles=false;
   }
   

   //Handle<edm::PCaloHitContainer> zdcsimhandle;
   //iEvent.getByLabel("g4SimHits_ZDCHITS",zdcsimhandle);
 
 
   

 


      if (gotGenParticles==true){ //if the boolean was able to find the leaf "genparticles" then do this
   for (reco::GenParticleCollection::const_iterator gen = genhandle->begin();
          gen!=genhandle->end();
          ++gen) //here we iterate over all generated particles
       {
         //         double energy=gen->energy();
         reco::GenParticle thisParticle = (reco::GenParticle)(*gen); //get the particle "gen" points to
         double energy_2= thisParticle.energy(); //here I grab some of the attributes of the generated particle....like its energy, its phi and its eta and what kind of particle it is
         double gen_phi = thisParticle.phi();
         double gen_eta = thisParticle.eta();
         int gen_id = thisParticle.pdgId();     
   
         if (gen_id==111){ //here i require a pi0
           if (gen_eta>8.3){ //eta requirement

//# IMPORTANT     IMPORTANT         IMPORTANT            IMPORTANT                  #
//# The real eta of the ZDC is |eta| > 8.3, I have only changed it here to 3 because#
//# in the PG simulation the ZDC is at an eta of about 4.5-7, in the real GEANT the #
//# ZDC is in its appropriate place at the very foward region...please edit this if #
//# looking at MinBias data or the like                                             #
//#                                                                                 #
//# IMPORTANT     IMPORTANT      IMPORTANT       IMPORTANT                          #



           genpart_Pi0F->Fill(gen_eta,gen_phi,energy_2); //fill the lego plot
           genpart_Pi0F_energydist->Fill(energy_2); //fill the 1D distribution
                         }
           if (gen_eta<-8.3){ //neg eta requirement
             genpart_Pi0B->Fill(gen_eta,gen_phi,energy_2);
             genpart_Pi0B_energydist->Fill(energy_2);
                           }
                                       }
         if (gen_id==2112){ //require neutron
           if (gen_eta>8.3){
         genpart_NeutF->Fill(gen_eta,gen_phi,energy_2);
         genpart_NeutF_energydist->Fill(energy_2);
                          }
           if (gen_eta<-8.3){
             genpart_NeutB->Fill(gen_eta,gen_phi,energy_2);
             genpart_NeutB_energydist->Fill(energy_2);
                           }
                          }

         if (gen_id==22){ //require gamma
           if (gen_eta>8.3){
           genpart_GammaF->Fill(gen_eta,gen_phi,energy_2);
           genpart_GammaF_energydist->Fill(energy_2);
                         }
           if (gen_eta<-8.3){
             genpart_GammaB->Fill(gen_eta,gen_phi,energy_2);
             genpart_GammaB_energydist->Fill(energy_2);
                           }
                         }

       } //end of GEN loop
      }




//Below is the old script which I will comment later



  LogDebug("ZdcSimHitStudy") 
    //std::cout
    //std::cout
    << "Run = " << iEvent.id().run() << " Event = " 
    << iEvent.id().event();
/*    << "Run = " << e.id().run() << " Event = " 
    << e.id().event();*/
  //std::cout<<std::endl;
  
  std::vector<PCaloHit>               caloHits;
  edm::Handle<edm::PCaloHitContainer> hitsZdc;

  bool getHits = false;
  if (checkHit_) {
    iEvent.getByLabel(g4Label,zdcHits,hitsZdc);
//    e.getByLabel(g4Label,zdcHits,hitsZdc); 
    if (hitsZdc.isValid()) getHits = true;
  }

  LogDebug("ZdcSim") << "ZdcValidation: Input flags Hits " << getHits;

  if (getHits) {
    caloHits.insert(caloHits.end(),hitsZdc->begin(),hitsZdc->end());
    LogDebug("ZdcSimHitStudy") 
      //std::cout
      << "ZdcValidation: Hit buffer " 
      << caloHits.size();
      //<< std::endl;
    analyzeHits (caloHits);
  }
}
void ZdcSimHitStudy::analyzeHits ( std::vector< PCaloHit > &  hits) [protected]

Definition at line 600 of file ZdcSimHitStudy.cc.

References dbe_, HcalZDCDetId::EM, relval_parameters_module::energy, enetot, enetotEmN, enetotEmP, enetotHadN, enetotHadP, enetotN, enetotP, MonitorElement::Fill(), FillHitValHist(), HcalZDCDetId::HAD, i, LogDebug, HcalZDCDetId::LUM, meAllZdcNHit_, meBadZdcDetHit_, meBadZdcIdHit_, meBadZdcSecHit_, meZdc10Ene_, meZdcChannelHit_, meZdcCorEEmNEHadN_, meZdcCorEEmPEHadP_, meZdcCorEtotNEtotP_, meZdcDetectHit_, meZdcEEMCh_, meZdcEHadCh_, meZdcEMEnergyHit_, meZdcEML10EneP_, meZdcEneEmNTot_, meZdcEneEmPTot_, meZdcEneHadNTot_, meZdcEneHadPTot_, meZdcEneNTot_, meZdcEnePTot_, meZdcEnergyHit_, meZdcEneTot_, meZdcETime_, meZdcHadEnergyHit_, meZdcHadL10EneP_, meZdcNHitEM_, meZdcNHitHad_, meZdcNHitLum_, meZdcSectionHit_, meZdcSideHit_, meZdcTimeHit_, meZdcTimeWHit_, and cond::rpcobgas::time.

Referenced by analyze().

                                                         {
  int nHit = hits.size();
  int nZdcEM = 0, nZdcHad = 0, nZdcLum = 0; 
  int nBad1=0, nBad2=0, nBad=0;
  std::vector<double> encontZdcEM(140, 0.);
  std::vector<double> encontZdcHad(140, 0.);
  double entotZdcEM = 0;
  double entotZdcHad = 0;
 
  enetotEmN = 0;
  enetotHadN = 0.;
  enetotN = 0;  
  enetotEmP = 0;
  enetotHadP = 0;
  enetotP = 0;
  enetot = 0;
  
  for (int i=0; i<nHit; i++) {
    double energy    = hits[i].energy();
    double log10en   = log10(energy);
    int log10i       = int( (log10en+10.)*10. );
    double time      = hits[i].time();
    unsigned int id_ = hits[i].id();
    HcalZDCDetId id  = HcalZDCDetId(id_);
    int det          = id.det();
    int side         = id.zside();
    int section      = id.section();
    int channel      = id.channel();

    FillHitValHist(side,section,channel,energy,time);
  
    
    LogDebug("ZdcSimHitStudy") 
      //std::cout
      << "Hit[" << i << "] ID " << std::hex << id_ 
      << std::dec <<" DetID "<<id
      << " Det "<< det << " side "<< side 
      << " Section " << section
      << " channel "<< channel
      << " E " << energy 
      << " time \n" << time;
      //<<std::endl;

    if(det == 5) { // Check DetId.h
      if(section == HcalZDCDetId::EM)nZdcEM++;
      else if(section == HcalZDCDetId::HAD)nZdcHad++;
      else if(section == HcalZDCDetId::LUM)nZdcLum++;
      else    { nBad++;  nBad2++;}
    } else    { nBad++;  nBad1++;}
    if (dbe_) {
      meZdcDetectHit_->Fill(double(det));
      if (det ==  5) {
        meZdcSideHit_->Fill(double(side));
        meZdcSectionHit_->Fill(double(section));
        meZdcChannelHit_->Fill(double(channel));
        meZdcEnergyHit_->Fill(energy);
      if(section == HcalZDCDetId::EM){
        meZdcEMEnergyHit_->Fill(energy);
        meZdcEEMCh_->Fill(energy,channel);
        if( log10i >=0 && log10i < 140 )encontZdcEM[log10i] += energy;
        entotZdcEM += energy;
      }
      if(section == HcalZDCDetId::HAD){
        meZdcHadEnergyHit_->Fill(energy);
        meZdcEHadCh_->Fill(energy,channel);
        if( log10i >=0 && log10i < 140 )encontZdcHad[log10i] += energy;
        entotZdcHad += energy;
      } 
      meZdcTimeHit_->Fill(time);
      meZdcTimeWHit_->Fill(double(time),energy);
      meZdc10Ene_->Fill(log10en);
      meZdcETime_->Fill(energy, double(time));
      }
    }
  }

  if( entotZdcEM  != 0 ) for( int i=0; i<140; i++ ) meZdcEML10EneP_->Fill( -10.+(float(i)+0.5)/10., encontZdcEM[i]/entotZdcEM);
  if( entotZdcHad != 0 ) for( int i=0; i<140; i++ ) meZdcHadL10EneP_->Fill( -10.+(float(i)+0.5)/10.,encontZdcHad[i]/entotZdcHad);
  
  if (dbe_ && nHit>0) {
    meAllZdcNHit_->Fill(double(nHit));
    meBadZdcDetHit_->Fill(double(nBad1));
    meBadZdcSecHit_->Fill(double(nBad2));
    meBadZdcIdHit_->Fill(double(nBad));
    meZdcNHitEM_->Fill(double(nZdcEM));
    meZdcNHitHad_->Fill(double(nZdcHad));
    meZdcNHitLum_->Fill(double(nZdcLum)); 
    meZdcEnePTot_->Fill(enetotP);
    meZdcEneNTot_->Fill(enetotN);
    meZdcEneHadNTot_->Fill(enetotHadN);
    meZdcEneHadPTot_->Fill(enetotHadP);
    meZdcEneEmNTot_->Fill(enetotEmN);
    meZdcEneEmPTot_->Fill(enetotEmP);
    meZdcCorEEmNEHadN_->Fill(enetotEmN,enetotHadN);
    meZdcCorEEmPEHadP_->Fill(enetotEmP,enetotHadP);
    meZdcCorEtotNEtotP_->Fill(enetotN,enetotP);
    meZdcEneTot_->Fill(enetot);
  }
  LogDebug("HcalSimHitStudy") 
  //std::cout
    <<"HcalSimHitStudy::analyzeHits: Had " << nZdcHad 
    << " EM "<< nZdcEM
    << " Bad " << nBad << " All " << nHit;
    //<<std::endl;
}
void ZdcSimHitStudy::beginJob ( void  ) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 58 of file ZdcSimHitStudy.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), checkHit_, dbe_, genpart_GammaB, genpart_GammaB_energydist, genpart_GammaF, genpart_GammaF_energydist, genpart_NeutB, genpart_NeutB_energydist, genpart_NeutF, genpart_NeutF_energydist, genpart_Pi0B, genpart_Pi0B_energydist, genpart_Pi0F, genpart_Pi0F_energydist, MonitorElement::getTH2F(), meAllZdcNHit_, meBadZdcDetHit_, meBadZdcIdHit_, meBadZdcSecHit_, meZdc10Ene_, meZdcChannelHit_, meZdcCorEEmNEHadN_, meZdcCorEEmPEHadP_, meZdcCorEtotNEtotP_, meZdcDetectHit_, meZdcEEMCh_, meZdcEHadCh_, meZdcEMEnergyHit_, meZdcEML10EneP_, meZdcEneEmN1_, meZdcEneEmN2_, meZdcEneEmN3_, meZdcEneEmN4_, meZdcEneEmN5_, meZdcEneEmNTot_, meZdcEneEmP1_, meZdcEneEmP2_, meZdcEneEmP3_, meZdcEneEmP4_, meZdcEneEmP5_, meZdcEneEmPTot_, meZdcEneHadN1_, meZdcEneHadN2_, meZdcEneHadN3_, meZdcEneHadN4_, meZdcEneHadNTot_, meZdcEneHadP1_, meZdcEneHadP2_, meZdcEneHadP3_, meZdcEneHadP4_, meZdcEneHadPTot_, meZdcEneNTot_, meZdcEnePTot_, meZdcEnergyHit_, meZdcEneTEmN1_, meZdcEneTEmN2_, meZdcEneTEmN3_, meZdcEneTEmN4_, meZdcEneTEmN5_, meZdcEneTEmP1_, meZdcEneTEmP2_, meZdcEneTEmP3_, meZdcEneTEmP4_, meZdcEneTEmP5_, meZdcEneTHadN1_, meZdcEneTHadN2_, meZdcEneTHadN3_, meZdcEneTHadN4_, meZdcEneTHadP1_, meZdcEneTHadP2_, meZdcEneTHadP3_, meZdcEneTHadP4_, meZdcEneTot_, meZdcETime_, meZdcHadEnergyHit_, meZdcHadL10EneP_, meZdcNHitEM_, meZdcNHitHad_, meZdcNHitLum_, meZdcSectionHit_, meZdcSideHit_, meZdcTimeHit_, meZdcTimeWHit_, MonitorElement::setAxisTitle(), and DQMStore::setCurrentFolder().

                              {
  if (dbe_) {
    dbe_->setCurrentFolder("ZDCValidation");
    //Histograms for Hits
//# Below we are filling the histograms made in the .h file. The syntax is as follows:                                      #
//# plot_code_name = dbe_->TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis options);                    #
//# They will be stored in the TFile subdirectory set by :    dbe_->setCurrentFolder("FolderIwant")                         #
//# axis options are like (#ofbins,min,max)                                                                                 #


    if (checkHit_) {
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits");
      meAllZdcNHit_ = dbe_->book1D("ZDC Hits","Number of All Hits in ZDC",100,0.,100.);
      meAllZdcNHit_->setAxisTitle("Total Hits",1);
      meAllZdcNHit_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Debug_Helper");
      meBadZdcDetHit_= dbe_->book1D("Hiits with the wrong Det","Hits with wrong Det in ZDC",100,0.,100.);
      meBadZdcDetHit_->setAxisTitle("Wrong Hits",1);
      meBadZdcDetHit_->setAxisTitle("Counts",2);
      meBadZdcSecHit_= dbe_->book1D("Wrong Section Hits","Hits with wrong Section in ZDC",100,0.,100.);
      meBadZdcSecHit_->setAxisTitle("Hits in wrong section",1);
      meBadZdcSecHit_->setAxisTitle("Counts",2);
      meBadZdcIdHit_ = dbe_->book1D("Wrong_ID_Hits","Hits with wrong ID in ZDC",100,0.,100.);
      meBadZdcIdHit_->setAxisTitle("Hits with wrong ID",1);
      meBadZdcIdHit_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");      
      meZdcNHitEM_   = dbe_->book1D("Hits in EM","Number of Hits in ZDC EM",100,0.,100.);
      meZdcNHitEM_->setAxisTitle("EM Hits",1);
      meZdcNHitEM_->setAxisTitle("Counts",2);
      meZdcNHitHad_   = dbe_->book1D("Hits in HAD","Number of Hits in ZDC Had",100,0.,100.);
      meZdcNHitHad_->setAxisTitle("HAD Hits",1);
      meZdcNHitHad_->setAxisTitle("Counts",2);
      meZdcNHitLum_   = dbe_->book1D("Hits in LUM","Number of Hits in ZDC Lum",100,0.,100.);
      meZdcNHitLum_->setAxisTitle("LUM Hits",1);
      meZdcNHitLum_->setAxisTitle("Counts",2);
      meZdcDetectHit_= dbe_->book1D("Calo Detector ID","Calo Detector ID",50,0.,50.);
      meZdcDetectHit_->setAxisTitle("Detector Hits",1);
      meZdcDetectHit_->setAxisTitle("Counts",2);
      meZdcSideHit_ = dbe_->book1D("ZDC Side","Side in ZDC",4,-2,2.);
      meZdcSideHit_->setAxisTitle("ZDC Side",1);
      meZdcSideHit_->setAxisTitle("Counts",2);
      meZdcSectionHit_   = dbe_->book1D("ZDC Section","Section in ZDC",4,0.,4.);
      meZdcSectionHit_->setAxisTitle("ZDC Section",1);
      meZdcSectionHit_->setAxisTitle("Counts",2);
      meZdcChannelHit_   = dbe_->book1D("ZDC Channel","Channel in ZDC",10,0.,10.);
      meZdcChannelHit_->setAxisTitle("ZDC Channel",1);
      meZdcChannelHit_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/");
      meZdcEnergyHit_= dbe_->book1D("Hit Energy","Hits Energy",4000,0.,8000.);
      meZdcEnergyHit_->setAxisTitle("Counts",2);
      meZdcEnergyHit_->setAxisTitle("Energy (GeV)",1);
      meZdcHadEnergyHit_= dbe_->book1D("Hit Energy HAD","Hits Energy in Had Section",4000,0.,8000.);
      meZdcHadEnergyHit_->setAxisTitle("Counts",2);
      meZdcHadEnergyHit_->setAxisTitle("Energy (GeV)",1);
      meZdcEMEnergyHit_ = dbe_->book1D("Hit Energy EM","Hits Energy in EM Section",4000,0.,8000.);
      meZdcEMEnergyHit_->setAxisTitle("Counts",2);
      meZdcEMEnergyHit_->setAxisTitle("Energy (GeV)",1);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");      
      meZdcTimeHit_  = dbe_->book1D("Time in ZDC","Time in ZDC",300,0.,600.);
      meZdcTimeHit_->setAxisTitle("Time (ns)",1);
      meZdcTimeHit_->setAxisTitle("Counts",2);
      meZdcTimeWHit_ = dbe_->book1D("Energy Weighted Time in ZDC","Time in ZDC (E wtd)", 300,0.,600.);
      meZdcTimeWHit_->setAxisTitle("Time (ns)",1);
      meZdcTimeWHit_->setAxisTitle("Counts",2);
      meZdc10Ene_ = dbe_->book1D("ZDC Log(E)","Log10Energy in ZDC", 140, -20., 20. );
      meZdc10Ene_->setAxisTitle("Log(E) (GeV)",1);
      meZdc10Ene_->setAxisTitle("Counts",2);
      meZdcHadL10EneP_ = dbe_->bookProfile("Log(EHAD) vs Contribution","Log10Energy in Had ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
      meZdcHadL10EneP_->setAxisTitle("Log(EHAD) (GeV)",1);
      meZdcHadL10EneP_->setAxisTitle("Counts",2);
      meZdcEML10EneP_ = dbe_->bookProfile("Log(EEM) vs Contribution","Log10Energy in EM ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
      meZdcEML10EneP_->setAxisTitle("Log(EEM) (GeV)",1);
      meZdcEML10EneP_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits");      
      meZdcEHadCh_ = dbe_->book2D("ZDC EHAD vs Channel","ZDC Had Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
      meZdcEHadCh_->setAxisTitle("Hadronic Channel Number",2);
      meZdcEHadCh_->setAxisTitle("Energy (GeV)",1);
      meZdcEEMCh_ = dbe_->book2D("ZDC EEM vs Channel","ZDC EM Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
      meZdcEEMCh_->setAxisTitle("EM Channel Number",2);
      meZdcEEMCh_->setAxisTitle("Energy (GeV)",1);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
      meZdcETime_ = dbe_->book2D("E vs T","Hits ZDC Energy vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcETime_->setAxisTitle("Energy (GeV)",1);
      meZdcETime_->setAxisTitle("Time (ns)",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/NZDC");
      meZdcEneEmN1_  = dbe_->book1D("NZDC EM1 Energy","Energy EM module N1",4000,0.,8000.);
      meZdcEneEmN1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmN1_->setAxisTitle("Counts",2);
      meZdcEneEmN2_  = dbe_->book1D("NZDC EM2 Energy","Energy EM module N2",4000,0.,8000.);
      meZdcEneEmN2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmN2_->setAxisTitle("Counts",2);
      meZdcEneEmN3_  = dbe_->book1D("NZDC EM3 Energy","Energy EM module N3",4000,0.,8000.);
      meZdcEneEmN3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmN3_->setAxisTitle("Counts",2);
      meZdcEneEmN4_  = dbe_->book1D("NZDC EM4 Energy","Energy EM module N4",4000,0.,8000.);
      meZdcEneEmN4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmN4_->setAxisTitle("Counts",2);
      meZdcEneEmN5_  = dbe_->book1D("NZDC EM5 Energy","Energy EM module N5",4000,0.,8000.);
      meZdcEneEmN5_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmN5_->setAxisTitle("Counts",2);
      meZdcEneHadN1_ = dbe_->book1D("NZDC HAD1 Energy","Energy HAD module N1",4000,0.,8000.);
      meZdcEneHadN1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadN1_->setAxisTitle("Counts",2);
      meZdcEneHadN2_ = dbe_->book1D("NZDC HAD2 Energy","Energy HAD module N2",4000,0.,8000.);
      meZdcEneHadN2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadN2_->setAxisTitle("Counts",2);
      meZdcEneHadN3_ = dbe_->book1D("NZDC HAD3 Energy","Energy HAD module N3",4000,0.,8000.);
      meZdcEneHadN3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadN3_->setAxisTitle("Counts",2);
      meZdcEneHadN4_ = dbe_->book1D("NZDC HAD4 Energy","Energy HAD module N4",4000,0.,8000.);
      meZdcEneHadN4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadN4_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/NZDC");
      meZdcEneTEmN1_ = dbe_->book2D("NZDC EM1 Energy vs Time","Energy EM mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmN1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmN1_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmN2_ = dbe_->book2D("NZDC EM2 Energy vs Time","Energy EM mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmN2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmN2_->setAxisTitle("Time (ns)",2); 
      meZdcEneTEmN3_ = dbe_->book2D("NZDC EM3 Energy vs Time","Energy EM mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmN3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmN3_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmN4_ = dbe_->book2D("NZDC EM4 Energy vs Time","Energy EM mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmN4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmN4_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmN5_ = dbe_->book2D("NZDC EM5 Energy vs Time","Energy EM mod N5 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmN5_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmN5_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadN1_ = dbe_->book2D("NZDC HAD1 Energy vs Time","Energy HAD mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadN1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadN1_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadN2_ = dbe_->book2D("NZDC HAD2 Energy vs Time","Energy HAD mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadN2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadN2_->setAxisTitle("Time (ns)",2); 
      meZdcEneTHadN3_ = dbe_->book2D("NZDC HAD3 Energy vs Time","Energy HAD mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadN3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadN3_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadN4_ = dbe_->book2D("NZDC HAD4 Energy vs Time","Energy HAD mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadN4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadN4_->setAxisTitle("Time (ns)",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
      meZdcEneHadNTot_ = dbe_->book1D("NZDC EHAD","Total N-ZDC HAD Energy",4000,0.,4000.);
      meZdcEneHadNTot_->setAxisTitle("Counts",2);
      meZdcEneHadNTot_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmNTot_ = dbe_->book1D("NZDC EEM","Total N-ZDC EM Energy",3000,0.,3000.);
      meZdcEneEmNTot_->setAxisTitle("Counts",2);
      meZdcEneEmNTot_->setAxisTitle("Energy (GeV)",1);
      meZdcEneNTot_ = dbe_->book1D("NZDC ETOT","Total N-ZDC Energy ",7000,0.,7000.);
      meZdcEneNTot_->setAxisTitle("Counts",2);
      meZdcEneNTot_->setAxisTitle("Energy (GeV)",1);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/PZDC");
      meZdcEneEmP1_ = dbe_->book1D("PZDC EM1 Energy","Energy EM module P1",3000,0.,3000.);
      meZdcEneEmP1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmP1_->setAxisTitle("Counts",2);
      meZdcEneEmP2_ = dbe_->book1D("PZDC EM2 Energy","Energy EM module P2",3000,0.,3000.);
      meZdcEneEmP2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmP2_->setAxisTitle("Counts",2);
      meZdcEneEmP3_ = dbe_->book1D("PZDC EM3 Energy","Energy EM module P3",3000,0.,3000.);
      meZdcEneEmP3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmP3_->setAxisTitle("Counts",2);
      meZdcEneEmP4_ = dbe_->book1D("PZDC EM4 Energy","Energy EM module P4",3000,0.,3000.);
      meZdcEneEmP4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmP4_->setAxisTitle("Counts",2);
      meZdcEneEmP5_ = dbe_->book1D("PZDC EM5 Energy","Energy EM module P5",3000,0.,3000.);
      meZdcEneEmP5_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmP5_->setAxisTitle("Counts",2);
      meZdcEneHadP1_ = dbe_->book1D("PZDC HAD1 Energy","Energy HAD module P1",3000,0.,3000.);
      meZdcEneHadP1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadP1_->setAxisTitle("Counts",2);
      meZdcEneHadP2_ = dbe_->book1D("PZDC HAD2 Energy","Energy HAD module P2",3000,0.,3000.);
      meZdcEneHadP2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadP2_->setAxisTitle("Counts",2);
      meZdcEneHadP3_ = dbe_->book1D("PZDC HAD3 Energy","Energy HAD module P3",3000,0.,3000.);
      meZdcEneHadP3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadP3_->setAxisTitle("Counts",2);
      meZdcEneHadP4_ = dbe_->book1D("PZDC HAD4 Energy","Energy HAD module P4",3000,0.,3000.);
      meZdcEneHadP4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadP4_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/PZDC");
      meZdcEneTEmP1_ = dbe_->book2D("PZDC EM1 Energy vs Time","Energy EM mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmP1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmP1_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmP2_ = dbe_->book2D("PZDC EM2 Energy vs Time","Energy EM mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. ); 
      meZdcEneTEmP2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmP2_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmP3_ = dbe_->book2D("PZDC EM3 Energy vs Time","Energy EM mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmP3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmP3_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmP4_ = dbe_->book2D("PZDC EM4 Energy vs Time","Energy EM mod P4 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmP4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmP4_->setAxisTitle("Time (ns)",2);
      meZdcEneTEmP5_ = dbe_->book2D("PZDC EM5 Energy vs Time","Energy EM mod P5 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTEmP5_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTEmP5_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadP1_ = dbe_->book2D("PZDC HAD1 Energy vs Time","Energy HAD mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadP1_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadP1_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadP2_ = dbe_->book2D("PZDC HAD2 Energy vs Time","Energy HAD mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. ); 
      meZdcEneTHadP2_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadP2_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadP3_ = dbe_->book2D("PZDC HAD3 Energy vs Time","Energy HAD mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadP3_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadP3_->setAxisTitle("Time (ns)",2);
      meZdcEneTHadP4_ = dbe_->book2D("PZDC HAD4 Energy vs Time","Energy HAD mod P4 vs Time", 4000, 0., 8000., 300, 0., 600. );
      meZdcEneTHadP4_->setAxisTitle("Energy (GeV)",1);
      meZdcEneTHadP4_->setAxisTitle("Time (ns)",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
      meZdcEneHadPTot_ = dbe_->book1D("PZDC EHAD","Total P-ZDC HAD Energy",10000,0.,10000.);
      meZdcEneHadPTot_->setAxisTitle("Energy (GeV)",1);
      meZdcEneHadPTot_->setAxisTitle("Counts",2);
      meZdcEneEmPTot_ = dbe_->book1D("PZDC EEM","Total P-ZDC EM Energy",10000,0.,10000.);
      meZdcEneEmPTot_->setAxisTitle("Energy (GeV)",1);
      meZdcEneEmPTot_->setAxisTitle("Counts",2);
      meZdcEnePTot_ = dbe_->book1D("PZDC ETOT","Total P-ZDC Energy",10000,0.,10000.);
      meZdcEnePTot_->setAxisTitle("Energy (GeV)",1);
      meZdcEnePTot_->setAxisTitle("Counts",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
      meZdcCorEEmNEHadN_= dbe_->book2D("NZDC EMvHAD","N-ZDC Energy EM vs HAD", 3000, 0., 3000.,3000, 0., 3000.);
      meZdcCorEEmNEHadN_->setAxisTitle("EM Energy (GeV)",1);
      meZdcCorEEmNEHadN_->setAxisTitle("HAD Energy (GeV)",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
      meZdcCorEEmPEHadP_= dbe_->book2D("PZDC EMvHAD","P-ZDC Energy EM vs HAD", 3000, 0., 3000.,3000, 0., 3000.);
      meZdcCorEEmPEHadP_->setAxisTitle("EM Energy (GeV)",1);
      meZdcCorEEmPEHadP_->setAxisTitle("HAD Energy (GeV)",2);
      dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS");
      meZdcCorEtotNEtotP_ = dbe_->book2D("PZDC vs NZDC","Energy N-ZDC vs P-ZDC", 3000, 0., 3000.,3000, 0., 3000.);
      meZdcCorEtotNEtotP_->setAxisTitle("N-ZDC Total Energy (GeV)",1);
      meZdcCorEtotNEtotP_->setAxisTitle("P-ZDC Total Energy (GeV)",2);
      meZdcEneTot_ = dbe_->book1D("ETOT ZDCs","Total Energy ZDCs",3000,0.,3000.);
      meZdcEneTot_->setAxisTitle("Counts",2);
      meZdcEneTot_->setAxisTitle("Energy (GeV)",1);





   dbe_->setCurrentFolder("ZDCValidation/GenParticles/Forward");
    genpart_Pi0F = dbe_->book2D("Pi0_Forward","Forward Generated Pi0s",200,7.5,13,100,-3.15,3.15);
   //   genpart_Pi0F = dbe_->bookProfile2D("blah","balh",200,4.5,7,100,-3.15,3.15,2000,0,3000,"s");
   genpart_Pi0F->setAxisTitle("Eta",1);
   genpart_Pi0F->setAxisTitle("Phi (radians)",2);
   genpart_Pi0F->setAxisTitle("Energy (GeV)",3);
   genpart_Pi0F->getTH2F()->SetOption("lego2z,prof");
   genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"y");
   genpart_NeutF = dbe_->book2D("Neutron_Forward","Forward Generated Neutrons",200,7.5,13,100,-3.15,3.15);
   genpart_NeutF->setAxisTitle("Eta",1);
   genpart_NeutF->setAxisTitle("Phi (radians)",2);
   genpart_NeutF->setAxisTitle("Energy (GeV)",3);
   genpart_NeutF->getTH2F()->SetOption("lego2z,prof");
   genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"y");
   genpart_GammaF = dbe_->book2D("Gamma_Forward","Forward Generated Gammas",200,7.5,13,100,-3.15,3.15);
   genpart_GammaF->setAxisTitle("Eta",1);
   genpart_GammaF->setAxisTitle("Phi (radians)",2);
   genpart_GammaF->setAxisTitle("Energy (GeV)",3);
   genpart_GammaF->getTH2F()->SetOption("lego2z,prof");
   genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"y");
genpart_Pi0F_energydist = dbe_->book1D("Pi0_Forward_EDistribution","Gen-Level Forward Pi0 Energy",1500,0,1500);
   genpart_Pi0F_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_Pi0F_energydist->setAxisTitle("Counts",2);
   genpart_NeutF_energydist = dbe_->book1D("N_Forward_EDistribution","Gen-Level Forward Neutron Energy",1500,0,1500);
   genpart_NeutF_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_NeutF_energydist->setAxisTitle("Counts",2);
   genpart_GammaF_energydist = dbe_->book1D("Gamma_Forward_EDistribution","Gen-Level Fowarad Gamma Energy",1500,0,1500);
   genpart_GammaF_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_GammaF_energydist->setAxisTitle("Counts",2);
  dbe_->setCurrentFolder("ZDCValidation/GenParticles/Backward");
   genpart_Pi0B = dbe_->book2D("Pi0_Backward","Backward Generated Pi0s",1000,-13,-7.5,100,-3.15,3.15);
   genpart_Pi0B->setAxisTitle("Eta",1);
   genpart_Pi0B->setAxisTitle("Phi (radians)",2);
   genpart_Pi0B->setAxisTitle("Energy (GeV)",3);
   genpart_Pi0B->getTH2F()->SetOption("lego2z,prof");
   genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"y");
   genpart_NeutB = dbe_->book2D("Neutron_Backward","Backward Generated Neutrons",1000,-13,-7.5,100,-3.15,3.15);
   genpart_NeutB->setAxisTitle("Eta",1);
   genpart_NeutB->setAxisTitle("Phi (radians)",2);
   genpart_NeutB->setAxisTitle("Energy (GeV)",3);
   genpart_NeutB->getTH2F()->SetOption("lego2z,prof");
   genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"y");
   genpart_GammaB = dbe_->book2D("Gamma_Backward","Backward Generated Gammas",1000,-13,-7.5,100,-3.15,3.15);
   genpart_GammaB->setAxisTitle("Eta",1);
   genpart_GammaB->setAxisTitle("Phi (radians)",2);
   genpart_GammaB->setAxisTitle("Energy (GeV)",3);
   genpart_GammaB->getTH2F()->SetOption("lego2z,prof");
   genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"x");
   genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"y");
   genpart_Pi0B_energydist = dbe_->book1D("Pi0_Backward_EDistribution","Gen-Level Backward Pi0 Energy",1500,0,1500);
   genpart_Pi0B_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_Pi0B_energydist->setAxisTitle("Counts",2);
   genpart_NeutB_energydist = dbe_->book1D("N_Backward_EDistribution","Gen-Level Foward Neutron Energy",1500,0,1500);
   genpart_NeutB_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_NeutB_energydist->setAxisTitle("Counts",2);
   genpart_GammaB_energydist = dbe_->book1D("Gamma_Backward_EDistribution","Gen-Level Backward Gamma Energy",1500,0,1500);
   genpart_GammaB_energydist->setAxisTitle("Energy (GeV)",1);
   genpart_GammaB_energydist->setAxisTitle("Counts",2);





    }
  }
}
void ZdcSimHitStudy::endJob ( void  ) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 466 of file ZdcSimHitStudy.cc.

References dbe_, outFile_, and DQMStore::save().

                            {
  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
}
void ZdcSimHitStudy::endRun ( const edm::Run run,
const edm::EventSetup c 
) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 811 of file ZdcSimHitStudy.cc.

{
}
int ZdcSimHitStudy::FillHitValHist ( int  side,
int  section,
int  channel,
double  energy,
double  time 
) [protected]

Definition at line 706 of file ZdcSimHitStudy.cc.

References HcalZDCDetId::EM, relval_parameters_module::energy, enetot, enetotEmN, enetotEmP, enetotHadN, enetotHadP, enetotN, enetotP, MonitorElement::Fill(), HcalZDCDetId::HAD, meZdcEneEmN1_, meZdcEneEmN2_, meZdcEneEmN3_, meZdcEneEmN4_, meZdcEneEmP1_, meZdcEneEmP2_, meZdcEneEmP3_, meZdcEneEmP4_, meZdcEneHadN1_, meZdcEneHadN2_, meZdcEneHadN3_, meZdcEneHadN4_, meZdcEneHadP1_, meZdcEneHadP2_, meZdcEneHadP3_, meZdcEneHadP4_, meZdcEneTEmN1_, meZdcEneTEmN2_, meZdcEneTEmN3_, meZdcEneTEmN4_, meZdcEneTEmP1_, meZdcEneTEmP2_, meZdcEneTEmP3_, meZdcEneTEmP4_, meZdcEneTHadN1_, meZdcEneTHadN2_, meZdcEneTHadN3_, meZdcEneTHadN4_, meZdcEneTHadP1_, meZdcEneTHadP2_, meZdcEneTHadP3_, and meZdcEneTHadP4_.

Referenced by analyzeHits().

                                                                                            {  
  enetot += enetot;
  if(side == -1){
    enetotN += energy;
    if(section == HcalZDCDetId::EM){
      enetotEmN += energy;
      switch(channel){
      case 1 :
        meZdcEneEmN1_->Fill(energy);
        meZdcEneTEmN1_->Fill(energy,time);
        break;
      case 2 :
       meZdcEneEmN2_->Fill(energy);
       meZdcEneTEmN2_->Fill(energy,time);
        break;
      case 3 :
        meZdcEneEmN3_->Fill(energy);
       meZdcEneTEmN3_->Fill(energy,time);
        break;
      case 4 :
        meZdcEneEmN4_->Fill(energy);
        meZdcEneTEmN4_->Fill(energy,time);
        break; 
     case 5 :
        meZdcEneEmN4_->Fill(energy);
        meZdcEneTEmN4_->Fill(energy,time);
        break;
      }
    }
    if(section == HcalZDCDetId::HAD){
      enetotHadN += energy;
      switch(channel){
      case 1 :
        meZdcEneHadN1_->Fill(energy);
        meZdcEneTHadN1_->Fill(energy,time);
        break;
      case 2 :
        meZdcEneHadN2_->Fill(energy);
        meZdcEneTHadN2_->Fill(energy,time);
        break;
      case 3 :
        meZdcEneHadN3_->Fill(energy);
        meZdcEneTHadN3_->Fill(energy,time);
        break;
      case 4 :
        meZdcEneHadN4_->Fill(energy);
        meZdcEneTHadN4_->Fill(energy,time);
        break;
      }
    }
  }
  if(side == 1){
    enetotP += energy;
    if(section == HcalZDCDetId::EM){
      enetotEmP += energy;
      switch(channel){
      case 1 :
        meZdcEneEmP1_->Fill(energy);
        meZdcEneTEmP1_->Fill(energy,time);
        break;
      case 2 :
        meZdcEneEmP2_->Fill(energy);
        meZdcEneTEmP2_->Fill(energy,time);
        break;
      case 3 :
        meZdcEneEmP3_->Fill(energy);
        meZdcEneTEmP3_->Fill(energy,time);
        break;
      case 4 :
        meZdcEneEmP4_->Fill(energy);
        meZdcEneTEmP4_->Fill(energy,time);
        break; 
      case 5 :
        meZdcEneEmP4_->Fill(energy);
        meZdcEneTEmP4_->Fill(energy,time);
        break;
      }
    }
    if(section == HcalZDCDetId::HAD){
      enetotHadP += energy;
      switch(channel){
      case 1 :
        meZdcEneHadP1_->Fill(energy);
        meZdcEneTHadP1_->Fill(energy,time);
        break;
      case 2 :
        meZdcEneHadP2_->Fill(energy);
        meZdcEneTHadP2_->Fill(energy,time);
        break;
      case 3 :
        meZdcEneHadP3_->Fill(energy);
        meZdcEneTHadP3_->Fill(energy,time);
        break;
      case 4 :
        meZdcEneHadP4_->Fill(energy);
        meZdcEneTHadP4_->Fill(energy,time);
        break;
      }
    }
  }       
  return 0;
}

Member Data Documentation

bool ZdcSimHitStudy::checkHit_ [private]

Definition at line 83 of file ZdcSimHitStudy.h.

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

Definition at line 84 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), beginJob(), endJob(), and ZdcSimHitStudy().

double ZdcSimHitStudy::enetot [private]

Definition at line 72 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotEmN [private]

Definition at line 70 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotEmP [private]

Definition at line 71 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotHadN [private]

Definition at line 70 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotHadP [private]

Definition at line 71 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotN [private]

Definition at line 70 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

double ZdcSimHitStudy::enetotP [private]

Definition at line 71 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and FillHitValHist().

std::string ZdcSimHitStudy::g4Label [private]

Definition at line 82 of file ZdcSimHitStudy.h.

Referenced by analyze(), and ZdcSimHitStudy().

Definition at line 118 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 119 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 116 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 117 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 114 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 115 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 112 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 113 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 110 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 111 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 108 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 109 of file ZdcSimHitStudy.h.

Referenced by analyze(), and beginJob().

Definition at line 86 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 86 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 86 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 86 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 88 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 91 of file ZdcSimHitStudy.h.

Definition at line 89 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 97 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 103 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 103 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 87 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 91 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 91 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 90 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 91 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 92 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 92 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 92 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 92 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 92 of file ZdcSimHitStudy.h.

Referenced by beginJob().

Definition at line 96 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 98 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 98 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 98 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 98 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 98 of file ZdcSimHitStudy.h.

Referenced by beginJob().

Definition at line 102 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 93 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 93 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 93 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 93 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 96 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 99 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 99 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 99 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 99 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 102 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 96 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 102 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 89 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 94 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 94 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 94 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 94 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 94 of file ZdcSimHitStudy.h.

Referenced by beginJob().

Definition at line 100 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 100 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 100 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 100 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 100 of file ZdcSimHitStudy.h.

Referenced by beginJob().

Definition at line 95 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 95 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 95 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 95 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 101 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 101 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 101 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 101 of file ZdcSimHitStudy.h.

Referenced by beginJob(), and FillHitValHist().

Definition at line 103 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 87 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 90 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 90 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 87 of file ZdcSimHitStudy.h.

Definition at line 88 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 88 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 88 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 89 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 87 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 90 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

Definition at line 89 of file ZdcSimHitStudy.h.

Referenced by analyzeHits(), and beginJob().

std::string ZdcSimHitStudy::outFile_ [private]

Definition at line 82 of file ZdcSimHitStudy.h.

Referenced by endJob(), and ZdcSimHitStudy().

bool ZdcSimHitStudy::verbose_ [private]

Definition at line 83 of file ZdcSimHitStudy.h.

Referenced by ZdcSimHitStudy().

std::string ZdcSimHitStudy::zdcHits [private]

Definition at line 82 of file ZdcSimHitStudy.h.

Referenced by analyze(), and ZdcSimHitStudy().