#include <NuExtraction.h>
|
|
Definition at line 66 of file NuExtraction.cxx. References MSG. 00067 {
00068 MSG("NuExtraction",Msg::kDebug)
00069 <<"Running NuExtraction Constructor..."<<endl;
00070
00071
00072 MSG("NuExtraction",Msg::kDebug)
00073 <<"Finished NuExtraction Constructor"<<endl;
00074 }
|
|
|
Definition at line 78 of file NuExtraction.cxx. References MSG. 00079 {
00080 MSG("NuExtraction",Msg::kDebug)
00081 <<"Running NuExtraction Destructor..."<<endl;
00082
00083
00084 MSG("NuExtraction",Msg::kDebug)
00085 <<"Finished NuExtraction Destructor"<<endl;
00086 }
|
|
|
These fid vol variables are DEPRECATED Definition at line 1411 of file NuExtraction.cxx. Referenced by ExtractAuxiliaryInfo(). 01412 {
01413
01415 /*
01416 //get an instance of the code library
01417 const NuLibrary& lib=NuLibrary::Instance();
01418
01419 //set fiducial volume variables useful for DST interactive use
01420 if (nu.detector==Detector::kNear) {
01421 nu.fvnmb=lib.cuts.IsInFidVolNDNuMuBar
01422 (nu.xTrkVtx,nu.yTrkVtx,nu.zTrkVtx);
01423 nu.fvpitt=lib.cuts.IsInFidVolPitt
01424 (nu.xTrkVtx,nu.yTrkVtx,nu.zTrkVtx,nu.uTrkVtx,nu.vTrkVtx);
01425 nu.fvcc=lib.cuts.IsInFidVolNDCC0250Std
01426 (nu.xTrkVtx,nu.yTrkVtx,nu.zTrkVtx);
01427 }
01428 else if (nu.detector==Detector::kFar) {
01429 nu.fvcc=lib.cuts.IsInFidVolFDCC0250Std
01430 (nu.planeTrkVtx,nu.rTrkVtx);
01431 //just set these other two to the std CC one
01432 //there are no specialised FD fid vols yet
01433 nu.fvnmb=nu.fvcc;
01434 nu.fvpitt=nu.fvcc;
01435 }
01436 else {
01437 cout<<"Ahhhh, det="<<nu.detector<<endl;
01438 }
01439 */
01440
01441 }
|
|
||||||||||||||||||||
|
Definition at line 108 of file NuExtraction.cxx. References ExtractAdditionalDSTVariables(), ExtractBeamInfoDB(), ExtractDataQuality(), ExtractLITags(), ExtractMinMaxEvtTimes(), ExtractSAFitInfo(), and ExtractTimeToNearestSpill(). Referenced by NuAnalysis::DoExtractions(). 00112 {
00113 //extract a bunch of supplementary information needed for analysis
00114
00115 //get the SA fitter information if it is available
00116 this->ExtractSAFitInfo(pntpSA,nu);
00117 //get the timing info
00118 this->ExtractMinMaxEvtTimes(ntp,evt,nu);
00119 this->ExtractTimeToNearestSpill(nu);
00120 //get the data quality
00121 this->ExtractDataQuality(nu);
00122 this->ExtractLITags(ntp,nu);
00123 this->ExtractBeamInfoDB(nu);//done per snarl but do here as safer
00124 this->ExtractAdditionalDSTVariables(nu);
00125 }
|
|
||||||||||||||||
|
this function groups together the basic extractions Definition at line 90 of file NuExtraction.cxx. References ExtractEvtInfo(), ExtractGeneralInfo(), ExtractShwInfo(), and ExtractTrkInfo(). Referenced by NuAnalysis::ChargeSeparationOneSnarl(), and NuAnalysis::MakeFullDST(). 00093 {
00095
00096 //get the run, snarl, etc info
00097 this->ExtractGeneralInfo(ntp,nu);
00098 //get info from the evt
00099 this->ExtractEvtInfo(evt,nu);
00100 //extract trk info (needed to get best track info)
00101 this->ExtractTrkInfo(ntp,evt,nu);
00102 //extract shw info
00103 this->ExtractShwInfo(ntp,evt,nu);
00104 }
|
|
|
Definition at line 448 of file NuExtraction.cxx. References BeamType::AsString(), VldTimeStamp::AsString(), BeamMonSpill::BeamType(), NuEvent::beamTypeDB, NuEvent::detector, BeamMonSpill::fHornCur, BeamMonSpill::fTortgt, BDSpillAccessor::Get(), VldTimeStamp::GetDate(), VldTimeStamp::GetSeconds(), VldContext::GetTimeStamp(), NuReco::GetVldContext(), NuEvent::goodBeam, NuEvent::hornCur, NuEvent::hornIsReverse, NuLibrary::Instance(), BDSpillAccessor::LoadSpill(), MAXMSG, NuEvent::potDB, NuLibrary::reco, NuEvent::runPeriod, BMSpillAna::SelectSpill(), BMSpillAna::SetSpill(), BMSpillAna::SetTimeDiff(), NuEvent::simFlag, BeamMonSpill::SpillTime(), BMSpillAna::UseDatabaseCuts(), and NuEvent::useDBForBeamInfo. Referenced by NuDemoModule::Ana(), ExtractAuxiliaryInfo(), and NuAnalysis::MakeFullDST(). 00449 {
00450 //check if data
00451 if (nu.simFlag!=SimFlag::kData) {
00452 MAXMSG("NuExtraction",Msg::kInfo,1)
00453 <<"Not extracting BeamInfoDB for simFlag="<<nu.simFlag
00454 <<endl;
00455 return;
00456 }
00457
00458 //check whether to use the database
00459 if (!nu.useDBForBeamInfo) {
00460 MAXMSG("NuExtraction",Msg::kWarning,1)
00461 <<"Not extracting BeamInfoDB (flag set to not query database)"
00462 <<endl;
00463 //leave values as current (for re-reconstruction case)
00464 return;
00465 }
00466
00467 MAXMSG("NuExtraction",Msg::kInfo,1)
00468 <<"Extracting BeamInfoDB for simFlag="<<nu.simFlag
00469 <<", detector="<<nu.detector<<endl;
00470
00471 //do it per snarl (especially for the ND)
00472 MAXMSG("NuExtraction",Msg::kWarning,1)
00473 <<"ExtractBeamInfoDB: this needs to be sorted out properly"<<endl;
00474
00475 //get an instance of the code library
00476 const NuLibrary& lib=NuLibrary::Instance();
00477
00478 //get the event time stamp
00479 VldContext vc=lib.reco.GetVldContext(nu);
00480 VldTimeStamp vts=vc.GetTimeStamp();
00481
00482 //get a spill accessor
00483 BDSpillAccessor &sa = BDSpillAccessor::Get();
00484 const BeamMonSpill *bs = sa.LoadSpill(vts);
00485
00486 //now determine if good beam
00487 Bool_t goodBeam=false;
00488 BMSpillAna bmana;
00489 bmana.UseDatabaseCuts();
00490 bmana.SetSpill(*bs);
00491
00492 //set the time difference to determine if spill is in time
00493 VldTimeStamp delta_vts=vts-bs->SpillTime();
00494 bmana.SetTimeDiff(delta_vts.GetSeconds());
00495
00496 //determine whether to select
00497 if(bmana.SelectSpill()) goodBeam=true;
00498 else goodBeam=false;
00499
00500 //store the variable
00501 nu.goodBeam=goodBeam;
00502
00503 // Extract run period for data from VldContext
00504 static VldTimeStamp* vtsRunIEnd = new VldTimeStamp(2006,4,1,0,0,0);
00505 static VldTimeStamp* vtsRunIIEnd = new VldTimeStamp(2007,8,1,0,0,0);
00506 static VldTimeStamp* vtsRunIIIEnd = new VldTimeStamp(2009,8,1,0,0,0);
00507 static VldTimeStamp* beginRHC = new VldTimeStamp(2009,9,29,0,0,0);
00508 static VldTimeStamp* endRHC = new VldTimeStamp(2010,3,1,0,0,0);
00509
00510 MAXMSG("NuExtraction",Msg::kInfo, 1) << "beginRHC=" << beginRHC->AsString() << ", endRHC=" << endRHC->AsString() << endl;
00511
00512 //store the beam variables (these are junk if the spill is not in time)
00513 nu.hornCur=bs->fHornCur;
00514 nu.beamTypeDB=bs->BeamType();
00515 nu.potDB=bs->fTortgt;
00516
00517 if(vts.GetDate()<vtsRunIEnd->GetDate()) nu.runPeriod = 1;
00518 else if(vts.GetDate()<vtsRunIIEnd->GetDate()) nu.runPeriod = 2;
00519 else if(vts.GetDate()<vtsRunIIIEnd->GetDate()) nu.runPeriod = 3;
00520 else nu.runPeriod = 4;
00521
00522 // Check for RHC
00523 if (vts.GetDate() >= beginRHC->GetDate() &&
00524 vts.GetDate() < endRHC->GetDate() ) {
00525 MAXMSG("NuExtraction",Msg::kInfo, 10) << "Found RHC date: " << vts.AsString() << endl;
00526 nu.hornIsReverse = true;
00527 nu.hornCur *= -1;
00528 if (nu.beamTypeDB == BeamType::kL010z185i) {
00529 nu.beamTypeDB = BeamType::kL010z185i_rev;
00530 }
00531 else {
00532 MAXMSG("NuExtraction",Msg::kInfo, 50) << "RHC event has non-rev beamtype: "
00533 << BeamType::AsString(static_cast<BeamType::BeamType_t>(nu.beamTypeDB))
00534 << " (" << nu.beamTypeDB << ")" << endl;
00535 }
00536 }
00537 else {
00538 MAXMSG("NuExtraction",Msg::kInfo, 10) << "Found FHC date: " << vts.AsString() << endl;
00539 nu.hornIsReverse = false;
00540 }
00541
00542
00543 MAXMSG("NuExtraction",Msg::kInfo,10)
00544 <<"Extracting BeamInfoDB found"
00545 << " goodBeam=" << nu.goodBeam
00546 << ", hornCur=" << nu.hornCur
00547 << ", beamTypeDB=" << nu.beamTypeDB
00548 << ", potDB=" << nu.potDB
00549 << ", hornIsReverse="<< (nu.hornIsReverse?"Yes":"No")
00550 << ", runPeriod=" << nu.runPeriod
00551 << endl;
00552
00553
00554
00555 //other possibilities
00556 //Float_t hbw=bs->fProfWidX*1000.;//make it in mm
00557 //Float_t vbw=bs->fProfWidY*1000.;//make it in mm
00558 //Float_t hpos1=bs->fTargProfX*1000.;//make it in mm
00559 //Float_t vpos1=bs->fTargProfY*1000.;//make it in mm
00560 //BeamType::BeamType_t beamType=bs->BeamType();
00561 //Bool_t horn_on = bs->GetStatusBits().horn_on;
00562 //Bool_t target_in = bs->GetStatusBits().target_in;
00563 }
|
|
|
Definition at line 357 of file NuExtraction.cxx. References NuEvent::coilCurrent, NuEvent::detector, CoilTools::GetCoilState(), BfldDbiCoilState::GetCurrent(), Dcs_Mag_Near::GetCurrent(), CoilTools::GetMagNear(), NuReco::GetVldContext(), CoilTools::Instance(), NuLibrary::Instance(), MAXMSG, NuLibrary::reco, NuEvent::simFlag, and NuEvent::useDBForDataQuality. Referenced by ExtractCoilInfo(). 00358 {
00359 //return if not data
00360 if (nu.simFlag!=SimFlag::kData) {
00361 MAXMSG("NuExtraction",Msg::kInfo,1)
00362 <<"Not extracting CoilCurrent for simFlag="<<nu.simFlag<<endl;
00363 return;
00364 }
00365
00366 //check whether to use the database
00367 if (!nu.useDBForDataQuality) {//use data quality flag
00368 MAXMSG("NuExtraction",Msg::kWarning,1)
00369 <<"Not extracting CoilCurrent (flag set to not query database)"
00370 <<endl;
00371 //leave values as they are (for re-reconstruction case)
00372 return;
00373 }
00374
00375 //get an instance of the code library
00376 const NuLibrary& lib=NuLibrary::Instance();
00377
00378 //get vc
00379 VldContext vc=lib.reco.GetVldContext(nu);
00380
00381 //get the current, depending on detector
00382 if (nu.detector==Detector::kNear) {
00383 const Dcs_Mag_Near* magnear=CoilTools::Instance().GetMagNear(vc);
00384 if (magnear) nu.coilCurrent=magnear->GetCurrent();
00385 else {
00386 MAXMSG("NuExtraction",Msg::kWarning,10)
00387 <<"No rows in Dcs_Mag_Near DB table for VldContext="<<vc
00388 <<" setting coilCurrent=0"<<endl;
00389 nu.coilCurrent=0;//set to default value
00390 }
00391 }
00392 else if (nu.detector==Detector::kFar) {
00393 const BfldDbiCoilState* coilstate1=
00394 CoilTools::Instance().GetCoilState(vc,1);
00395 const BfldDbiCoilState* coilstate2=
00396 CoilTools::Instance().GetCoilState(vc,2);
00397 //ahh, two values, one slot ... take average
00398 if (coilstate1 && coilstate2) {
00399 nu.coilCurrent=0.5*(coilstate1->GetCurrent()+
00400 coilstate2->GetCurrent());
00401 }
00402 else {
00403 MAXMSG("NuExtraction",Msg::kInfo,10)
00404 <<"Insufficient rows in BfldDbiCoilState DB table, VldContext="
00405 <<vc<<" setting coilCurrent=0"<<endl;
00406 nu.coilCurrent=0;//set to default value
00407 }
00408 }
00409 else cout<<"Ahhh, det="<<nu.detector<<endl;
00410
00411 //The old slow way:
00412 //DbiResultPtr<Dcs_Mag_Near> ptr(vc);
00413 //if(ptr.GetNumRows()){
00414 //const Dcs_Mag_Near* row=ptr.GetRow(0);
00415 //nu.coilCurrent=row->GetCurrent();
00416 //}
00417 //else {
00418 //MAXMSG("NuExtraction",Msg::kInfo,10)
00419 // <<"No rows in Dcs_Mag_Near DB table for VldContext="<<vc
00420 // <<" setting coilCurrent=0"<<endl;
00421 //nu.coilCurrent=0;//set to default value
00422 //}
00423
00424 MAXMSG("NuExtraction",Msg::kInfo,10)
00425 <<"Extracted CoilCurrent="<<nu.coilCurrent<<endl;
00426 }
|
|
|
Definition at line 303 of file NuExtraction.cxx. References NuEvent::coilIsOk, NuEvent::coilIsReverse, ExtractCoilCurrent(), NuUtilities::GetDigit(), NuReco::GetVldContext(), NuLibrary::Instance(), CoilTools::IsOK(), CoilTools::IsReverse(), MAXMSG, NuLibrary::reco, NuEvent::run, NuEvent::simFlag, and NuEvent::useDBForDataQuality. Referenced by NuAnalysis::ChargeSeparationOneSnarl(), and NuAnalysis::MakeFullDST(). 00304 {
00305 //return if not data
00306 if (nu.simFlag!=SimFlag::kData) {
00307 MAXMSG("NuExtraction",Msg::kInfo,1)
00308 <<"Not extracting Coil info for simFlag="<<nu.simFlag<<endl;
00309 //set these to be the most likely values
00310 nu.coilIsOk=true;
00311 int fieldNo = NuUtilities::GetDigit(nu.run, 5);
00312 if (fieldNo == 1 || fieldNo == 3) {
00313 MAXMSG("NuExtraction",Msg::kInfo,1)
00314 << "Found field id #" << fieldNo << ", setting coil current to forward."
00315 <<endl;
00316 nu.coilIsReverse=false;
00317 }
00318 else if (fieldNo == 2 || fieldNo == 4) {
00319 MAXMSG("NuExtraction",Msg::kInfo,1)
00320 << "Found field id #" << fieldNo << ", setting coil current to reverse."
00321 <<endl;
00322 nu.coilIsReverse=true;
00323 }
00324 else {
00325 MAXMSG("NuExtraction",Msg::kWarning,1)
00326 << "Don't recognize field id #" << fieldNo << ", only 1, 2, 3, 4 are allowed values. Assuming field is forward."
00327 <<endl;
00328 nu.coilIsReverse=false;
00329 }
00330 return;
00331 }
00332
00333 //check whether to use the database
00334 if (!nu.useDBForDataQuality) {//use data quality flag
00335 MAXMSG("NuExtraction",Msg::kWarning,1)
00336 <<"Not extracting CoilCurrent (flag set to not query database)"
00337 <<endl;
00338 //leave values as current (for re-reconstruction case)
00339 return;
00340 }
00341
00342 //get an instance of the code library
00343 const NuLibrary& lib=NuLibrary::Instance();
00344 VldContext vc=lib.reco.GetVldContext(nu);
00345
00346 //extract the information about the coil using CoilTools
00347 //this is much faster than using the database
00348 nu.coilIsOk=CoilTools::IsOK(vc);
00349 nu.coilIsReverse=CoilTools::IsReverse(vc);
00350
00351 //get the coil current here too
00352 this->ExtractCoilCurrent(nu);
00353 }
|
|
|
Definition at line 618 of file NuExtraction.cxx. References NuEvent::deltaNanoSecToSpillGPS, NuEvent::deltaSecToSpillGPS, DbuNearRunQuality::GetColdCrates(), DbuFarRunQuality::GetCrateMask(), VldContext::GetDetector(), DbuFarRunQuality::GetGoodSnarls(), DbuFarRunQuality::GetMaxSnarlRate(), DbuFarRunQuality::GetMedianSnarlRate(), VldTimeStamp::GetNanoSec(), SpillServerMonFinder::GetNearestSpill(), DbiResultPtr< T >::GetNumRows(), DbiResultPtr< T >::GetRow(), VldTimeStamp::GetSec(), DbuNearRunQuality::GetSnarlRateMax(), DbuNearRunQuality::GetSnarlRateMedian(), SpillServerMon::GetSpillTime(), SpillServerMon::GetSpillTimeError(), SpillServerMon::GetSpillType(), DbuNearRunQuality::GetSubrunLength(), DbuFarRunQuality::GetTimeFrames(), VldContext::GetTimeStamp(), DbuNearRunQuality::GetTriggersSpill(), NuReco::GetVldContext(), NuEvent::gpsError, NuEvent::gpsSpillType, SpillServerMonFinder::Instance(), NuLibrary::Instance(), DataUtil::IsGoodData(), DataUtil::IsGoodDataCOIL(), DataUtil::IsGoodDataGPS(), DataUtil::IsGoodDataHV(), NuEvent::isGoodDataQuality, NuEvent::isGoodDataQualityCOIL, NuEvent::isGoodDataQualityGPS, NuEvent::isGoodDataQualityHV, NuEvent::isGoodDataQualityRUN, DataUtil::IsGoodDataRUN(), MAXMSG, NuEvent::numActiveCrates, NuEvent::numGoodSnarls, NuEvent::numTimeFrames, NuLibrary::reco, NuEvent::simFlag, NuEvent::snarlRateMax, NuEvent::snarlRateMedian, and NuEvent::useDBForDataQuality. Referenced by NuDemoModule::Ana(), ExtractAuxiliaryInfo(), NuAnalysis::LIRejectionTest(), and NuAnalysis::MakeFullDST(). 00619 {
00620 //return if not data
00621 if (nu.simFlag!=SimFlag::kData) {
00622 MAXMSG("NuExtraction",Msg::kInfo,1)
00623 <<"Not extracting Data Quality info for simFlag="<<nu.simFlag<<endl;
00624 //set these to be the most likely values
00625 nu.isGoodDataQuality = 1;
00626 nu.isGoodDataQualityRUN = 1;
00627 nu.isGoodDataQualityCOIL = 1;
00628 nu.isGoodDataQualityHV = 1;
00629 nu.isGoodDataQualityGPS = 1;
00630 return;
00631 }
00632
00633 //check whether to use the database
00634 if (!nu.useDBForDataQuality) {
00635 MAXMSG("NuExtraction",Msg::kWarning,1)
00636 <<"Not extracting DataQuality"
00637 <<" (flag set to not query database)"
00638 <<", isGoodDataQuality="<<nu.isGoodDataQuality
00639 <<endl;
00640 //nu.isGoodDataQuality=leave as current value
00641 return;
00642 }
00643
00644 // get validity context from ntuple record
00645 //const RecCandHeader* ntpHeader = &(ntp.GetHeader());
00646 //VldContext cx = ntpHeader->GetVldContext();
00647 //get an instance of the code library
00648 const NuLibrary& lib=NuLibrary::Instance();
00649 VldContext cx = lib.reco.GetVldContext(nu);
00650
00651 // check data quality
00652 // ==================
00653 // run DataUtil methods
00654
00655 nu.isGoodDataQuality = DataUtil::IsGoodData(cx);
00656 nu.isGoodDataQualityRUN = DataUtil::IsGoodDataRUN(cx);
00657 nu.isGoodDataQualityCOIL = DataUtil::IsGoodDataCOIL(cx);
00658 nu.isGoodDataQualityHV = DataUtil::IsGoodDataHV(cx);
00659 nu.isGoodDataQualityGPS = DataUtil::IsGoodDataGPS(cx);
00660
00661 // extract run quality variables
00662 // =============================
00663
00664 // far detector - search DbuFarRunQuality table
00665 if( cx.GetDetector() == Detector::kFar ) {
00666 // perform database query
00667 DbiResultPtr<DbuFarRunQuality> farquery("DBUFARRUNQUALITY",cx,0);
00668
00669 if( farquery.GetNumRows()>0 ){
00670 const DbuFarRunQuality* rowptr = farquery.GetRow(0);
00671 nu.numActiveCrates = rowptr->GetCrateMask();
00672 nu.numTimeFrames = rowptr->GetTimeFrames();
00673 nu.numGoodSnarls = rowptr->GetGoodSnarls();
00674 nu.snarlRateMedian = rowptr->GetMedianSnarlRate();
00675 nu.snarlRateMax = rowptr->GetMaxSnarlRate();
00676 }
00677 }
00678
00679 // near detector
00680 if( cx.GetDetector() == Detector::kNear ) {
00681 //perform database query
00682 DbiResultPtr<DbuNearRunQuality> nearquery("DBUNEARRUNQUALITY",cx,0);
00683
00684 if( nearquery.GetNumRows()>0 ){
00685 const DbuNearRunQuality* rowptr = nearquery.GetRow(0);
00686 nu.numActiveCrates = 8 - rowptr->GetColdCrates();
00687 nu.numTimeFrames = rowptr->GetSubrunLength();
00688 nu.numGoodSnarls = rowptr->GetTriggersSpill();
00689 nu.snarlRateMedian = rowptr->GetSnarlRateMedian();
00690 nu.snarlRateMax = rowptr->GetSnarlRateMax();
00691 }
00692 }
00693
00694
00695 // extract gps data
00696 // ================
00697 // use SpillServerMonFinder to access nearest spill monitoring block,
00698 // only necessary for far detector
00699 if( cx.GetDetector() == Detector::kFar ) {
00700
00701 SpillServerMonFinder& spillFinder = SpillServerMonFinder::Instance();
00702 const SpillServerMon& nearestSpill = spillFinder.GetNearestSpill(cx);
00703 VldTimeStamp dt = nearestSpill.GetSpillTime()-cx.GetTimeStamp();
00704
00705 nu.deltaSecToSpillGPS = dt.GetSec();
00706 nu.deltaNanoSecToSpillGPS = dt.GetNanoSec();
00707 nu.gpsError = nearestSpill.GetSpillTimeError();
00708 nu.gpsSpillType = nearestSpill.GetSpillType();
00709 }
00710
00711 // coil currents
00712 // =============
00713 // set this information in ExtractCoilInfo() method
00714 }
|
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
Note: it is ok to run this on MC (required for studies) Definition at line 430 of file NuExtraction.cxx. References NtpStRecord::evthdr, NuReco::FDRCBoundary(), NuLibrary::Instance(), LISieve::IsLI(), NuEvent::isLI, NuEvent::litag, NtpSREventSummary::litime, NuEvent::litime, and NuLibrary::reco. Referenced by NuDemoModule::Ana(), and ExtractAuxiliaryInfo(). 00431 {
00433
00434 //get an event header
00435 const NtpSREventSummary& evthdr=ntp.evthdr;
00436
00437 //get an instance of the code library
00438 const NuLibrary& lib=NuLibrary::Instance();
00439
00440 //extract all the possible LI variables
00441 nu.litime=evthdr.litime;
00442 nu.isLI=LISieve::IsLI(ntp);
00443 nu.litag=lib.reco.FDRCBoundary(nu);
00444 }
|
|
||||||||||||||||
|
Definition at line 1314 of file NuExtraction.cxx. References NuEvent::calcMajCurv, MajorityCurvature::CurvatureImproved(), NuReco::GetTrackWithIndexX(), NuLibrary::Instance(), MajCInfo::jitter, NuEvent::jitter1, NuEvent::jitter2, NuEvent::jitter3, MajCInfo::jPID, NuEvent::jPID1, NuEvent::jPID2, NuEvent::jPID3, MajCInfo::majC, NuLibrary::majC, NuEvent::majC1, NuEvent::majC2, NuEvent::majC3, MAXMSG, NuEvent::ntrk, NuLibrary::reco, NuReco::SetBestTrkMajorityCurvature(), MajCInfo::smoothMajC, NuEvent::smoothMajC1, NuEvent::smoothMajC2, NuEvent::smoothMajC3, and NuEvent::trkExists. Referenced by NuAnalysis::ExtractPIDsAndWeights(). 01317 {
01318 //check if a track exists
01319 if (nu.ntrk<=0) {
01320 MAXMSG("NuReco",Msg::kInfo,3)
01321 <<"ExtractMajorityCurvature: no tracks so nothing to do"
01322 <<", ntrk="<<nu.ntrk<<endl;
01323 nu.trkExists=false;
01324 return;
01325 }
01326
01327 //check if flag is set to not calc maj curv
01328 if (!nu.calcMajCurv) {
01329 MAXMSG("NuReco",Msg::kWarning,1)
01330 <<"ExtractMajorityCurvature: flag set to calcMajCurv="
01331 <<nu.calcMajCurv<<endl;
01332 return;
01333 }
01334
01335 //get an instance of the code library
01336 const NuLibrary& lib=NuLibrary::Instance();
01337
01338 //get pointer to 1st trk
01339 const NtpSRTrack* ptrk=lib.reco.GetTrackWithIndexX(ntp,evt,0);
01340
01341 //check if track exists
01342 if (ptrk) {
01343 //get a reference
01344 const NtpSRTrack& trk=*ptrk;
01345
01346 //get an instance of the code library
01347 const NuLibrary& lib=NuLibrary::Instance();
01348 const MajCInfo majCInfo=lib.majC.CurvatureImproved(&trk);
01349 nu.jitter1=majCInfo.jitter;
01350 nu.jPID1=majCInfo.jPID;
01351 nu.majC1=majCInfo.majC;
01352 //nu.majCRatio1=majCInfo.majCRatio;
01353 //nu.rms1=majCInfo.rms;
01354 //nu.simpleMajC1=majCInfo.simpleMajC;
01355 nu.smoothMajC1=majCInfo.smoothMajC;
01356 //nu.sqJitter1=majCInfo.sqJitter;
01357 //nu.totWidth1=majCInfo.totWidth;
01358 }
01359
01360 //get pointer to 2nd trk
01361 ptrk=lib.reco.GetTrackWithIndexX(ntp,evt,1);
01362
01363 //check if track exists
01364 if (ptrk) {
01365 //get a reference
01366 const NtpSRTrack& trk=*ptrk;
01367
01368 //get an instance of the code library
01369 const NuLibrary& lib=NuLibrary::Instance();
01370 const MajCInfo majCInfo=lib.majC.CurvatureImproved(&trk);
01371 nu.jitter2=majCInfo.jitter;
01372 nu.jPID2=majCInfo.jPID;
01373 nu.majC2=majCInfo.majC;
01374 //nu.majCRatio2=majCInfo.majCRatio;
01375 //nu.rms2=majCInfo.rms;
01376 //nu.simpleMajC2=majCInfo.simpleMajC;
01377 nu.smoothMajC2=majCInfo.smoothMajC;
01378 //nu.sqJitter2=majCInfo.sqJitter;
01379 //nu.totWidth2=majCInfo.totWidth;
01380 }
01381
01383 //get pointer to 3rd trk
01384 ptrk=lib.reco.GetTrackWithIndexX(ntp,evt,2);
01385
01386 //check if track exists
01387 if (ptrk) {
01388 //get a reference
01389 const NtpSRTrack& trk=*ptrk;
01390
01391 //get an instance of the code library
01392 const NuLibrary& lib=NuLibrary::Instance();
01393 const MajCInfo majCInfo=lib.majC.CurvatureImproved(&trk);
01394 nu.jitter3=majCInfo.jitter;
01395 nu.jPID3=majCInfo.jPID;
01396 nu.majC3=majCInfo.majC;
01397 //nu.majCRatio3=majCInfo.majCRatio;
01398 //nu.rms3=majCInfo.rms;
01399 //nu.simpleMajC3=majCInfo.simpleMajC;
01400 nu.smoothMajC3=majCInfo.smoothMajC;
01401 //nu.sqJitter3=majCInfo.sqJitter;
01402 //nu.totWidth3=majCInfo.totWidth;
01403 }
01404
01405 //copy across the MajCurv variables for the best track
01406 lib.reco.SetBestTrkMajorityCurvature(nu);
01407 }
|
|
||||||||||||||||
|
Definition at line 1445 of file NuExtraction.cxx. References NtpSRTimeStatus::crate_t0_ns, NuEvent::crateT0, NuEvent::detector, NuEvent::evt, NtpSRStrip::index, MAXMSG, NuEvent::medianTime, NtpSREvent::nstrip, NtpSRStrip::ph0, NtpSRStrip::ph1, NtpSRStrip::plane, NtpSRPulseHeight::raw, NuEvent::run, NuEvent::simFlag, NuEvent::snarl, NtpSREvent::stp, NtpStRecord::stp, NtpSRStrip::strip, striptime, NtpSRStrip::time0, NtpSRStrip::time1, NuEvent::timeEvtMax, NuEvent::timeEvtMin, NuEvent::timeNanoSec, and NtpStRecord::timestatus. Referenced by NuDemoModule::Ana(), ExtractAuxiliaryInfo(), and NuAnalysis::LIRejectionTest(). 01448 {
01449 //get a multiset to hold all the strip times
01450 multiset<Double_t> times;
01451 const TClonesArray& stpTca=(*ntp.stp);
01452
01453 Double_t timemax=-1.e10;
01454 Double_t timemin=1.e10;
01455
01456 MsgFormat ffmt("%9.9f");
01457
01458 //Extract the crate t0:
01459
01460 NtpSRTimeStatus timeStatus = ntp.timestatus;
01461 nu.crateT0 = timeStatus.crate_t0_ns * Munits::ns;
01462 // cout << "Extracted crate t0: " << nu.crateT0 << endl;
01463
01464 /*
01465 Double_t snarlTime=(nu.timeNanoSec*(Munits::ns));
01466 if (snarlTime>0.999999981 && snarlTime<0.999999983) {
01467 const Int_t numStps=stpTca.GetEntriesFast();
01468 Int_t counter=0;
01469 //loop over strips in snarl
01470 for (Int_t i=0;i<numStps;++i) {
01471 const NtpSRStrip* pstp=
01472 dynamic_cast<NtpSRStrip*>(stpTca[i]);
01473 const NtpSRStrip& stp=(*pstp);
01474
01475 if (stp.time1>0.000029999) {
01476 MAXMSG("NuExtraction",Msg::kInfo,10000)
01477 <<"run="<<nu.run<<", subrun="<<nu.subRun
01478 <<", snarl="<<nu.snarl<<", i="<<i
01479 <<", count="<<counter<<", evt="<<nu.evt
01480 <<", ind="<<stp.index<<", s,pl="<<stp.strip<<","<<stp.plane
01481 <<endl
01482 <<" t1="<<ffmt(stp.time1)
01483 <<", snlTime="<<ffmt(snarlTime)
01484 <<", raw="<<stp.ph1.raw
01485 <<", sigC="<<stp.ph1.sigcor
01486 <<endl;
01487 }
01488 counter++;
01489 }
01490 }
01491 */
01492
01493 MAXMSG("NuExtraction",Msg::kDebug,200)
01494 <<"evt.nstrip="<<evt.nstrip<<endl;
01495 for (Int_t i=0;i<evt.nstrip;i++) {
01496 //check for bug where strip index is -1
01497 if (evt.stp[i]<0) {
01498 MAXMSG("MeuCuts",Msg::kInfo,50)
01499 <<"Skipping strip with evt.stp[i]="<<evt.stp[i]<<endl;
01500 continue;
01501 }
01502
01503 const NtpSRStrip& stp=
01504 *(dynamic_cast<NtpSRStrip*>(stpTca[evt.stp[i]]));
01505
01506 Double_t snarlTime=(nu.timeNanoSec*(Munits::ns));
01507 Double_t striptime=-999;
01508
01509 //get the min/max time
01510 //code from MadTVAnalysis
01511 if (nu.detector==Detector::kNear) {
01512 if (nu.simFlag==SimFlag::kMC &&
01513 snarlTime>0.999999981 && snarlTime<0.999999983) {
01514 MAXMSG("NuExtraction",Msg::kWarning,1)
01515 <<"Deal with odd times: setting fNanoSec to zero, snarlTime="
01516 <<ffmt(snarlTime)<<endl;
01517 snarlTime=0;
01518 }
01519
01520 //get the time relative to the snarl time
01521 striptime=stp.time1-snarlTime;
01522
01523 //check if min/max
01524 if(striptime<=timemin && striptime!=-999) timemin=striptime;
01525 if(striptime>=timemax) timemax=striptime;
01526 }
01527 else if (nu.detector==Detector::kFar) {
01528 //get the times relative to the snarl time
01529 Double_t striptime1=stp.time1-snarlTime;
01530 Double_t striptime0=stp.time0-snarlTime;
01531 striptime=-999;
01532 if(striptime1>0 && striptime0<0) striptime=striptime1;
01533 if(striptime0>0 && striptime1<0) striptime=striptime0;
01534 if(striptime0>0 && striptime1>0) striptime=(striptime0+
01535 striptime1)/2.;
01536
01537 //check if min/max
01538 if(striptime<=timemin && striptime!=-999) timemin=striptime;
01539 if(striptime>=timemax) timemax=striptime;
01540 }
01541 else cout<<"Ahhh, detector not known"<<endl;
01542
01543 Double_t time=stp.time0;
01544 if (time<0 || time>1) time=stp.time1;
01545
01546 if (time>0 && time<=1) {
01547 times.insert(time);
01548 }
01549 //else just don't put the time in the map - clearly rubbish
01550 if (nu.detector==Detector::kNear) {
01551 MAXMSG("NuExtraction",Msg::kDebug,1000)
01552 <<"i="<<stp.index<<", s="<<stp.strip<<", t1="<<ffmt(stp.time1)
01553 <<", tmn="<<ffmt(timemin)<<", tmx="<<ffmt(timemax)
01554 <<", snlTime="<<ffmt(snarlTime)<<endl;
01555 }
01556 else {
01557 MAXMSG("NuExtraction",Msg::kDebug,1000)
01558 <<"i="<<stp.index<<", s="<<stp.strip
01559 <<", t0="<<ffmt(stp.time0)<<", t1="<<ffmt(stp.time1)
01560 <<", tmn="<<ffmt(timemin)<<", tmx="<<ffmt(timemax)
01561 <<", snlTime="<<ffmt(snarlTime)
01562 //<<", pl="<<stp.plane
01563 //<<", sigC="<<stp.ph1.sigcor<<", tpos="<<stp.tpos<<endl;
01564 <<endl;
01565 }
01566 }
01567
01568 //get the median time from the map
01569 multiset<Double_t>::const_iterator it=times.begin();
01570 advance(it,times.size()/2);
01571 Double_t medianTime=*it;
01572 MAXMSG("NuExtraction",Msg::kDebug,100)
01573 <<"Median time="<<medianTime<<endl;
01574
01575 //set the NuEvent variables
01576 nu.medianTime=medianTime;
01577 nu.timeEvtMin=timemin;
01578 nu.timeEvtMax=timemax;
01579
01580
01582 //sanity check and debug printout
01583 if ((timemin+nu.crateT0)<0 || (nu.run==36608 && nu.snarl==42717 && false)) {
01584 //Bad time, run=36608, snarl=42717, evt=0
01585 Double_t timemax=-1.e-10;
01586 Double_t timemin=1.e10;
01587
01588 MAXMSG("NuExtraction",Msg::kError,1000)
01589 <<"Bad time, run="<<nu.run<<", snarl="<<nu.snarl
01590 <<", evt="<<nu.evt<<endl;
01591 for (Int_t i=0;i<evt.nstrip;i++) {
01592 //check for bug where strip index is -1
01593 if (evt.stp[i]<0) {
01594 MAXMSG("MeuCuts",Msg::kInfo,50)
01595 <<"Skipping strip with evt.stp[i]="<<evt.stp[i]<<endl;
01596 continue;
01597 }
01598
01599 const NtpSRStrip& stp=
01600 *(dynamic_cast<NtpSRStrip*>(stpTca[evt.stp[i]]));
01601
01602 Double_t snarlTime=(nu.timeNanoSec*(Munits::ns));
01603 Double_t striptime=-999;
01604
01605 //get the min/max time
01606 //code from MadTVAnalysis
01607 if (nu.detector==Detector::kNear) {
01608 //get the time relative to the snarl time
01609 striptime=stp.time1-snarlTime;
01610
01611 //check if min/max
01612 if(striptime<=timemin) timemin=striptime;
01613 if(striptime>=timemax) timemax=striptime;
01614 }
01615 else if (nu.detector==Detector::kFar) {
01616 //get the times relative to the snarl time
01617 Double_t striptime1=stp.time1-snarlTime;
01618 Double_t striptime0=stp.time0-snarlTime;
01619 striptime=-999;
01620 if(striptime1>0 && striptime0<0) striptime=striptime1;
01621 if(striptime0>0 && striptime1<0) striptime=striptime0;
01622 if(striptime0>0 && striptime1>0) striptime=(striptime0+
01623 striptime1)/2.;
01624
01625 //check if min/max
01626 if(striptime<=timemin) timemin=striptime;
01627 if(striptime>=timemax) timemax=striptime;
01628 }
01629 else cout<<"Ahhh, detector not known"<<endl;
01630
01631 MAXMSG("NuExtraction",Msg::kInfo,1000)
01632 <<"strip="<<stp.strip
01633 <<", t0="<<ffmt(stp.time0)<<", t1="<<ffmt(stp.time1)
01634 <<", stp.index="<<stp.index
01635 <<endl
01636 <<" tmn="<<ffmt(timemin)<<", tmx="<<ffmt(timemax)
01637 <<", stime="<<ffmt(striptime)
01638 <<", snlTime="<<ffmt(snarlTime)<<endl
01639 <<" plane="<<stp.plane
01640 <<", ph0.raw="<<stp.ph0.raw
01641 <<", ph1.raw="<<stp.ph1.raw
01642 <<endl;
01643 }
01644 }
01645 }
|
|
||||||||||||||||
|
Definition at line 1648 of file NuExtraction.cxx. References ANtpEventInfoNC::closeTimeDeltaZ, NuEvent::closeTimeDeltaZ, det, ANtpTrackInfoNC::dtdz, NuEvent::dtdz, ANtpEventInfoNC::edgeActivityPH, NuEvent::edgeActivityPH, ANtpEventInfoNC::edgeActivityStrips, NuEvent::edgeActivityStrips, ANtpTrackInfo::endMetersToCloseEdge, NuEvent::endMetersToCloseEdge, ANtpInfoObjectFillerNC::FillInformation(), ANtpRecoNtpManipulator::GetClusterArray(), VldContext::GetDetector(), ANtpRecoNtpManipulator::GetStripArray(), RecRecordImp< T >::GetVldContext(), ANtpInfoObjectFillerNC::InitializekNN(), ANtpEventInfoNC::minTimeSeparation, NuEvent::minTimeSeparation, MSG, ANtpEventInfoNC::oppEdgePH, NuEvent::oppEdgePH, ANtpEventInfoNC::oppEdgeStrips, NuEvent::oppEdgeStrips, ANtpTruthInfoBeam::Reset(), ANtpShowerInfoNC::Reset(), ANtpTrackInfoNC::Reset(), ANtpEventInfoNC::Reset(), ANtpInfoObjectFillerNC::SetClusterArray(), ANtpInfoObjectFillerNC::SetDetector(), ANtpRecoNtpManipulator::SetPrimaryShowerCriteria(), ANtpRecoNtpManipulator::SetPrimaryTrackCriteria(), ANtpRecoNtpManipulator::SetRecord(), ANtpInfoObjectFiller::SetStripArray(), ANtpTrackInfo::traceEndZ, NuEvent::traceEndZ, ANtpShowerInfoNC::transverseRMSU, NuEvent::transverseRMSU, ANtpShowerInfoNC::transverseRMSV, NuEvent::transverseRMSV, ANtpTrackInfo::vtxMetersToCloseEdge, ANtpEventInfo::vtxMetersToCloseEdge, NuEvent::vtxMetersToCloseEdgeEvt, NuEvent::vtxMetersToCloseEdgeTrk, ANtpTrackInfo::vtxMetersToCoil, ANtpEventInfo::vtxMetersToCoil, NuEvent::vtxMetersToCoilEvt, and NuEvent::vtxMetersToCoilTrk. Referenced by NuAnalysis::MakeFullDST(). 01651 {
01652 // Protection against reset of gDirectory
01653 // The call to InitializekNN() uses another file.
01654 TDirectory *tmpd = gDirectory;
01655 MSG("NuExtraction",Msg::kDebug) << "Start ExtractNCInfo, gDirectory is : ";
01656 //gDirectory->pwd();
01657
01658 // See AnalysisNtuple/Module/CondensedNtpModuleNC::Ana()
01659 // create the ntpManipulator object
01660 static ANtpInfoObjectFillerNC *InfoFiller = new ANtpInfoObjectFillerNC();
01661 static ANtpRecoNtpManipulator *ntpManipulator = new ANtpRecoNtpManipulator();
01662 NtpStRecord *tryRec = const_cast<NtpStRecord*>(pntp);
01663 ntpManipulator->SetRecord(tryRec);
01664 static ANtpEventInfoNC *EventInfo = new ANtpEventInfoNC();
01665 static ANtpTrackInfoNC *TrackInfo = new ANtpTrackInfoNC();
01666 static ANtpShowerInfoNC *ShowerInfo = new ANtpShowerInfoNC();
01667 static ANtpTruthInfoBeam *TruthInfo = new ANtpTruthInfoBeam();
01668
01669 // Extract Header Info
01670 //====================
01671 // Detector - 1 near, 2 far - needed for filling the HeaderInfo
01672 Detector::Detector_t det = tryRec->GetVldContext()->GetDetector();
01673 InfoFiller->SetDetector(det);
01674 InfoFiller->SetStripArray(ntpManipulator->GetStripArray());
01675 InfoFiller->SetClusterArray(ntpManipulator->GetClusterArray());
01676
01677 // Extract Event/Track/Shower/Truth Info
01678 //======================================
01679 //set up which flags you want to use to determine the primary shower or track
01680 //a value of 0 for a flag means it will not be used
01681 ntpManipulator->SetPrimaryTrackCriteria(0,1,0); // nplanes, length, total pulse height
01682 ntpManipulator->SetPrimaryShowerCriteria(0,1); // nplanes, total pulse height
01683
01684
01685 // Initialize kNN, only once per snarl
01686 //====================================
01687 InfoFiller->InitializekNN(ntpManipulator);
01688
01689 // Reset the Info Objects
01690 //=======================
01691 EventInfo->Reset();
01692 TrackInfo->Reset();
01693 ShowerInfo->Reset();
01694 TruthInfo->Reset();
01695
01696 // Fill event, track, shower and truth and calculate variables needed
01697 //===================================================================
01698 InfoFiller->FillInformation(eventNb, ntpManipulator, EventInfo, TrackInfo, ShowerInfo, TruthInfo);
01699
01700 // Fill the NuEvent variables
01701 //===========================
01702 // event
01703 nu.closeTimeDeltaZ = EventInfo->closeTimeDeltaZ;
01704 nu.edgeActivityStrips = EventInfo->edgeActivityStrips;
01705 nu.edgeActivityPH = EventInfo->edgeActivityPH;
01706 nu.oppEdgeStrips = EventInfo->oppEdgeStrips;
01707 nu.oppEdgePH = EventInfo->oppEdgePH;
01708 nu.vtxMetersToCoilEvt = EventInfo->vtxMetersToCoil;
01709 nu.vtxMetersToCloseEdgeEvt = EventInfo->vtxMetersToCloseEdge;
01710 nu.minTimeSeparation = EventInfo->minTimeSeparation;
01711
01712 // shower
01713 nu.transverseRMSU = ShowerInfo->transverseRMSU;
01714 nu.transverseRMSV = ShowerInfo->transverseRMSV;
01715
01716 // track
01717 nu.dtdz = TrackInfo->dtdz;
01718 nu.endMetersToCloseEdge = TrackInfo->endMetersToCloseEdge;
01719 nu.vtxMetersToCloseEdgeTrk = TrackInfo->vtxMetersToCloseEdge;
01720 nu.vtxMetersToCoilTrk = TrackInfo->vtxMetersToCoil;
01721 nu.traceEndZ = TrackInfo->traceEndZ;
01722
01723 MSG("NuExtraction",Msg::kDebug) << "End ExtractNCInfo, gDirectory is : ";
01724 gDirectory = tmpd;
01725 //gDirectory->pwd();
01726 }
|
|
||||||||||||||||
|
||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
|
Definition at line 567 of file NuExtraction.cxx. References NuEvent::detector, VldTimeStamp::GetNanoSec(), VldTimeStamp::GetSec(), SpillTimeFinder::GetTimeOfNearestSpill(), SpillTimeFinder::GetTimeToNearestSpill(), NuReco::GetVldContext(), NuLibrary::Instance(), SpillTimeFinder::Instance(), MAXMSG, NuEvent::nearestSpillNanosec, NuEvent::nearestSpillSec, NuLibrary::reco, NuEvent::simFlag, NuEvent::timeToNearestSpill, and NuEvent::useDBForSpillTiming. Referenced by NuDemoModule::Ana(), ExtractAuxiliaryInfo(), and NuAnalysis::LIRejectionTest(). 00568 {
00569 //check if data
00570 if (nu.simFlag!=SimFlag::kData) {
00571 MAXMSG("NuExtraction",Msg::kInfo,1)
00572 <<"Not extracting TimeToNearestSpill for simFlag="<<nu.simFlag
00573 <<endl;
00574 //set a default value
00575 nu.timeToNearestSpill=-999999;
00576 return;
00577 }
00578
00579 //check if the far detector
00580 if (nu.detector!=Detector::kFar) {
00581 MAXMSG("NuExtraction",Msg::kInfo,1)
00582 <<"Not extracting TimeToNearestSpill for detector="<<nu.detector
00583 <<endl;
00584 //set a default value
00585 nu.timeToNearestSpill=-999999;
00586 return;
00587 }
00588
00589 //check whether to use the database
00590 if (!nu.useDBForSpillTiming) {
00591 MAXMSG("NuExtraction",Msg::kWarning,1)
00592 <<"Not extracting TimeToNearestSpill"
00593 <<" (flag set to not query database)"
00594 <<", nu.timeToNearestSpill="<<nu.timeToNearestSpill
00595 <<endl;
00596 //leave as current value (for re-reconstruction case)
00597 return;
00598 }
00599
00600 MAXMSG("NuExtraction",Msg::kInfo,1)
00601 <<"Extracting TimeToNearestSpill for simFlag="<<nu.simFlag
00602 <<", detector="<<nu.detector<<endl;
00603 SpillTimeFinder& spillFinder=SpillTimeFinder::Instance();
00604
00605 //get an instance of the code library
00606 const NuLibrary& lib=NuLibrary::Instance();
00607
00608 VldContext vc=lib.reco.GetVldContext(nu);
00609 nu.timeToNearestSpill=spillFinder.GetTimeToNearestSpill(vc);
00610
00611 VldTimeStamp nearestspill = spillFinder.GetTimeOfNearestSpill(vc);
00612 nu.nearestSpillSec = nearestspill.GetSec();
00613 nu.nearestSpillNanosec = nearestspill.GetNanoSec();
00614 }
|
|
||||||||||||||||
|
Definition at line 718 of file NuExtraction.cxx. References ExtractPrimaryTrkInfo(), ExtractSecondTrkInfo(), ExtractThirdTrkInfo(), NtpSREvent::index, MAXMSG, NtpSREvent::nshower, and NtpSREvent::ntrack. Referenced by NuAnalysis::Efficiencies(), NuAnalysis::EnergySpect(), NuAnalysis::EnergySpectMC(), ExtractBasicInfo(), ExtractTrkShwInfo(), NuAnalysis::LIRejectionTest(), and NuAnalysis::N_1(). 00721 {
00722 Msg::LogLevel_t logLevel=Msg::kDebug;
00723
00724 MAXMSG("NuExtraction",logLevel,200)
00725 <<"evt="<<evt.index<<", trks="<<evt.ntrack
00726 <<", shws="<<evt.nshower<<endl;
00727
00728 //extract the trk info
00729 this->ExtractPrimaryTrkInfo(ntp,evt,nu);
00730 this->ExtractSecondTrkInfo(ntp,evt,nu);
00731 this->ExtractThirdTrkInfo(ntp,evt,nu);
00732 }
|
|
||||||||||||||||
|
Definition at line 736 of file NuExtraction.cxx. References ExtractShwInfo(), ExtractTrkInfo(), NtpSREvent::index, MAXMSG, NtpSREvent::nshower, and NtpSREvent::ntrack. Referenced by NuDemoModule::Ana(). 00739 {
00740 Msg::LogLevel_t logLevel=Msg::kDebug;
00741
00742 MAXMSG("NuExtraction",logLevel,200)
00743 <<"evt="<<evt.index<<", trks="<<evt.ntrack
00744 <<", shws="<<evt.nshower<<endl;
00745
00746 //extract the trk info
00747 this->ExtractTrkInfo(ntp,evt,nu);
00748
00749 //extract the shower info (does 1-3)
00750 this->ExtractShwInfo(ntp,evt,nu);
00751 }
|
|
||||||||||||
1.3.9.1