Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
novaddt::HitsAna Class Reference
Inheritance diagram for novaddt::HitsAna:
art::EDAnalyzer art::EDAnalyzer art::EventObserverBase art::Consumer art::EngineCreator art::EventObserverBase art::Consumer art::EngineCreator

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 HitsAna (fhicl::ParameterSet const &p)
 
virtual ~HitsAna ()
 
void analyze (art::Event const &e) override
 
void endJob () override
 
std::vector< novaddt::HitListHitFormatConsolidation (art::Event const &event)
 
void AnalyzeHitLists (std::vector< novaddt::HitList > hit_lists, unsigned long long event_time)
 
void FillHitDensitiesInTDCWindow (std::vector< int > TDC_vals, int minTDC, int maxTDC, int window_size, int overlap, TH1F *histogram)
 
 HitsAna (fhicl::ParameterSet const &p)
 
 HitsAna (HitsAna const &)=delete
 
 HitsAna (HitsAna &&)=delete
 
HitsAnaoperator= (HitsAna const &)=delete
 
HitsAnaoperator= (HitsAna &&)=delete
 
void analyze (art::Event const &e) override
 
void clearHits ()
 
void addHit (const novaddt::DAQHit &)
 
std::string workerType () const
 
bool modifiesEvent () const
 
void registerProducts (MasterProductRegistry &, ProductDescriptions &, ModuleDescription const &)
 
std::string const & processName () const
 
bool wantAllEvents () const
 
bool wantEvent (Event const &e)
 
fhicl::ParameterSetID selectorConfig () const
 
art::Handle< art::TriggerResultsgetTriggerResults (Event const &e) const
 
template<typename T , BranchType = InEvent>
ProductToken< Tconsumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< Tconsumes (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TconsumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< TmayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< TmayConsume (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TmayConsumeView (InputTag const &it)
 
base_engine_tcreateEngine (seed_t seed)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label)
 
seed_t get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1)
 

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

CurrentProcessingContext const * currentContext () const
 
detail::CachedProducts & cachedProducts ()
 
void validateConsumedProduct (BranchType const bt, ProductInfo const &pi)
 
void prepareForJob (fhicl::ParameterSet const &pset)
 
void showMissingConsumes () const
 

Private Attributes

std::string _hitsModuleLabel
 label of module making the Hits More...
 
std::string _hitsInstanceLabel
 instance label making the Hits More...
 
std::string _hitsFormat
 The format to expect the hits in, can be one of HitList, Grouped, Vector. More...
 
std::string _rawDigitLabel
 label of where to find Raw Digits More...
 
bool _verbose
 Verbose output. More...
 
unsigned int _nEvents = 0
 
unsigned int _nSlices = 0
 
unsigned int _nHits = 0
 
TH1F * hCutFlow
 
TH1F * hNSlices
 
TH1F * hNSlices_wide
 
TH1F * hAllNHits
 
TH1F * hAllNHitsXZ
 
TH1F * hAllNHitsYZ
 
TH1F * hNHits
 
TH1F * hNHits_wide
 
TH1F * hNHitsXZ
 
TH1F * hNHitsYZ
 
TH1F * hX
 
TH1F * hY
 
TH1F * hYZ
 
TH1F * hXZ
 
TH1F * hdX
 
TH1F * hdY
 
TH1F * hdZ
 
TH1F * hdXUnit
 
TH1F * hdYUnit
 
TH1F * hdZUnit
 
TH1F * hXMin
 
TH1F * hXMax
 
TH1F * hYMin
 
TH1F * hYMax
 
TH1F * hZMin
 
TH1F * hZMax
 
TH1F * hADC
 
TH1F * hSumADC
 
TH1F * hMeanADC
 
TH1F * hTDC
 
TH1F * hTDC_wide
 
TH1F * hdTDC
 
TH1F * hMeanTDC
 
TH1F * hHit_max_dTDC
 
TH1F * hHit_max_dZ
 
TH1F * hHit_max_dX
 
TH1F * hHit_max_dY
 
TH1F * hHit_dTDC
 
TH1F * hHit_dZ
 
TH1F * hHit_dX
 
TH1F * hHit_dY
 
TH1F * hHitDensity_per_50TDC
 
TH1F * hHitDensity_per_70TDC
 
TH1F * hHitDensity_per_100TDC
 
TH2F * hNHitsZ_vs_X
 
TH2F * hNHitsZ_vs_Y
 
art::InputTag fHitsTag
 
std::vector< novaddt::TDC::value_typefTime
 
std::vector< novaddt::ADC::value_typefADC
 
std::vector< novaddt::Plane::value_typefPlane
 
std::vector< novaddt::Cell::value_typefCell
 
std::vector< novaddt::View::value_typefView
 
TTree * fTree
 
novaddt::TDC::value_type fEvtTime
 

Detailed Description

Definition at line 39 of file HitsAna_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

novaddt::HitsAna::HitsAna ( fhicl::ParameterSet const &  p)
explicit

Definition at line 109 of file HitsAna_module.cc.

