Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PEGainStripHisto.cxx

Go to the documentation of this file.
00001 
00002 
00004 #include <cstdio>
00005 #include <cassert>
00006 #include "PEGain/PEGainStripHisto.h"
00007 #include "MessageService/MsgService.h" // MSG text output
00008 #include "TFile.h"     
00009 
00010 
00011 ClassImp(PEGainStripHisto)
00012 
00013 CVSID("$Id: PEGainStripHisto.cxx,v 1.2 2003/05/21 17:10:52 bv Exp $");
00014 
00015 //......................................................................
00016 
00017 PEGainStripHisto::PEGainStripHisto()
00018    :fHistNear(0),fHistFar(0),fEncodedStrip(-1),fTempNearHits(0),fTempFarHits(0),fTempFarSum(0),fTempNearSum(0)//,fBestSide(-1)
00019 {
00020 
00021    MSG("PEGain",Msg::kVerbose) << "PEGainStripHisto::PEGainStripHisto()\n";
00022 
00023 }
00024 //......................................................................
00025 
00026 PEGainStripHisto::~PEGainStripHisto()
00027 {
00028    MSG("PEGain",Msg::kVerbose) << "PEGainStripHisto::~PEGainStripHisto()\n";
00029    if(fHistFar) delete fHistFar;
00030    if(fHistNear) delete fHistNear;
00031 
00032 }
00033 
00034 void PEGainStripHisto::AddToNearEnd(Int_t adc, 
00035                                     const PlexStripEndId &seid,
00036                                     Int_t box,
00037                                     Int_t led,
00038                                     Int_t height )
00039 {
00040    MSG("PEGain",Msg::kVerbose) << "PEGainStripHisto::AddToNearEnd( "
00041                                << adc  << " , " << seid << " , " 
00042                                << box << " , " << led  << " , "
00043                                << height << " )\n";
00044    if(fEncodedStrip==-1) {
00045       fSeid=seid;
00046       fEncodedStrip=seid.BuildPlnStripEndKey();
00047    }
00048    else assert(seid.BuildPlnStripEndKey()==fEncodedStrip);
00049    
00050    if(!fHistNear) {
00051       Char_t histname[80];
00052       sprintf(histname,"pl%d_st%d_end%d_box%d_led%d_h%d",
00053               seid.GetPlane(), seid.GetStrip(),
00054               int(seid.GetEnd()), box,led,height);
00055       sprintf(fNearHistName,"%s",histname);
00056       fHistNear = new TH1F(histname,histname,17000,-500.5,16499.5);
00057    }
00058    //fHistNear->Fill(adc);
00059    fTempNearHits++;
00060    fTempNearSum+=adc;
00061 }
00062 
00063 void PEGainStripHisto::AddToFarEnd(Int_t adc, 
00064                                    const PlexStripEndId &seid,
00065                                    Int_t box,
00066                                    Int_t led,
00067                                    Int_t height)
00068 {
00069    MSG("PEGain",Msg::kVerbose) << "PEGainStripHisto::AddToFarEnd()\n";
00070    if(fEncodedStrip==-1) {
00071       fSeid=seid;
00072       fEncodedStrip=seid.BuildPlnStripEndKey();
00073    }
00074    else assert(seid.BuildPlnStripEndKey()==fEncodedStrip);
00075    
00076    if(!fHistFar) {
00077       Char_t histname[80];
00078       sprintf(histname,"pl%d_st%d_end%d_box%d_led%d_h%d",
00079               seid.GetPlane(), seid.GetStrip(),
00080               int(seid.GetEnd()), box,led,height);
00081       sprintf(fFarHistName,"%s",histname);
00082       
00083       fHistFar = new TH1F(histname,histname,17000,-500.5,16499.5);
00084    }
00085    fTempFarHits++;
00086    fTempFarSum+=adc;
00087    //fHistFar->Fill(adc);
00088 
00089 }
00090 void PEGainStripHisto::FillHistos() {
00091    MSG("PEGain",Msg::kVerbose) 
00092       << "PEGainStripHisto::FillHistos() for histos " 
00093       << fFarHistName << " & " << fNearHistName << "\n";
00094    if(fTempFarHits>0) {
00095       fHistFar->Fill(fTempFarSum);
00096       fTempFarHits=0;
00097       fTempFarSum=0;
00098    }
00099    if(fTempNearHits>0) {
00100       fHistNear->Fill(fTempNearSum);
00101       fTempNearHits=0;
00102       fTempNearSum=0;
00103    }
00104 }
00105    
00106 
00107 void PEGainStripHisto::WriteHistos(TFile *fp) const {
00108    fp->cd();
00109    if(fHistFar) fHistFar->Write();
00110    if(fHistNear) fHistNear->Write();
00111 }
00112 

Generated on Mon Feb 15 11:07:18 2010 for loon by  doxygen 1.3.9.1