NuCounter Class Reference

#include <NuCounter.h>

List of all members.

Public Member Functions

 NuCounter ()
 ~NuCounter ()
void Print () const
void PrintNMB () const
void PrintFullDST () const
void PrintMicroDST () const
void PrintStdhepCounter () const
void CountTrkStdhepId (const NtpStRecord &ntp, const NtpSREvent &evt, const NtpSRTrack &trk, const NuEvent &nu)

Public Attributes

Int_t entry
Int_t goodCoilCurrentSpillCounter
Int_t goodSpillCounter
Int_t badSpillCounter
Float_t totalPot
Float_t totalPotDB
Float_t totalPotBad
Int_t evtCounter
Int_t evtNotlitime
Int_t evtNotIsLI
Int_t goodBeamDetPOTCountingStage
Int_t evtInFidVolCounter
Int_t evtWithTrkCounter
Int_t goodBestTrkCounter
Int_t goodTrkPassCounter
Int_t goodDirectionCosineCounter
Int_t goodDataQualityCounter
Int_t goodTimeToNearestSpillCounter
Int_t goodBeamInfoDBCounter
Int_t goodRecoEnCounter
Int_t goodUVDiffCounter
Int_t trkInFidVolCounter
Int_t goodFitSigQPCounter
Int_t goodFitProbCounter
Int_t goodFitChi2Counter
Int_t goodDeltaTCounter
Int_t goodEvtsPerSlcCounter
Int_t goodPIDCounter
Int_t goodBeyondTrkEndCounter
Int_t goodShwFractCounter
Int_t nuNQCounter
Int_t nuPQCounter
Int_t nuNoQCounter
Int_t nuNoTrkCounter
std::map< Int_t, Int_t > mtrkstdhepId


Detailed Description

Definition at line 18 of file NuCounter.h.


Constructor & Destructor Documentation

NuCounter::NuCounter (  ) 

Definition at line 36 of file NuCounter.cxx.

References badSpillCounter, entry, evtCounter, evtInFidVolCounter, evtNotIsLI, evtNotlitime, evtWithTrkCounter, goodBeamDetPOTCountingStage, goodBeamInfoDBCounter, goodBestTrkCounter, goodBeyondTrkEndCounter, goodCoilCurrentSpillCounter, goodDataQualityCounter, goodDeltaTCounter, goodDirectionCosineCounter, goodEvtsPerSlcCounter, goodFitChi2Counter, goodFitProbCounter, goodFitSigQPCounter, goodPIDCounter, goodRecoEnCounter, goodShwFractCounter, goodSpillCounter, goodTimeToNearestSpillCounter, goodTrkPassCounter, goodUVDiffCounter, Msg::kDebug, MSG, nuNoQCounter, nuNoTrkCounter, nuNQCounter, nuPQCounter, totalPot, totalPotBad, totalPotDB, and trkInFidVolCounter.

00037 {
00038   MSG("NuCounter",Msg::kDebug)
00039     <<"Running NuCounter Constructor..."<<endl;
00040   
00041   entry=-1;
00042 
00043   goodCoilCurrentSpillCounter=0;
00044   goodSpillCounter=0;
00045   badSpillCounter=0;
00046   totalPot=0;
00047   totalPotDB=0;
00048   totalPotBad=0;
00049   evtCounter=0;
00050   evtNotlitime=0;
00051   evtNotIsLI=0;
00052   goodBeamDetPOTCountingStage=0;
00053   evtInFidVolCounter=0;
00054   evtWithTrkCounter=0;
00055   goodBestTrkCounter=0;
00056   goodTrkPassCounter=0;
00057   goodDirectionCosineCounter=0;
00058   goodDataQualityCounter=0;
00059   goodTimeToNearestSpillCounter=0;
00060   goodBeamInfoDBCounter=0;
00061   goodRecoEnCounter=0;
00062   goodUVDiffCounter=0;
00063   trkInFidVolCounter=0;
00064   goodFitSigQPCounter=0;
00065   goodFitProbCounter=0;
00066   goodFitChi2Counter=0;
00067   goodDeltaTCounter=0;
00068   goodEvtsPerSlcCounter=0; 
00069   goodPIDCounter=0;
00070   goodBeyondTrkEndCounter=0;
00071   goodShwFractCounter=0;
00072   nuNQCounter=0;
00073   nuPQCounter=0;
00074   nuNoQCounter=0;
00075   nuNoTrkCounter=0;
00076 
00077   MSG("NuCounter",Msg::kDebug)
00078     <<"Finished NuCounter Constructor"<<endl;
00079 }

NuCounter::~NuCounter (  ) 

Definition at line 83 of file NuCounter.cxx.

References Msg::kDebug, and MSG.

00084 {
00085   MSG("NuCounter",Msg::kDebug)
00086     <<"Running NuCounter Destructor..."<<endl;
00087   
00088 
00089   MSG("NuCounter",Msg::kDebug)
00090     <<"Finished NuCounter Destructor"<<endl;
00091 }


Member Function Documentation

void NuCounter::CountTrkStdhepId ( const NtpStRecord ntp,
const NtpSREvent evt,
const NtpSRTrack trk,
const NuEvent nu 
)

Definition at line 321 of file NuCounter.cxx.