References _hitsFormat, _hitsInstanceLabel, _hitsModuleLabel, _rawDigitLabel, _verbose, ana::assert(), om::cout, allTimeWatchdog::endl, hADC, hAllNHits, hAllNHitsXZ, hAllNHitsYZ, hCutFlow, hdTDC, hdX, hdXUnit, hdY, hdYUnit, hdZ, hdZUnit, hHit_dTDC, hHit_dX, hHit_dY, hHit_dZ, hHit_max_dTDC, hHit_max_dX, hHit_max_dY, hHit_max_dZ, hHitDensity_per_100TDC, hHitDensity_per_50TDC, hHitDensity_per_70TDC, hMeanADC, hMeanTDC, hNHits, hNHits_wide, hNHitsXZ, hNHitsYZ, hNHitsZ_vs_X, hNHitsZ_vs_Y, hNSlices, hNSlices_wide, hSumADC, hTDC, hTDC_wide, hX, hXMax, hXMin, hXZ, hY, hYMax, hYMin, hYZ, hZMax, hZMin, and art::TFileDirectory::make().

109  :
110  EDAnalyzer(p)
111  , _hitsModuleLabel (p.get<std::string >("HitsModuleLabel" ))
112  , _hitsInstanceLabel (p.get<std::string >("HitsInstanceLabel"))
113  , _hitsFormat (p.get<std::string >("HitsFormat"))
114  , _rawDigitLabel (p.get< std::string >("RawDigitLabel"))
115  , _verbose (p.get< bool >("Verbose"))
116 {
117  std::cout << "--- novaddt::HitsAna instantiate " << std::endl;
118  std::cout << "\t HitsModuleLabel: " << _hitsModuleLabel << std::endl;
119  std::cout << "\t HitsInstanceLabel: " << _hitsInstanceLabel << std::endl;
120  std::cout << "\t HitsFormat: " << _hitsFormat << std::endl;
121  std::cout << "\t RawDigitLabel: " << _rawDigitLabel << std::endl;
122  std::cout << "\t Verbose: " << _verbose << std::endl;
123 
124  assert( (_hitsFormat == "HitList") ||
125  (_hitsFormat == "Grouped") ||
126  (_hitsFormat == "Vector")
127  );
128 
130  hCutFlow = tfs->make<TH1F>("CutFlow", ";Cut number;Entries", 21,-.5,20.5);
131  hNSlices = tfs->make<TH1F>("NSlices", ";Number of slices;Entries", 301,-.5,300.5);
132  hNSlices_wide = tfs->make<TH1F>("NSlices_wide", ";Number of slices;Entries", 201,-.5,3000.5);
133  hAllNHits = tfs->make<TH1F>("AllNHits", ";Number of hits per event;Entries", 100,0.,200000.);
134  hAllNHitsXZ = tfs->make<TH1F>("AllNHitsXZ", ";Number of hits XZ per event;Entries", 100,0.,100000);
135  hAllNHitsYZ = tfs->make<TH1F>("AllNHitsYZ", ";Number of hits YZ per event;Entries", 100,0.,100000);
136  hNHits = tfs->make<TH1F>("NHits", ";Number of hits;Entries", 500,-0.5,499.5);
137  hNHits_wide = tfs->make<TH1F>("NHits_wide", ";Number of hits;Entries", 100,0.,1000.);
138  hNHitsXZ = tfs->make<TH1F>("NHitsXZ", ";Number of hits XZ;Entries", 500,-0.5,499.5);
139  hNHitsYZ = tfs->make<TH1F>("NHitsYZ", ";Number of hits YZ;Entries", 500,-0.5,499.5);
140  hX = tfs->make<TH1F>("X", ";X [Cell];Entries", 401,-0.5,400.5);
141  hY = tfs->make<TH1F>("Y", ";Y [Cell];Entries", 401,-0.5,400.5);
142  hXZ = tfs->make<TH1F>("XZ", ";X planes Z;Entries", 102,-2.5,201.5);
143  hYZ = tfs->make<TH1F>("YZ", ";Y planes Z;Entries", 102,-2.5,201.5);
144  hdX = tfs->make<TH1F>("dX", ";dX;Entries", 401,-0.5,401.);
145  hdY = tfs->make<TH1F>("dY", ";dY;Entries", 401,-0.5,401.);
146  hdZ = tfs->make<TH1F>("dZ", ";dZ;Entries", 226,-2.5,449.5);
147  hdXUnit = tfs->make<TH1F>("dXUnit", ";dX unit vector;Entries", 101,-0.01,1.01);
148  hdYUnit = tfs->make<TH1F>("dYUnit", ";dY unit vector;Entries", 101,-0.01,1.01);
149  hdZUnit = tfs->make<TH1F>("dZUnit", ";dZ unit vector;Entries", 101,-0.01,1.01);
150  hXMin = tfs->make<TH1F>("XMin",";Slice box x-min;Entries", 403,-2.5,400.5);
151  hXMax = tfs->make<TH1F>("XMax",";Slice box x-max;Entries", 403,-2.5,400.5);
152  hYMin = tfs->make<TH1F>("YMin",";Slice box y-min;Entries", 403,-2.5,400.5);
153  hYMax = tfs->make<TH1F>("YMax",";Slice box y-max;Entries", 403,-2.5,400.5);
154  hZMin = tfs->make<TH1F>("ZMin",";Slice box z-min;Entries", 226,-2.5,449.5);
155  hZMax = tfs->make<TH1F>("ZMax",";Slice box z-max;Entries", 226,-2.5,449.5);
156  hADC = tfs->make<TH1F>("ADC", ";ADC;Entries", 256,0.5,4096.5);
157  hSumADC = tfs->make<TH1F>("SumADC", ";Sum ADC;Entries", 100,0.,50000.);
158  hMeanADC = tfs->make<TH1F>("MeanADC", ";Mean ADC;Entries", 256,0.5,4096.5);
159  hTDC = tfs->make<TH1F>("TDC", ";TDC of each hit in slice;Entries", 1120,-3220. ,326400.);
160  hTDC_wide = tfs->make<TH1F>("TDC_wide", ";TDC of each hit in slice;Entries", 100, -10000.,400000.);
161  hdTDC = tfs->make<TH1F>("dTDC", ";dTDC of hits in slice;Entries", 129,-0.5,1024.5);
162  hMeanTDC = tfs->make<TH1F>("MeanTDC", ";Mean TDC of hits in slice;Entries", 1120,-3220.,326400);
163  hHit_max_dTDC = tfs->make<TH1F>("Hit_max_dTDC", ";Maximum dTDC between hits in slice;Entries", 200,-0.5,199.5);
164  hHit_max_dX = tfs->make<TH1F>("Hit_max_dX", ";Maximum dX between hits in slice;Entries", 100,-0.5,99.5);
165  hHit_max_dY = tfs->make<TH1F>("Hit_max_dY", ";Maximum dY between hits in slice;Entries", 100,-0.5,99.5);
166  hHit_max_dZ = tfs->make<TH1F>("Hit_max_dZ", ";Maximum dZ between hits in slice;Entries", 100,-0.5,99.5);
167  hHit_dTDC = tfs->make<TH1F>("Hit_dTDC", ";dTDC between hits in slice;Entries", 200,-0.5,199.5);
168  hHit_dX = tfs->make<TH1F>("Hit_dX", ";dX between hits in slice;Entries", 100,-0.5,99.5);
169  hHit_dY = tfs->make<TH1F>("Hit_dY", ";dY between hits in slice;Entries", 100,-0.5,99.5);
170  hHit_dZ = tfs->make<TH1F>("Hit_dZ", ";dZ between hits in slice;Entries", 100,-0.5,99.5);
171  hHitDensity_per_50TDC = tfs->make<TH1F>("HitDensity_per_50TDC", ";Number of hits per 50 TDC;Entries", 100,-0.5,499.5);
172  hHitDensity_per_70TDC = tfs->make<TH1F>("HitDensity_per_70TDC", ";Number of hits per 70 TDC;Entries", 100,-0.5,499.5);
173  hHitDensity_per_100TDC = tfs->make<TH1F>("HitDensity_per_100TDC", ";Number of hits per 100 TDC;Entries", 100,-0.5,499.5);
174 
175  hNHitsZ_vs_X = tfs->make<TH2F>("NHitsZ_vs_X",";Z [plane];X [Cell];Entries", 226,-2.5,449.5,403,-2.5,400.5);
176  hNHitsZ_vs_Y = tfs->make<TH2F>("NHitsZ_vs_Y",";Z [plane];Y [Cell];Entries", 226,-2.5,449.5,403,-2.5,400.5);
177 }
const char * p
Definition: xmltok.h:285
std::string _hitsFormat
The format to expect the hits in, can be one of HitList, Grouped, Vector.
std::string _rawDigitLabel
label of where to find Raw Digits
TH1F * hHitDensity_per_50TDC
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
OStream cout
Definition: OStream.cxx:6
TH1F * hHitDensity_per_100TDC
T * make(ARGS...args) const
std::string _hitsInstanceLabel
instance label making the Hits
bool _verbose
Verbose output.
assert(nhit_max >=nhit_nbins)
std::string _hitsModuleLabel
label of module making the Hits
TH1F * hHitDensity_per_70TDC
enum BeamMode string
novaddt::HitsAna::~HitsAna ( )
virtual

