17 #include "TTimeStamp.h" 36 #include "NovaDAQConventions/DAQConventions.h" 42 #include "Utilities/AssociationUtil.h" 43 #include "Utilities/func/MathUtil.h" 44 #include "DAQDataFormats/RawEvent.h" 45 #include "DAQDataFormats/RawTrigger.h" 50 #include "DAQChannelMap/DAQChannelMap.h" 51 #include "NovaDAQConventions/DAQConventions.h" 318 fHeader = tfs->
make<TTree>(
"Header",
"Subrun Information");
346 "Time Difference;Time difference (sec);count",
350 "Sum POT;Sum POT;count",
354 "Spill POT;Spill POT;count",
358 "Horn Current (kA);Current(kA);count",
362 "Is RHC (bool);IsRHC;count",
366 "Horizontal Beam Position (mm);Position (mm);count",
370 "Vertical Beam Position (mm);Position (mm);count",
374 "Horizontal Beam Width;Width (mm);count",
378 "Vertical Beam Width;Width (mm); count",
382 "Good Beam;Good Beam;count",
386 "Failure Mode for Bad Spills;;count",
389 fBadSpills->SetStats(kFALSE);
392 TAxis *badspillsxaxis = fBadSpills->GetXaxis();
393 badspillsxaxis->SetBinLabel(1,
"delta t");
394 badspillsxaxis->SetBinLabel(2,
"POT");
395 badspillsxaxis->SetBinLabel(3,
"horn I");
396 badspillsxaxis->SetBinLabel(4,
"x position");
397 badspillsxaxis->SetBinLabel(5,
"y position");
398 badspillsxaxis->SetBinLabel(6,
"x width");
399 badspillsxaxis->SetBinLabel(7,
"y width");
400 badspillsxaxis->SetBinLabel(8,
"Total Bad Spills");
404 "# of non-noise slices;# of non-noise slices;count",
407 "# of non-noise slices Good Beam;# of non-noise slices good beam;count",
410 "# of hits per non-noise slice;# of hits;count",
413 "# of hits in the noise slice;# of hits;count",
416 "# of X hits per non-noise slice;# of hits;count",
419 "# of X hits in the noise slice;# of hits;count",
422 "# of Y hits per non-noise slice;# of hits;count",
425 "# of Y hits in the noise slice;# of hits;count",
429 "ADC for All Hits;ADC;count",
432 "ADC for Hits in the Noise Slice;ADC;count",
435 "ADC for Hits in Non-Noise Slices;ADC;count",
438 "PE for All Hits;PE;count",
441 "PE for Hits in the Noise Slice;PE;count",
444 "PE for Hits in Non-Noise Slices;PE;count",
448 "ave hit plane vs. ave hit X cell;plane;X cell",
449 660,-20.0,1300.0,255,-10.0,500.0);
451 "ave hit plane vs. ave hit Y cell;plane;Y cell",
452 660,-20.0,1300.0,255,-10.0,500.0);
454 "ave hit plane vs. ave hit X cell (control room view);plane;X cell",
455 660,-1300.0,20.0,255,-500.0,10.0);
457 "ave hit plane vs. ave hit Y cell (control room view);plane;Y cell",
458 660,-1300.0,20.0,255,-10.0,500.0);
461 "ave hit time per slice; time [ns]; count",
462 1200,-50000.0,550000.0);
464 "diff btwn hi and lo for plane vs X cell per slice;delta plane;delta X cell",
465 500,0.0,1000.0,250,0.0,500.0);
467 "diff btwn hi and lo for plane vs Y cell per slice;delta plane;delta Y cell",
468 500,0.0,1000.0,250,0.0,500.0);
470 "st. dev. of hit time per slice; sigma time [ns]; count",
471 500000,0.0,500000.0);
475 "N-slices minus N-3D-tracks per Trigger;(N-sl) - (N-3D-trk);count",
478 "Ratio of N-3D-tracks to N-slices per Trigger;(N-3D-tracks)/(N-slices);count",
481 "NHit Ratio from 3D-tracks to Slices per Slice;(NHit-3D-tracks)/(NHit-slices);count",
484 "NHit Ratio from 3D-tracks to Slices per Slice VS. NHit-Slices;NHit-Slice;(NHit-3D-tracks)/(NHit-slices)",
485 200,0.0,2000.0,101,0.0,1.01);
490 "Reconstructed Track Length distribution;Track Length[cm]; count",
493 "Cos #theta with respect to zenith; Cos #theta_{Ze};count",
496 "Cos #theta with respect to azimuth (in detector coordinates); Cos #theta_{Az};count",
499 "Cos #theta_{Zenith} vs. Cos #theta_{Azimuth} (in detector coordinates);Cos #theta_{Ze};Cos #theta_{Az}",
500 202,-1.01,1.01,202,-1.01,1.01);
502 "Cos #theta with respect to NuMI beam; Cos #theta_{NuMI};count",
505 "Zenith Angle;#theta_{Ze};count",
508 "Azimuth Angle (in detector coordinates);#theta_{Az};count",
511 "#theta_{Zenith} vs. #theta_{Azimuth} (in detector coordinates);#theta_{Ze};#theta_{Az}",
512 91,-0.5,180.5,181,-0.5,360.5);
514 "NuMI Angle;#theta_{NuMI};count",
518 ";No. Tracks;Events",
521 ";Track Fraction;Events",
525 "Starting Point of Reco Track in XZ view; Start Z [cm]; Start X [cm]",
526 630,0.,6300,160,-800.,800.);
528 "Starting Point of Reco Track in YZ view; Start Z [cm]; Start Y [cm]",
529 630,0.,6300,160,-800.,800.);
531 "Stopping Point of Reco Track in XZ view; Start Z [cm]; Start X [cm]",
532 630,0.,6300,160,-800.,800.);
534 "Stopping Point of Reco Track in YZ view; Start Z [cm]; Start Y [cm]",
535 630,0.,6300,160,-800.,800.);
538 "Starting Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
539 630,-6300,0.0,160,-800.,800.);
541 "Starting Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
542 630,-6300,0.0,160,-800.,800.);
544 "Stopping Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
545 630,-6300,0.0,160,-800.,800.);
547 "Stopping Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
548 630,-6300,0.0,160,-800.,800.);
551 "PE for Hits on Tracks;PE;count",
554 "ave hit time per track; time [ns]; count",
555 1200,-50000.0,550000.0);
559 "Reconstructed Track Length distribution;Track Length[cm]; count",
562 "Cos #theta with respect to zenith; Cos #theta_{Ze};count",
565 "Cos #theta with respect to azimuth (in detector coordinates); Cos #theta_{Az};count",
568 "Cos #theta_{Zenith} vs. Cos #theta_{Azimuth} (in detector coordinates);Cos #theta_{Ze};Cos #theta_{Az}",
569 202,-1.01,1.01,202,-1.01,1.01);
571 "Cos #theta with respect to NuMI beam; Cos #theta_{NuMI};count",
574 "Zenith Angle;#theta_{Ze};count",
577 "Azimuth Angle (in detector coordinates);#theta_{Az};count",
580 "#theta_{Zenith} vs. #theta_{Azimuth} (in detector coordinates);#theta_{Ze};#theta_{Az}",
581 91,-0.5,180.5,181,-0.5,360.5);
583 "NuMI Angle;#theta_{NuMI};count",
587 ";No. Tracks;Events",
590 ";Track Fraction;Events",
594 "Starting Point of reco Track in XZ view; Start Z [cm]; Start X [cm]",
595 630,0.,6300,160,-800.,800.);
597 "Starting Point of reco Track in YZ view; Start Z [cm]; Start Y [cm]",
598 630,0.,6300,160,-800.,800.);
600 "Stopping Point of reco Track in XZ view; Start Z [cm]; Start X [cm]",
601 630,0.,6300,160,-800.,800.);
603 "Stopping Point of reco Track in YZ view; Start Z [cm]; Start Y [cm]",
604 630,0.,6300,160,-800.,800.);
607 "Starting Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
608 630,-6300,0.0,160,-800.,800.);
610 "Starting Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
611 630,-6300,0.0,160,-800.,800.);
613 "Stopping Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
614 630,-6300,0.0,160,-800.,800.);
616 "Stopping Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
617 630,-6300,0.0,160,-800.,800.);
620 "PE for Hits on Tracks;PE;count",
623 "ave hit time per track; time [ns]; count",
624 1200,-50000.0,550000.0);
627 "Reconstructed Track Length distribution;Track Length[cm]; count",
630 "Cos #theta with respect to zenith; Cos #theta_{Ze};count",
633 "Cos #theta with respect to azimuth (in detector coordinates); Cos #theta_{Az};count",
636 "Cos #theta_{Zenith} vs. Cos #theta_{Azimuth} (in detector coordinates);Cos #theta_{Ze};Cos #theta_{Az}",
637 202,-1.01,1.01,202,-1.01,1.01);
639 "Cos #theta with respect to NuMI beam; Cos #theta_{NuMI};count",
642 "Zenith Angle;#theta_{Ze};count",
645 "Azimuth Angle (in detector coordinates);#theta_{Az};count",
648 "#theta_{Zenith} vs. #theta_{Azimuth} (in detector coordinates);#theta_{Ze};#theta_{Az}",
649 91,-0.5,180.5,181,-0.5,360.5);
651 "NuMI Angle;#theta_{NuMI};count",
657 ";No. Tracks;Events",
660 ";Track Fraction;Events",
664 "Starting Point of Reco Track in XZ view; Start Z [cm]; Start X [cm]",
665 630,0.,6300,160,-800.,800.);
667 "Starting Point of Reco Track in YZ view; Start Z [cm]; Start Y [cm]",
668 630,0.,6300,160,-800.,800.);
670 "Stopping Point of Reco Track in XZ view; Start Z [cm]; Start X [cm]",
671 630,0.,6300,160,-800.,800.);
673 "Stopping Point of Reco Track in YZ view; Start Z [cm]; Start Y [cm]",
674 630,0.,6300,160,-800.,800.);
677 "Starting Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
678 630,-6300,0.0,160,-800.,800.);
680 "Starting Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
681 630,-6300,0.0,160,-800.,800.);
683 "Stopping Point of Reco Track in XZ view (control room view); Start Z [cm]; Start X [cm]",
684 630,-6300,0.0,160,-800.,800.);
686 "Stopping Point of Reco Track in YZ view (control room view); Start Z [cm]; Start Y [cm]",
687 630,-6300,0.0,160,-800.,800.);
690 "PE for Hits on Tracks;PE;count",
693 "ave hit time per track; time [ns]; count",
694 1200,-50000.0,550000.0);
698 int nDiBlock = maxDiBlock-minDiBlock+1;
701 f2DHitNum = tfs->
make<TH2D>(
"H2DHitOnTrack",
"Number of Hits from 2D Tracks;Diblock;DCM",
702 nDiBlock,(
float)minDiBlock-0.5,
703 (
float)maxDiBlock+0.5,12,0.5,12.5);
704 f3DHitNum = tfs->
make<TH2D>(
"H3DHitOnTrack",
"Number of Hits from 3D Tracks;Diblock;DCM",
705 nDiBlock,(
float)minDiBlock-0.5,
706 (
float)maxDiBlock+0.5,12,0.5,12.5);
708 f2DTrackNum = tfs->
make<TH2D>(
"H2DTrackNum",
"Number of 2D Tracks;Diblock;DCM",
709 nDiBlock,(
float)minDiBlock-0.5,
710 (
float)maxDiBlock+0.5,12,0.5,12.5);
711 f3DTrackNum = tfs->
make<TH2D>(
"H3DTrackNum",
"Number of 3D Tracks;Diblock;DCM",
712 nDiBlock,(
float)minDiBlock-0.5,
713 (
float)maxDiBlock+0.5,12,0.5,12.5);
715 Instr = tfs->
make<TH2F>(
"instrumented",
"Map of Instrumented Detector (DCMs with more than fMinFEBs APDs);Diblock;DCM",
716 nDiBlock,(
float)minDiBlock-0.5,
717 (
float)maxDiBlock+0.5,12,0.5,12.5);
719 fullyinstr = tfs->
make<TH2F>(
"fully_instrumented",
"Map of Fully Instrumented Detector;Diblock;DCM",
720 nDiBlock,(
float)minDiBlock-0.5,
721 (
float)maxDiBlock+0.5,12,0.5,12.5);
743 const unsigned long int mask32 = 0xFFFFFFFFUL;
745 unsigned long int lup = (
fStartTime >> 32 ) & mask32;
747 TTimeStamp ts1(lup, (
int)llo);
749 ts1.GetTime(kTRUE,0,&hour,&minute,&second);
750 nano = ts1.GetNanoSec();
751 double sec = ((double)second + (
double)nano/1.0e9);
752 fStartHour = (double)hour + (
double)minute/60.0 + sec/3600.0;
756 TTimeStamp ts2(lup, (
int)llo);
758 ts2.GetTime(kTRUE,0,&hour,&minute,&second);
759 nano = ts2.GetNanoSec();
760 sec = ((double)second + (
double)nano/1.0e9);
761 fEndHour = (double)hour + (
double)minute/60.0 + sec/3600.0;
772 switch(geom->
DetId()){
786 std::cout <<
"\nUnknown detector type!\n";
790 fMinX = DETpset.
get<
double > (
"MinX");
791 fMaxX = DETpset.
get<
double > (
"MaxX");
792 fMinY = DETpset.
get<
double > (
"MinY");
793 fMaxY = DETpset.
get<
double > (
"MaxY");
794 fMinZ = DETpset.
get<
double > (
"MinZ");
795 fMaxZ = DETpset.
get<
double > (
"MaxZ");
797 fMinT = DETpset.
get<
double > (
"MinT");
798 fMaxT = DETpset.
get<
double > (
"MaxT");
816 bool RunHistoryConnectedOK =
false;
825 if(RunHistoryConnectedOK){
827 for (
int idb=1; idb<=ndb; ++idb) {
832 for (
int idcm=1; idcm<=12; ++idcm) {
837 if ((db.
dcm[idcm-1].nInstrumentedFEBs >= fMinFEBs) &&
838 (db.
dcm[idcm-1].nInstrumentedFEBs > -1) &&
839 (db.
dcm[idcm-1].nInstrumentedFEBs <= 64) ){
853 LOG_WARNING(
"NearlineAna") <<
" LOG_WAR: Error: Failed to LoadDAQRunHistory" 854 <<
" LOG_WAR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
858 std::cerr <<
" STD CERR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
865 if(RunHistoryConnectedOK){
867 for (
int idb=1; idb<=ndb; ++idb) {
872 for (
int idcm=1; idcm<=4; ++idcm) {
877 if ((db.
dcm[idcm-1].nInstrumentedFEBs >= fMinFEBs) &&
878 (db.
dcm[idcm-1].nInstrumentedFEBs > -1) &&
879 (db.
dcm[idcm-1].nInstrumentedFEBs <= 64) ){
881 std::cout<<
"FILLING No. of instrumentedFEBs ("<<idcm<<
") : "<<db.
dcm[idcm-1].nInstrumentedFEBs<<
std::endl;
895 if(RunHistoryConnectedOK){
898 for (
int idcm=1; idcm<=3; ++idcm) {
903 if ((db.
dcm[idcm-1].nInstrumentedFEBs >= fMinFEBs) &&
904 (db.
dcm[idcm-1].nInstrumentedFEBs > -1) &&
905 (db.
dcm[idcm-1].nInstrumentedFEBs <= 64) ){
907 std::cout<<
"FILLING No. of instrumentedFEBs ("<<idcm<<
") : "<<db.
dcm[idcm-1].nInstrumentedFEBs<<
std::endl;
918 LOG_WARNING(
"NearlineAna") <<
" LOG_WAR: Error: Failed to LoadDAQRunHistory" 919 <<
" LOG_WAR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
923 std::cerr <<
" STD CERR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
929 LOG_WARNING(
"NearlineAna") <<
" LOG_WAR: Error: unknown detector" 930 <<
" LOG_WAR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
934 std::cerr <<
" STD CERR: Histograms from Instrumented Detector and DCM Sync plots will be empty! " <<
std::endl;
951 double timediffnsec = -9999999.;
952 Double_t spillPoT = 0.;
953 double horncurrent = 0.;
955 double xposition = -9999.;
956 double yposition = -9999.;
957 double xwidth = -9999.;
958 double ywidth = -9999.;
959 bool goodbeam =
false;
960 bool goodevent =
false;
967 isRHC = spill->
isRHC;
968 horncurrent = spill->
hornI;
969 xposition = spill->
posx;
970 yposition = spill->
posy;
987 unsigned int run = evt.
run();
989 unsigned int event = evt.
id().
event();
999 if ( (rh->
Detector() ==
"NearDet" && evt.
run() < 13887) ||
1000 (rh->
Detector() ==
"FarDet" && evt.
run() < 38301) ) {
1014 if (flatdaq_handle->size()!=1) {
1015 std::cerr <<
"Error: More than one flat daq data object!" 1019 rawevt.readData((*flatdaq_handle)[0].getRawBufferPointer());
1024 double range = (double)rawevt.getTrigger()->getTriggerRange()->getTriggerLength();
1025 range = 100.0*
floor(range/100.0)+100.0;
1026 range = range*5.0E-7;
1068 for(
unsigned int i = 0;
i < slices->size(); ++
i) {
1084 double Phi = -1.0e6;
1086 double Thi = -1.0e6;
1088 double CXhi = -1.0e6;
1089 double CXlo = 1.0e6;
1090 double CYhi = -1.0e6;
1091 double CYlo = 1.0e6;
1093 NumHitsX = (*slices)[
i].NXCell();
1094 NumHitsY = (*slices)[
i].NYCell();
1097 if(!(*slices)[
i].IsNoise()) NSlice++;
1102 if((*slices)[
i].IsNoise()) {
1107 for(
unsigned int j = 0;
j < (*slices)[
i].NCell(); ++
j) {
1123 double nx = 0.0, ny = 0.0;
1126 for(
unsigned int j = 0;
j < (*slices)[
i].NCell(); ++
j) {
1139 double Tus = (h->
TNS())/1000.0;
1148 if(h->
TNS() > Thi) Thi = h->
TNS();
1149 if(h->
TNS() < Tlo) Tlo = h->
TNS();
1155 if(h->
Cell() > CXhi) CXhi = h->
Cell();
1156 if(h->
Cell() < CXlo) CXlo = h->
Cell();
1162 if(h->
Cell() > CYhi) CYhi = h->
Cell();
1163 if(h->
Cell() < CYlo) CYlo = h->
Cell();
1172 if(nx == 0.0 && ny == 0.0) {
1180 Pave = Pave/(nx+ny);
1181 Tave = Tave/(nx+ny);
1182 Psd =
sqrt(Psd/(nx+ny) - Pave*Pave);
1183 Tsd =
sqrt(Tsd/(nx+ny) - Tave*Tave);
1192 CXsd =
sqrt(CXsd/nx - CXave*CXave);
1201 CYsd =
sqrt(CYsd/ny - CYave*CYave);
1211 fNumHits ->Fill(NumHitsX+NumHitsY);
1220 fPCXdiff ->Fill(Phi-Plo,CXhi-CXlo);
1221 fPCYdiff ->Fill(Phi-Plo,CYhi-CYlo);
1231 std::vector < art::Ptr< rb::Track > > tracks;
1232 if(fmSlTrk.isValid()) {
1233 tracks = fmSlTrk.at(
i);
1237 int NHit3Dtracks = 0;
1240 for (
int idb=0; idb<14; ++idb) {
1241 for (
int idcm=0; idcm<12; ++idcm) {
1247 for(
unsigned int k = 0; k < tracks.size(); k++) {
1250 if(tracks[k]->Is3D()) {
1252 NTrackTot += tracks.size();
1254 NHit3Dtracks += tracks[k]->NCell();
1257 TVector3
start(tracks[k]->Start());
1258 TVector3
end(tracks[k]->Stop());
1259 TVector3
dir(tracks[k]->
Dir());
1263 for(
unsigned int j = 0;
j < tracks[k]->NCell(); ++
j) {
1270 const unsigned int ldc = cmap->
Map()->
getDCM(chan);
1277 for(
int i = 0;
i < 14;
i++){
1278 for(
int j = 0;
j < 12;
j++){
1309 angle = (
atan2(dir.X(),-dir.Z()))*180.0/3.1415926536;
1310 if(angle < 0.0) angle += 360.0;
1316 if(this->
IsContained(start.X(), start.Y(), start.Z()) &&
1322 for(
unsigned int j = 0;
j < tracks[k]->NCell(); ++
j) {
1359 NTrackTot += tracks.size();
1363 TVector3
start(tracks[k]->Start());
1364 TVector3
end(tracks[k]->Stop());
1365 TVector3
dir(tracks[k]->
Dir());
1369 for(
unsigned int j = 0;
j < tracks[k]->NCell(); ++
j) {
1376 const unsigned int ldc = cmap->
Map()->
getDCM(chan);
1383 for(
int i = 0;
i < 14;
i++){
1384 for(
int j = 0;
j < 12;
j++){
1415 angle = (
atan2(dir.X(),-dir.Z()))*180.0/3.1415926536;
1416 if(angle < 0.0) angle += 360.0;
1438 if(goodevent==
true){
1447 fPOTSum->Fill(0.0,spillPoT*1e12);
double fMaxY
containment cut in Y
TH2D * fTrackCosZenAziAll2D
2D plot of cos zentih and cos azimuth (all 2D tracks)
int counter3D[14][12]
counter array for the number of hits/tracks per dcm
double fMaxHornICut
max horn current cut for beam quality
TH1D * fTimeDiffNanoSec
time difference between the spill times recorded as event timestamp and by IFDB
TH2F * Instr
Map view of the instrumented detector (DCM w/ > 50APDs)
TH1D * fTrackLengthCont3D
length of track [cm] (all contained 3D tracks)
TH1D * fNumHitsNoise
number hits in the noise slice
double fMaxX
containment cut in X
TH1D * fTtrkAll3D
track times (all 3D tracks)
bool isRHC
is the beam in antineutrino mode, aka RHC
TH1D * fPETrackHitsCont3D
PE for hits on tracks (all contained 3D tracks)
SubRunNumber_t subRun() const
TH1D * fTrackCosNumiAll3D
cosine theta of track with respect to NuMI beam (all 3D tracks)
TH1D * fNumHitsXNoise
number of X hits in the noise slice
double fMinZ
containment cut in Z
int NDiBlocks()
gives number of active diblocks only, may be less than 14
std::string fTrackLabel
Where to find Tracks.
std::vector< double > fMinPosYCutVec
min y position cut for beam quality vector (for change in cuts)
TH1D * fTrackAzimuthCont3D
track azimuthal angle (all contained 3D tracks)
TH1D * fNumHits
number of hits per non noise slice
TH1D * fNumSlicesGoodBeam
number of non-noise slices for good beam
TH2D * fStartPointTrackYZCont3D
2D histogram showing starting point of reco track in YZ view (all contained 3D tracks) ...
double fMaxZ
containment cut in Z
bool IsDiBlockFullyInstrumented(int idb)
returns true if nInstrumentedFEBs in diblock (which counts FEBs that are instrumented, active, and unmasked only) is >= 700
TH2D * fStartPointTrackXZAll2D
2D histogram showing starting point of reco track in XZ view (all 2D tracks)
unsigned int fLastSubrun
Header: last subrun number analyzed.
TH1D * fNumHitsYNoise
number of Y hits in the noise slice
float Dot(const Proxy &v) const
double fMinT
for cutting in T
int fNevents
Header: number of events processed.
TH2D * fStartPointTrackYZAll2D
2D histogram showing starting point of reco track in YZ view (all 2D tracks)
TH1D * fDeltaSliceTrack
number of slices minus number of 3D tracks
double fMinY
containment cut in Y
TH1D * fTrackFractionCont3D
fraction of total tracks that are contained 3D
TH2D * fTrackCosZenAziAll3D
2D plot of cos zentih and cos azimuth (all 3D tracks)
TH2D * fStopPointTrackYZCRCont3D
2D histogram showing stopping point of reco track in YZ view (control room view) (all contained 3D tr...
unsigned short Plane() const
void beginRun(const art::Run &run)
TH2D * fStopPointTrackXZCRCont3D
2D histogram showing stopping point of reco track in XZ view (control room view) (all contained 3D tr...
TH1D * fADCNoiseHits
ADC for hits in the noise slice.
TH2D * fPCYaveCR
for each non-noise slice, average plane/cell of hits (control room view)
TH1D * fSliceTrackNHitRatio
ratio of number of hits on 3D track to number of hits in the slice (0 means no track or 2D track) ...
DiBlock GetDiBlock(int i, bool loadAll=true)
get ith diblock is RH list (which only includes diblocks with activity), starting with i=0...
Vertical planes which measure X.
TH1D * fADCNonNoiseHits
ADC for hits in non-noise slices.
int fLastEvent
Header: last event processed.
TH1D * fTrackCosAzimuthAll3D
cosine theta of track with respect to azimuth direction (all 3D tracks)
TH1D * fNumTracksCont3D
counter for number of tracks (all contained 3D tracks)
std::vector< double > fMaxPosYCutVec
max y position cut for beam quality vector (for change in cuts)
TH1D * fTrackZenithAll2D
track zenith angle (all 2D tracks)
TH2D * fStartPointTrackXZCRAll2D
2D histogram showing starting point of reco track in XZ view (control room view) (all 2D tracks) ...
TH2D * fTrackCosZenAziCont3D
2D plot of cos zentih and cos azimuth (all contained 3D tracks)
const daqchannelmap::DAQChannelMap * Map() const
unsigned int fEndYear
Header: year of last processed event (actual year since 0 A.D.)
TH2D * fStartPointTrackXZAll3D
2D histogram showing starting point of reco track in XZ view (all 3D tracks)
TH1D * fPEAllHits
PE for all hits.
int fMinFEBs
NEW Minimum number of FEBs in a DCM for allow diblock instrumented.
TH2D * f3DTrackNum
Number of 2D tracks per DCM.
double fMaxPosXCut
max x position cut for beam quality
TH2D * fStopPointTrackXZAll3D
2D histogram showing stopping point of reco track in XZ view (all 3D tracks)
DEFINE_ART_MODULE(TestTMapFile)
TH2D * fStartPointTrackXZCRCont3D
2D histogram showing starting point of reco track in XZ view (control room view) (all contained 3D tr...
double fP1MaxZ
containment cut in Z for partition 1
TH1D * fTrackNumiAll2D
track numi angle (all 2D tracks)
::xsd::cxx::tree::time< char, simple_type > time
TH2D * fTrackZenAziCont3D
2D plot of zentih and azimuth (all contained 3D tracks)
double fMinPOTCut
min POT cut for beam quality
TH1D * fTrackCosZenithCont3D
cosine theta of track with respect to zenith direction (all contained 3D tracks)
TH1D * fTrackAzimuthAll3D
track azimuthal angle (all 3D tracks)
TH2D * fPCYdiff
for each non-noise slice, difference btwn highest and lowest plane/cell
TH1D * fGoodBeam
value of goodbeam parameter, ie whether spill passed beam quality cuts
TH1D * fNumTracksAll3D
counter for number of tracks (all 3D tracks)
TH1D * fTrackZenithAll3D
track zenith angle (all 3D tracks)
TH1D * fXPosition
horizontal position of beam at target
constexpr TimeValue_t value() const
Horizontal planes which measure Y.
double fMinWidthXCut
min x width cut for beam quality
TH1D * fPETrackHitsAll3D
PE for hits on tracks (all 3D tracks)
fhicl::ParameterSet fPSetNDOS
NearlineAna(fhicl::ParameterSet const &pset)
TH2D * fStopPointTrackXZCRAll2D
2D histogram showing stopping point of reco track in XZ view (control room view) (all 2D tracks) ...
double fMinWidthYCut
min y width cut for beam quality
TH2D * fStartPointTrackYZAll3D
2D histogram showing starting point of reco track in YZ view (all 3D tracks)
unsigned short Cell() const
TH1D * fTrackCosZenithAll3D
cosine theta of track with respect to zenith direction (all 3D tracks)
unsigned long long int fStartTime
Header: time of first processed event - initalized to -1 to make it a HUGE positive number...
unsigned int fPartition
Header: partition number from last event analyzed.
TH1D * fTrackLengthAll2D
length of track [cm] (all 2D tracks)
Far Detector at Ash River, MN.
TH1D * fTrackZenithCont3D
track zenith angle (all contained 3D tracks)
unsigned int fEndMonth
Header: month of last processed event (actual month 1-12)
double fMinPosYCut
min y position cut for beam quality
int fMinTrackHits
minimum # of hits from a track within a DCM for the track to count as having passed through that DCM ...
uint32_t DaqChannel() const
TTree * fHeader
Header object to be written to disk with the histograms.
double fMinX
containment cut in X
signed long long int deltaspilltimensec
TH2D * fPCXave
for each non-noise slice, average plane/cell of hits
TH2D * fStopPointTrackYZCRAll2D
2D histogram showing stopping point of reco track in YZ view (control room view) (all 2D tracks) ...
TH2D * fTrackZenAziAll3D
2D plot of zentih and azimuth (all 3D tracks)
TH1D * fTrackCosAzimuthAll2D
cosine theta of track with respect to azimuth direction (all 2D tracks)
TH1D * fTrackCosZenithAll2D
cosine theta of track with respect to zenith direction (all 2D tracks)
TH1D * fTrackNumiCont3D
track numi angle (all contained 3D tracks)
TH2D * fStartPointTrackYZCRAll2D
2D histogram showing starting point of reco track in YZ view (control room view) (all 2D tracks) ...
double fMaxWidthXCut
max x width cut for beam quality
Prototype Near Detector on the surface at FNAL.
Commissioning files to look at the quality of our data.
TH1D * fTsd
for each non-noise slice, standard dev. of hit times
T get(std::string const &key) const
TH1D * fTrackNumiAll3D
track numi angle (all 3D tracks)
novadaq::cnv::DetId DetId() const
Prefer ds::DetectorService::DetId() instead.
double fMaxDeltaTCut
mqax delta t cut for beam quality
Near Detector in the NuMI cavern.
TH2D * fStopPointTrackXZCont3D
2D histogram showing stopping point of reco track in XZ view (all contained 3D tracks) ...
TH1D * fTrackFractionAll3D
fraction of total tracks that are 3D
TH2F * fullyinstr
Counter of fully instrumented diblocks.
TH1D * fTrackCosNumiAll2D
cosine theta of track with respect to NuMI beam (all 2D tracks)
double fMinHornICut
min horn current cut for beam quality
TH1D * fXWidth
horizontal width of beam at TRTGT
TH2D * fStopPointTrackXZAll2D
2D histogram showing stopping point of reco track in XZ view (all 2D tracks)
TH2D * f3DHitNum
Number of hits on 3D tracks per DCM.
fvar< T > Phi(const fvar< T > &x)
EDAnalyzer(Table< Config > const &config)
TH1D * fPENoiseHits
PE for hits in the noise slice.
TH1D * fIsRHC
reverse horn current boolean
double fMaxT
for cutting in T
TH2D * fStopPointTrackYZCont3D
2D histogram showing stopping point of reco track in YZ view (all contained 3D tracks) ...
TH2D * fStartPointTrackYZCRCont3D
2D histogram showing starting point of reco track in YZ view (control room view) (all contained 3D tr...
TH2D * fStopPointTrackYZAll2D
2D histogram showing stopping point of reco track in YZ view (all 2D tracks)
fhicl::ParameterSet fPSetND
void analyze(const art::Event &evt)
TH1D * fNumHitsX
number of X hits in non-noise slices
TH1D * fNumHitsY
number of Y hits in non-noise slices
#define LOG_WARNING(category)
TH1D * fHornCurrent
value of horn current
TH1D * fSliceTrackRatio
ratio of number of 3D tracks to number of slices
unsigned int fEndDay
Header: day of last processed event (day of the month 1-31)
int counter2D[14][12]
counter array for the number of hits/tracks per dcm
TH2D * fPCXdiff
for each non-noise slice, difference btwn highest and lowest plane/cell
TH2D * fStopPointTrackXZCRAll3D
2D histogram showing stopping point of reco track in XZ view (control room view) (all 3D tracks) ...
TVector3 NuMIBeamDirection() const
Direction of neutrinos from the NuMI beam (unit vector)
EventNumber_t event() const
TH1D * fTrackAzimuthAll2D
track azimuthal angle (all 2D tracks)
TH1D * fTrackFractionAll2D
fraction of total tracks that are 2D
std::string fCellHitsListLabel
Where to find CellHits.
TH1D * fNumTracksAll2D
counter for number of tracks (all 2D tracks)
A rawdata::RawDigit with channel information decoded.
T * make(ARGS...args) const
TH2D * f2DHitNum
Number of hits on 2D tracks per DCM.
TH2D * fStopPointTrackYZCRAll3D
2D histogram showing stopping point of reco track in YZ view (control room view) (all 3D tracks) ...
int16_t ADC(uint32_t i) const
unsigned int fStartMonth
Header: month of first processed event (actual month 1-12)
double fMaxPosYCut
max y position cut for beam quality
bool IsContained(double x, double y, double z)
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
TH2D * fSliceTrackNHitRatioVSnhit
ratio of number of hits on 3D track to number of hits in the slice, 2D plot vs nhit in slice (0 means...
double pythag(double x, double y)
2D Euclidean distance
fvar< T > floor(const fvar< T > &x)
TH1D * fPENonNoiseHits
PE for hits in non-noise slices.
TH2D * fStartPointTrackYZCRAll3D
2D histogram showing starting point of reco track in YZ view (control room view) (all 3D tracks) ...
TH1D * fTtrkAll2D
track times (all 2D tracks)
TH1D * fADCAllHits
ADC for all hits.
TH2D * fTrackZenAziAll2D
2D plot of zentih and azimuth (all 2D tracks)
TH1D * fTrackLengthAll3D
length of track [cm] (all 3D tracks)
TH2D * fPCYave
for each non-noise slice, average plane/cell of hits
double fMinPosXCut
min x position cut for beam quality
assert(nhit_max >=nhit_nbins)
TH1I * fBadSpills
failure modes for those spills that don't pass the beam quality cuts
std::string fSlicerLabel
Where to find Clusters.
dcm_id_t getDCM(dchan daqchan) const
Decode the dcm ID from a dchan.
double fLiveTime
Header: total live time in seconds.
TH1D * fTtrkCont3D
track times (all contained 3D tracks)
TH1D * fTrackCosNumiCont3D
cosine theta of track with respect to NuMI beam (all contained 3D tracks)
TH2D * f2DTrackNum
Number of 3D tracks per DCM.
TH1D * fNumSlices
number of non-noise slices
TH2D * fPCXaveCR
for each non-noise slice, average plane/cell of hits (control room view - meaning X is flipped and Z ...
unsigned int fStartDay
Header: day of first processed event (day of the month 1-31)
int fFirstEvent
Header: first event processed.
TH1D * fTrackCosAzimuthCont3D
cosine theta of track with respect to azimuth direction (all contained 3D tracks) ...
unsigned int fStartYear
Header: year of first processed event (actual year since 0 A.D.)
double fStartHour
Header: hour of first processed event (since midnight 0.0 - 23.99999)
fhicl::ParameterSet fPSetFD
unsigned long long int fEndTime
Header: time of last processed event.
fhicl::ParameterSet fPSetTB
Parameter sets for each detector.
TH2D * fStopPointTrackYZAll3D
2D histogram showing stopping point of reco track in YZ view (all 3D tracks)
unsigned int fLastRun
Header: last run number analyzed.
diblock_t getDiBlock(dchan daqchan) const
Decode the diblock ID from a dchan.
double spillpot
POT for spill normalized by 10^12.
Encapsulate the geometry of one entire detector (near, far, ndos)
TH1D * fTave
for each non-noise slice, average time of hits
double fEndHour
Header: hour of last processed event (since midnight 0.0 - 23.99999)
TH1D * fYPosition
vertical position of beam at target
TH2D * fStartPointTrackXZCRAll3D
2D histogram showing starting point of reco track in XZ view (control room view) (all 3D tracks) ...
double fMaxWidthYCut
max y width cut for beam quality
TH2D * fStartPointTrackXZCont3D
2D histogram showing starting point of reco track in XZ view (all contained 3D tracks) ...
std::string Detector() const
TH1D * fspillPOT
spill POT
TH1D * fYWidth
vertical width of beam at TRTGT
TH1D * fPETrackHitsAll2D
PE for hits on tracks (all 2D tracks)