References NtpTHTrack::completeall, NtpTHTrack::completeslc, NuEvent::evt, NuReco::GetBestShower(), NuReco::GetShowerWithIndexX(), NtpMCStdHep::IdHEP, NtpTHTrack::index, NtpSRTrack::index, NtpSRShower::index, NtpSREvent::index, NuLibrary::Instance(), NuReco::IsTrkWithDimuon(), NuReco::IsTrkWithMuonFromKaonDecay(), NuReco::IsTrkWithMuonFromNotNuNotPiNotKaonNotCharm(), NuReco::IsTrkWithMuonFromPionDecay(), Msg::kDebug, Msg::kInfo, NtpStRecord::mc, MSG, mtrkstdhepId, NtpTHTrack::neumc, NtpTHShower::neumc, NtpTHEvent::neumc, NtpTHTrack::neustdhep, print(), NuReco::PrintStdhep(), NtpTHTrack::purity, NuLibrary::reco, NuEvent::run, NuEvent::snarl, NtpStRecord::stdhep, NtpStRecord::thevt, NtpStRecord::thshw, NtpStRecord::thtrk, and NtpTHTrack::trkstdhep.

Referenced by NuDemoModule::Ana(), and NuAnalysis::ChargeSeparationOneSnarl().

00325 {
00326   TClonesArray& thtrkTca=(*ntp.thtrk);//TruthHelper Track TCA
00327   const Int_t numthtrks=thtrkTca.GetEntriesFast();
00328   if (numthtrks<=0) {
00329     return;
00330   }
00331 
00332   //get an instance of the code library
00333   NuLibrary& lib=NuLibrary::Instance();
00334 
00335   Int_t evtmc=-1;
00336   Int_t trkmc=-1;
00337   Int_t shwmc=-1;
00338   
00339   TClonesArray& thevtTca=(*ntp.thevt);//TruthHelper Event TCA
00340   const Int_t numthevts=thevtTca.GetEntriesFast();
00341   if (numthevts>0) {
00342     const NtpTHEvent& thevt=
00343       *dynamic_cast<NtpTHEvent*>(thevtTca[evt.index]);
00344     evtmc=thevt.neumc;
00345   }
00346   
00347   TClonesArray& thshwTca=(*ntp.thshw);//TruthHelper Shower TCA
00348   const Int_t numthshws=thshwTca.GetEntriesFast();
00349   if (numthshws>0) {
00350     Int_t bestShower=lib.reco.GetBestShower(nu);
00351     const NtpSRShower* pshw=lib.reco.GetShowerWithIndexX(ntp,evt,
00352                                                      bestShower-1);
00353     if (pshw) {
00354       const NtpSRShower& shw=*pshw;
00355       const NtpTHShower& thshw=
00356         *dynamic_cast<NtpTHShower*>(thshwTca[shw.index]);
00357       shwmc=thshw.neumc;
00358     }
00359   }
00360   
00361   const NtpTHTrack& thtrk=
00362     *dynamic_cast<NtpTHTrack*>(thtrkTca[trk.index]);
00363   trkmc=thtrk.neumc;
00364   
00365 /*
00366   if (trkmc!=evtmc || (shwmc!=evtmc && shwmc>=0)) {
00367     MSG("NuPlots",Msg::kWarning)
00368       <<endl<<endl<<endl
00369       <<"evtmc="<<evtmc
00370       <<", trkmc="<<trkmc
00371       <<", shwmc="<<shwmc
00372       <<endl<<endl<<endl<<endl;
00373   }
00374 */
00375   
00376   TClonesArray& hepTca=(*ntp.stdhep);
00377   //const Int_t numHeps=hepTca.GetEntriesFast();
00378   
00379   const NtpMCStdHep& stdhep=
00380     *dynamic_cast<NtpMCStdHep*>(hepTca[thtrk.trkstdhep]);
00381   
00382   Int_t trkstdhepId=stdhep.IdHEP;
00383   
00384   if (abs(trkstdhepId)!=13) {
00385     MSG("NuPlots",Msg::kDebug)
00386       <<"Found THTrack, index="<<thtrk.index
00387       <<", neumc="<<thtrk.neumc
00388       <<", neustdhep="<<thtrk.neustdhep
00389       <<", trkstdhep="<<thtrk.trkstdhep
00390       <<", trkstdhepId="<<trkstdhepId
00391       <<", purity="<<thtrk.purity
00392       <<", completeall="<<thtrk.completeall
00393       <<", completeslc="<<thtrk.completeslc
00394       <<endl;
00395   }
00396   
00397   //check if the particle came from special processes
00398   //if so then create custom ID number
00399   if (lib.reco.IsTrkWithDimuon(ntp,trk)) {
00400     if (trkstdhepId>0) trkstdhepId+=100000;
00401     else trkstdhepId+=-100000;
00402   }
00403   if (lib.reco.IsTrkWithMuonFromPionDecay(ntp,trk)) {
00404     if (trkstdhepId>0) trkstdhepId+=900000;
00405     else trkstdhepId+=-900000;
00406   }
00407   if (lib.reco.IsTrkWithMuonFromKaonDecay(ntp,trk)) {
00408     if (trkstdhepId>0) trkstdhepId+=9000000;
00409     else trkstdhepId+=-9000000;
00410   }
00411   if (lib.reco.IsTrkWithMuonFromNotNuNotPiNotKaonNotCharm(ntp,
00412                                                       trk)) {
00413     if (trkstdhepId>0) trkstdhepId+=90000000;
00414     else trkstdhepId+=-90000000;
00415   }
00416 
00417   Bool_t print=false;
00418   //Bool_t print=true;
00419   //if (abs(trkstdhepId)>=100000 && print) {
00420   if (abs(trkstdhepId)==22 && print) {
00421     MSG("NuPlots",Msg::kInfo)
00422       <<"Found THTrack, index="<<thtrk.index
00423       <<", neumc="<<thtrk.neumc
00424       <<", neustdhep="<<thtrk.neustdhep
00425       <<", trkstdhep="<<thtrk.trkstdhep
00426       <<", trkstdhepId="<<trkstdhepId
00427       <<", purity="<<thtrk.purity
00428       <<", completeall="<<thtrk.completeall
00429       <<", completeslc="<<thtrk.completeslc
00430       <<endl;
00431     TClonesArray& mcTca=*ntp.mc;
00432     const NtpMCTruth& mc=
00433       *(dynamic_cast<NtpMCTruth*>(mcTca[thtrk.neumc]));
00434     lib.reco.PrintStdhep(ntp,mc);
00435     cout<<nu.run<<" "<<nu.snarl<<" "<<nu.evt<<endl;
00436   }
00437 
00438   //count up the stdhep ids
00439   mtrkstdhepId[trkstdhepId]++;
00440 }