Definition at line 179 of file HitsAna_module.cc.

180 {
181  // Clean up dynamic memory and other resources here.
182 }
novaddt::HitsAna::HitsAna ( fhicl::ParameterSet const &  p)
explicit
novaddt::HitsAna::HitsAna ( HitsAna const &  )
delete
novaddt::HitsAna::HitsAna ( HitsAna &&  )
delete

Member Function Documentation

void novaddt::HitsAna::addHit ( const novaddt::DAQHit h)

Definition at line 84 of file HitsAna_module.cc.

References novaddt::DAQHit::ADC(), analyze(), novaddt::DAQHit::Cell(), clearHits(), DEFINE_ART_MODULE(), e, fADC, fCell, fEvtTime, fHitsTag, fPlane, fTime, fTree, fView, art::DataViewImpl::getValidHandle(), make_syst_table_plots::h, hits(), novaddt::DAQHit::Plane(), novaddt::DAQHit::TDC(), novaddt::TDC::val, novaddt::ADC::val, novaddt::Plane::val, novaddt::Cell::val, novaddt::View::val, and novaddt::DAQHit::View().

84  {
85  fTime.push_back(h.TDC().val-fEvtTime);
86  fEvtTime=h.TDC().val;
87  fADC.push_back( h.ADC().val);
88  fPlane.push_back(h.Plane().val);
89  fCell.push_back(h.Cell().val);
90  fView.push_back(h.View().val);
91 }
value_type val
Definition: BaseProducts.h:34
novaddt::Plane const & Plane() const
Definition: DAQHit.h:70
novaddt::TDC const & TDC() const
Definition: DAQHit.h:74
std::vector< novaddt::View::value_type > fView
value_type val
Definition: BaseProducts.h:109
std::vector< novaddt::ADC::value_type > fADC
std::vector< novaddt::Plane::value_type > fPlane
std::vector< novaddt::TDC::value_type > fTime
novaddt::ADC const & ADC() const
Definition: DAQHit.h:73
novaddt::View const & View() const
Definition: DAQHit.h:72
novaddt::TDC::value_type fEvtTime
value_type val
Definition: BaseProducts.h:84
value_type val
Definition: BaseProducts.h:137
novaddt::Cell const & Cell() const
Definition: DAQHit.h:71
value_type val
Definition: BaseProducts.h:65
std::vector< novaddt::Cell::value_type > fCell
void novaddt::HitsAna::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 184 of file HitsAna_module.cc.

