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
1.3.9.1