void NuCounter::Print (  )  const

Definition at line 95 of file NuCounter.cxx.

References badSpillCounter, NuCuts::CalcTotalPot(), NuLibrary::cuts, evtCounter, evtInFidVolCounter, evtNotIsLI, evtNotlitime, evtWithTrkCounter, goodBestTrkCounter, goodBeyondTrkEndCounter, goodDeltaTCounter, goodDirectionCosineCounter, goodEvtsPerSlcCounter, goodFitChi2Counter, goodFitProbCounter, goodFitSigQPCounter, goodPIDCounter, goodRecoEnCounter, goodShwFractCounter, goodSpillCounter, goodTrkPassCounter, goodUVDiffCounter, NuLibrary::Instance(), Msg::kInfo, MSG, nuNoQCounter, nuNoTrkCounter, nuNQCounter, nuPQCounter, totalPot, totalPotBad, and trkInFidVolCounter.

00096 {
00097   //get an instance of the code library
00098   NuLibrary& lib=NuLibrary::Instance();
00099 
00100   Float_t totalPotHist=0;
00101   Float_t totalPotBadHist=0;
00102   lib.cuts.CalcTotalPot(totalPotHist,totalPotBadHist);
00103   Float_t pcPotRejected=0;
00104   if (totalPotHist) pcPotRejected=100.*totalPotBadHist/totalPotHist;
00105 
00106   cout<<"Number of good spills="<<goodSpillCounter<<endl
00107       <<"Number of bad spills ="<<badSpillCounter<<endl
00108       <<"Sum of good+bad spill="<<badSpillCounter+goodSpillCounter<<endl
00109       <<endl
00110       <<"Total POT good       ="<<totalPot*1e12<<endl
00111       <<"Total POT bad        ="<<totalPotBad*1e12<<endl
00112       <<"Total POT good (hist)="<<totalPotHist*1e12<<endl
00113       <<"Total POT bad  (hist)="<<totalPotBadHist*1e12
00114       <<"  ("<<pcPotRejected<<"%)"<<endl;
00115 
00116   MSG("NuAnalysis",Msg::kInfo)
00117     <<endl<<"*************************************"<<endl
00118     <<"Total Events    ="<<evtCounter<<endl
00119     <<"Evt not litime  ="<<evtNotlitime<<endl
00120     <<"Evt not IsLI    ="<<evtNotIsLI<<endl
00121     <<"Evts in Fid     ="<<evtInFidVolCounter<<endl
00122     <<"Evts w/ Trk     ="<<evtWithTrkCounter<<endl
00123     <<"Good Best Trk   ="<<goodBestTrkCounter<<endl
00124     <<"Track Pass      ="<<goodTrkPassCounter<<endl
00125     <<"Good Dir. Cos.  ="<<goodDirectionCosineCounter<<endl
00126     <<"Good UVDiff     ="<<goodUVDiffCounter<<endl
00127     <<"Trk Vtx in Fid  ="<<trkInFidVolCounter<<endl
00128     <<"Good reco energy="<<goodRecoEnCounter<<endl
00129     <<"Good Fit SigQP  ="<<goodFitSigQPCounter<<endl
00130     <<"Good Fit Prob   ="<<goodFitProbCounter<<endl
00131     <<"Good Fit Chi2   ="<<goodFitChi2Counter<<endl
00132     <<"Good Delta T    ="<<goodDeltaTCounter<<endl
00133     <<"Good EvtPerSlc  ="<<goodEvtsPerSlcCounter<<endl
00134     <<"Good PID        ="<<goodPIDCounter<<endl
00135     <<"Good beyond tEnd="<<goodBeyondTrkEndCounter<<endl
00136     <<"Good shw fract  ="<<goodShwFractCounter<<endl
00137     <<"*************************************"<<endl;
00138 
00139   Float_t pcPQ=0;
00140   if (nuPQCounter+nuNQCounter>0) pcPQ=100.*nuPQCounter/
00141                                    (nuPQCounter+nuNQCounter);
00142   MSG("NuAnalysis",Msg::kInfo)
00143     <<endl
00144     <<"Neutrinos with NQ="<<nuNQCounter<<endl
00145     <<"Neutrinos with PQ="<<nuPQCounter
00146     <<"   ("<<pcPQ<<"%)"<<endl
00147     <<"Neutrinos with undefined charge (q=0)="<<nuNoQCounter<<endl
00148     <<"Events with no track="<<nuNoTrkCounter<<endl
00149     <<"Sum NQ+PQ        ="<<nuNQCounter+nuPQCounter<<endl
00150     <<"Sum NQ+PQ+Q0+NoTrk="<<nuNQCounter+nuPQCounter+nuNoQCounter+nuNoTrkCounter<<endl
00151     <<endl;
00152 
00153 }