References _nEvents, _rawDigitLabel, _verbose, AnalyzeHitLists(), om::cout, allTimeWatchdog::endl, and HitFormatConsolidation().

Referenced by addHit().

185 {
186  // Implementation of required member function here.
187  if (_verbose) std::cout << "--- novaddt::HitsAna analyze. Event: "
188  << event.id().event()
189  << std::endl;
190  _nEvents++;
191 
192  // Translate whichever format we get our hits list in into a vector of HitLists
193  std::vector<novaddt::HitList> hit_lists = HitFormatConsolidation(event);
194 
195  // Get the event time from the raw trigger
197  event.getByLabel(_rawDigitLabel, RawTriggers);
198  unsigned long long event_time = RawTriggers->at(0).fTriggerTimingMarker_TimeStart;
199 
200  // Now analyse our standard format
201  AnalyzeHitLists(hit_lists, event_time);
202 }
std::vector< novaddt::HitList > HitFormatConsolidation(art::Event const &event)
void AnalyzeHitLists(std::vector< novaddt::HitList > hit_lists, unsigned long long event_time)
unsigned int _nEvents
std::string _rawDigitLabel
label of where to find Raw Digits
OStream cout
Definition: OStream.cxx:6
bool _verbose
Verbose output.
void novaddt::HitsAna::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

void novaddt::HitsAna::AnalyzeHitLists ( std::vector< novaddt::HitList hit_lists,
unsigned long long  event_time 
)

Definition at line 204 of file HitsAna_module.cc.

References _nHits, _nSlices, _verbose, ana::assert(), om::cout, FillHitDensitiesInTDCWindow(), hADC, hAllNHits, hAllNHitsXZ, hAllNHitsYZ, hdTDC, hdX, hdXUnit, hdY, hdYUnit, hdZ, hdZUnit, hHit_dTDC, hHit_dX, hHit_dY, hHit_dZ, hHit_max_dTDC, hHit_max_dX, hHit_max_dY, hHit_max_dZ, hHitDensity_per_50TDC, hMeanADC, hMeanTDC, hNHits, hNHits_wide, hNHitsXZ, hNHitsYZ, hNHitsZ_vs_X, hNHitsZ_vs_Y, hNSlices, hNSlices_wide, hSumADC, hTDC, hTDC_wide, hX, hXMax, hXMin, hXZ, hY, hYMax, hYMin, hYZ, hZMax, hZMin, maxY, minY, and daqchannelmap::X_VIEW.

Referenced by analyze().

