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

PulserFromRawFilterModule.cxx

Go to the documentation of this file.
00001 
00002 
00004 #include <cstdio>
00005 #include <fstream>
00006 // ROOT includes
00007 #include "TFile.h"
00008 // MINOS includes
00009 #include "MessageService/MsgService.h"     // MSG text output
00010 #include "MinosObjectMap/MomNavigator.h"   // Data access
00011 #include "CandData/CandRecord.h"           // DigitList handling
00012 #include "JobControl/JobCommand.h"         // JobCommand handling
00013 #include "JobControl/JobCModuleRegistry.h" // JOBMODULE registration macro
00014 #include "RawData/RawDaqSnarlHeader.h"
00015 #include "RawData/RawSnarlHeaderBlock.h"
00016 #include "RawData/RawRecord.h"
00017 #include "RawData/RawLIAdcSummaryBlock.h"
00018 #include "RawData/RawDigitDataBlock.h"
00019 #include "PulserCalibration/PulserSummaryList.h"
00020 #include "PulserCalibration/PulserSummary.h"
00021 #include "PulserCalibration/PulserFromRawFilterModule.h"
00022 #include "Validity/VldContext.h"
00023 #include "Validity/VldRange.h"
00024 #include "Plex/PlexStripEndId.h"
00025 #include "Plex/PlexHandle.h"
00026 #include "RawData/RawChannelId.h"
00027 #include "RawData/RawDigit.h"
00028 #include "Conventions/StripEnd.h"
00029 #include "DatabaseInterface/DbiWriter.h"
00030 #include "Plex/PlexStripEndToLed.h"
00031 #include "Plex/PlexPinDiodeToLed.h"
00032 //include "PEGain/PEGainFitter.h"
00033 ClassImp(PulserFromRawFilterModule)
00034 
00035 CVSID("$Id: PulserFromRawFilterModule.cxx,v 1.3 2006/04/19 20:00:55 rhatcher Exp $");
00036 JOBMODULE(PulserFromRawFilterModule,"PulserFromRawFilterModule","Compute and record total charge\n");
00037 
00038 //......................................................................
00039 
00040 //......................................................................
00041 
00042 PulserFromRawFilterModule::PulserFromRawFilterModule()
00043 {
00044 //======================================================================
00045 // Set the initial state of your module. The code above initializes the
00046 // variables listed to the values in parentheses. In this case that's
00047 // all I need to do so the method itself is empty...
00048 //======================================================================
00049 
00050 }
00051 
00052 //......................................................................
00053 
00054 
00055 //......................................................................
00056 
00057 JobCResult PulserFromRawFilterModule::Reco(MomNavigator *mom) 
00058 {
00059    JobCResult result(JobCResult::kFailed);
00060    
00061    RawRecord *rr = dynamic_cast<RawRecord *>(mom->GetFragment("RawRecord"));
00062    if (rr == 0) {
00063       MSG("Pulser", Msg::kWarning) << "No RawRecord in MOM." << endl;
00064       return result;
00065    }
00066 
00067    UInt_t trigword = 0;
00068    UInt_t snarl = 0;
00069    
00070    
00071    const RawDaqSnarlHeader* snarlHdr =
00072       dynamic_cast<const RawDaqSnarlHeader*>(rr->GetRawHeader());
00073    if (snarlHdr) {
00074       trigword = snarlHdr->GetTrigSrc();
00075       snarl = snarlHdr->GetSnarl();
00076    }
00077    const RawLIAdcSummaryBlock *rawsum = 
00078       dynamic_cast<const RawLIAdcSummaryBlock *>
00079       (rr->FindRawBlock("RawLIAdcSummaryBlock"));   
00080    if (rawsum) {
00081       MSG("Pulser",Msg::kDebug) 
00082          << "Got LI Summary for Led :" 
00083          << rawsum->GetLed()
00084          << " H " << rawsum->GetPulseHeight() 
00085          << " containing  " 
00086          << rawsum->GetNumberOfSummaries()<< " summaries." <<  endl;
00087       result.SetPassed();
00088       return result;
00089    }
00090    Int_t hasLI=trigword & TRIG_LI_MASK;
00091    if(hasLI) {
00092       MSG("Pulser", Msg::kVerbose) 
00093          << "Snarl " << snarl << " has LI. Trigger is: " 
00094          << hex << trigword << dec << endl;
00095       result.SetPassed();
00096       return result;
00097    }
00098    result.SetFailed();
00099    return result;
00100    
00101 }
00102 
00103 //......................................................................
00104 

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