2 #include "art/Framework/Core/EDProducer.h" 
    3 #include "art/Framework/Core/ModuleMacros.h" 
    4 #include "art/Framework/Principal/Handle.h" 
    5 #include "art/Framework/Principal/Event.h"  
    6 #include "canvas/Persistency/Common/Ptr.h"  
    7 #include "canvas/Persistency/Common/PtrVector.h"  
    8 #include "art/Framework/Principal/Run.h" 
    9 #include "art/Framework/Principal/SubRun.h" 
   10 #include "art_root_io/TFileService.h"  
   11 #include "art_root_io/TFileDirectory.h" 
   12 #include "art/Framework/Services/Registry/ServiceHandle.h" 
   13 #include "art/Framework/Core/ModuleMacros.h" 
   14 #include "canvas/Persistency/Common/FindManyP.h" 
   15 #include "art/Persistency/Common/PtrMaker.h" 
   16 #include "canvas/Utilities/InputTag.h" 
   17 #include "fhiclcpp/ParameterSet.h" 
   18 #include "messagefacility/MessageLogger/MessageLogger.h" 
   62     void produce(art::Event & 
e) 
override;
 
   88     produces< std::vector<icarus::crt::CRTData> >();
 
  105     fInFile = p.get<
string>(
"infile");
 
  114         TTree* tree=(TTree*)fin.FindObjectAny(
"anaTree");
 
  115         if(tree==
nullptr) 
std::cout << 
"anaTree not found!" << std::endl;
 
  118         std::cout << 
"running 'beginJob'" << std::endl;
 
  135                         if (ientry < fAnaTree->GetNEntries()-1)
 
  141         std::cout << 
"found " << 
event << 
" time slices" << std::endl;
 
  143                 std::cout << 
"event map start/end size mismatch!" << std::endl;
 
  153     TTree* tree=(TTree*)fin.FindObjectAny(
"anaTree");
 
  154     if(tree==
nullptr) 
std::cout << 
"anaTree not found!" << std::endl;
 
  157     std::unique_ptr< std::vector<icarus::crt::CRTData> > crtdata( 
new std::vector<icarus::crt::CRTData>);
 
  159     size_t eveId = (size_t) event.event();
 
  169         for(
size_t ichan=0; ichan<32; ichan++){
 
  174                         data.
fAdc[ichan] = 0;
 
  177         crtdata->push_back(data);
 
  185     event.put(std::move(crtdata));
 
uint8_t fMac5
FEB address following numbering convention common for both data and MC. 
 
std::map< size_t, size_t > fEventEntryStart
 
CRTEventProducer(fhicl::ParameterSet const &p)
 
std::map< size_t, size_t > fEventEntryEnd
 
CRTEventProducer & operator=(CRTEventProducer const &)=delete
 
icarus::crt::CRTPreProcessTree * fAnaTree
 
void reconfigure(fhicl::ParameterSet const &p)
 
void Load(size_t ientry) const 
 
uint64_t GetAbsTime(size_t ientry) const 
 
Single hit (self trigger) of a CRT board. 
 
Definition of data types for geometry description. 
 
uint16_t fAdc[64]
ADC readout for each channel. CAEN (Bern) CRT FEBs use only indices 0-31. 
 
size_t GetNEntries() const 
 
void produce(art::Event &e) override
 
bool Above(uint8_t chan) const 
 
bool Active(uint8_t chan) const 
 
Collection of Physical constants used in LArSoft. 
 
float PE(uint8_t chan) const 
 
BEGIN_PROLOG could also be cout
 
uint64_t fTs0
Absolute hit timestamp [ns]. 
 
uint64_t fTs1
Trigger time, not well defined as of Apr 14, 2021.