205 {
206  if (_verbose){
207  std::cout << "\tAnalysing hit lists\n";
208  std::cout << "\tconsolidated data into " << hit_lists.size()
209  << " hit lists\n";
210  //unsigned int _nHitList = 0;
211  //for (auto hit_list : hit_lists){
212  //std::cout << "\t\thit list[" << _nHitList
213  //<< "] size: " << hit_list.size()
214  //<< std::endl;
215  //_nHitList++;
216  //} // end of loop on hit lists
217  } // end of verbose
218 
219  // Fill histograms
220  int AllNHits = 0;
221  int AllNHitsXZ = 0;
222  int AllNHitsYZ = 0;
223  for (auto hit_list : hit_lists){
224  _nSlices++;
225  int NHitsXZ = 0;
226  int NHitsYZ = 0;
227  int minX = 0;
228  int minY = 0;
229  int minZ = 0;
230  int maxX = 0;
231  int maxY = 0;
232  int maxZ = 0;
233  int sumADC = 0;
234  int minTDC = 0;
235  int maxTDC = 0;
236  int sumTDC = 0;
237  bool first = true;
238  bool firstX = true;
239  bool firstY = true;
240  std::vector<novaddt::DAQHit> x_hits;
241  std::vector<novaddt::DAQHit> y_hits;
242  std::vector<int> TDC_vals;
243  for (auto hit : hit_list){
244  _nHits++;
245  AllNHits++;
246  // fill hit level histograms
247  hADC->Fill(hit.ADC().val);
248  sumADC = sumADC + hit.ADC().val;
249 
250  int TDC_diff = 0;
251  if (hit.TDC().val<event_time){
252  TDC_diff = -1*(event_time - hit.TDC().val);
253  } else {
254  TDC_diff = (hit.TDC().val - event_time);
255  }
256  TDC_vals.push_back(TDC_diff);
257  hTDC->Fill(TDC_diff);
258  hTDC_wide->Fill(TDC_diff);
259  sumTDC = sumTDC + TDC_diff;
260 
261  if (first){
262  minZ = hit.Plane().val;
263  maxZ = hit.Plane().val;
264  minTDC = TDC_diff;
265  first = false;
266  }
267  if (TDC_diff < minTDC) minTDC = TDC_diff;
268  if (TDC_diff > maxTDC) maxTDC = TDC_diff;
269  if (hit.Plane().val < minZ) minZ = hit.Plane().val;
270  if (hit.Plane().val > maxZ) maxZ = hit.Plane().val;
271 
272  if( hit.View().val == daqchannelmap::X_VIEW ){
273  x_hits.push_back(hit);
274  NHitsXZ++;
275  AllNHitsXZ++;
276  hX->Fill(hit.Cell().val);
277  hXZ->Fill(hit.Plane().val);
278  hNHitsZ_vs_X->Fill(hit.Plane().val, hit.Cell().val);
279  if (firstX){
280  minX = hit.Cell().val;
281  maxX = hit.Cell().val;
282  firstX = false;
283  }
284  if (hit.Cell().val < minX) minX = hit.Cell().val;
285  if (hit.Cell().val > maxX) maxX = hit.Cell().val;
286  } else {
287  y_hits.push_back(hit);
288  NHitsYZ++;
289  AllNHitsYZ++;
290  hY->Fill(hit.Cell().val);
291  hYZ->Fill(hit.Plane().val);
292  hNHitsZ_vs_Y->Fill(hit.Plane().val, hit.Cell().val);
293  if (firstY){
294  minY = hit.Cell().val;
295  maxY = hit.Cell().val;
296  firstY = false;
297  }
298  if (hit.Cell().val < minY) minY = hit.Cell().val;
299  if (hit.Cell().val > maxY) maxY = hit.Cell().val;
300  }
301  } // end of loop on hits
302  // fill slice level histograms
303  hNHits->Fill(hit_list.size());
304  hNHits_wide->Fill(hit_list.size());
305  assert(int(x_hits.size())==NHitsXZ);
306  assert(int(y_hits.size())==NHitsYZ);
307  hNHitsXZ->Fill(NHitsXZ);
308  hNHitsYZ->Fill(NHitsYZ);
309  int dX = maxX - minX;
310  int dY = maxY - minZ;
311  int dZ = maxZ - minZ;
312  hdX->Fill(dX);
313  hdY->Fill(dY);
314  hdZ->Fill(dZ);
315  TVector3 vect(dX,dY,dZ);
316  TVector3 unit = vect.Unit();
317  hdXUnit->Fill(unit.X());
318  hdYUnit->Fill(unit.Y());
319  hdZUnit->Fill(unit.Z());
320  hXMin->Fill(minX);
321  hXMax->Fill(maxX);
322  hYMin->Fill(minY);
323  hYMax->Fill(maxY);
324  hZMin->Fill(minZ);
325  hZMax->Fill(maxZ);
326  hSumADC->Fill(sumADC);
327  hMeanADC->Fill( ((double)sumADC) / ((double)hit_list.size()) );
328  int dTDC = maxTDC - minTDC;
329  hdTDC->Fill(dTDC);
330  hMeanTDC->Fill( ((double)sumTDC) / ((double)hit_list.size()) );
331  // Fill density variables, these often rely on sorting
332  // sort by TDC
333  int max_dTDC = 0;
334  sort(hit_list.begin(), hit_list.end(), CompareDAQHit<TDC>());
335  for (unsigned int i_hit = 0; i_hit < hit_list.size(); ++i_hit){
336  if (i_hit ==0) continue;
337  int this_dTDC = hit_list[i_hit].TDC().val - hit_list[i_hit-1].TDC().val;
338  if (this_dTDC > max_dTDC) max_dTDC = this_dTDC;
339  hHit_dTDC->Fill(this_dTDC);
340  }
341  hHit_max_dTDC->Fill(max_dTDC);
342  // TDC hit density
343  // this is time consuming, so skip it if we don't need it
344  sort(TDC_vals.begin(), TDC_vals.end());
345  FillHitDensitiesInTDCWindow(TDC_vals, minTDC, maxTDC, 50, 10, hHitDensity_per_50TDC);
346  //FillHitDensitiesInTDCWindow(TDC_vals, minTDC, maxTDC, 70, 10, hHitDensity_per_70TDC);
347  //FillHitDensitiesInTDCWindow(TDC_vals, minTDC, maxTDC, 100, 10, hHitDensity_per_100TDC);
348  // sort by Plane
349  int max_dZ = 0;
350  sort(hit_list.begin(), hit_list.end(), CompareDAQHit<Plane>());
351  for (unsigned int i_hit = 0; i_hit < hit_list.size(); ++i_hit){
352  if (i_hit ==0) continue;
353  int this_dZ = hit_list[i_hit].Plane().val - hit_list[i_hit-1].Plane().val;
354  if (this_dZ > max_dZ) max_dZ = this_dZ;
355  hHit_dZ->Fill(this_dZ);
356  }
357  hHit_max_dZ->Fill(max_dZ);
358  // sort by X Cell
359  int max_dX = 0;
360  sort(x_hits.begin(), x_hits.end(), CompareDAQHit<Cell>());
361  for (unsigned int i_hit = 0; i_hit < x_hits.size(); ++i_hit){
362  if (i_hit ==0) continue;
363  int this_dX = x_hits[i_hit].Cell().val - x_hits[i_hit-1].Cell().val;
364  if (this_dX > max_dX) max_dX = this_dX;
365  hHit_dX->Fill(this_dX);
366  }
367  hHit_max_dX->Fill(max_dX);
368  // sort by Y Cell
369  int max_dY = 0;
370  sort(y_hits.begin(), y_hits.end(), CompareDAQHit<Cell>());
371  for (unsigned int i_hit = 0; i_hit < y_hits.size(); ++i_hit){
372  if (i_hit ==0) continue;
373  int this_dY = y_hits[i_hit].Cell().val - y_hits[i_hit-1].Cell().val;
374  if (this_dY > max_dY) max_dY = this_dY;
375  hHit_dY->Fill(this_dY);
376  }
377  hHit_max_dY->Fill(max_dY);
378  } // end of loop on hit lists
379 
380  // fill event level histograms
381  hNSlices->Fill(hit_lists.size());
382  hNSlices_wide->Fill(hit_lists.size());
383  hAllNHits->Fill(AllNHits);
384  hAllNHitsXZ->Fill(AllNHitsXZ);
385  hAllNHitsYZ->Fill(AllNHitsYZ);
386 }
void FillHitDensitiesInTDCWindow(std::vector< int > TDC_vals, int minTDC, int maxTDC, int window_size, int overlap, TH1F *histogram)
double minY
Definition: plot_hist.C:9
double maxY
Definition: plot_hist.C:10
TH1F * hHitDensity_per_50TDC
unsigned int _nHits
Identifier for the X measuring view of the detector (top)
OStream cout
Definition: OStream.cxx:6
unsigned int _nSlices
Definition: structs.h:12
bool _verbose
Verbose output.
assert(nhit_max >=nhit_nbins)
detail::CachedProducts& art::EventObserverBase::cachedProducts ( )
inlineprotectedinherited