void NuCounter::PrintFullDST (  )  const

Definition at line 219 of file NuCounter.cxx.

References badSpillCounter, NuCuts::CalcTotalPot(), NuLibrary::cuts, entry, evtCounter, evtInFidVolCounter, evtNotlitime, evtWithTrkCounter, goodCoilCurrentSpillCounter, goodSpillCounter, NuLibrary::Instance(), Msg::kInfo, MSG, nuNQCounter, nuPQCounter, totalPot, and totalPotBad.

Referenced by NuDSTAna::ConcatenateDSTs(), and NuAnalysis::StoreOrFinishTree().

00220 {
00221   //get an instance of the code library
00222   const NuLibrary& lib=NuLibrary::Instance();
00223 
00224   Float_t totalPotHist=0;
00225   Float_t totalPotBadHist=0;
00226   lib.cuts.CalcTotalPot(totalPotHist,totalPotBadHist);
00227   Float_t pcPotRejected=0;
00228   if (totalPotHist) pcPotRejected=100.*totalPotBadHist/totalPotHist;
00229 
00230   MSG("NuAnalysis",Msg::kInfo)
00231     <<endl<<"*************************************"<<endl
00232     <<"POT good beam  ="<<totalPot*1e12<<endl
00233     <<"POT bad beam   ="<<totalPotBad*1e12<<endl
00234     <<"POT good (hist)="<<totalPotHist*1e12<<endl
00235     <<"POT bad  (hist)="<<totalPotBadHist*1e12
00236     <<"  ("<<pcPotRejected<<"%)"<<endl;
00237   
00238   MSG("NuAnalysis",Msg::kInfo)
00239     <<endl<<"*************************************"<<endl
00240     <<"Snarls processed   ="<<entry+1<<endl
00241     <<"Good coil current  ="<<goodCoilCurrentSpillCounter<<endl
00242     <<"Good beam spills   ="<<goodSpillCounter<<endl
00243     <<"Bad beam spills    ="<<badSpillCounter<<endl
00244     <<"Sum good+bad spills="<<badSpillCounter+goodSpillCounter
00245     <<endl;
00246 
00247   MSG("NuAnalysis",Msg::kInfo)
00248     <<endl<<"*************************************"<<endl
00249     <<"Total Events    ="<<evtCounter<<endl
00250     <<"Evts w/ Trk     ="<<evtWithTrkCounter<<endl    
00251     <<"Evt not litime  ="<<evtNotlitime<<endl
00252     <<"Evt Vtx in Fid  ="<<evtInFidVolCounter<<endl
00253     <<"*************************************"<<endl;
00254 
00255   Float_t pcPQ=0;
00256   if (nuPQCounter+nuNQCounter>0) pcPQ=100.*nuPQCounter/
00257                                    (nuPQCounter+nuNQCounter);
00258   MSG("NuAnalysis",Msg::kInfo)
00259     <<endl
00260     <<"Neutrinos with NQ="<<nuNQCounter<<endl
00261     <<"Neutrinos with PQ="<<nuPQCounter
00262     <<"   ("<<pcPQ<<"%)"<<endl
00263     <<"Sum NQ+PQ        ="<<nuNQCounter+nuPQCounter<<endl
00264     <<endl;
00265 }

void NuCounter::PrintMicroDST (  )  const

Definition at line 269 of file NuCounter.cxx.

References NuCuts::CalcTotalPot(), NuLibrary::cuts, evtCounter, evtInFidVolCounter, evtNotIsLI, evtWithTrkCounter, goodBeamDetPOTCountingStage, goodBeamInfoDBCounter, goodDataQualityCounter, goodDirectionCosineCounter, goodFitProbCounter, goodFitSigQPCounter, goodPIDCounter, goodTimeToNearestSpillCounter, goodTrkPassCounter, NuLibrary::Instance(), Msg::kInfo, MSG, nuNQCounter, nuPQCounter, totalPot, totalPotBad, totalPotDB, and trkInFidVolCounter.

Referenced by NuDSTAna::BRevAna(), NuDSTAna::Contamination(), NuDSTAna::ContaminationNQ(), NuDSTAna::FDTestAna(), NuDSTAna::FluxComponents(), NuDSTAna::JeffsTestAna(), NuDSTAna::MakeDstPQ(), NuDSTAna::MakeFCTree(), NuDSTAna::MakekNNTrainTestSet(), NuDSTAna::MakeMicroDst2010(), NuDSTAna::MakeMicroDst2014(), NuDSTAna::MakeMicroDstFakeData(), NuDSTAna::MakeMicroDstForCSSSystematics(), NuDSTAna::MakeMicroDstHe(), NuDSTAna::MakeMicroDstJJEPresel(), NuDSTAna::MakeMicroDstNC2012(), NuDSTAna::MakeMicroDstWithStdCCRecoAndCuts(), NuDSTAna::MakeRoIDTrainingSet(), NuDSTAna::MakeSelMicroDST(), NuDSTAna::MakeShwEnkNNTestingSet(), NuDSTAna::MakeShwEnkNNTrainingSet(), NuDSTAna::MMTransition(), NuDSTAna::MMTransSME(), NuDSTAna::NDQPRB(), NuDSTAna::NDTestAna(), NuDSTAna::NewFieldAna(), NuCutImps::NuCutsSelection::PrintSummary(), NuDSTAna::QPStudy(), NuDSTAna::RHCTest(), NuDSTAna::SelectorTable(), NuDSTAna::StdCCAna(), NuDSTAna::StdNMBAna(), NuDSTAna::VsTime(), and NuDSTAna::YStudy().

00270 {
00271   //get an instance of the code library
00272   const NuLibrary& lib=NuLibrary::Instance();
00273 
00274   Float_t totalPotHist=0;
00275   Float_t totalPotBadHist=0;
00276   lib.cuts.CalcTotalPot(totalPotHist,totalPotBadHist);
00277   Float_t pcPotRejected=0;
00278   if (totalPotHist) pcPotRejected=100.*totalPotBadHist/totalPotHist;
00279 
00280   MSG("NuAnalysis",Msg::kInfo)
00281     <<endl<<"*************************************"<<endl
00282     <<"POT good beam  ="<<totalPot*1e12<<endl
00283     <<"POT bad beam   ="<<totalPotBad*1e12<<endl
00284     <<"POT good (hist)="<<totalPotHist*1e12<<endl
00285     <<"POT bad  (hist)="<<totalPotBadHist*1e12<<endl
00286     <<"POT good (DB)  ="<<totalPotDB*1e12<<endl
00287     <<"  ("<<pcPotRejected<<"%)"<<endl;
00288   
00289   MSG("NuAnalysis",Msg::kInfo)
00290     <<endl<<"*************************************"<<endl
00291     <<"Total Events    ="<<evtCounter<<endl
00292     <<"Good BeamDet@POT="<<goodBeamDetPOTCountingStage<<endl
00293     <<"Evt Vtx in Fid  ="<<evtInFidVolCounter<<endl
00294     <<"Evts w/ Trk     ="<<evtWithTrkCounter<<endl
00295     <<"Trk Vtx in Fid  ="<<trkInFidVolCounter<<endl
00296     <<"Evt not IsLI    ="<<evtNotIsLI<<endl
00297     <<"Good Data Qual. ="<<goodDataQualityCounter<<endl
00298     <<"Good Time2Spill ="<<goodTimeToNearestSpillCounter<<endl
00299     <<"Good Beam DBInfo="<<goodBeamInfoDBCounter<<endl
00300     <<"Good TrkFitPass ="<<goodTrkPassCounter<<endl
00301     <<"Good Dir. Cos.  ="<<goodDirectionCosineCounter<<endl
00302     <<"Good PID        ="<<goodPIDCounter<<endl
00303     <<"Good Fit SigQP  ="<<goodFitSigQPCounter<<endl
00304     <<"Good Fit Prob   ="<<goodFitProbCounter<<endl
00305     <<"*************************************"<<endl;
00306 
00307   Float_t pcPQ=0;
00308   if (nuPQCounter+nuNQCounter>0) pcPQ=100.*nuPQCounter/
00309                                    (nuPQCounter+nuNQCounter);
00310   MSG("NuAnalysis",Msg::kInfo)
00311     <<endl
00312     <<"Neutrinos with NQ="<<nuNQCounter<<endl
00313     <<"Neutrinos with PQ="<<nuPQCounter
00314     <<"   ("<<pcPQ<<"%)"<<endl
00315     <<"Sum NQ+PQ        ="<<nuNQCounter+nuPQCounter<<endl
00316     <<endl;
00317 }

void NuCounter::PrintNMB (  )  const

Definition at line 157 of file NuCounter.cxx.

References badSpillCounter, NuCuts::CalcTotalPot(), NuLibrary::cuts, entry, evtCounter, evtInFidVolCounter, evtNotIsLI, evtNotlitime, evtWithTrkCounter, goodBeamDetPOTCountingStage, goodBeamInfoDBCounter, goodCoilCurrentSpillCounter, goodDataQualityCounter, goodDirectionCosineCounter, goodFitProbCounter, goodFitSigQPCounter, goodPIDCounter, goodSpillCounter, goodTimeToNearestSpillCounter, goodTrkPassCounter, NuLibrary::Instance(), Msg::kInfo, MSG, nuNQCounter, nuPQCounter, totalPot, totalPotBad, and trkInFidVolCounter.

Referenced by NuAnalysis::LIRejectionTest().

