Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MinosCompactEvent Class Reference

#include <MinosCompactEvent.h>

List of all members.

Public Member Functions

 MinosCompactEvent (unsigned short qtype=0)
 MinosCompactEvent (const NtpStRecord *record, const int eventno, unsigned short qtype)
 MinosCompactEvent (const MinosCompactEvent *event, int stripCompressionFactor)
 MinosCompactEvent (const MinosCompactEvent *event, int pattern[201])
 MinosCompactEvent (const MinosCompactEvent *event)
int SizeOf ()
void SetPEThreshold (float qpe)
void Print ()
void Merge (MinosCompactEvent *pcce2)
void ScaleCharges (float factor)
Int_t GetLastPlaneToUse (const NtpStRecord *record, int eventno, int max_strips_cut=3, int max_gap=3)
virtual ~MinosCompactEvent ()

Public Attributes

float _peThreshold
int Run
int Snarl
float chargeScale
float meanU
float meanV
int meanPlane
int Qtot
int Qtotraw
int nPlanes
float eNu
float y
short idact
short idres
short idnu
int nxtalk
int nxtalk_tagged
int nxtalk_mistagged
int nphysics
int nremoved
std::vector< compactStrip_hUStrips
std::vector< compactStrip_hVStrips
unsigned short ChargeType


Constructor & Destructor Documentation

MinosCompactEvent::MinosCompactEvent unsigned short  qtype = 0  ) 
 

Definition at line 65 of file MinosCompactEvent.cxx.

References chargeScale, ChargeType, eNu, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, Qtot, Run, Snarl, and y.

00066 {
00067 
00068   Run = -1;
00069   Snarl = -1;
00070   chargeScale = -1;
00071   meanU = -1;
00072   meanV = -1;
00073   meanPlane = -1;
00074   Qtot = -1;
00075   nPlanes = -1;
00076   eNu = -1;
00077   y = -1;
00078   idact = -1;
00079   idres = -1;
00080   idnu = -1;
00081   nxtalk = -1;
00082   nxtalk_tagged = -1;
00083   nxtalk_mistagged = -1;
00084   nphysics = -1;
00085   nremoved = -1;
00086   //UStrips.reserve(1);
00087   //VStrips.reserve(1);
00088 
00089   ChargeType = qtype;
00090 
00091 }

MinosCompactEvent::MinosCompactEvent const NtpStRecord record,
const int  eventno,
unsigned short  qtype
 

Definition at line 227 of file MinosCompactEvent.cxx.

References _peThreshold, abs(), AttenCorr::CalcCorr(), chargeScale, ChargeType, XTalkFilter::Config(), XTalkFilter::DefaultConfig(), XTalkFilter::DoTrueFilter(), eNu, NtpStRecord::evt, NtpStRecord::evthdr, FloatErr, Calibrator::GetAttenCalibrator(), Calibrator::GetAttenCorrected(), VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), GetLastPlaneToUse(), RecDataHeader::GetRun(), RecPhysicsHeader::GetSnarl(), NtpSRStrip::GetStripEndId(), ValueErr< T >::GetValue(), RecHeader::GetVldContext(), NtpMCTruth::iaction, compactStrip_h::icharge, idact, idnu, idres, NtpSRStrip::index, Calibrator::Instance(), NtpMCTruth::inu, NtpMCTruth::iresonance, AttenCorr::lE, AttenCorr::lW, NtpStRecord::mc, meanPlane, meanU, meanV, ndstripno(), NtpTHEvent::neumc, nphysics, nPlanes, nremoved, NtpSREvent::nshower, NtpSRTrack::nstrip, NtpSRShower::nstrip, NtpSREventSummary::nstrip, NtpSREvent::nstrip, NtpSREvent::ntrack, nxtalk, nxtalk_mistagged, nxtalk_tagged, NtpMCTruth::p4neu, NtpSRPulseHeight::pe, NtpSRStrip::ph0, NtpSRStrip::ph1, compactStrip_h::plane, NtpSRStrip::plane, NtpSRStrip::planeview, AttenCorr::qpecor, Qtot, Qtotraw, CalScheme::Reset(), Run, PlexStripEndId::SetEnd(), SetPEThreshold(), NtpSREvent::shw, NtpStRecord::shw, NtpSRPulseHeight::sigcor, Snarl, NtpSRTrack::stp, NtpSRShower::stp, NtpStRecord::stp, NtpSREvent::stp, NtpSRTrack::stpph0gev, NtpSRShower::stpph0gev, NtpSRTrack::stpph1gev, NtpSRShower::stpph1gev, compactStrip_h::strip, NtpSRStrip::strip, NtpStRecord::thevt, NtpSRStrip::tpos, NtpSREvent::trk, NtpStRecord::trk, UStrips, VStrips, NtpMCTruth::y, and y.