Definition at line 79 of file EventObserverBase.h.

References art::EventObserverBase::selectors_.

80  {
81  return selectors_;
82  }
detail::CachedProducts selectors_
void novaddt::HitsAna::clearHits ( )

Definition at line 76 of file HitsAna_module.cc.

References fADC, fCell, fPlane, fTime, and fView.

Referenced by addHit().

76  {
77  fTime.clear();
78  fADC.clear();
79  fPlane.clear();
80  fCell.clear();
81  fView.clear();
82 }
std::vector< novaddt::View::value_type > fView
std::vector< novaddt::ADC::value_type > fADC
std::vector< novaddt::Plane::value_type > fPlane
std::vector< novaddt::TDC::value_type > fTime
std::vector< novaddt::Cell::value_type > fCell
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::consumes ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::consumes ( InputTag const &  it)
inherited

Definition at line 146 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

147 {
148  if (!moduleContext_)
149  return ProductToken<T>::invalid();
150 
151  consumables_[BT].emplace_back(ConsumableType::Product,
152  TypeID{typeid(T)},
153  it.label(),
154  it.instance(),
155  it.process());
156  return ProductToken<T>{it};
157 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::consumesMany ( )
inherited

Definition at line 161 of file Consumer.h.

References T.

162 {
163  if (!moduleContext_)
164  return;
165 
166  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
167 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::consumesView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::consumesView ( InputTag const &  it)
inherited

Definition at line 171 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

172 {
173  if (!moduleContext_)
174  return ViewToken<T>::invalid();
175 
176  consumables_[BT].emplace_back(ConsumableType::ViewElement,
177  TypeID{typeid(T)},
178  it.label(),
179  it.instance(),
180  it.process());
181  return ViewToken<T>{it};
182 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited
CurrentProcessingContext const* art::EDAnalyzer::currentContext ( ) const
protectedinherited
void novaddt::HitsAna::endJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 446 of file HitsAna_module.cc.

References _nEvents, _nHits, _nSlices, om::cout, DEFINE_ART_MODULE(), allTimeWatchdog::endl, and hCutFlow.

447 {
448  std::cout << "--- novaddt::HitsAna endJob " << std::endl;
449  std::cout << "\tNumber of events seen: " << _nEvents << std::endl;
450  std::cout << "\tNumber of slices seen: " << _nSlices << std::endl;
451  std::cout << "\tNumber of hits seen: " << _nHits << std::endl;
452  hCutFlow->SetBinContent(1, _nEvents);
453  hCutFlow->SetBinContent(2, _nSlices);
454  hCutFlow->SetBinContent(3, _nHits);
455 
456 }
unsigned int _nEvents
unsigned int _nHits
OStream cout
Definition: OStream.cxx:6
unsigned int _nSlices
void novaddt::HitsAna::FillHitDensitiesInTDCWindow ( std::vector< int TDC_vals,
int  minTDC,
int  maxTDC,
int  window_size,
int  overlap,
TH1F *  histogram 
)

Definition at line 425 of file HitsAna_module.cc.

References ana::assert().

Referenced by AnalyzeHitLists().

426 {
427  assert(window_size > overlap);
428 
429  int running_TDC = minTDC;
430  int window_slide = window_size - overlap;
431 
432  while (running_TDC<maxTDC){
433  int this_N_hits = 0;
434  for(auto TDC: TDC_vals){
435  if (TDC < running_TDC) continue;
436  if (TDC > (running_TDC + window_size)) break;
437  this_N_hits++;
438  }
439  histogram->Fill(this_N_hits);
440  running_TDC = running_TDC + window_slide;
441  } // end of while
442 
443  return;
444 }
assert(nhit_max >=nhit_nbins)
seed_t art::EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited
art::Handle<art::TriggerResults> art::EventObserverBase::getTriggerResults ( Event const &  e) const
inlineinherited

Definition at line 61 of file EventObserverBase.h.

References art::detail::CachedProducts::getOneTriggerResults(), and art::EventObserverBase::selectors_.

62  {
64  }
detail::CachedProducts selectors_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
Float_t e
Definition: plot.C:35
std::vector< novaddt::HitList > novaddt::HitsAna::HitFormatConsolidation ( art::Event const &  event)

Definition at line 388 of file HitsAna_module.cc.

References _hitsFormat, _hitsInstanceLabel, _hitsModuleLabel, _verbose, om::cout, allTimeWatchdog::endl, hits(), and MECModelEnuComparisons::i.

Referenced by analyze().

389 {
390  std::vector<novaddt::HitList> hit_lists;
391 
392  if (_hitsFormat == "HitList"){
393  if (_verbose) std::cout << "\tgetting single hit list" << std::endl;
395  event.getByLabel(_hitsModuleLabel, _hitsInstanceLabel, hits);
396  if (_verbose) std::cout << "\tgot " << hits->size() << " hits\n";
397  // copy these out
398  HitList frag(hits->begin(), hits->end());
399  hit_lists.emplace_back(frag);
400  } else if (_hitsFormat == "Grouped"){
401  if (_verbose) std::cout << "\tgetting grouped hit list" << std::endl;
403  event.getByLabel(_hitsModuleLabel, _hitsInstanceLabel, ghits);
404  if (_verbose) std::cout << "\tgot " << ghits->n_groups() << " groups\n";
405  // copy these out
406  for(unsigned int i=0; i<ghits->n_groups(); ++i){
407  HitList frag = ghits->get(i);
408  hit_lists.emplace_back(frag);
409  } // end of loop over groups
410  } else {
411  if (_verbose) std::cout << "\tgetting vector of hit lists" << std::endl;
412  art::Handle<std::vector<HitList> > hit_lists_handle;
413  event.getByLabel(_hitsModuleLabel, _hitsInstanceLabel, hit_lists_handle);
414  if (_verbose) std::cout << "\tgot " << hit_lists_handle->size() << " hit lists\n";
415  // copy these out
416  for (unsigned int i=0; i<hit_lists_handle->size(); ++i){
417  HitList frag(hit_lists_handle->at(i).begin(), hit_lists_handle->at(i).end());
418  hit_lists.emplace_back(frag);
419  } // end of loop over hit lists
420  } // end of hit format consolidation
421 
422  return hit_lists;
423 }
std::vector< DAQHit > HitList
Definition: HitList.h:15
std::string _hitsFormat
The format to expect the hits in, can be one of HitList, Grouped, Vector.
void hits()
Definition: readHits.C:15
OStream cout
Definition: OStream.cxx:6
std::string _hitsInstanceLabel
instance label making the Hits
bool _verbose
Verbose output.
std::string _hitsModuleLabel
label of module making the Hits
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::mayConsume ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::mayConsume ( InputTag const &  it)
inherited

Definition at line 189 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

190 {
191  if (!moduleContext_)
192  return ProductToken<T>::invalid();
193 
194  consumables_[BT].emplace_back(ConsumableType::Product,
195  TypeID{typeid(T)},
196  it.label(),
197  it.instance(),
198  it.process());
199  return ProductToken<T>{it};
200 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::mayConsumeMany ( )
inherited

Definition at line 204 of file Consumer.h.

References T.

205 {
206  if (!moduleContext_)
207  return;
208 
209  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
210 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::mayConsumeView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::mayConsumeView ( InputTag const &  it)
inherited

Definition at line 214 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

215 {
216  if (!moduleContext_)
217  return ViewToken<T>::invalid();
218 
219  consumables_[BT].emplace_back(ConsumableType::ViewElement,
220  TypeID{typeid(T)},
221  it.label(),
222  it.instance(),
223  it.process());
224  return ViewToken<T>{it};
225 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
bool art::EventObserverBase::modifiesEvent ( ) const
inlineinherited

Definition at line 25 of file EventObserverBase.h.

26  {
27  return false;
28  }
static cet::exempt_ptr<Consumer> art::Consumer::non_module_context ( )
staticinherited
HitsAna& novaddt::HitsAna::operator= ( HitsAna const &  )
delete
HitsAna& novaddt::HitsAna::operator= ( HitsAna &&  )
delete
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
std::string const& art::EventObserverBase::processName ( ) const
inlineinherited
void art::EventObserverBase::registerProducts ( MasterProductRegistry ,
ProductDescriptions ,
ModuleDescription const &   
)
inlineinherited

Definition at line 33 of file EventObserverBase.h.

References string.

36  {}
fhicl::ParameterSetID art::EventObserverBase::selectorConfig ( ) const
inlineinherited

Definition at line 56 of file EventObserverBase.h.

References art::EventObserverBase::selector_config_id_.

57  {
58  return selector_config_id_;
59  }
fhicl::ParameterSetID selector_config_id_
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

Referenced by art::RootOutput::endJob().

void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited
bool art::EventObserverBase::wantAllEvents ( ) const
inlineinherited

Definition at line 46 of file EventObserverBase.h.

References art::EventObserverBase::wantAllEvents_.

Referenced by art::RootOutput::RootOutput().

47  {
48  return wantAllEvents_;
49  }
bool art::EventObserverBase::wantEvent ( Event const &  e)
inlineinherited

Definition at line 51 of file EventObserverBase.h.

References art::EventObserverBase::selectors_, and art::detail::CachedProducts::wantEvent().

52  {
53  return selectors_.wantEvent(e);
54  }
detail::CachedProducts selectors_
Float_t e
Definition: plot.C:35
bool wantEvent(Event const &)
std::string art::EDAnalyzer::workerType ( ) const
inlineinherited

Definition at line 109 of file EDAnalyzer.h.

References art::EDAnalyzer::currentContext().

110  {
111  return "WorkerT<EDAnalyzer>";
112  }

Member Data Documentation

std::string novaddt::HitsAna::_hitsFormat
private

The format to expect the hits in, can be one of HitList, Grouped, Vector.

Definition at line 53 of file HitsAna_module.cc.

Referenced by HitFormatConsolidation(), and HitsAna().

std::string novaddt::HitsAna::_hitsInstanceLabel
private

instance label making the Hits

Definition at line 52 of file HitsAna_module.cc.

Referenced by HitFormatConsolidation(), and HitsAna().

std::string novaddt::HitsAna::_hitsModuleLabel
private

label of module making the Hits

Definition at line 51 of file HitsAna_module.cc.

Referenced by HitFormatConsolidation(), and HitsAna().

unsigned int novaddt::HitsAna::_nEvents = 0
private

Definition at line 57 of file HitsAna_module.cc.

Referenced by analyze(), and endJob().

unsigned int novaddt::HitsAna::_nHits = 0
private

Definition at line 59 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and endJob().

unsigned int novaddt::HitsAna::_nSlices = 0
private

Definition at line 58 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and endJob().

std::string novaddt::HitsAna::_rawDigitLabel
private

label of where to find Raw Digits

Definition at line 54 of file HitsAna_module.cc.

Referenced by analyze(), and HitsAna().

bool novaddt::HitsAna::_verbose
private

Verbose output.

Definition at line 55 of file HitsAna_module.cc.

Referenced by analyze(), AnalyzeHitLists(), HitFormatConsolidation(), and HitsAna().

std::vector<novaddt::ADC::value_type> novaddt::HitsAna::fADC
private

Definition at line 53 of file HitsAna_module.cc.

Referenced by addHit(), and clearHits().

std::vector<novaddt::Cell::value_type> novaddt::HitsAna::fCell
private

Definition at line 55 of file HitsAna_module.cc.

Referenced by addHit(), and clearHits().

novaddt::TDC::value_type novaddt::HitsAna::fEvtTime
private

Definition at line 58 of file HitsAna_module.cc.

Referenced by addHit().

art::InputTag novaddt::HitsAna::fHitsTag
private

Definition at line 50 of file HitsAna_module.cc.

Referenced by addHit().

std::vector<novaddt::Plane::value_type> novaddt::HitsAna::fPlane
private

Definition at line 54 of file HitsAna_module.cc.

Referenced by addHit(), and clearHits().

std::vector<novaddt::TDC::value_type> novaddt::HitsAna::fTime
private

Definition at line 52 of file HitsAna_module.cc.

Referenced by addHit(), and clearHits().

TTree* novaddt::HitsAna::fTree
private

Definition at line 57 of file HitsAna_module.cc.

Referenced by addHit().

std::vector<novaddt::View::value_type> novaddt::HitsAna::fView
private

Definition at line 56 of file HitsAna_module.cc.

Referenced by addHit(), and clearHits().

TH1F* novaddt::HitsAna::hADC
private

Definition at line 87 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hAllNHits
private

Definition at line 64 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hAllNHitsXZ
private

Definition at line 65 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hAllNHitsYZ
private

Definition at line 66 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hCutFlow
private

Definition at line 61 of file HitsAna_module.cc.

Referenced by endJob(), and HitsAna().

TH1F* novaddt::HitsAna::hdTDC
private

Definition at line 92 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdX
private

Definition at line 75 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdXUnit
private

Definition at line 78 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdY
private

Definition at line 76 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdYUnit
private

Definition at line 79 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdZ
private

Definition at line 77 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hdZUnit
private

Definition at line 80 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_dTDC
private

Definition at line 98 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_dX
private

Definition at line 100 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_dY
private

Definition at line 101 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_dZ
private

Definition at line 99 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_max_dTDC
private

Definition at line 94 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_max_dX
private

Definition at line 96 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_max_dY
private

Definition at line 97 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHit_max_dZ
private

Definition at line 95 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHitDensity_per_100TDC
private

Definition at line 104 of file HitsAna_module.cc.

Referenced by HitsAna().

TH1F* novaddt::HitsAna::hHitDensity_per_50TDC
private

Definition at line 102 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hHitDensity_per_70TDC
private

Definition at line 103 of file HitsAna_module.cc.

Referenced by HitsAna().

TH1F* novaddt::HitsAna::hMeanADC
private

Definition at line 89 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hMeanTDC
private

Definition at line 93 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNHits
private

Definition at line 67 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNHits_wide
private

Definition at line 68 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNHitsXZ
private

Definition at line 69 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNHitsYZ
private

Definition at line 70 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH2F* novaddt::HitsAna::hNHitsZ_vs_X
private

Definition at line 105 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH2F* novaddt::HitsAna::hNHitsZ_vs_Y
private

Definition at line 106 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNSlices
private

Definition at line 62 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hNSlices_wide
private

Definition at line 63 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hSumADC
private

Definition at line 88 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hTDC
private

Definition at line 90 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hTDC_wide
private

Definition at line 91 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hX
private

Definition at line 71 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hXMax
private

Definition at line 82 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hXMin
private

Definition at line 81 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hXZ
private

Definition at line 74 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hY
private

Definition at line 72 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hYMax
private

Definition at line 84 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hYMin
private

Definition at line 83 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hYZ
private

Definition at line 73 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hZMax
private

Definition at line 86 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().

TH1F* novaddt::HitsAna::hZMin
private

Definition at line 85 of file HitsAna_module.cc.

Referenced by AnalyzeHitLists(), and HitsAna().


The documentation for this class was generated from the following file: