#include <HcalLedAnalysis.h>
Classes | |
struct | CALIBBUNCH |
Public Member Functions | |
HcalLedAnalysis (const edm::ParameterSet &ps) | |
Constructor. | |
void | LedDone () |
void | LedSampleAnalysis () |
void | LedSetup (const std::string &m_outputFileROOT) |
void | processLedEvent (const HBHEDigiCollection &hbhe, const HODigiCollection &ho, const HFDigiCollection &hf, const HcalCalibDigiCollection calib, const HcalDbService &cond) |
~HcalLedAnalysis () | |
Destructor. | |
Private Types | |
typedef std::pair< TH1F *, std::pair< std::map< int, std::vector< double > >, std::vector< TH1F * > > > | LEDBUNCH |
Private Member Functions | |
float | BinsizeCorr (float time) |
void | GetLedConst (std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT) |
void | LedHBHEHists (const HcalDetId &detid, const HBHEDataFrame &ledDigi, std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT, const HcalDbService &cond) |
void | LedHFHists (const HcalDetId &detid, const HFDataFrame &ledDigi, std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT, const HcalDbService &cond) |
void | LedHOHists (const HcalDetId &detid, const HODataFrame &ledDigi, std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT, const HcalDbService &cond) |
void | LedTrendings (std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT) |
void | ProcessCalibEvent (int fiberChan, HcalCalibDetId calibId, const HcalCalibDataFrame digi) |
void | SetupLEDHists (int id, const HcalDetId detid, std::map< HcalDetId, std::map< int, LEDBUNCH > > &toolT) |
Private Attributes | |
std::map< HcalCalibDetId, CALIBBUNCH >::iterator | _meca |
std::map< HcalDetId, std::map < int, float > >::iterator | _meee |
std::map< HcalDetId, std::map < int, LEDBUNCH > >::iterator | _meol |
std::map< HcalCalibDetId, CALIBBUNCH > | calibHists |
int | evt |
int | evt_curr |
struct { | |
TH1F * ALLLEDS | |
TH1F * CHI2 | |
TH1F * LEDMEAN | |
TH1F * LEDRMS | |
std::map< HcalDetId, std::map < int, LEDBUNCH > > LEDTRENDS | |
} | hbHists |
struct { | |
TH1F * ALLLEDS | |
TH1F * CHI2 | |
TH1F * LEDMEAN | |
TH1F * LEDRMS | |
std::map< HcalDetId, std::map < int, LEDBUNCH > > LEDTRENDS | |
} | hfHists |
struct { | |
TH1F * ALLLEDS | |
TH1F * CHI2 | |
TH1F * LEDMEAN | |
TH1F * LEDRMS | |
std::map< HcalDetId, std::map < int, LEDBUNCH > > LEDTRENDS | |
} | hoHists |
std::map< HcalDetId, std::map < int, float > > | m_AllPedVals |
const HcalQIECoder * | m_coder |
int | m_endTS |
TFile * | m_file |
int | m_fitflag |
int | m_hiSaveflag |
std::ofstream | m_logFile |
int | m_nevtsample |
std::ofstream | m_outFile |
std::string | m_outputFileROOT |
std::string | m_outputFileText |
std::string | m_outputFileX |
std::ofstream | m_outputFileXML |
const HcalPedestal * | m_ped |
const HcalQIEShape * | m_shape |
int | m_startTS |
bool | m_usecalib |
char | output [100] |
int | sample |
std::vector< bool > | state |
Definition at line 32 of file HcalLedAnalysis.h.
typedef std::pair<TH1F*,std::pair<std::map<int, std::vector<double> >,std::vector<TH1F*> > > HcalLedAnalysis::LEDBUNCH [private] |
Definition at line 68 of file HcalLedAnalysis.h.
HcalLedAnalysis::HcalLedAnalysis | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 12 of file HcalLedAnalysis.cc.
References gather_cfg::cout, edm::ParameterSet::getUntrackedParameter(), gen::k, and convertSQLitetoXML_cfg::output.
{ // init evt=0; sample=0; m_file=0; // output files for(int k=0;k<4;k++) state.push_back(true); // 4 cap-ids (do we care?) m_outputFileText = ps.getUntrackedParameter<string>("outputFileText", ""); m_outputFileX = ps.getUntrackedParameter<string>("outputFileXML",""); if ( m_outputFileText.size() != 0 ) { cout << "Hcal LED results will be saved to " << m_outputFileText.c_str() << endl; m_outFile.open(m_outputFileText.c_str()); } m_outputFileROOT = ps.getUntrackedParameter<string>("outputFileHist", ""); if ( m_outputFileROOT.size() != 0 ) { cout << "Hcal LED histograms will be saved to " << m_outputFileROOT.c_str() << endl; } m_nevtsample = ps.getUntrackedParameter<int>("nevtsample",9999999); if(m_nevtsample<1)m_nevtsample=9999999; m_hiSaveflag = ps.getUntrackedParameter<int>("hiSaveflag",0); if(m_hiSaveflag<0)m_hiSaveflag=0; if(m_hiSaveflag>0)m_hiSaveflag=1; m_fitflag = ps.getUntrackedParameter<int>("analysisflag",2); if(m_fitflag<0)m_fitflag=0; if(m_fitflag>4)m_fitflag=4; m_startTS = ps.getUntrackedParameter<int>("firstTS", 0); if(m_startTS<0) m_startTS=0; m_endTS = ps.getUntrackedParameter<int>("lastTS", 9); m_usecalib = ps.getUntrackedParameter<bool>("usecalib",false); m_logFile.open("HcalLedAnalysis.log"); int runNum = ps.getUntrackedParameter<int>("runNumber",999999); // histogram booking hbHists.ALLLEDS = new TH1F("HBHE All LEDs","HB/HE All Leds",10,0,9); hbHists.LEDRMS= new TH1F("HBHE All LED RMS","HB/HE All LED RMS",100,0,3); hbHists.LEDMEAN= new TH1F("HBHE All LED Means","HB/HE All LED Means",100,0,9); hbHists.CHI2= new TH1F("HBHE Chi2 by ndf for Landau fit","HB/HE Chi2/ndf Landau",200,0.,50.); hoHists.ALLLEDS = new TH1F("HO All LEDs","HO All Leds",10,0,9); hoHists.LEDRMS= new TH1F("HO All LED RMS","HO All LED RMS",100,0,3); hoHists.LEDMEAN= new TH1F("HO All LED Means","HO All LED Means",100,0,9); hoHists.CHI2= new TH1F("HO Chi2 by ndf for Landau fit","HO Chi2/ndf Landau",200,0.,50.); hfHists.ALLLEDS = new TH1F("HF All LEDs","HF All Leds",10,0,9); hfHists.LEDRMS= new TH1F("HF All LED RMS","HF All LED RMS",100,0,3); hfHists.LEDMEAN= new TH1F("HF All LED Means","HF All LED Means",100,0,9); hfHists.CHI2= new TH1F("HF Chi2 by ndf for Landau fit","HF Chi2/ndf Landau",200,0.,50.); //XML file header m_outputFileXML.open(m_outputFileX.c_str()); sprintf(output, "<?xml version='1.0' encoding='UTF-8'?>"); m_outputFileXML << output << endl; sprintf(output, "<ROOT>"); m_outputFileXML << output << endl << endl; sprintf(output, " <HEADER>"); m_outputFileXML << output << endl; sprintf(output, " <TYPE>"); m_outputFileXML << output << endl; sprintf(output, " <EXTENSION_TABLE_NAME>HCAL_LED_TIMING</EXTENSION_TABLE_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <NAME>HCAL LED Timing</NAME>"); m_outputFileXML << output << endl; sprintf(output, " </TYPE>"); m_outputFileXML << output << endl; sprintf(output, " <RUN>"); m_outputFileXML << output << endl; sprintf(output, " <RUN_TYPE>hcal-led-timing-test</RUN_TYPE>"); m_outputFileXML << output << endl; sprintf(output, " <RUN_NUMBER>%06i</RUN_NUMBER>", runNum); m_outputFileXML << output << endl; sprintf(output, " <RUN_BEGIN_TIMESTAMP>2007-07-09 00:00:00.0</RUN_BEGIN_TIMESTAMP>"); m_outputFileXML << output << endl; sprintf(output, " <COMMENT_DESCRIPTION></COMMENT_DESCRIPTION>"); m_outputFileXML << output << endl; sprintf(output, " </RUN>"); m_outputFileXML << output << endl; sprintf(output, " </HEADER>"); m_outputFileXML << output << endl; sprintf(output, "<!-- Tags secton -->"); m_outputFileXML << output << endl; sprintf(output, " <ELEMENTS>"); m_outputFileXML << output << endl; sprintf(output, " <DATA_SET id='-1'/>"); m_outputFileXML << output << endl; sprintf(output, " <IOV id='1'>"); m_outputFileXML << output << endl; sprintf(output, " <INTERVAL_OF_VALIDITY_BEGIN>2147483647</INTERVAL_OF_VALIDITY_BEGIN>"); m_outputFileXML << output << endl; sprintf(output, " <INTERVAL_OF_VALIDITY_END>0</INTERVAL_OF_VALIDITY_END>"); m_outputFileXML << output << endl; sprintf(output, " </IOV>"); m_outputFileXML << output << endl; sprintf(output, " <TAG id='2' mode='auto'>"); m_outputFileXML << output << endl; sprintf(output, " <TAG_NAME>laser_led_%06i<TAG_NAME>", runNum); m_outputFileXML << output << endl; sprintf(output, " <DETECTOR_NAME>HCAL</DETECTOR_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <COMMENT_DESCRIPTION></COMMENT_DESCRIPTION>"); m_outputFileXML << output << endl; sprintf(output, " </TAG>"); m_outputFileXML << output << endl; sprintf(output, " </ELEMENTS>"); m_outputFileXML << output << endl; sprintf(output, " <MAPS>"); m_outputFileXML << output << endl; sprintf(output, " <TAG idref ='2'>"); m_outputFileXML << output << endl; sprintf(output, " <IOV idref='1'>"); m_outputFileXML << output << endl; sprintf(output, " <DATA_SET idref='-1' />"); m_outputFileXML << output << endl; sprintf(output, " </IOV>"); m_outputFileXML << output << endl; sprintf(output, " </TAG>"); m_outputFileXML << output << endl; sprintf(output, " </MAPS>"); m_outputFileXML << output << endl; }
HcalLedAnalysis::~HcalLedAnalysis | ( | ) |
Destructor.
All done, clean up!!
Definition at line 138 of file HcalLedAnalysis.cc.
References i.
{ for(_meol=hbHists.LEDTRENDS.begin(); _meol!=hbHists.LEDTRENDS.end(); _meol++){ for(int i=0; i<15; i++) _meol->second[i].first->Delete(); } for(_meol=hoHists.LEDTRENDS.begin(); _meol!=hoHists.LEDTRENDS.end(); _meol++){ for(int i=0; i<15; i++) _meol->second[i].first->Delete(); } for(_meol=hfHists.LEDTRENDS.begin(); _meol!=hfHists.LEDTRENDS.end(); _meol++){ for(int i=0; i<15; i++) _meol->second[i].first->Delete(); } hbHists.ALLLEDS->Delete(); hbHists.LEDRMS->Delete(); hbHists.LEDMEAN->Delete(); hbHists.CHI2->Delete(); hoHists.ALLLEDS->Delete(); hoHists.LEDRMS->Delete(); hoHists.LEDMEAN->Delete(); hoHists.CHI2->Delete(); hfHists.ALLLEDS->Delete(); hfHists.LEDRMS->Delete(); hfHists.LEDMEAN->Delete(); hfHists.CHI2->Delete(); }
float HcalLedAnalysis::BinsizeCorr | ( | float | time | ) | [private] |
Definition at line 885 of file HcalLedAnalysis.cc.
References i.
{ // this is the bin size correction to be applied for laser data (from Andy), // it comes from a pulse shape measured from TB04 data (from Jordan) // This should eventually be replaced with the more thorough treatment from Phil float corrtime=0.; static const float tstrue[32]={0.003, 0.03425, 0.06548, 0.09675, 0.128, 0.15925, 0.1905, 0.22175, 0.253, 0.28425, 0.3155, 0.34675, 0.378, 0.40925, 0.4405, 0.47175, 0.503, 0.53425, 0.5655, 0.59675, 0.628, 0.65925, 0.6905, 0.72175, 0.753, 0.78425, 0.8155, 0.84675, 0.878, 0.90925, 0.9405, 0.97175}; static const float tsreco[32]={-0.00422, 0.01815, 0.04409, 0.07346, 0.09799, 0.12192, 0.15072, 0.18158, 0.21397, 0.24865, 0.28448, 0.31973, 0.35449, 0.39208, 0.43282, 0.47244, 0.5105, 0.55008, 0.58827, 0.62828, 0.6717, 0.70966, 0.74086, 0.77496, 0.80843, 0.83472, 0.86044, 0.8843, 0.90674, 0.92982, 0.95072, 0.9726}; int inttime=(int)time; float restime=time-inttime; for(int i=0; i<=32; i++) { float lolim=0.; float uplim=1.; float tsdown; float tsup; if(i>0){ lolim=tsreco[i-1]; tsdown=tstrue[i-1]; } else tsdown=tstrue[31]-1.; if(i<32){ uplim=tsreco[i]; tsup=tstrue[i]; } else tsup=tstrue[0]+1.; if(restime>=lolim && restime<uplim){ corrtime=(tsdown*(uplim-restime)+tsup*(restime-lolim)) / (uplim-lolim); } } corrtime+=inttime; return corrtime; }
void HcalLedAnalysis::GetLedConst | ( | std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT | ) | [private] |
Definition at line 155 of file CastorLedAnalysis.cc.
References HcalDetId::depth(), cond::rpcobgas::detid, i, HcalDetId::ietaAbs(), HcalDetId::iphi(), j, convertSQLitetoXML_cfg::output, DetId::rawId(), mathSSE::sqrt(), HcalDetId::subdet(), and HcalDetId::zside().
{ double time2=0; double time1=0; double time3=0; double time4=0; double dtime2=0; double dtime1=0; double dtime3=0; double dtime4=0; if (m_outputFileText!=""){ if(m_fitflag==0 || m_fitflag==2) m_outFile<<"Det Eta,Phi,D Mean Error"<<std::endl; else if(m_fitflag==1 || m_fitflag==3) m_outFile<<"Det Eta,Phi,D Peak Error"<<std::endl; else if(m_fitflag==4) m_outFile<<"Det Eta,Phi,D Mean Error Peak Error MeanEv Error PeakEv Error"<<std::endl; } for(_meol=toolT.begin(); _meol!=toolT.end(); _meol++){ // scale the LED pulse to 1 event _meol->second[10].first->Scale(1./evt_curr); if(m_fitflag==0 || m_fitflag==4){ time1 = _meol->second[10].first->GetMean(); dtime1 = _meol->second[10].first->GetRMS()/sqrt((float)evt_curr*(m_endTS-m_startTS+1)); } if(m_fitflag==1 || m_fitflag==4){ // put proper errors for(int j=0; j<10; j++) _meol->second[10].first->SetBinError(j+1,_meol->second[j].first->GetRMS()/sqrt((float)evt_curr)); } if(m_fitflag==1 || m_fitflag==3 || m_fitflag==4){ _meol->second[10].first->Fit("landau","Q"); // _meol->second[10].first->Fit("gaus","Q"); TF1 *fit = _meol->second[10].first->GetFunction("landau"); // TF1 *fit = _meol->second[10].first->GetFunction("gaus"); time2=fit->GetParameter(1); dtime2=fit->GetParError(1); } if(m_fitflag==2 || m_fitflag==4){ time3 = _meol->second[12].first->GetMean(); dtime3 = _meol->second[12].first->GetRMS()/sqrt((float)_meol->second[12].first->GetEntries()); } if(m_fitflag==3 || m_fitflag==4){ time4 = _meol->second[13].first->GetMean(); dtime4 = _meol->second[13].first->GetRMS()/sqrt((float)_meol->second[13].first->GetEntries()); } for (int i=0; i<10; i++){ _meol->second[i].first->GetXaxis()->SetTitle("Pulse height (fC)"); _meol->second[i].first->GetYaxis()->SetTitle("Counts"); // if(m_hiSaveflag>0)_meol->second[i].first->Write(); } _meol->second[10].first->GetXaxis()->SetTitle("Time slice"); _meol->second[10].first->GetYaxis()->SetTitle("Averaged pulse (fC)"); if(m_hiSaveflag>0)_meol->second[10].first->Write(); _meol->second[10].second.first[0].push_back(time1); _meol->second[10].second.first[1].push_back(dtime1); _meol->second[11].second.first[0].push_back(time2); _meol->second[11].second.first[1].push_back(dtime2); _meol->second[12].first->GetXaxis()->SetTitle("Mean TS"); _meol->second[12].first->GetYaxis()->SetTitle("Counts"); if(m_fitflag==2 && m_hiSaveflag>0)_meol->second[12].first->Write(); _meol->second[12].second.first[0].push_back(time3); _meol->second[12].second.first[1].push_back(dtime3); _meol->second[13].first->GetXaxis()->SetTitle("Peak TS"); _meol->second[13].first->GetYaxis()->SetTitle("Counts"); if(m_fitflag>2 && m_hiSaveflag>0)_meol->second[13].first->Write(); _meol->second[13].second.first[0].push_back(time4); _meol->second[13].second.first[1].push_back(dtime4); _meol->second[14].first->GetXaxis()->SetTitle("Peak TS error"); _meol->second[14].first->GetYaxis()->SetTitle("Counts"); if(m_fitflag>2 && m_hiSaveflag>0)_meol->second[14].first->Write(); _meol->second[15].first->GetXaxis()->SetTitle("Chi2/NDF"); _meol->second[15].first->GetYaxis()->SetTitle("Counts"); if(m_fitflag>2 && m_hiSaveflag>0)_meol->second[15].first->Write(); _meol->second[16].first->GetXaxis()->SetTitle("Integrated Signal"); _meol->second[16].first->Write(); // Ascii printout (need to modify to include new info) HcalDetId detid = _meol->first; if (m_outputFileText!=""){ if(m_fitflag==0) { m_outFile<<detid<<" "<<time1<<" "<<dtime1<<std::endl; sprintf(output, " <DATA_SET>"); m_outputFileXML << output << endl; sprintf(output, " <VERSION>version:1</VERSION>"); m_outputFileXML << output << endl; sprintf(output, " <CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <EXTENSION_TABLE_NAME>HCAL_CHANNELS</EXTENSION_TABLE_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <ETA>%2i</ETA>", detid.ietaAbs() ); m_outputFileXML << output << endl; sprintf(output, " <PHI>%2i</PHI>", detid.iphi() ); m_outputFileXML << output << endl; sprintf(output, " <DEPTH>%2i</DEPTH>", detid.depth() ); m_outputFileXML << output << endl; sprintf(output, " <Z>%2i</Z>", detid.zside() ); m_outputFileXML << output << endl; if(detid.subdet() == 1) sprintf(output, " <DETECTOR_NAME>HB</DETECTOR_NAME>"); if(detid.subdet() == 2) sprintf(output, " <DETECTOR_NAME>HE</DETECTOR_NAME>"); if(detid.subdet() == 3) sprintf(output, " <DETECTOR_NAME>HO</DETECTOR_NAME>"); if(detid.subdet() == 4) sprintf(output, " <DETECTOR_NAME>HF</DETECTOR_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <HCAL_CHANNEL_ID>%10i</HCAL_CHANNEL_ID>", detid.rawId() ); m_outputFileXML << output << endl; sprintf(output, " </CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <DATA>"); m_outputFileXML << output << endl; sprintf(output, " <MEAN_TIME>%7f</MEAN_TIME>", time1); m_outputFileXML << output << endl; sprintf(output, " <OFFSET_TIME> 0</OFFSET_TIME>"); m_outputFileXML << output << endl; sprintf(output, " <ERROR_STAT>%7f</ERROR_STAT>", dtime1); m_outputFileXML << output << endl; sprintf(output, " <ANALYSIS_FLAG>%2i</ANALYSIS_FLAG>", m_fitflag+1); m_outputFileXML << output << endl; sprintf(output, " <STATUS_WORD> 0</STATUS_WORD>"); m_outputFileXML << output << endl; sprintf(output, " </DATA>"); m_outputFileXML << output << endl; sprintf(output, " </DATA_SET>"); m_outputFileXML << output << endl; } else if(m_fitflag==1){ m_outFile<<detid<<" "<<time2<<" "<<dtime2<<std::endl; sprintf(output, " <DATA_SET>"); m_outputFileXML << output << endl; sprintf(output, " <VERSION>version:1</VERSION>"); m_outputFileXML << output << endl; sprintf(output, " <CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <EXTENSION_TABLE_NAME>HCAL_CHANNELS</EXTENSION_TABLE_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <ETA>%2i</ETA>", detid.ietaAbs() ); m_outputFileXML << output << endl; sprintf(output, " <PHI>%2i</PHI>", detid.iphi() ); m_outputFileXML << output << endl; sprintf(output, " <DEPTH>%2i</DEPTH>", detid.depth() ); m_outputFileXML << output << endl; sprintf(output, " <Z>%2i</Z>", detid.zside() ); m_outputFileXML << output << endl; if(detid.subdet() == 1) sprintf(output, " <DETECTOR_NAME>HB</DETECTOR_NAME>"); if(detid.subdet() == 2) sprintf(output, " <DETECTOR_NAME>HE</DETECTOR_NAME>"); if(detid.subdet() == 3) sprintf(output, " <DETECTOR_NAME>HO</DETECTOR_NAME>"); if(detid.subdet() == 4) sprintf(output, " <DETECTOR_NAME>HF</DETECTOR_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <HCAL_CHANNEL_ID>%10i</HCAL_CHANNEL_ID>", detid.rawId() ); m_outputFileXML << output << endl; sprintf(output, " </CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <DATA>"); m_outputFileXML << output << endl; sprintf(output, " <MEAN_TIME>%7f</MEAN_TIME>", time2); m_outputFileXML << output << endl; sprintf(output, " <OFFSET_TIME> 0</OFFSET_TIME>"); m_outputFileXML << output << endl; sprintf(output, " <ERROR_STAT>%7f</ERROR_STAT>", dtime2); m_outputFileXML << output << endl; sprintf(output, " <ANALYSIS_FLAG>%2i</ANALYSIS_FLAG>", m_fitflag+1); m_outputFileXML << output << endl; sprintf(output, " <STATUS_WORD> 0</STATUS_WORD>"); m_outputFileXML << output << endl; sprintf(output, " </DATA>"); m_outputFileXML << output << endl; sprintf(output, " </DATA_SET>"); m_outputFileXML << output << endl; } else if(m_fitflag==2){ m_outFile<<detid<<" "<<time3<<" "<<dtime3<<std::endl; sprintf(output, " <DATA_SET>"); m_outputFileXML << output << endl; sprintf(output, " <VERSION>version:1</VERSION>"); m_outputFileXML << output << endl; sprintf(output, " <CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <EXTENSION_TABLE_NAME>HCAL_CHANNELS</EXTENSION_TABLE_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <ETA>%2i</ETA>", detid.ietaAbs() ); m_outputFileXML << output << endl; sprintf(output, " <PHI>%2i</PHI>", detid.iphi() ); m_outputFileXML << output << endl; sprintf(output, " <DEPTH>%2i</DEPTH>", detid.depth() ); m_outputFileXML << output << endl; sprintf(output, " <Z>%2i</Z>", detid.zside() ); m_outputFileXML << output << endl; if(detid.subdet() == 1) sprintf(output, " <DETECTOR_NAME>HB</DETECTOR_NAME>"); if(detid.subdet() == 2) sprintf(output, " <DETECTOR_NAME>HE</DETECTOR_NAME>"); if(detid.subdet() == 3) sprintf(output, " <DETECTOR_NAME>HO</DETECTOR_NAME>"); if(detid.subdet() == 4) sprintf(output, " <DETECTOR_NAME>HF</DETECTOR_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <HCAL_CHANNEL_ID>%10i</HCAL_CHANNEL_ID>", detid.rawId() ); m_outputFileXML << output << endl; sprintf(output, " </CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <DATA>"); m_outputFileXML << output << endl; sprintf(output, " <MEAN_TIME>%7f</MEAN_TIME>", time3); m_outputFileXML << output << endl; sprintf(output, " <OFFSET_TIME> 0</OFFSET_TIME>"); m_outputFileXML << output << endl; sprintf(output, " <ERROR_STAT>%7f</ERROR_STAT>", dtime3); m_outputFileXML << output << endl; sprintf(output, " <ANALYSIS_FLAG>%2i</ANALYSIS_FLAG>", m_fitflag+1); m_outputFileXML << output << endl; sprintf(output, " <STATUS_WORD> 0</STATUS_WORD>"); m_outputFileXML << output << endl; sprintf(output, " </DATA>"); m_outputFileXML << output << endl; sprintf(output, " </DATA_SET>"); m_outputFileXML << output << endl; } else if(m_fitflag==3){ m_outFile<<detid<<" "<<time4<<" "<<dtime4<<std::endl; sprintf(output, " <DATA_SET>"); m_outputFileXML << output << endl; sprintf(output, " <VERSION>version:1</VERSION>"); m_outputFileXML << output << endl; sprintf(output, " <CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <EXTENSION_TABLE_NAME>HCAL_CHANNELS</EXTENSION_TABLE_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <ETA>%2i</ETA>", detid.ietaAbs() ); m_outputFileXML << output << endl; sprintf(output, " <PHI>%2i</PHI>", detid.iphi() ); m_outputFileXML << output << endl; sprintf(output, " <DEPTH>%2i</DEPTH>", detid.depth() ); m_outputFileXML << output << endl; sprintf(output, " <Z>%2i</Z>", detid.zside() ); m_outputFileXML << output << endl; if(detid.subdet() == 1) sprintf(output, " <DETECTOR_NAME>HB</DETECTOR_NAME>"); if(detid.subdet() == 2) sprintf(output, " <DETECTOR_NAME>HE</DETECTOR_NAME>"); if(detid.subdet() == 3) sprintf(output, " <DETECTOR_NAME>HO</DETECTOR_NAME>"); if(detid.subdet() == 4) sprintf(output, " <DETECTOR_NAME>HF</DETECTOR_NAME>"); m_outputFileXML << output << endl; sprintf(output, " <HCAL_CHANNEL_ID>%10i</HCAL_CHANNEL_ID>", detid.rawId() ); m_outputFileXML << output << endl; sprintf(output, " </CHANNEL>"); m_outputFileXML << output << endl; sprintf(output, " <DATA>"); m_outputFileXML << output << endl; sprintf(output, " <MEAN_TIME>%7f</MEAN_TIME>", time4); m_outputFileXML << output << endl; sprintf(output, " <OFFSET_TIME> 0</OFFSET_TIME>"); m_outputFileXML << output << endl; sprintf(output, " <ERROR_STAT>%7f</ERROR_STAT>", dtime4); m_outputFileXML << output << endl; sprintf(output, " <ANALYSIS_FLAG>%2i</ANALYSIS_FLAG>", m_fitflag+1); m_outputFileXML << output << endl; sprintf(output, " <STATUS_WORD> 0</STATUS_WORD>"); m_outputFileXML << output << endl; sprintf(output, " </DATA>"); m_outputFileXML << output << endl; sprintf(output, " </DATA_SET>"); m_outputFileXML << output << endl; } else if(m_fitflag==4){ m_outFile<<detid<<" "<<time1<<" "<<dtime1<<" "<<time2<<" "<<dtime2<<" "<<time3<<" "<<dtime3<<" "<<time4<<" "<<dtime4<<std::endl; } } } }
void HcalLedAnalysis::LedDone | ( | ) |
Definition at line 508 of file HcalLedAnalysis.cc.
References gather_cfg::cout.
Referenced by HcalLedAnalyzer::endJob().
{ // First process the last sample (remaining events). if(evt%m_nevtsample!=0) LedSampleAnalysis(); // Now do the end of run analysis: trending histos if(sample>1 && m_fitflag!=4){ m_file->cd(); m_file->cd("HBHE"); LedTrendings(hbHists.LEDTRENDS); m_file->cd(); m_file->cd("HO"); LedTrendings(hoHists.LEDTRENDS); m_file->cd(); m_file->cd("HF"); LedTrendings(hfHists.LEDTRENDS); } // Write other histograms. // HB m_file->cd(); m_file->cd("HBHE"); hbHists.ALLLEDS->Write(); hbHists.LEDRMS->Write(); hbHists.LEDMEAN->Write(); // HO m_file->cd(); m_file->cd("HO"); hoHists.ALLLEDS->Write(); hoHists.LEDRMS->Write(); hoHists.LEDMEAN->Write(); // HF m_file->cd(); m_file->cd("HF"); hfHists.ALLLEDS->Write(); hfHists.LEDRMS->Write(); hfHists.LEDMEAN->Write(); // Calib m_file->cd(); m_file->cd("Calib"); for(_meca=calibHists.begin(); _meca!=calibHists.end(); _meca++){ _meca->second.avePulse->Write(); _meca->second.integPulse->Write(); } // Write the histo file and close it // m_file->Write(); m_file->Close(); cout << "Hcal histograms written to " << m_outputFileROOT.c_str() << endl; }
void HcalLedAnalysis::LedHBHEHists | ( | const HcalDetId & | detid, |
const HBHEDataFrame & | ledDigi, | ||
std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT, | ||
const HcalDbService & | cond | ||
) | [private] |
Definition at line 681 of file HcalLedAnalysis.cc.
References ecalMGPA::adc(), first, HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalDbService::getPedestal(), i, gen::k, and HBHEDataFrame::size().
{ map<int,LEDBUNCH> _mei; _meol = toolT.find(detid); _mei = _meol->second; // Reset the histos if we're at the end of a 'bunch' if((evt-1)%m_nevtsample==0 && state[0]){ for(int k=0; k<(int)state.size();k++) state[k]=false; for(int i=0; i<16; i++) _mei[i].first->Reset(); } // Most of this is borrowed from HcalSimpleReconstructor, so thanks Jeremy/Phil int maxTS = -1; float max_fC = 0; float ta = 0; m_coder = cond.getHcalCoder(detid); m_ped = cond.getPedestal(detid); m_shape = cond.getHcalShape(); for (int TS = m_startTS; TS < m_endTS && TS < ledDigi.size(); TS++){ int capid = ledDigi[TS].capid(); int adc = ledDigi[TS].adc(); double fC = m_coder->charge(*m_shape,adc,capid); ta = (fC - m_ped->getValue(capid)); //cout << "DetID: " << detid << " CapID: " << capid << " ADC: " << adc << " fC: " << fC << endl; _mei[TS].first->Fill(ta); _mei[10].first->AddBinContent(TS+1,ta); // This is average pulse, could probably do better (Profile?) if(m_fitflag>1){ if(TS==m_startTS)_mei[11].first->Reset(); _mei[11].first->SetBinContent(TS+1,ta); } // keep track of max TS and max amplitude (in fC) if (ta > max_fC){ max_fC = ta; maxTS = TS; } } // Now we have a sample with pedestals subtracted and in units of fC // If we are using a weighted mean (m_fitflag = 2) to extraxt timing // we now want to use Phil's timing correction. This is not necessary // if we are performing a Landau fit (m_fitflag = 3) float sum=0.; for(int i=0; i<10; i++)sum=sum+_mei[11].first->GetBinContent(i+1); if(sum>100){ if(m_fitflag==2 || m_fitflag==4){ float timmean=_mei[11].first->GetMean(); // let's use Phil's way instead float timmeancorr=BinsizeCorr(timmean); _mei[12].first->Fill(timmeancorr); } _mei[16].first->Fill(_mei[11].first->Integral()); // Integrated charge (may be more usfull to convert to Energy first?) if(m_fitflag==3 || m_fitflag==4){ _mei[11].first->Fit("landau","Q"); TF1 *fit = _mei[11].first->GetFunction("landau"); _mei[13].first->Fill(fit->GetParameter(1)); _mei[14].first->Fill(fit->GetParError(1)); _mei[15].first->Fill(fit->GetChisquare()/fit->GetNDF()); } } }
void HcalLedAnalysis::LedHFHists | ( | const HcalDetId & | detid, |
const HFDataFrame & | ledDigi, | ||
std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT, | ||
const HcalDbService & | cond | ||
) | [private] |
Definition at line 811 of file HcalLedAnalysis.cc.
References ecalMGPA::adc(), first, HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalDbService::getPedestal(), i, gen::k, and HFDataFrame::size().
{ map<int,LEDBUNCH> _mei; _meol = toolT.find(detid); _mei = _meol->second; // Rest the histos if we're at the end of a 'bunch' if((evt-1)%m_nevtsample==0 && state[0]){ for(int k=0; k<(int)state.size();k++) state[k]=false; for(int i=0; i<16; i++) _mei[i].first->Reset(); } // now we have the signal in fC, let's get rid of that darn pedestal // Most of this is borrowed from HcalSimpleReconstructor, so thanks Jeremy/Phil int maxTS = -1; float max_fC = 0; float ta = 0; m_coder = cond.getHcalCoder(detid); m_ped = cond.getPedestal(detid); m_shape = cond.getHcalShape(); //cout << "New Digi!!!!!!!!!!!!!!!!!!!!!!" << endl; for (int TS = m_startTS; TS < m_endTS && TS < ledDigi.size(); TS++){ int capid = ledDigi[TS].capid(); // BE CAREFUL: this is assuming peds are stored in ADCs int adc = (int)(ledDigi[TS].adc() - m_ped->getValue(capid)); if (adc < 0){ adc = 0; } // to prevent negative adcs after ped subtraction, which should really only happen // if you're using the wrong peds. double fC = m_coder->charge(*m_shape,adc,capid); //ta = (fC - m_ped->getValue(capid)); ta = fC; //cout << "DetID: " << detid << " CapID: " << capid << " ADC: " << adc << " Ped: " << m_ped->getValue(capid) << " fC: " << fC << endl; _mei[TS].first->Fill(ta); _mei[10].first->AddBinContent(TS+1,ta); // This is average pulse, could probably do better (Profile?) if(m_fitflag>1){ if(TS==m_startTS)_mei[11].first->Reset(); _mei[11].first->SetBinContent(TS+1,ta); } // keep track of max TS and max amplitude (in fC) if (ta > max_fC){ max_fC = ta; maxTS = TS; } } // Now we have a sample with pedestals subtracted and in units of fC // If we are using a weighted mean (m_fitflag = 2) to extraxt timing // we now want to use Phil's timing correction. This is not necessary // if we are performing a Landau fit (m_fitflag = 3) float sum=0.; for(int i=0; i<10; i++)sum=sum+_mei[11].first->GetBinContent(i+1); if(sum>100){ if(m_fitflag==2 || m_fitflag==4){ float timmean=_mei[11].first->GetMean(); // let's use Phil's way instead float timmeancorr=BinsizeCorr(timmean); _mei[12].first->Fill(timmeancorr); } _mei[16].first->Fill(_mei[11].first->Integral()); // Integrated charge (may be more usfull to convert to Energy first?) if(m_fitflag==3 || m_fitflag==4){ _mei[11].first->Fit("landau","Q"); TF1 *fit = _mei[11].first->GetFunction("landau"); _mei[13].first->Fill(fit->GetParameter(1)); _mei[14].first->Fill(fit->GetParError(1)); _mei[15].first->Fill(fit->GetChisquare()/fit->GetNDF()); } } }
void HcalLedAnalysis::LedHOHists | ( | const HcalDetId & | detid, |
const HODataFrame & | ledDigi, | ||
std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT, | ||
const HcalDbService & | cond | ||
) | [private] |
Definition at line 747 of file HcalLedAnalysis.cc.
References ecalMGPA::adc(), first, HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalDbService::getPedestal(), i, gen::k, and HODataFrame::size().
{ map<int,LEDBUNCH> _mei; _meol = toolT.find(detid); _mei = _meol->second; // Rest the histos if we're at the end of a 'bunch' if((evt-1)%m_nevtsample==0 && state[0]){ for(int k=0; k<(int)state.size();k++) state[k]=false; for(int i=0; i<16; i++) _mei[i].first->Reset(); } // now we have the signal in fC, let's get rid of that darn pedestal // Most of this is borrowed from HcalSimpleReconstructor, so thanks Jeremy/Phil int maxTS = -1; float max_fC = 0; float ta = 0; m_coder = cond.getHcalCoder(detid); m_ped = cond.getPedestal(detid); m_shape = cond.getHcalShape(); for (int TS = m_startTS; TS < m_endTS && TS < ledDigi.size(); TS++){ int capid = ledDigi[TS].capid(); int adc = ledDigi[TS].adc(); double fC = m_coder->charge(*m_shape,adc,capid); ta = (fC - m_ped->getValue(capid)); _mei[TS].first->Fill(ta); _mei[10].first->AddBinContent(TS+1,ta); // This is average pulse, could probably do better (Profile?) if(m_fitflag>1){ if(TS==m_startTS)_mei[11].first->Reset(); _mei[11].first->SetBinContent(TS+1,ta); } // keep track of max TS and max amplitude (in fC) if (ta > max_fC){ max_fC = ta; maxTS = TS; } } // Now we have a sample with pedestals subtracted and in units of fC // If we are using a weighted mean (m_fitflag = 2) to extraxt timing // we now want to use Phil's timing correction. This is not necessary // if we are performing a Landau fit (m_fitflag = 3) float sum=0.; for(int i=0; i<10; i++)sum=sum+_mei[11].first->GetBinContent(i+1); if(sum>100){ if(m_fitflag==2 || m_fitflag==4){ float timmean=_mei[11].first->GetMean(); // let's use Phil's way instead float timmeancorr=BinsizeCorr(timmean); _mei[12].first->Fill(timmeancorr); } _mei[16].first->Fill(_mei[11].first->Integral()); // Integrated charge (may be more usfull to convert to Energy first?) if(m_fitflag==3 || m_fitflag==4){ _mei[11].first->Fit("landau","Q"); TF1 *fit = _mei[11].first->GetFunction("landau"); _mei[13].first->Fill(fit->GetParameter(1)); _mei[14].first->Fill(fit->GetParError(1)); _mei[15].first->Fill(fit->GetChisquare()/fit->GetNDF()); } } }
void HcalLedAnalysis::LedSampleAnalysis | ( | ) |
Definition at line 460 of file HcalLedAnalysis.cc.
{ // it is called every m_nevtsample events (a sample) and the end of run char LedSampleNum[20]; sprintf(LedSampleNum,"LedSample_%d",sample); m_file->cd(); m_file->mkdir(LedSampleNum); m_file->cd(LedSampleNum); // Compute LED constants for each HB/HE, HO, HF GetLedConst(hbHists.LEDTRENDS); GetLedConst(hoHists.LEDTRENDS); GetLedConst(hfHists.LEDTRENDS); }
void HcalLedAnalysis::LedSetup | ( | const std::string & | m_outputFileROOT | ) |
Definition at line 166 of file HcalLedAnalysis.cc.
Referenced by HcalLedAnalyzer::HcalLedAnalyzer().
void HcalLedAnalysis::LedTrendings | ( | std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT | ) | [private] |
Definition at line 428 of file CastorLedAnalysis.cc.
References HcalDetId::depth(), cond::rpcobgas::detid, HcalDetId::ieta(), HcalDetId::iphi(), j, and mergeVDriftHistosByStation::name.
{ for(_meol=toolT.begin(); _meol!=toolT.end(); _meol++){ char name[1024]; HcalDetId detid = _meol->first; sprintf(name,"LED timing trend, eta=%d phi=%d depth=%d",detid.ieta(),detid.iphi(),detid.depth()); int bins = _meol->second[10+m_fitflag].second.first[0].size(); float lo =0.5; float hi = (float)bins+0.5; _meol->second[10+m_fitflag].second.second.push_back(new TH1F(name,name,bins,lo,hi)); std::vector<double>::iterator sample_it; // LED timing - put content and errors int j=0; for(sample_it=_meol->second[10+m_fitflag].second.first[0].begin(); sample_it!=_meol->second[10+m_fitflag].second.first[0].end();sample_it++){ _meol->second[10+m_fitflag].second.second[0]->SetBinContent(++j,*sample_it); } j=0; for(sample_it=_meol->second[10+m_fitflag].second.first[1].begin(); sample_it!=_meol->second[10+m_fitflag].second.first[1].end();sample_it++){ _meol->second[10+m_fitflag].second.second[0]->SetBinError(++j,*sample_it); } sprintf(name,"Sample (%d events)",m_nevtsample); _meol->second[10+m_fitflag].second.second[0]->GetXaxis()->SetTitle(name); _meol->second[10+m_fitflag].second.second[0]->GetYaxis()->SetTitle("Peak position"); _meol->second[10+m_fitflag].second.second[0]->Write(); } }
void HcalLedAnalysis::ProcessCalibEvent | ( | int | fiberChan, |
HcalCalibDetId | calibId, | ||
const HcalCalibDataFrame | digi | ||
) | [private] |
Definition at line 930 of file HcalLedAnalysis.cc.
References HcalQIESample::adc(), HcalCalibDetId::calibFlavor(), HcalCalibDetId::CalibrationBox, HcalCalibDetId::cboxChannelString(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalCalibDetId::hcalSubdet(), i, HcalCalibDetId::ieta(), HcalCalibDetId::iphi(), mergeVDriftHistosByStation::name, prof2calltree::prefix, HcalCalibDataFrame::sample(), and HcalCalibDataFrame::size().
{ _meca = calibHists.find(calibId); if (_meca==calibHists.end()){ // if histos for this channel do not exist, first create them char name[1024]; std::string prefix; if (calibId.calibFlavor()==HcalCalibDetId::CalibrationBox) { std::string sector=(calibId.hcalSubdet()==HcalBarrel)?("HB"): (calibId.hcalSubdet()==HcalEndcap)?("HE"): (calibId.hcalSubdet()==HcalOuter)?("HO"): (calibId.hcalSubdet()==HcalForward)?("HF"):""; sprintf(name,"%s %+d iphi=%d %s",sector.c_str(),calibId.ieta(),calibId.iphi(),calibId.cboxChannelString().c_str()); prefix=name; } sprintf(name,"%s Pin Diode Mean",prefix.c_str()); calibHists[calibId].avePulse = new TProfile(name,name,10,-0.5,9.5,0,1000); sprintf(name,"%s Pin Diode Current Pulse",prefix.c_str()); calibHists[calibId].thisPulse = new TH1F(name,name,10,-0.5,9.5); sprintf(name,"%s Pin Diode Integrated Pulse",prefix.c_str()); calibHists[calibId].integPulse = new TH1F(name,name,200,0,500); } else { for (int i=m_startTS; i<digi.size() && i<=m_endTS; i++) { calibHists[calibId].avePulse->Fill(i,digi.sample(i).adc()); calibHists[calibId].thisPulse->SetBinContent(i+1,digi.sample(i).adc()); } calibHists[calibId].integPulse->Fill(calibHists[calibId].thisPulse->Integral()); } }
void HcalLedAnalysis::processLedEvent | ( | const HBHEDigiCollection & | hbhe, |
const HODigiCollection & | ho, | ||
const HFDigiCollection & | hf, | ||
const HcalCalibDigiCollection | calib, | ||
const HcalDbService & | cond | ||
) |
Definition at line 561 of file HcalLedAnalysis.cc.
References edm::SortedCollection< T, SORT >::begin(), HcalCalibDataFrame::elecId(), edm::SortedCollection< T, SORT >::end(), HcalElectronicsId::fiberChanId(), i, HODataFrame::id(), HBHEDataFrame::id(), HcalCalibDataFrame::id(), HFDataFrame::id(), gen::k, and edm::SortedCollection< T, SORT >::size().
Referenced by HcalLedAnalyzer::analyze().
{ evt++; sample = (evt-1)/m_nevtsample +1; evt_curr = evt%m_nevtsample; if(evt_curr==0)evt_curr=m_nevtsample; // Calib if (m_usecalib){ try{ if(!calib.size()) throw (int)calib.size(); // this is effectively a loop over electronic channels for (HcalCalibDigiCollection::const_iterator j=calib.begin(); j!=calib.end(); j++){ const HcalCalibDataFrame digi = (const HcalCalibDataFrame)(*j); HcalElectronicsId elecId = digi.elecId(); HcalCalibDetId calibId = digi.id(); ProcessCalibEvent(elecId.fiberChanId(),calibId,digi); //Shouldn't depend on anything in elecId but not sure how else to do it } } catch (int i ) { // m_logFile<< "Event with " << i<<" Calib Digis passed." << std::endl; } } // HB + HE try{ if(!hbhe.size()) throw (int)hbhe.size(); // this is effectively a loop over electronic channels for (HBHEDigiCollection::const_iterator j=hbhe.begin(); j!=hbhe.end(); j++){ const HBHEDataFrame digi = (const HBHEDataFrame)(*j); for(int k=0; k<(int)state.size();k++) state[k]=true; // See if histos exist for this channel, and if not, create them _meol = hbHists.LEDTRENDS.find(digi.id()); if (_meol==hbHists.LEDTRENDS.end()){ SetupLEDHists(0,digi.id(),hbHists.LEDTRENDS); } LedHBHEHists(digi.id(),digi,hbHists.LEDTRENDS,cond); } } catch (int i ) { // m_logFile<< "Event with " << i<<" HBHE Digis passed." << std::endl; } // HO try{ if(!ho.size()) throw (int)ho.size(); for (HODigiCollection::const_iterator j=ho.begin(); j!=ho.end(); j++){ const HODataFrame digi = (const HODataFrame)(*j); _meol = hoHists.LEDTRENDS.find(digi.id()); if (_meol==hoHists.LEDTRENDS.end()){ SetupLEDHists(1,digi.id(),hoHists.LEDTRENDS); } LedHOHists(digi.id(),digi,hoHists.LEDTRENDS,cond); } } catch (int i ) { // m_logFile << "Event with " << i<<" HO Digis passed." << std::endl; } // HF try{ if(!hf.size()) throw (int)hf.size(); for (HFDigiCollection::const_iterator j=hf.begin(); j!=hf.end(); j++){ const HFDataFrame digi = (const HFDataFrame)(*j); _meol = hfHists.LEDTRENDS.find(digi.id()); if (_meol==hfHists.LEDTRENDS.end()){ SetupLEDHists(2,digi.id(),hfHists.LEDTRENDS); } LedHFHists(digi.id(),digi,hfHists.LEDTRENDS,cond); } } catch (int i ) { // m_logFile << "Event with " << i<<" HF Digis passed." << std::endl; } // Call the function every m_nevtsample events if(evt%m_nevtsample==0) LedSampleAnalysis(); }
void HcalLedAnalysis::SetupLEDHists | ( | int | id, |
const HcalDetId | detid, | ||
std::map< HcalDetId, std::map< int, LEDBUNCH > > & | toolT | ||
) | [private] |
Definition at line 516 of file CastorLedAnalysis.cc.
References HcalDetId::depth(), cond::rpcobgas::detid, i, HcalDetId::ieta(), edm::eventsetup::heterocontainer::insert(), HcalDetId::iphi(), and mergeVDriftHistosByStation::name.
{ string type = "HBHE"; if(id==1) type = "HO"; if(id==2) type = "HF"; _meol = toolT.find(detid); if (_meol==toolT.end()){ // if histos for this channel do not exist, create them map<int,LEDBUNCH> insert; char name[1024]; for(int i=0; i<10; i++){ sprintf(name,"%s Pulse height, eta=%d phi=%d depth=%d TS=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth(),i); insert[i].first = new TH1F(name,name,200,0.,2000.); } sprintf(name,"%s LED Mean pulse, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[10].first = new TH1F(name,name,10,-0.5,9.5); sprintf(name,"%s LED Pulse, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[11].first = new TH1F(name,name,10,-0.5,9.5); sprintf(name,"%s Mean TS, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[12].first = new TH1F(name,name,200,0.,10.); sprintf(name,"%s Peak TS, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[13].first = new TH1F(name,name,200,0.,10.); sprintf(name,"%s Peak TS error, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[14].first = new TH1F(name,name,200,0.,0.05); sprintf(name,"%s Fit chi2, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[15].first = new TH1F(name,name,100,0.,50.); sprintf(name,"%s Integrated Signal, eta=%d phi=%d depth=%d",type.c_str(),detid.ieta(),detid.iphi(),detid.depth()); insert[16].first = new TH1F(name,name,500,0.,5000.); toolT[detid] = insert; } }
std::map<HcalCalibDetId,CALIBBUNCH>::iterator HcalLedAnalysis::_meca [private] |
Definition at line 122 of file HcalLedAnalysis.h.
std::map<HcalDetId,std::map<int,float> >::iterator HcalLedAnalysis::_meee [private] |
Definition at line 119 of file HcalLedAnalysis.h.
std::map<HcalDetId,std::map<int, LEDBUNCH > >::iterator HcalLedAnalysis::_meol [private] |
Definition at line 117 of file HcalLedAnalysis.h.
TH1F* HcalLedAnalysis::ALLLEDS |
Definition at line 112 of file HcalLedAnalysis.h.
std::map<HcalCalibDetId,CALIBBUNCH> HcalLedAnalysis::calibHists [private] |
Definition at line 121 of file HcalLedAnalysis.h.
TH1F* HcalLedAnalysis::CHI2 |
Definition at line 115 of file HcalLedAnalysis.h.
int HcalLedAnalysis::evt [private] |
Definition at line 125 of file HcalLedAnalysis.h.
int HcalLedAnalysis::evt_curr [private] |
Definition at line 127 of file HcalLedAnalysis.h.
struct { ... } HcalLedAnalysis::hbHists [private] |
struct { ... } HcalLedAnalysis::hfHists [private] |
struct { ... } HcalLedAnalysis::hoHists [private] |
TH1F* HcalLedAnalysis::LEDMEAN |
Definition at line 114 of file HcalLedAnalysis.h.
TH1F* HcalLedAnalysis::LEDRMS |
Definition at line 113 of file HcalLedAnalysis.h.
std::map<HcalDetId,std::map<int, LEDBUNCH > > HcalLedAnalysis::LEDTRENDS |
Definition at line 111 of file HcalLedAnalysis.h.
std::map<HcalDetId,std::map<int,float> > HcalLedAnalysis::m_AllPedVals [private] |
Definition at line 118 of file HcalLedAnalysis.h.
const HcalQIECoder* HcalLedAnalysis::m_coder [private] |
Definition at line 108 of file HcalLedAnalysis.h.
int HcalLedAnalysis::m_endTS [private] |
Definition at line 93 of file HcalLedAnalysis.h.
TFile* HcalLedAnalysis::m_file [private] |
Definition at line 74 of file HcalLedAnalysis.h.
int HcalLedAnalysis::m_fitflag [private] |
Definition at line 105 of file HcalLedAnalysis.h.
int HcalLedAnalysis::m_hiSaveflag [private] |
Definition at line 95 of file HcalLedAnalysis.h.
std::ofstream HcalLedAnalysis::m_logFile [private] |
Definition at line 88 of file HcalLedAnalysis.h.
int HcalLedAnalysis::m_nevtsample [private] |
Definition at line 94 of file HcalLedAnalysis.h.
std::ofstream HcalLedAnalysis::m_outFile [private] |
Definition at line 87 of file HcalLedAnalysis.h.
std::string HcalLedAnalysis::m_outputFileROOT [private] |
Definition at line 84 of file HcalLedAnalysis.h.
std::string HcalLedAnalysis::m_outputFileText [private] |
Definition at line 85 of file HcalLedAnalysis.h.
std::string HcalLedAnalysis::m_outputFileX [private] |
Definition at line 86 of file HcalLedAnalysis.h.
std::ofstream HcalLedAnalysis::m_outputFileXML [private] |
Definition at line 89 of file HcalLedAnalysis.h.
const HcalPedestal* HcalLedAnalysis::m_ped [private] |
Definition at line 109 of file HcalLedAnalysis.h.
const HcalQIEShape* HcalLedAnalysis::m_shape [private] |
Definition at line 107 of file HcalLedAnalysis.h.
int HcalLedAnalysis::m_startTS [private] |
Definition at line 92 of file HcalLedAnalysis.h.
bool HcalLedAnalysis::m_usecalib [private] |
Definition at line 96 of file HcalLedAnalysis.h.
char HcalLedAnalysis::output[100] [private] |
Definition at line 90 of file HcalLedAnalysis.h.
int HcalLedAnalysis::sample [private] |
Definition at line 126 of file HcalLedAnalysis.h.
std::vector<bool> HcalLedAnalysis::state [private] |
Definition at line 128 of file HcalLedAnalysis.h.