00228 {
00229 
00230   Qtot = 0;
00231   Qtotraw = 0;
00232 
00233   ChargeType = qtype;
00234 
00235   // need to be able to modify the record (xtalk removal)
00236   NtpStRecord *record = (NtpStRecord*)record_const->Clone();
00237 
00238   // xtalk removal --
00239   if (qtype==2 || qtype==4) {
00240     // we want to apply the xtalk filter, so build a module and use it
00241     // (it would be better if there were a convenient way to keep one
00242     // persistent, but making one anew each time is not too bad.)
00243     XTalkFilter *xtalkfilter = new XTalkFilter();
00244     xtalkfilter->Config(xtalkfilter->DefaultConfig());
00245     xtalkfilter->DoTrueFilter(record,eventno);
00246     delete xtalkfilter;
00247   }
00248 
00249   //build a geometry handle
00250   UgliGeomHandle ugh(record->GetHeader().GetVldContext());
00251 
00252   const int detector = record->GetHeader().GetVldContext().GetDetector();
00253 
00254   const NtpSREvent* event = dynamic_cast<const NtpSREvent*>(record->evt->At(eventno));
00255   assert(event);
00256   const NtpMCTruth* mcevent  = NULL;
00257   if(record && record->thevt->GetEntries()!=0){
00258     const NtpTHEvent* thevent = dynamic_cast<const NtpTHEvent*>(record->thevt->At(eventno));
00259     mcevent = dynamic_cast<const NtpMCTruth*>(record->mc->At(thevent->neumc));
00260   }
00261   
00262   bool planes[500];
00263   for(int i=0;i<500;++i)planes[i]=false;  
00264 
00265   chargeScale = 10.;
00266 
00267   Double_t ChargeToPe = 1.0; //For qtype 1-4 and 6, this is the approximate charge in units of qtype found in 1 pe.
00268                              //It is identical to the sigcorscale in the HitProbTable used with this qtype.
00269   if (qtype == 1 || qtype == 2) ChargeToPe = 70.0; //Roughly 70 sigmaps per pe.
00270   if (qtype == 3 || qtype == 4 || qtype == 6) ChargeToPe = 8.0; //Rougly 8 MeV per pe.
00271 
00272   if(Detector::kFar == detector){//FD
00273     SetPEThreshold(3.0);
00274   } else SetPEThreshold(3.0); 
00275 
00276 
00277   // set the global quantities
00278   Run   = record->GetHeader().GetRun();
00279   Snarl = record->GetHeader().GetSnarl();
00280 
00281   // cout << "*************************************************" << endl;
00282   //cout << " RUN/SNARL : " << Run << " : " << Snarl << endl;
00283  
00284   // set any MC quantities
00285   if(mcevent){
00286     eNu   = mcevent->p4neu[3];
00287     y     = mcevent->y;
00288     idact = mcevent->iaction; 
00289     idres = mcevent->iresonance;
00290     idnu  = mcevent->inu;
00291   } else {
00292     eNu   = -1;
00293     y     = -1;
00294     idact = -1; 
00295     idres = -1;
00296     idnu  = -1;
00297   }
00298 
00299   const int nstrips = event->nstrip;
00300 
00301   //MCNN version of xtalk removal no longer supported. These data members
00302   //are being left in for backward compatibility.
00303   nxtalk=0;
00304   nxtalk_tagged=0;
00305   nxtalk_mistagged=0;
00306   nphysics=0;
00307   nremoved=0;
00308 
00309 
00310   // --- Z trimming ---
00311   // Decide if there is a plane past which we should ignore everything (i.e., trailing hits)
00312   // Only do this for the newer charge types (but not qtype = 5, which is pe-scaled sigcors)...
00313   // Now, qtype=6 is the same as qtype=3 but without the z-trimming
00314   Int_t lastPlaneToUse = 99999;
00315   if (qtype>0 && qtype != 5 && qtype != 6) lastPlaneToUse = GetLastPlaneToUse(record, eventno);
00316 
00317   // loop over the strips to determine number of u and v strips to be stored
00318   int nU = 0;
00319   int nV = 0;
00320   int nUKept = 0;
00321   int nVKept = 0;
00322   for(int istp = 0; istp< nstrips; istp++){
00323     if(event->stp[istp]<0) continue;
00324     const NtpSRStrip* strip = dynamic_cast<const NtpSRStrip*>(record->stp->At(event->stp[istp]));
00325 
00326     float qpe = strip->ph0.pe+strip->ph1.pe;
00327     
00328     if(qpe>_peThreshold && qpe < 1000 && strip->plane<=lastPlaneToUse){
00329       planes[strip->plane]=true;
00330       if(strip->planeview==2)nU++;
00331       if(strip->planeview==3)nV++;
00332     }
00333   }
00334 
00335   nPlanes = 0;
00336   int minPlane = -999;
00337   int maxPlane = 999;
00338   int ncount   = 0;
00339   for(int i=0;i<500;++i){
00340     if(planes[i]){
00341       nPlanes++;
00342       if(minPlane<0)minPlane=i;
00343       ncount++;
00344       if(ncount==PLANE_WINDOW)maxPlane =i;
00345     }
00346   }
00347 
00348   //Array to hold qpe totals
00349   Float_t qpe_totU[201]={0.};
00350   Float_t qpe_totV[201]={0.};
00351 
00352   //Array to hold strip totals
00353   Int_t stp_totU[201]={0};
00354   Int_t stp_totV[201]={0};
00355 
00356   Int_t strip_count_u = 0;
00357   Int_t strip_count_v = 0;
00358 
00359 
00360   // now find charge weighted mean strip and plane in first  
00361   //    AVERAGE_OVER_PLANES planes
00362 
00363   double sumU = 0.;
00364   double sumV = 0.;
00365   double sumZ = 0.;
00366   double sumQ = 0.;
00367   double UsumQ = 0.;
00368   double VsumQ = 0.;
00369   int striptrue = 0;
00370 
00371   for(int istp = 0; istp< nstrips; istp++){
00372     if(event->stp[istp]<0) continue;
00373     const NtpSRStrip* strip = dynamic_cast<const NtpSRStrip*>(record->stp->At(event->stp[istp]));
00374     
00375     float qpe = strip->ph0.pe+strip->ph1.pe;
00376 
00377     if(qpe>_peThreshold && qpe < 1000){
00378       if(strip->plane>=minPlane&&strip->plane<=maxPlane){
00379         if(strip->planeview==2){
00380           striptrue = ndstripno(strip->plane, strip->strip,strip->planeview, detector);
00381           qpe_totU[striptrue] += qpe;
00382           stp_totU[striptrue]++;
00383           strip_count_u++;
00384         }
00385         if(strip->planeview==3){
00386           striptrue = ndstripno(strip->plane, strip->strip,strip->planeview, detector);
00387           qpe_totV[striptrue] += qpe;
00388           stp_totV[striptrue]++;
00389           strip_count_v++;
00390         }
00391       }
00392     }
00393   }
00394   
00395   
00396   Float_t u_qtot=0;
00397   Int_t u_stot=0;
00398   Float_t u_qmax=-1;
00399   Int_t u_smax=-1;
00400   Float_t u_qmax_nocut=-1;
00401   Int_t u_smax_nocut=-1;
00402 
00403   Float_t v_qtot=0;
00404   Int_t v_stot=0;
00405   Float_t v_qmax=-1;
00406   Int_t v_smax=-1;
00407   Float_t v_qmax_nocut=-1;
00408   Int_t v_smax_nocut=-1;
00409 
00410   for (Int_t ii=0;ii<201;ii++){
00411     u_qtot=0.;
00412     v_qtot=0.; 
00413     u_stot=0;
00414     v_stot=0;
00415 
00416     for (Int_t jj = (1 - STRIP_WINDOW); jj<(STRIP_WINDOW); jj++){
00417 
00418       if (((ii+jj)>=0)&&((ii+jj)<201)){
00419         u_qtot+=qpe_totU[ii+jj];
00420         v_qtot+=qpe_totV[ii+jj];
00421         u_stot+=stp_totU[ii+jj];
00422         v_stot+=stp_totV[ii+jj];
00423       }
00424     }
00425 
00426 
00428  
00429     //Without cut on numbers of strips
00430     if (v_qtot>v_qmax_nocut) {
00431       v_smax_nocut=ii;
00432       v_qmax_nocut=v_qtot;
00433     }
00434     
00435 
00436     //With careful attention to outlying noise strips
00437     if (v_qtot>v_qmax){
00438       
00439       if (strip_count_v>5&&v_stot>=3) {
00440         v_qmax=v_qtot;
00441         v_smax=ii;
00442       }
00443       else if (strip_count_v<=5&&strip_count_v>2&&v_stot>=2) {
00444         v_qmax=v_qtot;
00445         v_smax=ii;
00446       } 
00447       else if (strip_count_v<=2&&strip_count_v>0){
00448         v_qmax=v_qtot;
00449         v_smax=ii;
00450       }
00451       
00452     }
00453 
00455 
00456     //Without cut on numbers of strips
00457     if (u_qtot>u_qmax_nocut) {
00458       u_smax_nocut=ii;
00459       u_qmax_nocut=u_qtot;
00460     }
00461     
00462 
00463     //With careful attention to outlying noise strips
00464     if (u_qtot>u_qmax){
00465       
00466       if (strip_count_u>5&&u_stot>=3) {
00467         u_qmax=u_qtot;
00468         u_smax=ii;
00469       }
00470       else if (strip_count_u<=5&&strip_count_u>2&&u_stot>=2) {
00471         u_qmax=u_qtot;
00472         u_smax=ii;
00473       } 
00474       else if (strip_count_u<=2&&strip_count_u>0){
00475         u_qmax=u_qtot;
00476         u_smax=ii;
00477       }
00478       
00479     }
00480  
00481   }
00482 
00483   //Revert to just the largest window if everything fails outlier test
00484   if (u_smax<0) u_smax=u_smax_nocut;
00485   if (v_smax<0) v_smax=v_smax_nocut;
00486 
00487   int imeanUTemp = u_smax;
00488   int imeanVTemp = v_smax;
00489 
00490 
00491   // now do it all again throwing away outlying strips  
00492   meanU=0.;
00493   meanV=0.;
00494   sumU = 0.;
00495   sumV = 0.;
00496   sumZ = 0.;
00497   sumQ = 0.;
00498   UsumQ = 0.;
00499   VsumQ = 0.;
00500   double meanUTPos = 0;
00501   double meanVTPos = 0;
00502 
00503   for(int istp = 0; istp< nstrips; istp++){
00504     if(event->stp[istp]<0) continue;
00505     const NtpSRStrip* strip = dynamic_cast<const NtpSRStrip*>(record->stp->At(event->stp[istp]));
00506 //     const NtpTHStrip* stptruth= dynamic_cast<const NtpTHStrip*>(record->thstp->At(event->stp[istp]));
00507 //     assert(stptruth);
00508 //     if(stptruth!=NULL && ispurextalk(stptruth->sigflg)) continue;
00509 
00510     float qpe = strip->ph0.pe+strip->ph1.pe;
00511 
00512     if(qpe>_peThreshold && qpe < 1000 && strip->plane<=lastPlaneToUse){
00513       if(strip->plane>=minPlane&&strip->plane<=maxPlane){
00514         if(strip->planeview==2 && abs(ndstripno(strip->plane, strip->strip,strip->planeview, detector)-imeanUTemp)<STRIP_WINDOW){
00515           nUKept++;
00516           sumQ  += qpe;
00517           UsumQ += qpe*qpe;
00518           sumZ  += strip->plane*qpe;
00519           sumU  += ndstripno(strip->plane, strip->strip,strip->planeview, detector)*qpe*qpe;
00520           meanUTPos += strip->tpos*qpe*qpe;
00521           //      cout << "U STRIP : " << strip->Plane << " : " << strip->Strip << " : " << qpe << endl;
00522         }
00523         if(strip->planeview==3 && abs(ndstripno(strip->plane, strip->strip,strip->planeview, detector)-imeanVTemp)<STRIP_WINDOW){
00524           nVKept++;
00525           sumQ += qpe;
00526           VsumQ += qpe*qpe;
00527           sumZ += strip->plane*qpe;
00528           sumV  += ndstripno(strip->plane, strip->strip,strip->planeview, detector)*qpe*qpe;
00529           meanVTPos += strip->tpos*qpe*qpe;
00530          //cout << "V STRIP : " << strip->Plane << " : " << strip->Strip << " : " << qpe << endl;
00531         }
00532       }
00533     }
00534   } 
00535 
00536   // store mean charge-weighted positions
00537   meanU = 0.;
00538   meanV = 0.;
00539   meanPlane = 0;
00540   if(UsumQ>0){
00541     meanU = sumU/UsumQ+0.5;
00542     meanUTPos = meanUTPos/UsumQ;
00543   }
00544   if(VsumQ>0){
00545     meanV = sumV/VsumQ+0.5;
00546     meanVTPos = meanVTPos/VsumQ;
00547   }
00548   if(sumQ>0){
00549     meanPlane = static_cast<int>(sumZ/sumQ);
00550   }
00551     
00552   int imeanU = static_cast<int>(meanU);
00553   int imeanV = static_cast<int>(meanV);
00554   // cout << " MEANS : " << meanU << ":" << meanV << "  " <<  imeanU << ":" << imeanV << endl;
00555   
00556   // reserve the appropriate amount of space in vectors
00557   // this is purely to optimise memory usage
00558   UStrips.reserve(nU);
00559   VStrips.reserve(nV);
00560 
00561   //Up until this point, ALL computations were done using PEs. Now, when the compactStrips
00562   //are being built, charge quantities will be PEs, sigcors, or something else. However, threshold
00563   //checks will continue to be with PEs.
00564 
00565   // loop over the strips and build the compactStrips
00566   // apply attenuation corrections 
00567 
00568   // cout << "means tpos:" << meanUTPos << "   " << meanVTPos <<endl;
00569 
00570   float sumQcor = 0.;
00571   float sumQraw = 0.;
00572 
00573   //Extracting charge information from tracks and showers making up an event
00574   int nrecstrips = (int)record->evthdr.nstrip;
00575   float* ph0 = new float[nrecstrips];
00576   float* ph1 = new float[nrecstrips];
00577 
00578   if (qtype == 3 || qtype == 4 || qtype == 6) {
00579     
00580     for (int istp = 0; istp < nrecstrips; istp++) {
00581       ph0[istp] = 0;
00582       ph1[istp] = 0;
00583     }
00584     
00585     for (int j = 0; j < event->nshower; j++) {
00586       NtpSRShower* myshower = dynamic_cast<NtpSRShower*>(record->shw->At(event->shw[j]));
00587       for (int k = 0; k < myshower->nstrip; k++) {
00588         ph0[myshower->stp[k]] = 1000 * myshower->stpph0gev[k]; //GeV converted to MeV
00589         ph1[myshower->stp[k]] = 1000 * myshower->stpph1gev[k];
00590       }
00591     }
00592 
00593     //Tracks are done second so that in case of overlapping hits, the track's
00594     //energy information is used. Track positions are known better, resulting
00595     //in better attenuation correction.
00596     for (int j = 0; j < event->ntrack; j++) {
00597       NtpSRTrack* mytrack = dynamic_cast<NtpSRTrack*>(record->trk->At(event->trk[j]));
00598       for (int k = 0; k < mytrack->nstrip; k++) {
00599         ph0[mytrack->stp[k]] = 1000 * mytrack->stpph0gev[k];
00600         ph1[mytrack->stp[k]] = 1000 * mytrack->stpph1gev[k];
00601       }
00602     }
00603     
00604   }
00605   
00606   AttenCorr *atcor = new AttenCorr();
00607 
00608   //Used to correct sigcor for attenuation, using AttenCorr determination of hit location on strip
00609   Calibrator& cal = Calibrator::Instance();
00610   cal.GetAttenCalibrator().Reset(record->GetHeader().GetVldContext());
00611 
00612   for(int istp = 0; istp< nstrips; istp++){
00613     if(event->stp[istp]<0) continue;
00614     const NtpSRStrip* strip = dynamic_cast<const NtpSRStrip*>(record->stp->At(event->stp[istp]));
00615 //     const NtpTHStrip* stptruth= dynamic_cast<const NtpTHStrip*>(record->thstp->At(event->stp[istp]));
00616 //     assert(stptruth);
00617 //     if(stptruth!=NULL && ispurextalk(stptruth->sigflg)) continue;
00618 
00619     float qpeE = strip->ph0.pe;
00620     float qpeW = strip->ph1.pe;
00621 
00622     //for qtype = 3, 4, or 6, should check if strip has energy info
00623     //it's possible for a strip to have pe info but not energy info if, for example, it has not been included as part of a track or shower
00624     //for qtype = 1,2,5, should check if strip somehow doesn't have sigcor info
00625     bool checkgev = 1;
00626     if (qtype == 3 || qtype == 4 || qtype == 6) {
00627       if (ph0[strip->index] + ph1[strip->index] == 0) checkgev = 0;
00628     }
00629     if (qtype == 1 || qtype == 2 || qtype == 5) {
00630       if (strip->ph0.sigcor + strip->ph1.sigcor == 0) checkgev = 0;
00631     }
00632         
00633     if(qpeE+qpeW>_peThreshold && qpeE+qpeW < 1000 && strip->plane<=lastPlaneToUse && checkgev){
00634 
00635       float qchargeCor = 0;
00636       float qchargeE = qpeE;
00637       float qchargeW = qpeW;
00638 
00639       if (qtype == 0) {
00640         atcor->CalcCorr(record,strip,meanUTPos,meanVTPos,0);
00641         qchargeCor = atcor->qpecor;
00642       }
00643 
00644       if (qtype == 1 || qtype == 2 ) {
00645         FloatErr xstrip = (atcor->lE - atcor->lW) / 2;
00646         qchargeE = strip->ph0.sigcor;
00647         qchargeW = strip->ph1.sigcor;
00648         if (detector==Detector::kNear) { //Sigcors and sigmaps are different in ND
00649           qchargeE *= FN_SIGMAP_RATIO;
00650           qchargeW *= FN_SIGMAP_RATIO;
00651         }
00652         PlexStripEndId end[2];
00653         end[0] = strip->GetStripEndId((Detector::Detector_t)detector); end[0].SetEnd(StripEnd::kNegative);
00654         end[1] = strip->GetStripEndId((Detector::Detector_t)detector); end[1].SetEnd(StripEnd::kPositive);
00655         FloatErr qchargeECor = cal.GetAttenCorrected(FloatErr(qchargeE),xstrip,end[0]);
00656         FloatErr qchargeWCor = cal.GetAttenCorrected(FloatErr(qchargeW),xstrip,end[1]);
00657         qchargeCor = qchargeECor.GetValue() + qchargeWCor.GetValue();
00658       }
00659 
00660       if (qtype == 3 || qtype == 4 || qtype == 6) {
00661         qchargeE = ph0[strip->index];
00662         qchargeW = ph1[strip->index];
00663         qchargeCor = qchargeE + qchargeW;
00664       }
00665 
00666       if (qtype == 5) {
00667         qchargeE = strip->ph0.sigcor;
00668         qchargeW = strip->ph1.sigcor;
00669 
00670         atcor->CalcCorr(record,strip,meanUTPos,meanVTPos,5);
00671         qchargeCor = atcor->qpecor;
00672 
00673         if (detector==Detector::kNear) {
00674           qchargeE *= ND_PE_TO_SIGCOR_RATIO;
00675           qchargeW *= ND_PE_TO_SIGCOR_RATIO;
00676           qchargeCor *= ND_PE_TO_SIGCOR_RATIO;
00677         }
00678         
00679         if (detector==Detector::kFar) {
00680           qchargeE *= FD_PE_TO_SIGCOR_RATIO;
00681           qchargeW *= FD_PE_TO_SIGCOR_RATIO;
00682           qchargeCor *= FD_PE_TO_SIGCOR_RATIO;
00683         }
00684       }
00685 
00686       sumQcor+= qchargeCor;
00687       sumQraw+= qchargeE+qchargeW;
00688 
00689       compactStrip_h compactStrip;
00690       compactStrip.plane = static_cast<short>(strip->plane-meanPlane+100);
00691       if(strip->planeview==2)compactStrip.strip = ndstripno(strip->plane, strip->strip,strip->planeview, detector)-imeanU+100;
00692       if(strip->planeview==3)compactStrip.strip = ndstripno(strip->plane, strip->strip,strip->planeview, detector)-imeanV+100;
00693 
00694       if (qtype == 0 || qtype == 5) {
00695         compactStrip.icharge = static_cast<int>(qchargeCor * chargeScale);
00696       }
00697       if (qtype == 1 || qtype == 2 || qtype == 3 || qtype == 4 || qtype == 6) {
00698         compactStrip.icharge = static_cast<int>( (qchargeCor - ChargeToPe/2) * chargeScale / ChargeToPe);
00699       }
00700 
00701       if(compactStrip.strip>=5&&compactStrip.strip<=195&&compactStrip.plane>=5&&compactStrip.plane<=195){
00702         if(strip->planeview==2)UStrips.push_back(compactStrip);
00703         if(strip->planeview==3)VStrips.push_back(compactStrip);
00704       }
00705            
00706 
00707     }//threshold    
00708 
00709   }//strips loop
00710 
00711   delete [] ph0;
00712   delete [] ph1;
00713 
00714   Qtot = static_cast<int>(sumQcor);
00715   Qtotraw = static_cast<int>(sumQraw);
00716 
00717   return;  
00718 
00719 }

MinosCompactEvent::MinosCompactEvent const MinosCompactEvent event,
int  stripCompressionFactor
 

Definition at line 744 of file MinosCompactEvent.cxx.

References _peThreshold, chargeScale, ChargeType, eNu, compactStrip_h::icharge, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, compactStrip_h::plane, Qtot, Qtotraw, Run, SetPEThreshold(), Snarl, compactStrip_h::strip, UStrips, VStrips, and y.

00744                                                                                               {
00745 
00746   // PE Scale factor for integer conversion: icharge = qpe * chargeScale
00747   chargeScale = event->chargeScale;
00748 
00749   // PE Threshold
00750   SetPEThreshold(event->_peThreshold);
00751 
00752   // set the global quantities
00753   Run   = event->Run;
00754   Snarl = event->Snarl;
00755  
00756   // set any MC quantities
00757   eNu = event->eNu;
00758   y   = event->y;
00759   idact = event->idact; 
00760   idres = event->idres;
00761   idnu  = event->idnu;
00762   
00763   
00764   // reco quantities
00765   Qtot = event->Qtot;
00766   nPlanes = event->nPlanes;
00767   meanU = event->meanU;
00768   meanV = event->meanV;
00769   meanPlane = event->meanPlane;
00770 
00771   nxtalk = event->nxtalk;
00772   nxtalk_tagged = event->nxtalk_tagged;
00773   nxtalk_mistagged = event->nxtalk_mistagged;
00774   nphysics = event->nphysics;
00775   nremoved = event->nremoved;
00776 
00777   ChargeType = event->ChargeType;
00778 
00779   //MHO0609 - Discovered this wasn't getting copied
00780   Qtotraw = event->Qtotraw;
00781 
00782   // loop over the U strips
00783 
00784   int imeanU = static_cast<int>(meanU);
00785   float fracU = meanU - static_cast<float>(imeanU);
00786 
00787   const int nustrips = event->UStrips.size();
00788   for(int istp = 0; istp< nustrips; istp++){
00789     int plane = event->UStrips[istp].plane;
00790     int strip = event->UStrips[istp].strip;
00791     int icharge  = event->UStrips[istp].icharge;
00792     float cstrip = (static_cast<float>(strip) -100.0+stripCompressionFactor/2.0)/stripCompressionFactor + 100.0;
00793     if((stripCompressionFactor%2)==0 && fracU>0.5){
00794       cstrip = (static_cast<float>(strip) -101.0+stripCompressionFactor/2.0)/stripCompressionFactor + 100.0;
00795     }
00796 
00797 
00798     int compStrip = static_cast<int>(cstrip);
00799 
00800 
00801     bool notFound = true;
00802     for(UInt_t i=0;i<UStrips.size() && notFound;++i){
00803       if(UStrips[i].strip==compStrip && UStrips[i].plane==plane){
00804         notFound = false;
00805         UStrips[i].icharge += icharge;
00806       }
00807     }
00808     if(notFound){
00809       compactStrip_h newStrip;
00810       newStrip.strip = compStrip;
00811       newStrip.plane = plane;
00812       newStrip.icharge  = icharge;
00813       UStrips.push_back(newStrip);
00814     }
00815   }
00816 
00817 
00818   // loop over the V strips
00819 
00820 
00821   int imeanV = static_cast<int>(meanV);
00822   float fracV = meanV - static_cast<float>(imeanV);
00823   const int nvstrips = event->VStrips.size();
00824   for(int istp = 0; istp< nvstrips; istp++){
00825     int plane = event->VStrips[istp].plane;
00826     int strip = event->VStrips[istp].strip;
00827     int icharge  = event->VStrips[istp].icharge;
00828     float cstrip = (static_cast<float>(strip)-100.0+stripCompressionFactor/2.0)/stripCompressionFactor + 100.0;
00829     if((stripCompressionFactor%2)==0 && fracV>0.5){
00830       cstrip = (static_cast<float>(strip) -101.0+stripCompressionFactor/2.0)/stripCompressionFactor + 100.0;
00831     }
00832 
00833     int compStrip = static_cast<int>(cstrip);
00834 
00835     bool notFound = true;
00836     for(UInt_t i=0;i<VStrips.size() && notFound;++i){
00837       if(VStrips[i].strip==compStrip && VStrips[i].plane==plane){
00838         notFound = false;
00839         VStrips[i].icharge += icharge;
00840       }
00841     }
00842     if(notFound){
00843       compactStrip_h newStrip;
00844       newStrip.strip = compStrip;
00845       newStrip.plane = plane;
00846       newStrip.icharge  = icharge;
00847       VStrips.push_back(newStrip);
00848     }
00849   }
00850 
00851   return;
00852 
00853 }

MinosCompactEvent::MinosCompactEvent const MinosCompactEvent event,
int  pattern[201]
 

Definition at line 858 of file MinosCompactEvent.cxx.

References _peThreshold, chargeScale, ChargeType, eNu, compactStrip_h::icharge, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, compactStrip_h::plane, Qtot, Qtotraw, Run, SetPEThreshold(), Snarl, compactStrip_h::strip, UStrips, VStrips, and y.

00858                                                                                     {
00859 
00860   // PE Scale factor for integer conversion: icharge = qpe * chargeScale
00861   chargeScale = event->chargeScale;
00862 
00863   // PE Threshold
00864   SetPEThreshold(event->_peThreshold);
00865 
00866   // set the global quantities
00867   Run   = event->Run;
00868   Snarl = event->Snarl;
00869  
00870   // set any MC quantities
00871   eNu = event->eNu;
00872   y   = event->y;
00873   idact = event->idact; 
00874   idres = event->idres;
00875   idnu  = event->idnu;
00876   
00877   
00878   // reco quantities
00879   Qtot = event->Qtot;
00880   nPlanes = event->nPlanes;
00881   meanU = event->meanU;
00882   meanV = event->meanV;
00883   meanPlane = event->meanPlane;
00884 
00885   nxtalk = event->nxtalk;
00886   nxtalk_tagged = event->nxtalk_tagged;
00887   nxtalk_mistagged = event->nxtalk_mistagged;
00888   nphysics = event->nphysics;
00889   nremoved = event->nremoved;
00890 
00891   ChargeType = event->ChargeType;
00892 
00893   //MHO0609 - Discovered this wasn't getting copied
00894   Qtotraw = event->Qtotraw;
00895 
00896   // loop over the U strips
00897 
00898   const int nustrips = event->UStrips.size();
00899   for(int istp = 0; istp< nustrips; istp++){
00900     int plane = event->UStrips[istp].plane;
00901     int strip = event->UStrips[istp].strip;
00902     int icharge  = event->UStrips[istp].icharge;
00903     int compStrip = pattern[strip];
00904     bool notFound = true;
00905 
00906     if (compStrip!=-1){
00907 
00908       for(UInt_t i=0;i<UStrips.size() && notFound;++i){
00909         if(UStrips[i].strip==compStrip && UStrips[i].plane==plane){
00910           notFound = false;
00911           UStrips[i].icharge += icharge;
00912         }
00913       }
00914       if(notFound){
00915         compactStrip_h newStrip;
00916         newStrip.strip = compStrip;
00917         newStrip.plane = plane;
00918         newStrip.icharge  = icharge;
00919         UStrips.push_back(newStrip);
00920       }
00921     }
00922   }
00923 
00924   // loop over the V strips
00925 
00926 
00927   const int nvstrips = event->VStrips.size();
00928   for(int istp = 0; istp< nvstrips; istp++){
00929     int plane = event->VStrips[istp].plane;
00930     int strip = event->VStrips[istp].strip;
00931     int icharge  = event->VStrips[istp].icharge;
00932     int compStrip = pattern[strip];
00933 
00934     bool notFound = true;
00935 
00936     if (compStrip!=-1){
00937 
00938       for(UInt_t i=0;i<VStrips.size() && notFound;++i){
00939         if(VStrips[i].strip==compStrip && VStrips[i].plane==plane){
00940           notFound = false;
00941           VStrips[i].icharge += icharge;
00942         }
00943       }
00944       if(notFound){
00945         compactStrip_h newStrip;
00946         newStrip.strip = compStrip;
00947         newStrip.plane = plane;
00948         newStrip.icharge  = icharge;
00949         VStrips.push_back(newStrip);
00950       }
00951     }
00952   }
00953 
00954   return;
00955 
00956 }

MinosCompactEvent::MinosCompactEvent const MinosCompactEvent event  ) 
 

Definition at line 958 of file MinosCompactEvent.cxx.

References _peThreshold, chargeScale, ChargeType, eNu, compactStrip_h::icharge, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, compactStrip_h::plane, Qtot, Qtotraw, Run, SetPEThreshold(), Snarl, compactStrip_h::strip, UStrips, VStrips, and y.

00958                                                                   {
00959 
00960   // PE Scale factor for integer conversion: icharge = qpe * chargeScale
00961   chargeScale = event->chargeScale;
00962 
00963   //_peThreshold
00964   SetPEThreshold(event->_peThreshold);
00965 
00966   // set the global quantities
00967   Run   = event->Run;
00968   Snarl = event->Snarl;
00969  
00970   // set any MC quantities
00971   eNu = event->eNu;
00972   y   = event->y;
00973   idact = event->idact; 
00974   idres = event->idres;
00975   idnu  = event->idnu;
00976     
00977   // reco quantities
00978   Qtot = event->Qtot;
00979   nPlanes = event->nPlanes;
00980   meanU = event->meanU;
00981   meanV = event->meanV;
00982   meanPlane = event->meanPlane;
00983 
00984   nxtalk = event->nxtalk;
00985   nxtalk_tagged = event->nxtalk_tagged;
00986   nxtalk_mistagged = event->nxtalk_mistagged;
00987   nphysics = event->nphysics;
00988   nremoved = event->nremoved;
00989 
00990   ChargeType = event->ChargeType;
00991 
00992   //MHO0609 - Discovered this wasn't getting copied
00993   Qtotraw = event->Qtotraw;
00994 
00995   // loop over the U strips
00996   const int nustrips = event->UStrips.size();
00997   for(int istp = 0; istp< nustrips; istp++){
00998     compactStrip_h newStrip;
00999     newStrip.strip = event->UStrips[istp].strip;
01000     newStrip.plane = event->UStrips[istp].plane;
01001     newStrip.icharge  = event->UStrips[istp].icharge;
01002     UStrips.push_back(newStrip);
01003   }
01004 
01005   // loop over the V strips
01006   const int nvstrips = event->VStrips.size();
01007   for(int istp = 0; istp< nvstrips; istp++){
01008     compactStrip_h newStrip;
01009     newStrip.strip = event->VStrips[istp].strip;
01010     newStrip.plane = event->VStrips[istp].plane;
01011     newStrip.icharge  = event->VStrips[istp].icharge;
01012     VStrips.push_back(newStrip);
01013   }
01014 
01015   return;
01016 
01017 }

MinosCompactEvent::~MinosCompactEvent  )  [virtual]
 

Definition at line 737 of file MinosCompactEvent.cxx.

References UStrips, and VStrips.

00737                                      {
00738 
00739   UStrips.clear();
00740   VStrips.clear();
00741 }


Member Function Documentation

Int_t MinosCompactEvent::GetLastPlaneToUse const NtpStRecord record,
int  eventno,
int  max_strips_cut = 3,
int  max_gap = 3
 

Definition at line 1020 of file MinosCompactEvent.cxx.

References _peThreshold, NtpStRecord::evt, NtpSREvent::nstrip, NtpSRPulseHeight::pe, NtpSRStrip::ph0, NtpSRStrip::ph1, NtpSRStrip::plane, NtpStRecord::stp, and NtpSREvent::stp.

Referenced by MinosCompactEvent().

01020                                                                                                                   {
01021 
01022   // efficiency not critical here, so keep it simple...
01023 
01024   const int maxplanes = 500;
01025   int planecount[maxplanes];
01026 
01027   int firstplane = 999;
01028   int lastplane  = 0;
01029   for (Int_t i=0;i<maxplanes;i++) planecount[i] = 0;
01030 
01031   const NtpSREvent* event = dynamic_cast<const NtpSREvent*>(record->evt->At(eventno));
01032   const int nstrips = event->nstrip;
01033 
01034   // fill array of plane counts
01035   for(int istp = 0; istp< nstrips; istp++){
01036     if (event->stp[istp]<0) continue;
01037     const NtpSRStrip* strip = dynamic_cast<const NtpSRStrip*>(record->stp->At(event->stp[istp]));
01038     float qpe=strip->ph0.pe+strip->ph1.pe;
01039     if (qpe>_peThreshold && qpe<1000) {
01040       planecount[strip->plane]++;
01041       if (strip->plane>lastplane) lastplane = strip->plane;
01042       if (strip->plane<firstplane) firstplane = strip->plane;      
01043     }
01044   }
01045 
01046   // find plane upstream of cut-able strips
01047   Int_t downstream_strip_count = 0;
01048   Int_t searchstart;
01049   for (searchstart=lastplane; searchstart>=firstplane;searchstart--) {
01050     downstream_strip_count += planecount[searchstart];
01051     if (downstream_strip_count>max_strips_cut) break;
01052   }
01053 
01054   // loop over candidate planes, looking for first big gap
01055   Int_t gap_count = 0;
01056   Int_t cut_beyond_here = 9999;
01057   for (Int_t iP=searchstart+1; iP<=lastplane;iP++) {
01058     if (planecount[iP]==0) gap_count++;
01059     else gap_count = 0;
01060     if (gap_count>max_gap) {
01061       cut_beyond_here = iP;
01062       break;
01063     }
01064   }
01065 
01066   return cut_beyond_here;
01067 }