00158 {
00159   //get an instance of the code library
00160   const NuLibrary& lib=NuLibrary::Instance();
00161 
00162   Float_t totalPotHist=0;
00163   Float_t totalPotBadHist=0;
00164   lib.cuts.CalcTotalPot(totalPotHist,totalPotBadHist);
00165   Float_t pcPotRejected=0;
00166   if (totalPotHist) pcPotRejected=100.*totalPotBadHist/totalPotHist;
00167 
00168   MSG("NuAnalysis",Msg::kInfo)
00169     <<endl<<"*************************************"<<endl
00170     <<"POT good beam  ="<<totalPot*1e12<<endl
00171     <<"POT bad beam   ="<<totalPotBad*1e12<<endl
00172     <<"POT good (hist)="<<totalPotHist*1e12<<endl
00173     <<"POT bad  (hist)="<<totalPotBadHist*1e12
00174     <<"  ("<<pcPotRejected<<"%)"<<endl;
00175   
00176   MSG("NuAnalysis",Msg::kInfo)
00177     <<endl<<"*************************************"<<endl
00178     <<"Snarls processed   ="<<entry+1<<endl
00179     <<"Good coil current  ="<<goodCoilCurrentSpillCounter<<endl
00180     <<"Good beam spills   ="<<goodSpillCounter<<endl
00181     <<"Bad beam spills    ="<<badSpillCounter<<endl
00182     <<"Sum good+bad spills="<<badSpillCounter+goodSpillCounter
00183     <<endl;
00184 
00185   MSG("NuAnalysis",Msg::kInfo)
00186     <<endl<<"*************************************"<<endl
00187     <<"Total Events    ="<<evtCounter<<endl
00188     <<"Evt not litime  ="<<evtNotlitime<<endl
00189     <<"Good BeamDet@POT="<<goodBeamDetPOTCountingStage<<endl
00190     <<"Evt Vtx in Fid  ="<<evtInFidVolCounter<<endl
00191     <<"Evts w/ Trk     ="<<evtWithTrkCounter<<endl
00192     <<"Trk Vtx in Fid  ="<<trkInFidVolCounter<<endl
00193     <<"Evt not IsLI    ="<<evtNotIsLI<<endl
00194     <<"Good Data Qual. ="<<goodDataQualityCounter<<endl
00195     <<"Good Time2Spill ="<<goodTimeToNearestSpillCounter<<endl
00196     <<"Good Beam DBInfo="<<goodBeamInfoDBCounter<<endl
00197     <<"Good TrkFitPass ="<<goodTrkPassCounter<<endl
00198     <<"Good Dir. Cos.  ="<<goodDirectionCosineCounter<<endl
00199     <<"Good PID        ="<<goodPIDCounter<<endl
00200     <<"Good Fit SigQP  ="<<goodFitSigQPCounter<<endl
00201     <<"Good Fit Prob   ="<<goodFitProbCounter<<endl
00202     <<"*************************************"<<endl;
00203 
00204   Float_t pcPQ=0;
00205   if (nuPQCounter+nuNQCounter>0) pcPQ=100.*nuPQCounter/
00206                                    (nuPQCounter+nuNQCounter);
00207   MSG("NuAnalysis",Msg::kInfo)
00208     <<endl
00209     <<"Neutrinos with NQ="<<nuNQCounter<<endl
00210     <<"Neutrinos with PQ="<<nuPQCounter
00211     <<"   ("<<pcPQ<<"%)"<<endl
00212     <<"Sum NQ+PQ        ="<<nuNQCounter+nuPQCounter<<endl
00213     <<endl;
00214 
00215 }

void NuCounter::PrintStdhepCounter (  )  const

Definition at line 444 of file NuCounter.cxx.

References err(), NuGeneral::IdHEPAsString(), and mtrkstdhepId.

Referenced by NuAnalysis::StoreOrFinishTree().

00445 {
00446   const NuGeneral general;
00447 
00448   typedef map<Int_t,Int_t>::const_iterator mIter;
00449 
00450   Int_t totalEvents=0;
00451   
00452   MsgFormat pcfmt("%3.2f");
00453   MsgFormat errfmt("%.1f");
00454 
00455   //sum up the total events
00456   for (mIter it=mtrkstdhepId.begin();it!=mtrkstdhepId.end();++it) {
00457     totalEvents+=it->second;
00458   }
00459   if (totalEvents==0) return;
00460 
00461   multimap<Int_t,Int_t> mOpp;
00462 
00463   cout<<endl<<"Particle associated with track:"<<endl;
00464 
00465   //loop and switch the key and value in the map
00466   for (mIter it=mtrkstdhepId.begin();it!=mtrkstdhepId.end();++it) {
00467     mOpp.insert(pair<Int_t,Int_t>(it->second,it->first));
00468 
00469     string special="";
00470     Int_t trkstdhepId=it->first;
00471     Int_t N=it->second;
00472 
00473     if (abs(trkstdhepId)>90000000){
00474       if (trkstdhepId>0) trkstdhepId-=90000000;
00475       else trkstdhepId+=90000000;
00476       special="What is this???";
00477     }
00478     else if (abs(trkstdhepId)>9000000){
00479       if (trkstdhepId>0) trkstdhepId-=9000000;
00480       else trkstdhepId+=9000000;
00481       special="k->mu";
00482     }
00483     else if (abs(trkstdhepId)>900000){
00484       if (trkstdhepId>0) trkstdhepId-=900000;
00485       else trkstdhepId+=900000;
00486       special="pi->mu";
00487     }
00488     else if (abs(trkstdhepId)>100000){
00489       if (trkstdhepId>0) trkstdhepId-=100000;
00490       else trkstdhepId+=100000;
00491       special="dimuon";
00492     }
00493 
00494     string idhep=general.IdHEPAsString(trkstdhepId);
00495 
00496     Float_t err=1;
00497     if (N!=0) err=sqrt(static_cast<Float_t>(N));
00498     
00499     Float_t pc=100.*N/totalEvents;
00500     cout<<idhep<<" (id="<<trkstdhepId<<"), N="<<N
00501         <<" +/- "<<errfmt(err)
00502         <<" ("<<pcfmt(pc)<<"%)"<<" "<<special<<endl;
00503   }
00504 
00505 
00506   cout<<endl<<"Particle associated with track:"<<endl;
00507   //loop and print out info
00508   for (mIter it=(--(mOpp.end()));it!=(--(mOpp.begin()));--it) {
00509     string special="";
00510     //Int_t trkstdhepId=it->first;
00511     //Int_t N=it->second;
00512     Int_t trkstdhepId=it->second;
00513     Int_t N=it->first;
00514 
00515     if (abs(trkstdhepId)>90000000){
00516       if (trkstdhepId>0) trkstdhepId-=90000000;
00517       else trkstdhepId+=90000000;
00518       special="What is this???";
00519     }
00520     else if (abs(trkstdhepId)>9000000){
00521       if (trkstdhepId>0) trkstdhepId-=9000000;
00522       else trkstdhepId+=9000000;
00523       special="k->mu";
00524     }
00525     else if (abs(trkstdhepId)>900000){
00526       if (trkstdhepId>0) trkstdhepId-=900000;
00527       else trkstdhepId+=900000;
00528       special="pi->mu";
00529     }
00530     else if (abs(trkstdhepId)>100000){
00531       if (trkstdhepId>0) trkstdhepId-=100000;
00532       else trkstdhepId+=100000;
00533       special="dimuon";
00534     }
00535 
00536     string idhep=general.IdHEPAsString(trkstdhepId);
00537 
00538     Float_t err=1;
00539     if (N!=0) err=sqrt(static_cast<Float_t>(N));
00540     
00541     Float_t pc=100.*N/totalEvents;
00542     cout<<idhep<<" (id="<<trkstdhepId<<"), N="<<N
00543         <<" +/- "<<errfmt(err)
00544         <<" ("<<pcfmt(pc)<<"%)"<<" "<<special<<endl;
00545   }
00546 }


Member Data Documentation

Int_t NuCounter::badSpillCounter

Definition at line 30 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::LIRejectionTest(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), and PrintNMB().

Int_t NuCounter::entry

Definition at line 25 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::MakeFullDST(), NuCounter(), PrintFullDST(), and PrintNMB().

Int_t NuCounter::evtCounter

Definition at line 34 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuDSTAna::BRevAna(), NuAnalysis::ChargeSeparationOneSnarl(), NuDSTAna::ConcatenateDSTs(), NuDSTAna::Contamination(), NuDSTAna::ContaminationNQ(), NuDSTAna::DPSystematic(), NuDSTAna::FDTestAna(), NuDSTAna::FluxComponents(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuDSTAna::MakeCuts(), NuDSTAna::MakeDstPQ(), NuDSTAna::MakeFCTree(), NuAnalysis::MakeFullDST(), NuDSTAna::MakekNNTrainTestSet(), NuDSTAna::MakeMicroDST(), NuDSTAna::MakeMicroDst2010(), NuDSTAna::MakeMicroDst2014(), NuDSTAna::MakeMicroDstFakeData(), NuDSTAna::MakeMicroDstForCSSSystematics(), NuDSTAna::MakeMicroDstHe(), NuDSTAna::MakeMicroDstJJEPresel(), NuDSTAna::MakeMicroDstNC2012(), NuDSTAna::MakeMicroDstWithStdCCRecoAndCuts(), NuDSTAna::MakeRoIDTrainingSet(), NuDSTAna::MakeSelMicroDST(), NuDSTAna::MakeShwEnkNNTestingSet(), NuDSTAna::MakeShwEnkNNTrainingSet(), NuDSTAna::MMRereco(), NuDSTAna::MMTransition(), NuDSTAna::MMTransSME(), NuDSTAna::NDOsc(), NuDSTAna::NDQPRB(), NuDSTAna::NDTestAna(), NuDSTAna::NewFieldAna(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), PrintNMB(), NuDSTAna::QPStudy(), NuDSTAna::RHCTest(), NuDSTAna::SelectorTable(), NuDSTAna::StdCCAna(), NuDSTAna::StdNMBAna(), NuDSTAna::VsTime(), and NuDSTAna::YStudy().

Int_t NuCounter::evtInFidVolCounter

Definition at line 38 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::evtNotIsLI

Definition at line 36 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::evtNotlitime

Definition at line 35 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::LIRejectionTest(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), and PrintNMB().

Int_t NuCounter::evtWithTrkCounter

Definition at line 39 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodBeamDetPOTCountingStage

Definition at line 37 of file NuCounter.h.

Referenced by NuCounter(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodBeamInfoDBCounter

Definition at line 45 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuCounter(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodBestTrkCounter

Definition at line 40 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodBeyondTrkEndCounter

Definition at line 55 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodCoilCurrentSpillCounter

Definition at line 28 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::MakeFullDST(), NuCounter(), PrintFullDST(), and PrintNMB().

Int_t NuCounter::goodDataQualityCounter

Definition at line 43 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodDeltaTCounter

Definition at line 52 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodDirectionCosineCounter

Definition at line 42 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodEvtsPerSlcCounter

Definition at line 53 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodFitChi2Counter

Definition at line 51 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodFitProbCounter

Definition at line 50 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodStdCuts(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodFitSigQPCounter

Definition at line 49 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodStdCuts(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodPIDCounter

Definition at line 54 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodStdCuts(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodRecoEnCounter

Definition at line 46 of file NuCounter.h.

Referenced by NuAnalysis::LIRejectionTest(), NuCounter(), and Print().

Int_t NuCounter::goodShwFractCounter

Definition at line 56 of file NuCounter.h.

Referenced by NuCounter(), and Print().

Int_t NuCounter::goodSpillCounter

Definition at line 29 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::LIRejectionTest(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), and PrintNMB().

Int_t NuCounter::goodTimeToNearestSpillCounter

Definition at line 44 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodTrkPassCounter

Definition at line 41 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().

Int_t NuCounter::goodUVDiffCounter

Definition at line 47 of file NuCounter.h.

Referenced by NuCounter(), and Print().

std::map<Int_t,Int_t> NuCounter::mtrkstdhepId

Definition at line 62 of file NuCounter.h.

Referenced by CountTrkStdhepId(), and PrintStdhepCounter().

Int_t NuCounter::nuNoQCounter

Definition at line 59 of file NuCounter.h.

Referenced by NuAnalysis::MakeFullDST(), NuCounter(), and Print().

Int_t NuCounter::nuNoTrkCounter

Definition at line 60 of file NuCounter.h.

Referenced by NuAnalysis::MakeFullDST(), NuCounter(), and Print().

Int_t NuCounter::nuNQCounter

Definition at line 57 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuDSTAna::BRevAna(), NuAnalysis::ChargeSeparationOneSnarl(), NuDSTAna::ConcatenateDSTs(), NuDSTAna::FDTestAna(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuDSTAna::MakeCuts(), NuDSTAna::MakeDstPQ(), NuDSTAna::MakeFCTree(), NuAnalysis::MakeFullDST(), NuDSTAna::MakeMicroDST(), NuDSTAna::MakeMicroDst2010(), NuDSTAna::MakeMicroDst2014(), NuDSTAna::MakeMicroDstFakeData(), NuDSTAna::MakeMicroDstForCSSSystematics(), NuDSTAna::MakeMicroDstHe(), NuDSTAna::MakeMicroDstJJEPresel(), NuDSTAna::MakeMicroDstNC2012(), NuDSTAna::MakeMicroDstWithStdCCRecoAndCuts(), NuDSTAna::MakeSelMicroDST(), NuDSTAna::MMRereco(), NuDSTAna::MMTransSME(), NuDSTAna::NDQPRB(), NuDSTAna::NDTestAna(), NuDSTAna::NewFieldAna(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), PrintNMB(), NuDSTAna::QPStudy(), NuDSTAna::RHCTest(), NuDSTAna::SelectorTable(), NuDSTAna::StdCCAna(), NuDSTAna::StdNMBAna(), NuDSTAna::VsTime(), and NuDSTAna::YStudy().

Int_t NuCounter::nuPQCounter

Definition at line 58 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuDSTAna::BRevAna(), NuAnalysis::ChargeSeparationOneSnarl(), NuDSTAna::ConcatenateDSTs(), NuDSTAna::FDTestAna(), NuDSTAna::JeffsTestAna(), NuAnalysis::LIRejectionTest(), NuDSTAna::MakeCuts(), NuDSTAna::MakeDstPQ(), NuDSTAna::MakeFCTree(), NuAnalysis::MakeFullDST(), NuDSTAna::MakeMicroDST(), NuDSTAna::MakeMicroDst2010(), NuDSTAna::MakeMicroDst2014(), NuDSTAna::MakeMicroDstFakeData(), NuDSTAna::MakeMicroDstForCSSSystematics(), NuDSTAna::MakeMicroDstHe(), NuDSTAna::MakeMicroDstJJEPresel(), NuDSTAna::MakeMicroDstNC2012(), NuDSTAna::MakeMicroDstWithStdCCRecoAndCuts(), NuDSTAna::MakeSelMicroDST(), NuDSTAna::MMRereco(), NuDSTAna::MMTransSME(), NuDSTAna::NDQPRB(), NuDSTAna::NDTestAna(), NuDSTAna::NewFieldAna(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), PrintNMB(), NuDSTAna::QPStudy(), NuDSTAna::RHCTest(), NuDSTAna::SelectorTable(), NuDSTAna::StdCCAna(), NuDSTAna::StdNMBAna(), NuDSTAna::VsTime(), and NuDSTAna::YStudy().

Float_t NuCounter::totalPot

Definition at line 31 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::LIRejectionTest(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), PrintNMB(), and NuDSTAna::VsTime().

Float_t NuCounter::totalPotBad

Definition at line 33 of file NuCounter.h.

Referenced by NuAnalysis::ChargeSeparationOneSnarl(), NuAnalysis::LIRejectionTest(), NuAnalysis::MakeFullDST(), NuCounter(), Print(), PrintFullDST(), PrintMicroDST(), and PrintNMB().

Float_t NuCounter::totalPotDB

Definition at line 32 of file NuCounter.h.

Referenced by NuCounter(), PrintMicroDST(), and NuDSTAna::VsTime().

Int_t NuCounter::trkInFidVolCounter

Definition at line 48 of file NuCounter.h.

Referenced by NuDemoModule::Ana(), NuAnalysis::ChargeSeparationOneSnarl(), NuCutImps::NuCutsSelection::IsGoodPreSelectionCuts(), NuAnalysis::LIRejectionTest(), NuCounter(), Print(), PrintMicroDST(), and PrintNMB().


The documentation for this class was generated from the following files:
Generated on Fri Oct 10 22:46:01 2014 for loon by  doxygen 1.4.7