CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/Validation/GlobalDigis/src/GlobalDigisHistogrammer.cc

Go to the documentation of this file.
00001 
00010 #include "Validation/GlobalDigis/interface/GlobalDigisHistogrammer.h"
00011 #include "DQMServices/Core/interface/DQMStore.h"
00012 
00013 GlobalDigisHistogrammer::GlobalDigisHistogrammer(const edm::ParameterSet& iPSet) :
00014   fName(""), verbosity(0), frequency(0), label(""), getAllProvenances(false),
00015   printProvenanceInfo(false), theCSCStripPedestalSum(0),
00016   theCSCStripPedestalCount(0), count(0)
00017 {
00018   std::string MsgLoggerCat = "GlobalDigisHistogrammer_GlobalDigisHistogrammer";
00019 
00020   // get information from parameter set
00021   fName = iPSet.getUntrackedParameter<std::string>("Name");
00022   verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
00023   frequency = iPSet.getUntrackedParameter<int>("Frequency");
00024   outputfile = iPSet.getParameter<std::string>("outputFile");
00025   doOutput = iPSet.getParameter<bool>("DoOutput");
00026   edm::ParameterSet m_Prov =
00027     iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
00028   getAllProvenances = 
00029     m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
00030   printProvenanceInfo = 
00031     m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
00032 
00033   //get Labels to use to extract information
00034   GlobalDigisSrc_ = iPSet.getParameter<edm::InputTag>("GlobalDigisSrc");
00035   //ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
00036   //ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
00037   //ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
00038   //HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
00039   //SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc"); 
00040   //SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
00041   //MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
00042   //MuCSCStripSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCStripSrc");
00043   //MuCSCWireSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCWireSrc");
00044 
00045   // use value of first digit to determine default output level (inclusive)
00046   // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
00047   verbosity %= 10;
00048 
00049   // create persistent object
00050   //produces<PGlobalDigi>(label);
00051 
00052   // print out Parameter Set information being used
00053   if (verbosity >= 0) {
00054     edm::LogInfo(MsgLoggerCat) 
00055       << "\n===============================\n"
00056       << "Initialized as EDHistogrammer with parameter values:\n"
00057       << "    Name          = " << fName << "\n"
00058       << "    Verbosity     = " << verbosity << "\n"
00059       << "    Frequency     = " << frequency << "\n"
00060       << "    OutputFile    = " << outputfile << "\n"
00061       << "    DoOutput      = " << doOutput << "\n"
00062       << "    GetProv       = " << getAllProvenances << "\n"
00063       << "    PrintProv     = " << printProvenanceInfo << "\n"
00064       << "    Global Src    = " << GlobalDigisSrc_ << "\n"
00065 
00066       << "===============================\n";
00067   }
00068 
00069   //Put in analyzer stuff here.... Pasted from Rec Hits... 
00070 
00071   dbe = 0;
00072 dbe = edm::Service<DQMStore>().operator->();
00073 if (dbe) {
00074     if (verbosity > 0 ) {
00075       dbe->setVerbose(1);
00076     } else {
00077       dbe->setVerbose(0);
00078     }
00079 }
00080 if (dbe) {
00081     if (verbosity > 0 ) dbe->showDirStructure();
00082   }
00083 
00084 //monitor elements 
00085 
00086 //Si Strip  ***Done***
00087  if(dbe)
00088    {
00089 std::string SiStripString[19] = {"TECW1", "TECW2", "TECW3", "TECW4", "TECW5", "TECW6", "TECW7", "TECW8", "TIBL1", "TIBL2", "TIBL3", "TIBL4", "TIDW1", "TIDW2", "TIDW3", "TOBL1", "TOBL2", "TOBL3", "TOBL4"};
00090 for(int i = 0; i<19; ++i)
00091 {
00092   mehSiStripn[i]=0;
00093   mehSiStripADC[i]=0;
00094   mehSiStripStrip[i]=0;
00095 }
00096 dbe->setCurrentFolder("GlobalDigisV/SiStrips");
00097 for(int amend = 0; amend < 19; ++amend)
00098 { 
00099   mehSiStripn[amend] = dbe->book1D("hSiStripn_"+SiStripString[amend], SiStripString[amend]+"  Digis",500,0.,1000.);
00100   mehSiStripn[amend]->setAxisTitle("Number of Digis",1);
00101   mehSiStripn[amend]->setAxisTitle("Count",2);
00102   mehSiStripADC[amend] = dbe->book1D("hSiStripADC_"+SiStripString[amend],SiStripString[amend]+" ADC",150,0.0,300.);
00103   mehSiStripADC[amend]->setAxisTitle("ADC",1);
00104   mehSiStripADC[amend]->setAxisTitle("Count",2);
00105   mehSiStripStrip[amend] = dbe->book1D("hSiStripStripADC_"+SiStripString[amend],SiStripString[amend]+" Strip",200,0.0,800.);
00106   mehSiStripStrip[amend]->setAxisTitle("Strip Number",1);
00107   mehSiStripStrip[amend]->setAxisTitle("Count",2);
00108 }
00109 
00110 
00111 //HCal  **DONE**
00112 std::string HCalString[4] = {"HB", "HE", "HO","HF"}; 
00113 float calnUpper[4] = {3000.,3000.,3000.,2000.}; float calnLower[4]={2000.,2000.,2000.,1000.}; 
00114 float SHEUpper[4]={0.05,.05,0.05,20};
00115 float SHEvAEEUpper[4] = {5000, 5000, 5000, 20}; float SHEvAEELower[4] = {-5000, -5000, -5000, -20}; 
00116 int SHEvAEEnBins[4] = {200,200,200,40};
00117 double ProfileUpper[4] = {1.,1.,1.,20.};  
00118 
00119 for(int i =0; i<4; ++i)
00120 {
00121   mehHcaln[i]=0;
00122   mehHcalAEE[i]=0;
00123   mehHcalSHE[i]=0;
00124   mehHcalAEESHE[i]=0;
00125   mehHcalSHEvAEE[i]=0;
00126 }
00127 dbe->setCurrentFolder("GlobalDigisV/HCals");
00128  
00129 for(int amend = 0; amend < 4; ++amend)
00130 {
00131   mehHcaln[amend] = dbe->book1D("hHcaln_"+HCalString[amend],HCalString[amend]+"  digis", 1000, calnLower[amend], calnUpper[amend]);
00132   mehHcaln[amend]->setAxisTitle("Number of Digis",1);
00133   mehHcaln[amend]->setAxisTitle("Count",2);
00134   mehHcalAEE[amend] = dbe->book1D("hHcalAEE_"+HCalString[amend],HCalString[amend]+"Cal AEE", 60, -10., 50.);
00135   mehHcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00136   mehHcalAEE[amend]->setAxisTitle("Count",2);
00137   mehHcalSHE[amend] = dbe->book1D("hHcalSHE_"+HCalString[amend],HCalString[amend]+"Cal SHE", 100, 0.0, SHEUpper[amend]);
00138   mehHcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
00139   mehHcalSHE[amend]->setAxisTitle("Count",2);
00140   mehHcalAEESHE[amend] = dbe->book1D("hHcalAEESHE_"+HCalString[amend], HCalString[amend]+"Cal AEE/SHE", SHEvAEEnBins[amend], SHEvAEELower[amend], SHEvAEEUpper[amend]);
00141   mehHcalAEESHE[amend]->setAxisTitle("ADC / SHE",1);
00142   mehHcalAEESHE[amend]->setAxisTitle("Count",2);
00143   
00144   //************  Not sure how to do Profile ME **************
00145   mehHcalSHEvAEE[amend] = dbe->bookProfile("hHcalSHEvAEE_"+HCalString[amend],HCalString[amend]+"Cal SHE vs. AEE", 60, (float)-10., (float)50., 100, (float)0., (float)ProfileUpper[amend],"");
00146   mehHcalSHEvAEE[amend]->setAxisTitle("AEE / SHE",1);
00147   mehHcalSHEvAEE[amend]->setAxisTitle("SHE",2);
00148 
00149 }
00150 
00151 
00152 
00153 
00154 //Ecal **Done **
00155 std::string ECalString[2] = {"EB","EE"}; 
00156 
00157 for(int i =0; i<2; ++i)
00158 {
00159   mehEcaln[i]=0;
00160   mehEcalAEE[i]=0;
00161   mehEcalSHE[i]=0;
00162   mehEcalMaxPos[i]=0;
00163   mehEcalMultvAEE[i]=0;
00164   mehEcalSHEvAEESHE[i]=0;
00165 }
00166 dbe->setCurrentFolder("GlobalDigisV/ECals");
00167  
00168 for(int amend = 0; amend < 2; ++amend)
00169 {
00170   mehEcaln[amend] = dbe->book1D("hEcaln_"+ECalString[amend],ECalString[amend]+"  digis", 300, 1000., 4000.);
00171   mehEcaln[amend]->setAxisTitle("Number of Digis",1);
00172   mehEcaln[amend]->setAxisTitle("Count",2);
00173   mehEcalAEE[amend] = dbe->book1D("hEcalAEE_"+ECalString[amend],ECalString[amend]+"Cal AEE", 100, 0., 1.);
00174   mehEcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00175   mehEcalAEE[amend]->setAxisTitle("Count",2);
00176   mehEcalSHE[amend] = dbe->book1D("hEcalSHE_"+ECalString[amend],ECalString[amend]+"Cal SHE", 50, 0., 5.);
00177   mehEcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
00178   mehEcalSHE[amend]->setAxisTitle("Count",2);
00179   mehEcalMaxPos[amend] = dbe->book1D("hEcalMaxPos_"+ECalString[amend],ECalString[amend]+"Cal MaxPos",10, 0., 10.);
00180   mehEcalMaxPos[amend]->setAxisTitle("Maximum Position",1);
00181   mehEcalMaxPos[amend]->setAxisTitle("Count",2);
00182   
00183   //************  Not sure how to do Profile ME **************
00184   mehEcalSHEvAEESHE[amend] = dbe->bookProfile("hEcalSHEvAEESHE_"+ECalString[amend],ECalString[amend]+"Cal SHE vs. AEE/SHE",100, (float)0., (float)10., 50, (float)0., (float)5.,"");
00185   mehEcalSHEvAEESHE[amend]->setAxisTitle("AEE / SHE",1);
00186   mehEcalSHEvAEESHE[amend]->setAxisTitle("SHE",2);
00187   mehEcalMultvAEE[amend] = dbe->bookProfile("hEcalMultvAEE_"+ECalString[amend],ECalString[amend]+"Cal Multi vs. AEE", 100, (float)0., (float)10., 400, (float)0., (float)4000.,"");
00188   mehEcalMultvAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00189   mehEcalMultvAEE[amend]->setAxisTitle("Number of Digis",2);
00190 
00191 
00192 
00193 }
00194   mehEcaln[2] = 0;
00195   mehEcaln[2] = dbe->book1D("hEcaln_ES","ESCAL  digis", 100, 0., 500.);
00196   mehEcaln[2]->setAxisTitle("Number of Digis",1);
00197   mehEcaln[2]->setAxisTitle("Count",2);
00198   std::string ADCNumber[3] = {"0", "1", "2"};
00199   for(int i =0; i<3; ++i)
00200     {
00201       mehEScalADC[i] = 0;
00202       mehEScalADC[i] = dbe->book1D("hEcalADC"+ADCNumber[i]+"_ES","ESCAL  ADC"+ADCNumber[i], 150, 950., 1500.);
00203       mehEScalADC[i]->setAxisTitle("ADC"+ADCNumber[i],1);
00204       mehEScalADC[i]->setAxisTitle("Count",2);
00205 
00206     }
00207 
00208 //Si Pixels ***DONE***  
00209 std::string SiPixelString[7] = {"BRL1", "BRL2", "BRL3", "FWD1n", "FWD1p", "FWD2n", "FWD2p"};
00210 for(int j =0; j<7; ++j)
00211 {
00212   mehSiPixeln[j]=0;
00213   mehSiPixelADC[j]=0;
00214   mehSiPixelRow[j]=0;
00215   mehSiPixelCol[j]=0;
00216 }
00217 
00218 dbe->setCurrentFolder("GlobalDigisV/SiPixels");
00219 for(int amend = 0; amend < 7; ++amend)
00220 {
00221   if(amend<3) mehSiPixeln[amend] = dbe->book1D("hSiPixeln_"+SiPixelString[amend],SiPixelString[amend]+" Digis",50,0.,100.);
00222   else mehSiPixeln[amend] = dbe->book1D("hSiPixeln_"+SiPixelString[amend],SiPixelString[amend]+" Digis",25,0.,50.);
00223   mehSiPixeln[amend]->setAxisTitle("Number of Digis",1);
00224   mehSiPixeln[amend]->setAxisTitle("Count",2);
00225   mehSiPixelADC[amend] = dbe->book1D("hSiPixelADC_"+SiPixelString[amend],SiPixelString[amend]+" ADC",150,0.0,300.);
00226   mehSiPixelADC[amend]->setAxisTitle("ADC",1);
00227   mehSiPixelADC[amend]->setAxisTitle("Count",2);
00228   mehSiPixelRow[amend] = dbe->book1D("hSiPixelRow_"+SiPixelString[amend],SiPixelString[amend]+" Row",100,0.0,100.);
00229   mehSiPixelRow[amend]->setAxisTitle("Row Number",1);
00230   mehSiPixelRow[amend]->setAxisTitle("Count",2);
00231   mehSiPixelCol[amend] = dbe->book1D("hSiPixelColumn_"+SiPixelString[amend],SiPixelString[amend]+" Column",200,0.0,500.);
00232   mehSiPixelCol[amend]->setAxisTitle("Column Number",1);
00233   mehSiPixelCol[amend]->setAxisTitle("Count",2);
00234 }
00235 //Muons ***DONE****
00236 dbe->setCurrentFolder("GlobalDigisV/Muons");
00237 std::string MuonString[4] = {"MB1", "MB2", "MB3", "MB4"};
00238 
00239 for(int i =0; i < 4; ++i)
00240 {
00241   mehDtMuonn[i] = 0;
00242   mehDtMuonLayer[i] = 0;
00243   mehDtMuonTime[i] = 0;
00244   mehDtMuonTimevLayer[i] = 0;
00245 }
00246 
00247 for(int j = 0; j < 4; ++j)
00248 {
00249   mehDtMuonn[j] = dbe->book1D("hDtMuonn_"+MuonString[j],MuonString[j]+"  digis",25, 0., 50.);
00250   mehDtMuonn[j]->setAxisTitle("Number of Digis",1);
00251   mehDtMuonn[j]->setAxisTitle("Count",2);
00252   mehDtMuonLayer[j] = dbe->book1D("hDtLayer_"+MuonString[j],MuonString[j]+"  Layer",12, 1., 13.);
00253   mehDtMuonLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
00254   mehDtMuonLayer[j]->setAxisTitle("Count",2);
00255   mehDtMuonTime[j] = dbe->book1D("hDtMuonTime_"+MuonString[j],MuonString[j]+"  Time",300, 400., 1000.);
00256   mehDtMuonTime[j]->setAxisTitle("Time",1);
00257   mehDtMuonTime[j]->setAxisTitle("Count",2);
00258   mehDtMuonTimevLayer[j] = dbe->bookProfile("hDtMuonTimevLayer_"+MuonString[j],MuonString[j]+"  Time vs. Layer",12, 1., 13., 300, 400., 1000.,"");
00259   mehDtMuonTimevLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
00260   mehDtMuonTimevLayer[j]->setAxisTitle("Time",2);
00261 }
00262 
00263 //  ****  Have to do CSC and RPC now *****
00264 //CSC 
00265 mehCSCStripn = 0;
00266 mehCSCStripn = dbe->book1D("hCSCStripn","CSC Strip digis",25, 0., 50.);
00267 mehCSCStripn->setAxisTitle("Number of Digis",1);
00268 mehCSCStripn->setAxisTitle("Count",2);
00269 
00270 mehCSCStripADC = 0;
00271 mehCSCStripADC = dbe->book1D("hCSCStripADC","CSC Strip ADC", 110, 0., 1100.);
00272 mehCSCStripADC->setAxisTitle("ADC",1);
00273 mehCSCStripADC->setAxisTitle("Count",2);
00274 
00275 mehCSCWiren = 0;
00276 mehCSCWiren = dbe->book1D("hCSCWiren","CSC Wire digis",25, 0., 50.);
00277 mehCSCWiren->setAxisTitle("Number of Digis",1);
00278 mehCSCWiren->setAxisTitle("Count",2);
00279 
00280 
00281 
00282 mehCSCWireTime = 0;
00283 mehCSCWiren = dbe->book1D("hCSCWireTime","CSC Wire Time",10, 0., 10.);
00284 mehCSCWiren->setAxisTitle("Time",1);
00285 mehCSCWiren->setAxisTitle("Count",2);
00286  
00287 
00288 }
00289 
00290 }
00291 
00292   // set default constants
00293   // ECal
00294 
00295   //ECalgainConv_[0] = 0.;
00296   //ECalgainConv_[1] = 1.;
00297   //ECalgainConv_[2] = 2.;
00298   //ECalgainConv_[3] = 12.;  
00299   //ECalbarrelADCtoGeV_ = 0.035;
00300   //ECalendcapADCtoGeV_ = 0.06;
00301 
00302 
00303 
00304 GlobalDigisHistogrammer::~GlobalDigisHistogrammer() 
00305 {
00306   if (doOutput)
00307     if (outputfile.size() != 0 && dbe) dbe->save(outputfile);
00308 }
00309 
00310 void GlobalDigisHistogrammer::beginJob( void )
00311 {
00312   std::string MsgLoggerCat = "GlobalDigisHistogrammer_beginJob";
00313 
00314   // setup calorimeter constants from service
00315   //edm::ESHandle<EcalADCToGeVConstant> pAgc;
00316   //iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
00317   //const EcalADCToGeVConstant* agc = pAgc.product();
00318   
00319   //EcalMGPAGainRatio * defaultRatios = new EcalMGPAGainRatio();
00320 
00321   // ECalgainConv_[0] = 0.;
00322   // ECalgainConv_[1] = 1.;
00323   // // ECalgainConv_[2] = defaultRatios->gain12Over6() ;
00324   //ECalgainConv_[3] = ECalgainConv_[2]*(defaultRatios->gain6Over1()) ;
00325 
00326   //delete defaultRatios;
00327 
00328   //ECalbarrelADCtoGeV_ = agc->getEBValue();
00329   //ECalendcapADCtoGeV_ = agc->getEEValue();
00330 
00331   //if (verbosity >= 0) {
00332   // edm::LogInfo(MsgLoggerCat) 
00333   // << "Modified Calorimeter gain constants: g0 = " << ECalgainConv_[0]
00334   //<< ", g1 = " << ECalgainConv_[1] << ", g2 = " << ECalgainConv_[2]
00335   // << ", g3 = " << ECalgainConv_[3];
00336   // edm::LogInfo(MsgLoggerCat)
00337   //  << "Modified Calorimeter ADCtoGeV constants: barrel = " 
00338   //  << ECalbarrelADCtoGeV_ << ", endcap = " << ECalendcapADCtoGeV_;
00339   //}
00340 
00341   // clear storage vectors
00342   //clear();
00343   return;
00344 }
00345 
00346 void GlobalDigisHistogrammer::endJob()
00347 {
00348   std::string MsgLoggerCat = "GlobalDigisHistogrammer_endJob";
00349   if (verbosity >= 0)
00350     edm::LogInfo(MsgLoggerCat) 
00351       << "Terminating having processed " << count << " events.";
00352   return;
00353 }
00354 
00355 void GlobalDigisHistogrammer::analyze(const edm::Event& iEvent, 
00356                                   const edm::EventSetup& iSetup)
00357 {
00358   std::string MsgLoggerCat = "GlobalDigisHistogrammer_analyze";
00359 
00360   // keep track of number of events processed
00361   ++count;
00362 
00363   // get event id information
00364   int nrun = iEvent.id().run();
00365   int nevt = iEvent.id().event();
00366 
00367   if (verbosity > 0) {
00368     edm::LogInfo(MsgLoggerCat)
00369       << "Processing run " << nrun << ", event " << nevt
00370       << " (" << count << " events total)";
00371   } else if (verbosity == 0) {
00372     if (nevt%frequency == 0 || nevt == 1) {
00373       edm::LogInfo(MsgLoggerCat)
00374         << "Processing run " << nrun << ", event " << nevt
00375         << " (" << count << " events total)";
00376     }
00377   }
00378 
00379   // clear event holders
00380   //clear();
00381 
00382   // look at information available in the event
00383   if (getAllProvenances) {
00384 
00385     std::vector<const edm::Provenance*> AllProv;
00386     iEvent.getAllProvenance(AllProv);
00387 
00388     if (verbosity >= 0)
00389       edm::LogInfo(MsgLoggerCat)
00390         << "Number of Provenances = " << AllProv.size();
00391 
00392     if (printProvenanceInfo && (verbosity >= 0)) {
00393       TString eventout("\nProvenance info:\n");      
00394 
00395       for (unsigned int i = 0; i < AllProv.size(); ++i) {
00396         eventout += "\n       ******************************";
00397         eventout += "\n       Module       : ";
00398         //eventout += (AllProv[i]->product).moduleLabel();
00399         eventout += AllProv[i]->moduleLabel();
00400         eventout += "\n       ProductID    : ";
00401         //eventout += (AllProv[i]->product).productID_.id_;
00402         eventout += AllProv[i]->productID().id();
00403         eventout += "\n       ClassName    : ";
00404         //eventout += (AllProv[i]->product).fullClassName_;
00405         eventout += AllProv[i]->className();
00406         eventout += "\n       InstanceName : ";
00407         //eventout += (AllProv[i]->product).productInstanceName_;
00408         eventout += AllProv[i]->productInstanceName();
00409         eventout += "\n       BranchName   : ";
00410         //eventout += (AllProv[i]->product).branchName_;
00411         eventout += AllProv[i]->branchName();
00412       }
00413       eventout += "\n       ******************************\n";
00414       edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00415       printProvenanceInfo = false;
00416       getAllProvenances = false;
00417     }
00418 edm::Handle<PGlobalDigi> srcGlobalDigis;
00419   iEvent.getByLabel(GlobalDigisSrc_,srcGlobalDigis);
00420   if (!srcGlobalDigis.isValid()) {
00421     edm::LogWarning(MsgLoggerCat)
00422       << "Unable to find PGlobalDigis in event!";
00423     return;
00424 
00425   }
00426 
00427     
00428 
00429     int nEBCalDigis = srcGlobalDigis->getnEBCalDigis();
00430     int nEECalDigis = srcGlobalDigis->getnEECalDigis();
00431     int nESCalDigis = srcGlobalDigis->getnESCalDigis();
00432 
00433     int nHBCalDigis = srcGlobalDigis->getnHBCalDigis();
00434     int nHECalDigis = srcGlobalDigis->getnHECalDigis();
00435     int nHOCalDigis = srcGlobalDigis->getnHOCalDigis();
00436     int nHFCalDigis = srcGlobalDigis->getnHFCalDigis();        
00437 
00438     int nTIBL1Digis = srcGlobalDigis->getnTIBL1Digis();    
00439     int nTIBL2Digis = srcGlobalDigis->getnTIBL2Digis();    
00440     int nTIBL3Digis = srcGlobalDigis->getnTIBL3Digis();    
00441     int nTIBL4Digis = srcGlobalDigis->getnTIBL4Digis();    
00442     int nTOBL1Digis = srcGlobalDigis->getnTOBL1Digis();    
00443     int nTOBL2Digis = srcGlobalDigis->getnTOBL2Digis();    
00444     int nTOBL3Digis = srcGlobalDigis->getnTOBL3Digis();    
00445     int nTOBL4Digis = srcGlobalDigis->getnTOBL4Digis();    
00446     int nTIDW1Digis = srcGlobalDigis->getnTIDW1Digis();    
00447     int nTIDW2Digis = srcGlobalDigis->getnTIDW2Digis();    
00448     int nTIDW3Digis = srcGlobalDigis->getnTIDW3Digis();    
00449     int nTECW1Digis = srcGlobalDigis->getnTECW1Digis();    
00450     int nTECW2Digis = srcGlobalDigis->getnTECW2Digis();    
00451     int nTECW3Digis = srcGlobalDigis->getnTECW3Digis();  
00452     int nTECW4Digis = srcGlobalDigis->getnTECW4Digis();    
00453     int nTECW5Digis = srcGlobalDigis->getnTECW5Digis();    
00454     int nTECW6Digis = srcGlobalDigis->getnTECW6Digis();  
00455     int nTECW7Digis = srcGlobalDigis->getnTECW7Digis();    
00456     int nTECW8Digis = srcGlobalDigis->getnTECW8Digis();
00457 
00458     int nBRL1Digis = srcGlobalDigis->getnBRL1Digis();    
00459     int nBRL2Digis = srcGlobalDigis->getnBRL2Digis();    
00460     int nBRL3Digis = srcGlobalDigis->getnBRL3Digis();       
00461     int nFWD1nDigis = srcGlobalDigis->getnFWD1nDigis();
00462     int nFWD1pDigis = srcGlobalDigis->getnFWD1pDigis();    
00463     int nFWD2nDigis = srcGlobalDigis->getnFWD2nDigis();    
00464     int nFWD2pDigis = srcGlobalDigis->getnFWD2pDigis(); 
00465   
00466     int nMB1Digis = srcGlobalDigis->getnMB1Digis();  
00467     int nMB2Digis = srcGlobalDigis->getnMB2Digis();  
00468     int nMB3Digis = srcGlobalDigis->getnMB3Digis();  
00469     int nMB4Digis = srcGlobalDigis->getnMB4Digis();  
00470 
00471     int nCSCstripDigis = srcGlobalDigis->getnCSCstripDigis();
00472 
00473     int nCSCwireDigis = srcGlobalDigis->getnCSCwireDigis();
00474 
00475   // get Ecal info
00476     std::vector<PGlobalDigi::ECalDigi> EECalDigis = 
00477       srcGlobalDigis->getEECalDigis();
00478     mehEcaln[0]->Fill((float)nEECalDigis);
00479     for (unsigned int i = 0; i < EECalDigis.size(); ++i) {
00480       mehEcalAEE[0]->Fill(EECalDigis[i].AEE);
00481       mehEcalMaxPos[0]->Fill(EECalDigis[i].maxPos);
00482       mehEcalMultvAEE[0]->Fill(EECalDigis[i].AEE,(float)nEECalDigis,1);
00483       if (EECalDigis[i].SHE != 0.) {
00484         mehEcalSHE[0]->Fill(EECalDigis[i].SHE);
00485         mehEcalSHEvAEESHE[0]->
00486           Fill(EECalDigis[i].AEE/EECalDigis[i].SHE,EECalDigis[i].SHE,1);
00487       }
00488     }
00489     
00490     std::vector<PGlobalDigi::ECalDigi> EBCalDigis = 
00491       srcGlobalDigis->getEBCalDigis();
00492     mehEcaln[1]->Fill((float)nEBCalDigis);
00493     for (unsigned int i = 0; i < EBCalDigis.size(); ++i) {
00494       mehEcalAEE[1]->Fill(EBCalDigis[i].AEE);
00495       mehEcalMaxPos[1]->Fill(EBCalDigis[i].maxPos);
00496       mehEcalMultvAEE[1]->Fill(EBCalDigis[i].AEE,(float)nEBCalDigis,1);
00497       if (EBCalDigis[i].SHE != 0.) {
00498         mehEcalSHE[1]->Fill(EBCalDigis[i].SHE);
00499         mehEcalSHEvAEESHE[1]->
00500           Fill(EBCalDigis[i].AEE/EBCalDigis[i].SHE,EBCalDigis[i].SHE,1);
00501       }
00502     }
00503     
00504     std::vector<PGlobalDigi::ESCalDigi> ESCalDigis = 
00505       srcGlobalDigis->getESCalDigis();   
00506     mehEcaln[2]->Fill((float)nESCalDigis);
00507     for (unsigned int i = 0; i < ESCalDigis.size(); ++i) {
00508       mehEScalADC[0]->Fill(ESCalDigis[i].ADC0);
00509       mehEScalADC[1]->Fill(ESCalDigis[i].ADC1);
00510       mehEScalADC[2]->Fill(ESCalDigis[i].ADC2);
00511     }
00512     
00513     // Get HCal info
00514     std::vector<PGlobalDigi::HCalDigi> HBCalDigis = 
00515       srcGlobalDigis->getHBCalDigis();
00516     mehHcaln[0]->Fill((float)nHBCalDigis);
00517     for (unsigned int i = 0; i < HBCalDigis.size(); ++i) {
00518       mehHcalAEE[0]->Fill(HBCalDigis[i].AEE);
00519       if (HBCalDigis[i].SHE != 0.) {
00520         mehHcalSHE[0]->Fill(HBCalDigis[i].SHE);
00521         mehHcalAEESHE[0]->Fill(HBCalDigis[i].AEE/HBCalDigis[i].SHE);
00522         mehHcalSHEvAEE[0]->
00523           Fill(HBCalDigis[i].AEE,HBCalDigis[i].SHE,1);
00524       }
00525     }
00526     std::vector<PGlobalDigi::HCalDigi> HECalDigis = 
00527       srcGlobalDigis->getHECalDigis();
00528     mehHcaln[1]->Fill((float)nHECalDigis);
00529     for (unsigned int i = 0; i < HECalDigis.size(); ++i) {
00530       mehHcalAEE[1]->Fill(HECalDigis[i].AEE);
00531       if (HECalDigis[i].SHE != 0.) {
00532         mehHcalSHE[1]->Fill(HECalDigis[i].SHE);
00533         mehHcalAEESHE[1]->Fill(HECalDigis[i].AEE/HECalDigis[i].SHE);
00534         mehHcalSHEvAEE[1]->
00535           Fill(HECalDigis[i].AEE,HECalDigis[i].SHE,1);
00536       }
00537     }
00538 
00539     std::vector<PGlobalDigi::HCalDigi> HOCalDigis = 
00540       srcGlobalDigis->getHOCalDigis();
00541     mehHcaln[2]->Fill((float)nHOCalDigis);
00542     for (unsigned int i = 0; i < HOCalDigis.size(); ++i) {
00543       mehHcalAEE[2]->Fill(HOCalDigis[i].AEE);
00544       if (HOCalDigis[i].SHE != 0.) {
00545         mehHcalSHE[2]->Fill(HOCalDigis[i].SHE);
00546         mehHcalAEESHE[2]->Fill(HOCalDigis[i].AEE/HOCalDigis[i].SHE);
00547         mehHcalSHEvAEE[2]->
00548           Fill(HOCalDigis[i].AEE,HOCalDigis[i].SHE,1);
00549       }
00550     }
00551 
00552     std::vector<PGlobalDigi::HCalDigi> HFCalDigis = 
00553       srcGlobalDigis->getHFCalDigis();
00554     mehHcaln[3]->Fill((float)nHFCalDigis);
00555     for (unsigned int i = 0; i < HFCalDigis.size(); ++i) {
00556       mehHcalAEE[3]->Fill(HFCalDigis[i].AEE);
00557       if (HFCalDigis[i].SHE != 0.) {
00558         mehHcalSHE[3]->Fill(HFCalDigis[i].SHE);
00559         mehHcalAEESHE[3]->Fill(HFCalDigis[i].AEE/HFCalDigis[i].SHE);
00560         mehHcalSHEvAEE[3]->
00561           Fill(HFCalDigis[i].AEE,HFCalDigis[i].SHE,1);
00562       }
00563     }
00564 
00565     // get SiStrip info
00566     std::vector<PGlobalDigi::SiStripDigi> TIBL1Digis =
00567       srcGlobalDigis->getTIBL1Digis();      
00568     mehSiStripn[0]->Fill((float)nTIBL1Digis);
00569     for (unsigned int i = 0; i < TIBL1Digis.size(); ++i) {
00570       mehSiStripADC[0]->Fill(TIBL1Digis[i].ADC);
00571       mehSiStripStrip[0]->Fill(TIBL1Digis[i].STRIP);
00572     }
00573 
00574     std::vector<PGlobalDigi::SiStripDigi> TIBL2Digis =
00575       srcGlobalDigis->getTIBL2Digis();      
00576     mehSiStripn[1]->Fill((float)nTIBL2Digis);
00577     for (unsigned int i = 0; i < TIBL2Digis.size(); ++i) {
00578       mehSiStripADC[1]->Fill(TIBL2Digis[i].ADC);
00579       mehSiStripStrip[1]->Fill(TIBL2Digis[i].STRIP);
00580     }
00581 
00582     std::vector<PGlobalDigi::SiStripDigi> TIBL3Digis =
00583       srcGlobalDigis->getTIBL3Digis();      
00584     mehSiStripn[2]->Fill((float)nTIBL3Digis);
00585     for (unsigned int i = 0; i < TIBL3Digis.size(); ++i) {
00586       mehSiStripADC[2]->Fill(TIBL3Digis[i].ADC);
00587       mehSiStripStrip[2]->Fill(TIBL3Digis[i].STRIP);
00588     }
00589 
00590     std::vector<PGlobalDigi::SiStripDigi> TIBL4Digis =
00591       srcGlobalDigis->getTIBL4Digis();      
00592     mehSiStripn[3]->Fill((float)nTIBL4Digis);
00593     for (unsigned int i = 0; i < TIBL4Digis.size(); ++i) {
00594       mehSiStripADC[3]->Fill(TIBL4Digis[i].ADC);
00595       mehSiStripStrip[3]->Fill(TIBL4Digis[i].STRIP);
00596     }
00597 
00598     std::vector<PGlobalDigi::SiStripDigi> TOBL1Digis =
00599       srcGlobalDigis->getTOBL1Digis();      
00600     mehSiStripn[4]->Fill((float)nTOBL1Digis);
00601     for (unsigned int i = 0; i < TOBL1Digis.size(); ++i) {
00602       mehSiStripADC[4]->Fill(TOBL1Digis[i].ADC);
00603       mehSiStripStrip[4]->Fill(TOBL1Digis[i].STRIP);
00604     }
00605 
00606     std::vector<PGlobalDigi::SiStripDigi> TOBL2Digis =
00607       srcGlobalDigis->getTOBL2Digis();      
00608     mehSiStripn[5]->Fill((float)nTOBL2Digis);
00609     for (unsigned int i = 0; i < TOBL2Digis.size(); ++i) {
00610       mehSiStripADC[5]->Fill(TOBL2Digis[i].ADC);
00611       mehSiStripStrip[5]->Fill(TOBL2Digis[i].STRIP);
00612     }
00613 
00614     std::vector<PGlobalDigi::SiStripDigi> TOBL3Digis =
00615       srcGlobalDigis->getTOBL3Digis();      
00616     mehSiStripn[6]->Fill((float)nTOBL3Digis);
00617     for (unsigned int i = 0; i < TOBL3Digis.size(); ++i) {
00618       mehSiStripADC[6]->Fill(TOBL3Digis[i].ADC);
00619       mehSiStripStrip[6]->Fill(TOBL3Digis[i].STRIP);
00620     }
00621 
00622     std::vector<PGlobalDigi::SiStripDigi> TOBL4Digis =
00623       srcGlobalDigis->getTOBL4Digis();      
00624     mehSiStripn[7]->Fill((float)nTOBL4Digis);
00625     for (unsigned int i = 0; i < TOBL4Digis.size(); ++i) {
00626       mehSiStripADC[7]->Fill(TOBL4Digis[i].ADC);
00627       mehSiStripStrip[7]->Fill(TOBL4Digis[i].STRIP);
00628     }
00629 
00630     std::vector<PGlobalDigi::SiStripDigi> TIDW1Digis =
00631       srcGlobalDigis->getTIDW1Digis();      
00632     mehSiStripn[8]->Fill((float)nTIDW1Digis);
00633     for (unsigned int i = 0; i < TIDW1Digis.size(); ++i) {
00634       mehSiStripADC[8]->Fill(TIDW1Digis[i].ADC);
00635       mehSiStripStrip[8]->Fill(TIDW1Digis[i].STRIP);
00636     }
00637 
00638     std::vector<PGlobalDigi::SiStripDigi> TIDW2Digis =
00639       srcGlobalDigis->getTIDW2Digis();      
00640     mehSiStripn[9]->Fill((float)nTIDW2Digis);
00641     for (unsigned int i = 0; i < TIDW2Digis.size(); ++i) {
00642       mehSiStripADC[9]->Fill(TIDW2Digis[i].ADC);
00643       mehSiStripStrip[9]->Fill(TIDW2Digis[i].STRIP);
00644     }
00645 
00646     std::vector<PGlobalDigi::SiStripDigi> TIDW3Digis =
00647       srcGlobalDigis->getTIDW3Digis();      
00648     mehSiStripn[10]->Fill((float)nTIDW3Digis);
00649     for (unsigned int i = 0; i < TIDW3Digis.size(); ++i) {
00650       mehSiStripADC[10]->Fill(TIDW3Digis[i].ADC);
00651       mehSiStripStrip[10]->Fill(TIDW3Digis[i].STRIP);
00652     }
00653 
00654     std::vector<PGlobalDigi::SiStripDigi> TECW1Digis =
00655       srcGlobalDigis->getTECW1Digis();      
00656     mehSiStripn[11]->Fill((float)nTECW1Digis);
00657     for (unsigned int i = 0; i < TECW1Digis.size(); ++i) {
00658       mehSiStripADC[11]->Fill(TECW1Digis[i].ADC);
00659       mehSiStripStrip[11]->Fill(TECW1Digis[i].STRIP);
00660     }
00661 
00662     std::vector<PGlobalDigi::SiStripDigi> TECW2Digis =
00663       srcGlobalDigis->getTECW2Digis();      
00664     mehSiStripn[12]->Fill((float)nTECW2Digis);
00665     for (unsigned int i = 0; i < TECW2Digis.size(); ++i) {
00666       mehSiStripADC[12]->Fill(TECW2Digis[i].ADC);
00667       mehSiStripStrip[12]->Fill(TECW2Digis[i].STRIP);
00668     }
00669 
00670     std::vector<PGlobalDigi::SiStripDigi> TECW3Digis =
00671       srcGlobalDigis->getTECW3Digis();      
00672     mehSiStripn[13]->Fill((float)nTECW3Digis);
00673     for (unsigned int i = 0; i < TECW3Digis.size(); ++i) {
00674       mehSiStripADC[13]->Fill(TECW3Digis[i].ADC);
00675       mehSiStripStrip[13]->Fill(TECW3Digis[i].STRIP);
00676     }
00677 
00678     std::vector<PGlobalDigi::SiStripDigi> TECW4Digis =
00679       srcGlobalDigis->getTECW4Digis();      
00680     mehSiStripn[14]->Fill((float)nTECW4Digis);
00681     for (unsigned int i = 0; i < TECW4Digis.size(); ++i) {
00682       mehSiStripADC[14]->Fill(TECW4Digis[i].ADC);
00683       mehSiStripStrip[14]->Fill(TECW4Digis[i].STRIP);
00684     }
00685 
00686     std::vector<PGlobalDigi::SiStripDigi> TECW5Digis =
00687       srcGlobalDigis->getTECW5Digis();      
00688     mehSiStripn[15]->Fill((float)nTECW5Digis);
00689     for (unsigned int i = 0; i < TECW5Digis.size(); ++i) {
00690       mehSiStripADC[15]->Fill(TECW5Digis[i].ADC);
00691       mehSiStripStrip[15]->Fill(TECW5Digis[i].STRIP);
00692     }
00693 
00694     std::vector<PGlobalDigi::SiStripDigi> TECW6Digis =
00695       srcGlobalDigis->getTECW6Digis();      
00696     mehSiStripn[16]->Fill((float)nTECW6Digis);
00697     for (unsigned int i = 0; i < TECW6Digis.size(); ++i) {
00698       mehSiStripADC[16]->Fill(TECW6Digis[i].ADC);
00699       mehSiStripStrip[16]->Fill(TECW6Digis[i].STRIP);
00700     }
00701 
00702     std::vector<PGlobalDigi::SiStripDigi> TECW7Digis =
00703       srcGlobalDigis->getTECW7Digis();      
00704     mehSiStripn[17]->Fill((float)nTECW7Digis);
00705     for (unsigned int i = 0; i < TECW7Digis.size(); ++i) {
00706       mehSiStripADC[17]->Fill(TECW7Digis[i].ADC);
00707       mehSiStripStrip[17]->Fill(TECW7Digis[i].STRIP);
00708     }
00709 
00710     std::vector<PGlobalDigi::SiStripDigi> TECW8Digis =
00711       srcGlobalDigis->getTECW8Digis();      
00712     mehSiStripn[18]->Fill((float)nTECW8Digis);
00713     for (unsigned int i = 0; i < TECW8Digis.size(); ++i) {
00714       mehSiStripADC[18]->Fill(TECW8Digis[i].ADC);
00715       mehSiStripStrip[18]->Fill(TECW8Digis[i].STRIP);
00716     }
00717 
00718     // get SiPixel info
00719     std::vector<PGlobalDigi::SiPixelDigi> BRL1Digis =
00720       srcGlobalDigis->getBRL1Digis();      
00721     mehSiPixeln[0]->Fill((float)nBRL1Digis);
00722     for (unsigned int i = 0; i < BRL1Digis.size(); ++i) {
00723       mehSiPixelADC[0]->Fill(BRL1Digis[i].ADC);
00724       mehSiPixelRow[0]->Fill(BRL1Digis[i].ROW);
00725       mehSiPixelCol[0]->Fill(BRL1Digis[i].COLUMN);
00726     }
00727 
00728     std::vector<PGlobalDigi::SiPixelDigi> BRL2Digis =
00729       srcGlobalDigis->getBRL2Digis();      
00730     mehSiPixeln[1]->Fill((float)nBRL2Digis);
00731     for (unsigned int i = 0; i < BRL2Digis.size(); ++i) {
00732       mehSiPixelADC[1]->Fill(BRL2Digis[i].ADC);
00733       mehSiPixelRow[1]->Fill(BRL2Digis[i].ROW);
00734       mehSiPixelCol[1]->Fill(BRL2Digis[i].COLUMN);
00735     }
00736 
00737     std::vector<PGlobalDigi::SiPixelDigi> BRL3Digis =
00738       srcGlobalDigis->getBRL3Digis();      
00739     mehSiPixeln[2]->Fill((float)nBRL3Digis);
00740     for (unsigned int i = 0; i < BRL3Digis.size(); ++i) {
00741       mehSiPixelADC[2]->Fill(BRL3Digis[i].ADC);
00742       mehSiPixelRow[2]->Fill(BRL3Digis[i].ROW);
00743       mehSiPixelCol[2]->Fill(BRL3Digis[i].COLUMN); 
00744    }
00745 
00746     std::vector<PGlobalDigi::SiPixelDigi> FWD1pDigis =
00747       srcGlobalDigis->getFWD1pDigis();      
00748     mehSiPixeln[3]->Fill((float)nFWD1pDigis);
00749     for (unsigned int i = 0; i < FWD1pDigis.size(); ++i) {
00750       mehSiPixelADC[3]->Fill(FWD1pDigis[i].ADC);
00751       mehSiPixelRow[3]->Fill(FWD1pDigis[i].ROW);
00752       mehSiPixelCol[3]->Fill(FWD1pDigis[i].COLUMN);
00753     }
00754 
00755     std::vector<PGlobalDigi::SiPixelDigi> FWD1nDigis =
00756       srcGlobalDigis->getFWD1nDigis();      
00757     mehSiPixeln[4]->Fill((float)nFWD1nDigis);
00758     for (unsigned int i = 0; i < FWD1nDigis.size(); ++i) {
00759       mehSiPixelADC[4]->Fill(FWD1nDigis[i].ADC);
00760       mehSiPixelRow[4]->Fill(FWD1nDigis[i].ROW);
00761       mehSiPixelCol[4]->Fill(FWD1nDigis[i].COLUMN);
00762     }
00763 
00764     std::vector<PGlobalDigi::SiPixelDigi> FWD2pDigis =
00765       srcGlobalDigis->getFWD2pDigis();      
00766     mehSiPixeln[5]->Fill((float)nFWD2pDigis);
00767     for (unsigned int i = 0; i < FWD2pDigis.size(); ++i) {
00768       mehSiPixelADC[5]->Fill(FWD2pDigis[i].ADC);
00769       mehSiPixelRow[5]->Fill(FWD2pDigis[i].ROW);
00770       mehSiPixelCol[5]->Fill(FWD2pDigis[i].COLUMN);
00771     }
00772 
00773     std::vector<PGlobalDigi::SiPixelDigi> FWD2nDigis =
00774       srcGlobalDigis->getFWD2nDigis();      
00775     mehSiPixeln[6]->Fill((float)nFWD2nDigis);
00776     for (unsigned int i = 0; i < FWD2nDigis.size(); ++i) {
00777       mehSiPixelADC[6]->Fill(FWD2nDigis[i].ADC);
00778       mehSiPixelRow[6]->Fill(FWD2nDigis[i].ROW);
00779       mehSiPixelCol[6]->Fill(FWD2nDigis[i].COLUMN);
00780     }
00781 
00782     // get DtMuon info
00783     std::vector<PGlobalDigi::DTDigi> MB1Digis =
00784       srcGlobalDigis->getMB1Digis();      
00785     mehDtMuonn[0]->Fill((float)nMB1Digis);
00786     for (unsigned int i = 0; i < MB1Digis.size(); ++i) {
00787       float layer = 4.0 * (MB1Digis[i].SLAYER - 1.0) + MB1Digis[i].LAYER;
00788       mehDtMuonLayer[0]->Fill(layer);
00789       mehDtMuonTime[0]->Fill(MB1Digis[i].TIME);
00790       mehDtMuonTimevLayer[0]->Fill(layer,MB1Digis[i].TIME,1);
00791     }
00792 
00793     std::vector<PGlobalDigi::DTDigi> MB2Digis =
00794       srcGlobalDigis->getMB2Digis();      
00795     mehDtMuonn[1]->Fill((float)nMB2Digis);
00796     for (unsigned int i = 0; i < MB2Digis.size(); ++i) {
00797       float layer = 4.0 * (MB2Digis[i].SLAYER - 1.0) + MB2Digis[i].LAYER;
00798       mehDtMuonLayer[1]->Fill(layer);
00799       mehDtMuonTime[1]->Fill(MB2Digis[i].TIME);
00800       mehDtMuonTimevLayer[1]->Fill(layer,MB2Digis[i].TIME,1);
00801     }
00802 
00803     std::vector<PGlobalDigi::DTDigi> MB3Digis =
00804       srcGlobalDigis->getMB3Digis();      
00805     mehDtMuonn[2]->Fill((float)nMB3Digis);
00806     for (unsigned int i = 0; i < MB3Digis.size(); ++i) {
00807       float layer = 4.0 * (MB3Digis[i].SLAYER - 1.0) + MB3Digis[i].LAYER;
00808       mehDtMuonLayer[2]->Fill(layer);
00809       mehDtMuonTime[2]->Fill(MB3Digis[i].TIME);
00810       mehDtMuonTimevLayer[2]->Fill(layer,MB3Digis[i].TIME,1);
00811     }
00812 
00813     std::vector<PGlobalDigi::DTDigi> MB4Digis =
00814       srcGlobalDigis->getMB4Digis();      
00815     mehDtMuonn[3]->Fill((float)nMB4Digis);
00816     for (unsigned int i = 0; i < MB4Digis.size(); ++i) {
00817       float layer = 4.0 * (MB4Digis[i].SLAYER - 1.0) + MB4Digis[i].LAYER;
00818       mehDtMuonLayer[3]->Fill(layer);
00819       mehDtMuonTime[3]->Fill(MB4Digis[i].TIME);
00820       mehDtMuonTimevLayer[3]->Fill(layer,MB4Digis[i].TIME,1);
00821     }
00822 
00823     // get CSC Strip info
00824     std::vector<PGlobalDigi::CSCstripDigi> CSCstripDigis =
00825       srcGlobalDigis->getCSCstripDigis();      
00826     mehCSCStripn->Fill((float)nCSCstripDigis);
00827     for (unsigned int i = 0; i < CSCstripDigis.size(); ++i) {
00828       mehCSCStripADC->Fill(CSCstripDigis[i].ADC);
00829     }
00830 
00831     // get CSC Wire info
00832     std::vector<PGlobalDigi::CSCwireDigi> CSCwireDigis =
00833       srcGlobalDigis->getCSCwireDigis();      
00834     mehCSCWiren->Fill((float)nCSCwireDigis);
00835     for (unsigned int i = 0; i < CSCwireDigis.size(); ++i) {
00836       mehCSCWireTime->Fill(CSCwireDigis[i].TIME);
00837     }
00838  if (verbosity > 0)
00839     edm::LogInfo (MsgLoggerCat)
00840       << "Done gathering data from event.";
00841 
00842   } // end loop through events
00843 }
00844 
00845 //define this as a plug-in
00846 //DEFINE_FWK_MODULE(GlobalDigisHistogrammer);