void MinosCompactEvent::Merge MinosCompactEvent pcce2  ) 
 

Definition at line 105 of file MinosCompactEvent.cxx.

References _peThreshold, chargeScale, eNu, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, Qtot, Run, Snarl, UStrips, VStrips, and y.

00105                                                      {
00106 
00107   //If variables are not identical then set default. 
00108   if(Run!=pcce2->Run) Run=-1;
00109   if(Snarl!=pcce2->Snarl) Snarl=-1;
00110   if(chargeScale!=pcce2->chargeScale) chargeScale=-1;
00111   if(_peThreshold!=pcce2->_peThreshold) _peThreshold=-1;
00112   if(meanU!=pcce2->meanU) meanU=-1;
00113   if(meanV!=pcce2->meanV) meanV=-1;
00114   if(meanPlane!=pcce2->meanPlane) meanPlane=-1;
00115   if(Qtot!=pcce2->Qtot) Qtot=-1;
00116   if(nPlanes!=pcce2->nPlanes) nPlanes=-1;
00117   if(eNu!=pcce2->eNu) eNu=-1;
00118   if(y!=pcce2->y) y=-1;
00119   if(idact!=pcce2->idact) idact=-1;
00120   if(idres!=pcce2->idres) idres=-1;
00121   if(idnu!=pcce2->idnu) idnu=-1;
00122   if(nxtalk!=pcce2->nxtalk) nxtalk=-1;
00123   if(nxtalk_tagged!=pcce2->nxtalk_tagged) nxtalk_tagged=-1;
00124   if(nxtalk_mistagged!=pcce2->nxtalk_mistagged) nxtalk_mistagged=-1;
00125   if(nphysics!=pcce2->nphysics) nphysics=-1;
00126   if(nremoved!=pcce2->nremoved) nremoved=-1;
00127 
00128   //Loop over U strips
00129   const int nustrips = UStrips.size();
00130   const int nustrips2 = pcce2->UStrips.size();
00131 
00132   for(int istp2 = 0; istp2< nustrips2; istp2++){
00133     Bool_t added=false; 
00134     for(int istp = 0; istp < nustrips; istp++){
00135       if(UStrips[istp].plane == pcce2->UStrips[istp2].plane 
00136          && UStrips[istp].strip == pcce2->UStrips[istp2].strip
00137          && added==false
00138          ){
00139         UStrips[istp].icharge += pcce2->UStrips[istp2].icharge;
00140         added=true;
00141       }
00142       
00143     }
00144     if(added==false){
00145       UStrips.push_back(pcce2->UStrips[istp2]);
00146     }
00147   }
00148 
00149   //Loop over V strips
00150   const int nvstrips = VStrips.size();
00151   const int nvstrips2 = pcce2->VStrips.size();
00152   
00153   for(int istp2 = 0; istp2< nvstrips2; istp2++){
00154     Bool_t added=false;
00155     for(int istp = 0; istp < nvstrips; istp++){
00156       if(VStrips[istp].plane == pcce2->VStrips[istp2].plane 
00157          && VStrips[istp].strip == pcce2->VStrips[istp2].strip
00158          && added==false
00159          ){
00160         VStrips[istp].icharge += pcce2->VStrips[istp2].icharge;
00161         added=true;
00162       }
00163       
00164     }
00165     if(added==false){
00166       VStrips.push_back(pcce2->VStrips[istp2]);
00167     }
00168   }
00169   
00170 }

void MinosCompactEvent::Print  ) 
 

Definition at line 186 of file MinosCompactEvent.cxx.

References chargeScale, ChargeType, eNu, idact, idnu, idres, meanPlane, meanU, meanV, nphysics, nPlanes, nremoved, nxtalk, nxtalk_mistagged, nxtalk_tagged, Qtot, Qtotraw, Run, Snarl, UStrips, VStrips, and y.

00186                              {
00187 
00188   cout << "***Printing MinosCompactEvent" << endl;
00189   cout << "Run: " << Run << endl;
00190   cout << "Snarl: " << Snarl << endl;
00191   cout << "chargeScale: " << chargeScale << endl;
00192   cout << "meanU and meanV: " << meanU << " , " << meanV << endl;
00193   cout << "meanPlane: " << meanPlane << endl;
00194   cout << "Qtot: " << Qtot << endl;
00195 
00196   //MHO0509
00197   cout << "Qtotraw: " << Qtotraw << endl;
00198 
00199   cout << "nPlanes: " << nPlanes << endl;
00200   cout << "eNu: " << eNu << endl;
00201   cout << "y: " << y << endl;
00202   cout << "idnu and idact: " << idnu << " , " << idact << endl;
00203   cout << "idres: " << idres << endl;
00204   cout << "nxtalk: " << nxtalk << endl;
00205   cout << "nxtalk_tagged: " << nxtalk_tagged << endl;
00206   cout << "nxtalk_mistagged: " << nxtalk_mistagged << endl;
00207   cout << "nphysics: " << nphysics << endl;
00208   cout << "nremoved: " << nremoved << endl;
00209   
00210   //MHO0509
00211   cout << "ChargeType: " << ChargeType << endl;
00212 
00213   const int nustrips = UStrips.size();
00214   cout << "--> U strips (pln,stp,q):"  << nustrips << endl;
00215   for(int istp = 0; istp< nustrips; istp++){
00216     cout << UStrips[istp].plane << "," << UStrips[istp].strip << "," << UStrips[istp].icharge << endl;
00217   }
00218   const int nvstrips = VStrips.size();
00219   cout << "--> V strips (pln,stp,q):"  << nvstrips << endl;
00220   for(int istp = 0; istp< nvstrips; istp++){
00221     cout << VStrips[istp].plane << "," << VStrips[istp].strip << "," << VStrips[istp].icharge << endl;
00222   }
00223 
00224 }

void MinosCompactEvent::ScaleCharges float  factor  ) 
 

Definition at line 172 of file MinosCompactEvent.cxx.

References UStrips, and VStrips.

00172                                                 {
00173   
00174   const int nustrips = UStrips.size();
00175   for(int istp = 0; istp< nustrips; istp++){
00176     UStrips[istp].icharge=(int)(UStrips[istp].icharge*factor);
00177   }
00178 
00179   const int nvstrips = VStrips.size();
00180   for(int istp = 0; istp< nvstrips; istp++){
00181     VStrips[istp].icharge=(int)(VStrips[istp].icharge*factor);
00182   }
00183 
00184 }

void MinosCompactEvent::SetPEThreshold float  qpe  ) 
 

Definition at line 93 of file MinosCompactEvent.cxx.

References _peThreshold.

Referenced by MinosCompactEvent().

00094 {
00095 
00096   _peThreshold = q;
00097 
00098 
00099 }

int MinosCompactEvent::SizeOf  ) 
 

Definition at line 722 of file MinosCompactEvent.cxx.

References total(), UStrips, and VStrips.

00722                              {
00723 
00724   // Calculate the size of the object including what's in the vectors
00725 
00726   int total = 0 ;
00727   
00728   total += sizeof(*this);
00729   int nU = UStrips.capacity();
00730   int nV = VStrips.capacity();
00731   total += sizeof(UStrips[0])*(nU+nV);
00732 
00733   return total;
00734 }


Member Data Documentation

float MinosCompactEvent::_peThreshold
 

Definition at line 49 of file MinosCompactEvent.h.

Referenced by GetLastPlaneToUse(), Merge(), MinosCompactEvent(), and SetPEThreshold().

float MinosCompactEvent::chargeScale
 

Definition at line 53 of file MinosCompactEvent.h.

Referenced by MCNNRunner::CompareEvents(), MinosEventDisplay::Draw(), Merge(), MinosCompactEvent(), and Print().

unsigned short MinosCompactEvent::ChargeType
 

Definition at line 79 of file MinosCompactEvent.h.

Referenced by MCNNRunner::CompareEvents(), MinosCompactEvent(), and Print().

float MinosCompactEvent::eNu
 

Definition at line 62 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

short MinosCompactEvent::idact
 

Definition at line 64 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

short MinosCompactEvent::idnu
 

Definition at line 66 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

short MinosCompactEvent::idres
 

Definition at line 65 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

int MinosCompactEvent::meanPlane
 

Definition at line 58 of file MinosCompactEvent.h.

Referenced by MCNNFiller::FillMCNN(), Merge(), MinosCompactEvent(), Print(), and MinosExtraCompactResult::SetNu().

float MinosCompactEvent::meanU
 

Definition at line 56 of file MinosCompactEvent.h.

Referenced by MCNNFiller::FillMCNN(), Merge(), MinosCompactEvent(), Print(), and MinosExtraCompactResult::SetNu().

float MinosCompactEvent::meanV
 

Definition at line 57 of file MinosCompactEvent.h.

Referenced by MCNNFiller::FillMCNN(), Merge(), MinosCompactEvent(), Print(), and MinosExtraCompactResult::SetNu().

int MinosCompactEvent::nphysics
 

Definition at line 74 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), and Print().

int MinosCompactEvent::nPlanes
 

Definition at line 61 of file MinosCompactEvent.h.

Referenced by MCNNRunner::CompactInput(), MCNNFiller::FillMCNN(), MCNNRunner::MakeComparison(), Merge(), MinosCompactEvent(), Print(), and MinosExtraCompactResult::SetNu().

int MinosCompactEvent::nremoved
 

Definition at line 75 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), and Print().

int MinosCompactEvent::nxtalk
 

Definition at line 71 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), and Print().

int MinosCompactEvent::nxtalk_mistagged
 

Definition at line 73 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), and Print().

int MinosCompactEvent::nxtalk_tagged
 

Definition at line 72 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), and Print().

int MinosCompactEvent::Qtot
 

Definition at line 59 of file MinosCompactEvent.h.

Referenced by MCNNRunner::CompactInput(), MCNNRunner::MakeComparison(), Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

int MinosCompactEvent::Qtotraw
 

Definition at line 60 of file MinosCompactEvent.h.

Referenced by MinosCompactEvent(), and Print().

int MinosCompactEvent::Run
 

Definition at line 50 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().

int MinosCompactEvent::Snarl
 

Definition at line 51 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), and ComparisonResult::SetNeutrino().

std::vector<compactStrip_h> MinosCompactEvent::UStrips
 

Definition at line 76 of file MinosCompactEvent.h.

Referenced by MCNNRunner::ClearWorkSpaceA(), MCNNRunner::ClearWorkSpaceB(), MCNNRunner::CompactInput(), MCNNRunner::CompareEvents(), MinosEventDisplay::Draw(), MCNNRunner::FillWorkSpaceA(), MCNNRunner::FillWorkSpaceB(), MCNNRunner::MakeComparison(), Merge(), MinosCompactEvent(), Print(), ScaleCharges(), ComparisonResult::SetNeutrino(), SizeOf(), and ~MinosCompactEvent().

std::vector<compactStrip_h> MinosCompactEvent::VStrips
 

Definition at line 77 of file MinosCompactEvent.h.

Referenced by MCNNRunner::ClearWorkSpaceA(), MCNNRunner::ClearWorkSpaceB(), MCNNRunner::CompactInput(), MCNNRunner::CompareEvents(), MinosEventDisplay::Draw(), MCNNRunner::FillWorkSpaceA(), MCNNRunner::FillWorkSpaceB(), MCNNRunner::MakeComparison(), Merge(), MinosCompactEvent(), Print(), ScaleCharges(), ComparisonResult::SetNeutrino(), SizeOf(), and ~MinosCompactEvent().

float MinosCompactEvent::y
 

Definition at line 63 of file MinosCompactEvent.h.

Referenced by Merge(), MinosCompactEvent(), Print(), ComparisonResult::SetNeutrino(), and MinosExtraCompactResult::SetNu().


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:36 2010 for loon by  doxygen 1.3.9.1