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

SRMom Class Reference

#include <SRMom.h>

List of all members.

Public Member Functions

 SRMom ()
 SRMom (const MomNavigator *mom)
virtual ~SRMom ()
virtual const std::multimap<
Float_t, Float_t > 
ArrayRAlongTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayUAlongTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayVAlongTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayXAlongTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayXAlongTrack (const NtpSRTrack *srTrack) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayYAlongTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const std::multimap<
Float_t, Float_t > 
ArrayYAlongTrack (const NtpSRTrack *srTrack) const
virtual const Int_t BiggestShwIndex (Int_t eventNum) const
virtual const Float_t ChiSq (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t ChiSqPerNDoF (const Int_t eventNum, const Int_t trackNum) const
virtual const Detector::Detector_t Detector () const
virtual const Int_t EvtLthPln (const Int_t eventNum) const
virtual const NtpSRVertexEvtVtx (const Int_t eventNum) const
virtual const Int_t EventVtxPlane (const Int_t eventNum) const
virtual const Float_t EventVtxU (const Int_t eventNum) const
virtual const Float_t EventVtxV (const Int_t eventNum) const
virtual const Float_t EventVtxX (const Int_t eventNum) const
virtual const Float_t EventVtxY (const Int_t eventNum) const
virtual const Float_t EventVtxZ (const Int_t eventNum) const
virtual const Bool_t LISnarl () const
virtual const Int_t LongestTrackIndex (const Int_t eventNum) const
virtual const Int_t NDoF (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t NumEvents () const
virtual const Int_t NumTracks (const Int_t eventNum) const
virtual const Int_t NumShowers (const Int_t eventNum) const
virtual const Int_t RunNumber () const
virtual const Int_t ShwEndPln (const Int_t eventNum, const Int_t shwNum) const
virtual const Int_t ShwLthPlanes (const Int_t eventNum, const Int_t shwNum) const
virtual const Float_t ShwPHGeV (const Int_t eventNum, const Int_t shwNum) const
virtual const NtpSRVertexShwStartVtx (const Int_t eventNum, const Int_t shwNum) const
virtual const Int_t SnarlNumber () const
virtual const Float_t SnarlPoT () const
virtual const NtpStRecordSTRecord () const
virtual const Int_t TrkContained (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackEndPlane (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndDistOuterTransEdge (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndDistZEnd (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrkEndR (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndU (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndV (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndX (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndY (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackEndZ (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrkEnergySimple (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrkFitPass (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackLength (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackLengthPlanes (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackLengthPlanes (const NtpSRTrack *srTrack) const
virtual const Float_t TrkMomCurv (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrkMomRange (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrkNumPln (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackNumStrips (const Int_t eventNum, const Int_t trackNum) const
virtual const NtpSRVertexTrkStartVtx (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackVtxPlane (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackVtxQOvP (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackVtxQOvP (const NtpSRTrack *srTrack) const
virtual const Float_t TrackVtxQOvPError (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrkVtxR (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackVtxX (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackVtxY (const Int_t eventNum, const Int_t trackNum) const
virtual const Float_t TrackVtxZ (const Int_t eventNum, const Int_t trackNum) const

Private Member Functions

virtual const NtpSRTrackLongestTrackInEvent (const Int_t eventNum) const
virtual const NtpSREventSREvent (const Int_t eventNum) const
virtual const NtpSRShowerSRShower (const Int_t eventNum, const Int_t shwNum) const
virtual const NtpSRTrackSRTrack (const Int_t eventNum, const Int_t trackNum) const
virtual const Int_t TrackEndPlane (const NtpSRTrack *srTrack) const
virtual const Int_t TrackVtxPlane (const NtpSRTrack *srTrack) const
virtual const Float_t TrackEndX (const NtpSRTrack *srTrack) const
virtual const Float_t TrackEndY (const NtpSRTrack *srTrack) const
virtual const VldContextVldCntxt () const

Private Attributes

const MomNavigatorfmom
const NtpStRecordfstRecord
const NtpBDLiteRecordfbdLiteRec
const BeamType::BeamType_t fbeamType


Constructor & Destructor Documentation

SRMom::SRMom  )  [explicit]
 

Definition at line 87 of file SRMom.cxx.

00088   : fbeamType(BeamType::kLE)
00089 {
00090   fmom = 0;
00091   fstRecord = 0;
00092   fbdLiteRec = 0;
00093   /*
00094   fbuffSREvt = 0;
00095   fbuffEvtNum = -1;
00096   fbuffSRTrk = 0;
00097   fbuffTrkNum = -1;
00098   */
00099 }

SRMom::SRMom const MomNavigator mom  )  [explicit]
 

Definition at line 102 of file SRMom.cxx.

References fbdLiteRec, fmom, fstRecord, MomNavigator::GetFragment(), MAXMSG, and MSG.

00103   : fbeamType(BeamType::kLE)
00104 {
00105   fmom = mom;
00106   if (!fmom){
00107     MSG("SRMom",Msg::kWarning) 
00108       << "No Mom in this snarl" << endl;
00109     fstRecord = 0;
00110     fbdLiteRec = 0;
00111   }
00112 
00113   else{
00114     fstRecord = dynamic_cast<NtpStRecord*>
00115       (fmom->GetFragment("NtpStRecord"));
00116     if (!fstRecord){
00117       MSG("SRMom",Msg::kWarning) 
00118         << "No NtpStRecord in Mom" << endl;
00119     }
00120 
00121     fbdLiteRec = dynamic_cast<NtpBDLiteRecord*>
00122       (fmom->GetFragment("NtpBDLiteRecord"));
00123     if (!fbdLiteRec){
00124       MAXMSG("SRMom",Msg::kWarning, 10)
00125         << "No NtpBDLiteRecord in Mom" << endl;
00126     }
00127   }
00128 
00129   /*
00130   fbuffSREvt = 0;
00131   fbuffEvtNum = -1;
00132   fbuffSRTrk = 0;
00133   fbuffTrkNum = -1;
00134   */
00135 }

SRMom::~SRMom  )  [virtual]
 

Definition at line 138 of file SRMom.cxx.

References fbdLiteRec, fmom, and fstRecord.

00139 {
00140   fbdLiteRec = 0;
00141   fstRecord = 0;
00142   fmom = 0;
00143   /*
00144   fbuffSREvt = 0;
00145   fbuffEvtNum = -1;
00146   fbuffSRTrk = 0;
00147   fbuffTrkNum = -1;
00148   */
00149 }


Member Function Documentation

const multimap< Float_t, Float_t > SRMom::ArrayRAlongTrack const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 152 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, SRTrack(), NtpSRTrack::stpx, NtpSRTrack::stpy, and NtpSRTrack::stpz.

00154 {
00155   multimap<Float_t, Float_t> md;
00156   md.clear();
00157   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00158   if (!srTrack){
00159     MSG("SRMom",Msg::kWarning)
00160       << "No NtpSRTrack number " << trackNum
00161       << " in event number " << eventNum << endl;
00162     return md;
00163   }
00164   for (Int_t k=0; k<srTrack->nstrip; ++k){
00165 //     if(!srTrack->stpfit[k]){continue;}
00166     Float_t x = srTrack->stpx[k];
00167     Float_t y = srTrack->stpy[k];
00168     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00169                                     sqrt(x*x + y*y)));
00170   }
00171   return md;
00172 }

const multimap< Float_t, Float_t > SRMom::ArrayUAlongTrack const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 175 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, SRTrack(), NtpSRTrack::stpu, and NtpSRTrack::stpz.

Referenced by MajorityCurvature::CalcCombCurv().

00177 {
00178   multimap<Float_t, Float_t> md;
00179   md.clear();
00180   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00181   if (!srTrack){
00182     MSG("SRMom",Msg::kWarning)
00183       << "No NtpSRTrack number " << trackNum
00184       << " in event number " << eventNum << endl;
00185     return md;
00186   }
00187   for (Int_t k=0; k<srTrack->nstrip; ++k){
00188 //     if(!srTrack->stpfit[k]){continue;}
00189     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00190                                     srTrack->stpu[k]));
00191   }
00192   return md;
00193 }

const multimap< Float_t, Float_t > SRMom::ArrayVAlongTrack const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 196 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, SRTrack(), NtpSRTrack::stpv, and NtpSRTrack::stpz.

Referenced by MajorityCurvature::CalcCombCurv().

00198 {
00199   multimap<Float_t, Float_t> md;
00200   md.clear();
00201   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00202   if (!srTrack){
00203     MSG("SRMom",Msg::kWarning)
00204       << "No NtpSRTrack number " << trackNum
00205       << " in event number " << eventNum << endl;
00206     return md;
00207   }
00208   for (Int_t k=0; k<srTrack->nstrip; ++k){
00209 //     if(!srTrack->stpfit[k]){continue;}
00210     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00211                                     srTrack->stpv[k]));
00212   }
00213   return md;
00214 }

const multimap< Float_t, Float_t > SRMom::ArrayXAlongTrack const NtpSRTrack srTrack  )  const [virtual]
 

Definition at line 248 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, NtpSRTrack::stpx, and NtpSRTrack::stpz.

00249 {
00250   multimap<Float_t, Float_t> md;
00251   md.clear();
00252   if (!srTrack){
00253     MSG("SRMom",Msg::kWarning)
00254       << "No NtpSRTrack passed to SRMom::ArrayXAlongTrack" << endl;
00255     return md;
00256   }
00257   
00258   for (Int_t k=0; k<srTrack->nstrip; ++k){
00259     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00260                                     srTrack->stpx[k]));
00261   }
00262   return md;
00263 }

const multimap< Float_t, Float_t > SRMom::ArrayXAlongTrack const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 217 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, SRTrack(), NtpSRTrack::stpx, and NtpSRTrack::stpz.

Referenced by MajorityCurvature::CalcXCurv(), and MajorityCurvature::CalcXCurvObject().

00219 {
00220   multimap<Float_t, Float_t> md;
00221   md.clear();
00222   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00223   if (!srTrack){
00224     MSG("SRMom",Msg::kWarning)
00225       << "No NtpSRTrack number " << trackNum
00226       << " in event number " << eventNum << endl;
00227     return md;
00228   }
00229   
00230   for (Int_t k=0; k<srTrack->nstrip; ++k){
00231 //     if(!srTrack->stpfit[k]){continue;}
00232     // cout<<k<<"  "<<srTrack->stpx[k]<<"  "<<srTrack->stpz[k]<<endl;
00233     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00234                                     srTrack->stpx[k]));
00235   }/*
00236   multimap<Float_t,Float_t>::const_iterator it = md.begin();
00237   
00238   for(int k=0;k<srTrack->nstrip; ++k){
00239     cout<<"from SR MOM  "<<it->first<<"  "<<it->second<<endl;
00240     it++;
00241   }
00242    */
00243   return md;
00244 }

const multimap< Float_t, Float_t > SRMom::ArrayYAlongTrack const NtpSRTrack srTrack  )  const [virtual]
 

Definition at line 288 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, NtpSRTrack::stpy, and NtpSRTrack::stpz.

00289 {
00290   multimap<Float_t, Float_t> md;
00291   md.clear();
00292   if (!srTrack){
00293     MSG("SRMom",Msg::kWarning)
00294       << "No NtpSRTrack passed to SRMom::ArrayYAlongTrack" << endl;
00295     return md;
00296   }
00297   for (Int_t k=0; k<srTrack->nstrip; ++k){
00298     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00299                                     srTrack->stpy[k]));
00300   }
00301   return md;
00302 }

const multimap< Float_t, Float_t > SRMom::ArrayYAlongTrack const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 266 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, SRTrack(), NtpSRTrack::stpy, and NtpSRTrack::stpz.

Referenced by MajorityCurvature::CalcYCurv(), and MajorityCurvature::CalcYCurvObject().

00268 {
00269   multimap<Float_t, Float_t> md;
00270   md.clear();
00271   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00272   if (!srTrack){
00273     MSG("SRMom",Msg::kWarning)
00274       << "No NtpSRTrack number " << trackNum
00275       << " in event number " << eventNum << endl;
00276     return md;
00277   }
00278   for (Int_t k=0; k<srTrack->nstrip; ++k){
00279 //     if(!srTrack->stpfit[k]){continue;}
00280     md.insert(pair<Float_t,Float_t>(srTrack->stpz[k],
00281                                     srTrack->stpy[k]));
00282   }
00283   return md;
00284 }

const Int_t SRMom::BiggestShwIndex Int_t  eventNum  )  const [virtual]
 

Definition at line 305 of file SRMom.cxx.

References MSG, NumShowers(), and ShwPHGeV().

00306 {
00307   Float_t highestPH = 0.0;
00308   Int_t biggestShwIndex = -1;
00309   Int_t numShowers = this->NumShowers(eventNum);
00310   if (numShowers < 1){return -1;}
00311 
00312   for (Int_t j=0; j<numShowers; ++j){
00313     Float_t ph = this->ShwPHGeV(eventNum,j);
00314     if (ph > highestPH){
00315       highestPH = ph;
00316       biggestShwIndex = j;
00317     }
00318   }
00319   if (-1 == biggestShwIndex){
00320     MSG("SRMom",Msg::kWarning) 
00321       << "Showers in event " << eventNum << " have -ve energy." << endl;
00322   }
00323   return biggestShwIndex;
00324 }

const Float_t SRMom::ChiSq const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 327 of file SRMom.cxx.

References NtpSRFitTrack::chi2, NtpSRTrack::fit, MSG, NtpSRFitTrack::pass, and SRTrack().

00329 {
00330   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00331   if (!srTrack){
00332     MSG("SRMom",Msg::kWarning)
00333       << "No NtpSRTrack number " << trackNum
00334       << " in event number " << eventNum << endl;
00335     return -1.0;
00336   }
00337   if (!srTrack->fit.pass) return -1.0;
00338   
00339   return srTrack->fit.chi2;
00340 }

const Float_t SRMom::ChiSqPerNDoF const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 343 of file SRMom.cxx.

References NtpSRFitTrack::chi2, NtpSRTrack::fit, MSG, NtpSRFitTrack::ndof, NtpSRFitTrack::pass, and SRTrack().

00345 {
00346   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00347   if (!srTrack){
00348     MSG("SRMom",Msg::kWarning)
00349       << "No NtpSRTrack number " << trackNum
00350       << " in event number " << eventNum << endl;
00351     return -1.0;
00352   }
00353   if (!srTrack->fit.pass) return -1.0;
00354   if (!srTrack->fit.ndof) return -1.0;
00355 
00356   return srTrack->fit.chi2/srTrack->fit.ndof;
00357 }

const Detector::Detector_t SRMom::Detector  )  const [virtual]
 

Definition at line 360 of file SRMom.cxx.

References VldContext::GetDetector(), and VldCntxt().

00361 {
00362   const VldContext* vc = this->VldCntxt();
00363   if (!vc){return Detector::kUnknown;}
00364   return vc->GetDetector();
00365 }

const Int_t SRMom::EventVtxPlane const Int_t  eventNum  )  const [virtual]
 

Definition at line 395 of file SRMom.cxx.

References MSG, NtpSRVertex::plane, SREvent(), and NtpSREvent::vtx.

00396 {
00397   const NtpSREvent* srEvent = this->SREvent(eventNum);
00398   if(!srEvent){
00399     MSG("SRMom",Msg::kWarning) 
00400       << "No NtpSREvent with event number " << eventNum << endl;
00401     return -1;
00402   }
00403 
00404   return srEvent->vtx.plane;
00405 }

const Float_t SRMom::EventVtxU const Int_t  eventNum  )  const [virtual]
 

Definition at line 408 of file SRMom.cxx.

References MSG, SREvent(), NtpSRVertex::u, and NtpSREvent::vtx.

00409 {
00410   const NtpSREvent* srEvent = this->SREvent(eventNum);
00411   if(!srEvent){
00412     MSG("SRMom",Msg::kWarning) 
00413       << "No NtpSREvent with event number " << eventNum << endl;
00414     return -1;
00415   }
00416 
00417   return srEvent->vtx.u;
00418 }

const Float_t SRMom::EventVtxV const Int_t  eventNum  )  const [virtual]
 

Definition at line 421 of file SRMom.cxx.

References MSG, SREvent(), NtpSRVertex::v, and NtpSREvent::vtx.

00422 {
00423   const NtpSREvent* srEvent = this->SREvent(eventNum);
00424   if(!srEvent){
00425     MSG("SRMom",Msg::kWarning) 
00426       << "No NtpSREvent with event number " << eventNum << endl;
00427     return -1;
00428   }
00429 
00430   return srEvent->vtx.v;
00431 }

const Float_t SRMom::EventVtxX const Int_t  eventNum  )  const [virtual]
 

Definition at line 434 of file SRMom.cxx.

References MSG, SREvent(), NtpSREvent::vtx, and NtpSRVertex::x.

00435 {
00436   const NtpSREvent* srEvent = this->SREvent(eventNum);
00437   if(!srEvent){
00438     MSG("SRMom",Msg::kWarning) 
00439       << "No NtpSREvent with event number " << eventNum << endl;
00440     return -1;
00441   }
00442 
00443   return srEvent->vtx.x;
00444 }

const Float_t SRMom::EventVtxY const Int_t  eventNum  )  const [virtual]
 

Definition at line 447 of file SRMom.cxx.

References MSG, SREvent(), NtpSREvent::vtx, and NtpSRVertex::y.

00448 {
00449   const NtpSREvent* srEvent = this->SREvent(eventNum);
00450   if(!srEvent){
00451     MSG("SRMom",Msg::kWarning) 
00452       << "No NtpSREvent with event number " << eventNum << endl;
00453     return -1;
00454   }
00455 
00456   return srEvent->vtx.y;
00457 }

const Float_t SRMom::EventVtxZ const Int_t  eventNum  )  const [virtual]
 

Definition at line 460 of file SRMom.cxx.

References MSG, SREvent(), NtpSREvent::vtx, and NtpSRVertex::z.

00461 {
00462   const NtpSREvent* srEvent = this->SREvent(eventNum);
00463   if(!srEvent){
00464     MSG("SRMom",Msg::kWarning) 
00465       << "No NtpSREvent with event number " << eventNum << endl;
00466     return -1;
00467   }
00468 
00469   return srEvent->vtx.z;
00470 }

const Int_t SRMom::EvtLthPln const Int_t  eventNum  )  const [virtual]
 

Definition at line 368 of file SRMom.cxx.

References abs(), NtpSREvent::end, MSG, NtpSRVertex::plane, SREvent(), and NtpSREvent::vtx.

00369 {
00370   const NtpSREvent* srEvent = this->SREvent(eventNum);
00371   if(!srEvent){
00372     MSG("SRMom",Msg::kWarning) 
00373       << "No NtpSREvent with event number " << eventNum << endl;
00374     return -1;
00375   }
00376 
00377   return abs((Int_t) (srEvent->vtx.plane) -
00378               (Int_t) (srEvent->end.plane));
00379 }

const NtpSRVertex * SRMom::EvtVtx const Int_t  eventNum  )  const [virtual]
 

Definition at line 382 of file SRMom.cxx.

References MSG, SREvent(), and NtpSREvent::vtx.

00383 {
00384   const NtpSREvent* srEvent = this->SREvent(eventNum);
00385   if(!srEvent){
00386     MSG("SRMom",Msg::kWarning) 
00387       << "No NtpSREvent with event number " << eventNum << endl;
00388     return 0;
00389   }
00390 
00391   return &(srEvent->vtx);
00392 }

const Bool_t SRMom::LISnarl  )  const [virtual]
 

Definition at line 473 of file SRMom.cxx.

References NtpStRecord::evthdr, fstRecord, and NtpSREventSummary::litime.

00474 {
00475   if (!fstRecord){return false;}
00476   if (-1.0 == fstRecord->evthdr.litime){return false;}
00477   else {return true;}
00478 }

const Int_t SRMom::LongestTrackIndex const Int_t  eventNum  )  const [virtual]
 

Definition at line 481 of file SRMom.cxx.

References MSG, NumTracks(), and TrackLength().

00482 {
00483   Float_t longestLength = 0.0;
00484   Int_t longestIndex = -1;
00485   Int_t numTracks = this->NumTracks(eventNum);
00486   if (numTracks < 1){return -1;}
00487 
00488   for (Int_t j=0; j<numTracks; ++j){
00489     Float_t length = this->TrackLength(eventNum,j);
00490     if (length > longestLength){
00491       longestLength = length;
00492       longestIndex = j;
00493     }
00494   }
00495   if (-1 == longestIndex){
00496     MSG("SRMom",Msg::kWarning) 
00497       << "Tracks in event " << eventNum << " have -ve length." << endl;
00498   }
00499   return longestIndex;
00500 }

const NtpSRTrack * SRMom::LongestTrackInEvent const Int_t  eventNum  )  const [private, virtual]
 

Definition at line 503 of file SRMom.cxx.

References MSG, NumTracks(), SRTrack(), and TrackLength().

00504 {
00505   Float_t longestLength = 0.0;
00506   Int_t longestIndex = -1;
00507   Int_t numTracks = this->NumTracks(eventNum);
00508   if (numTracks < 1){return 0;}
00509 
00510   for (Int_t j=0; j<numTracks; ++j){
00511     Float_t length = this->TrackLength(eventNum,j);
00512     if (length > longestLength){
00513       longestLength = length;
00514       longestIndex = j;
00515     }
00516   }
00517   if (-1 == longestIndex){
00518     MSG("SRMom",Msg::kWarning) 
00519       << "Tracks in event " << eventNum << " have -ve length." << endl;
00520     return 0;
00521   }
00522   return this->SRTrack(eventNum, longestIndex);
00523 }

const Int_t SRMom::NDoF const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 526 of file SRMom.cxx.

References NtpSRTrack::fit, MSG, NtpSRFitTrack::ndof, NtpSRFitTrack::pass, and SRTrack().

00528 {
00529   const NtpSRTrack* srTrack = SRTrack(eventNum, trackNum);
00530   if (!srTrack){
00531     MSG("SRMom",Msg::kWarning)
00532       << "No NtpSRTrack number " << trackNum
00533       << " in event number " << eventNum << endl;
00534     return -1;
00535   }
00536   if (!srTrack->fit.pass) return -1;
00537 
00538   return srTrack->fit.ndof;
00539 }

const Int_t SRMom::NumEvents  )  const [virtual]
 

Definition at line 542 of file SRMom.cxx.

References NtpStRecord::evt, and fstRecord.

00543 {
00544   if (!fstRecord){return -1;}
00545 
00546   TClonesArray* srArray = fstRecord->evt;
00547 
00548   TIter digitIter(srArray);
00549   NtpSREvent* srEvent;
00550   Int_t numEvents = 0;
00551   while ( (srEvent = dynamic_cast<NtpSREvent*> (digitIter.Next()) ) ){
00552     numEvents++;
00553   }
00554 
00555   return numEvents;
00556 }

const Int_t SRMom::NumShowers const Int_t  eventNum  )  const [virtual]
 

Definition at line 559 of file SRMom.cxx.

References MSG, NtpSREvent::nshower, and SREvent().

Referenced by BiggestShwIndex(), and SRShower().

00560 {
00561   const NtpSREvent* srEvent = this->SREvent(eventNum);
00562   if(!srEvent){
00563     MSG("SRMom",Msg::kWarning) 
00564       << "No NtpSREvent with event number " << eventNum << endl;
00565     return -1;
00566   }
00567 
00568   return srEvent->nshower;
00569 }

const Int_t SRMom::NumTracks const Int_t  eventNum  )  const [virtual]
 

Definition at line 572 of file SRMom.cxx.

References MSG, NtpSREvent::ntrack, and SREvent().

Referenced by LongestTrackIndex(), and LongestTrackInEvent().

00573 {
00574   const NtpSREvent* srEvent = this->SREvent(eventNum);
00575   if(!srEvent){
00576     MSG("SRMom",Msg::kWarning) 
00577       << "No NtpSREvent with event number " << eventNum << endl;
00578     return -1;
00579   }
00580 
00581   return srEvent->ntrack;
00582 }

const Int_t SRMom::RunNumber  )  const [virtual]
 

Definition at line 600 of file SRMom.cxx.

References fstRecord, RecRecordImp< T >::GetHeader(), and RecDataHeader::GetRun().

00601 {
00602   return fstRecord->GetHeader().GetRun();
00603 }

const Int_t SRMom::ShwEndPln const Int_t  eventNum,
const Int_t  shwNum
const [virtual]
 

Definition at line 619 of file SRMom.cxx.

References NtpSRPlane::end, MSG, NtpSRShower::plane, and SRShower().

00621 {
00622   const NtpSRShower* srShower = this->SRShower(eventNum,shwNum);
00623   if (!srShower){
00624     MSG("SRMom",Msg::kWarning)
00625       << "No NtpSRShower number " << shwNum
00626       << " in event number " << eventNum<< endl;
00627     return 0;
00628   }
00629   return (Int_t) srShower->plane.end;
00630 }

const Int_t SRMom::ShwLthPlanes const Int_t  eventNum,
const Int_t  shwNum
const [virtual]
 

Definition at line 633 of file SRMom.cxx.

References abs(), NtpSRPlane::beg, NtpSRPlane::end, MSG, NtpSRShower::plane, and SRShower().

00635 {
00636   const NtpSRShower* srShower = this->SRShower(eventNum,shwNum);
00637   if (!srShower){
00638     MSG("SRMom",Msg::kWarning)
00639       << "No NtpSRShower number " << shwNum
00640       << " in event number " << eventNum<< endl;
00641     return 0;
00642   }
00643   return abs(((Int_t) srShower->plane.end)
00644              - ((Int_t) srShower->plane.beg));
00645 }

const Float_t SRMom::ShwPHGeV const Int_t  eventNum,
const Int_t  shwNum
const [virtual]
 

Definition at line 648 of file SRMom.cxx.

References NtpSRStripPulseHeight::gev, MSG, NtpSRShower::ph, and SRShower().

Referenced by BiggestShwIndex().

00650 {
00651   const NtpSRShower* srShower = this->SRShower(eventNum,shwNum);
00652   if (!srShower){
00653     MSG("SRMom",Msg::kWarning)
00654       << "No NtpSRShower number " << shwNum
00655       << " in event number " << eventNum<< endl;
00656     return 0.0;
00657   }
00658   return srShower->ph.gev;
00659 }

const NtpSRVertex * SRMom::ShwStartVtx const Int_t  eventNum,
const Int_t  shwNum
const [virtual]
 

Definition at line 662 of file SRMom.cxx.

References MSG, SRShower(), and NtpSRShower::vtx.

00664 {
00665   const NtpSRShower* srShower = this->SRShower(eventNum,shwNum);
00666   if (!srShower){
00667     MSG("SRMom",Msg::kWarning)
00668       << "No NtpSRShower number " << shwNum
00669       << " in event number " << eventNum<< endl;
00670     return 0;
00671   }
00672   return &(srShower->vtx);
00673 }

const Int_t SRMom::SnarlNumber  )  const [virtual]
 

Definition at line 606 of file SRMom.cxx.

References fstRecord, RecRecordImp< T >::GetHeader(), and RecPhysicsHeader::GetSnarl().

00607 {
00608   return fstRecord->GetHeader().GetSnarl();
00609 }

const Float_t SRMom::SnarlPoT  )  const [virtual]
 

Definition at line 612 of file SRMom.cxx.

References fbdLiteRec, and NtpBDLiteRecord::tortgt.

00613 {
00614   if (!fbdLiteRec){return 0;}
00615   return fbdLiteRec->tortgt;
00616 }

const NtpSREvent * SRMom::SREvent const Int_t  eventNum  )  const [private, virtual]
 

Definition at line 676 of file SRMom.cxx.

References NtpStRecord::evt, and fstRecord.

Referenced by EventVtxPlane(), EventVtxU(), EventVtxV(), EventVtxX(), EventVtxY(), EventVtxZ(), EvtLthPln(), EvtVtx(), NumShowers(), NumTracks(), SRShower(), and SRTrack().

00677 {
00678   /*
00679   if (fbuffEvtNum == eventNum){
00680     return fbuffSREvt;
00681   }
00682   */
00683   if (!fstRecord){
00684     /*
00685     fbuffSREvt = 0;
00686     fbuffEvtNum = eventNum;
00687     fbuffTrkNum = -1;
00688     fbuffSRTrk = 0;
00689     */
00690     return 0;
00691   }
00692   TClonesArray& srArray = *(fstRecord->evt);
00693   NtpSREvent* srEvent = dynamic_cast<NtpSREvent*> (srArray[eventNum]);
00694   /*
00695   fbuffSREvt = srEvent;
00696   fbuffEvtNum = eventNum;
00697   fbuffTrkNum = -1;
00698   fbuffSRTrk = 0;
00699   */
00700   return srEvent;
00701 }

const NtpSRShower * SRMom::SRShower const Int_t  eventNum,
const Int_t  shwNum
const [private, virtual]
 

Definition at line 704 of file SRMom.cxx.

References fstRecord, MSG, NumShowers(), NtpStRecord::shw, NtpSREvent::shw, and SREvent().

Referenced by ShwEndPln(), ShwLthPlanes(), ShwPHGeV(), and ShwStartVtx().

00706 {
00707   if (shwNum < 0){return 0;}
00708   if (shwNum >= this->NumShowers(eventNum)){return 0;}
00709 
00710   const NtpSREvent* srEvent = this->SREvent(eventNum);
00711   if (!srEvent){
00712     MSG("SRMom",Msg::kWarning) 
00713       << "No NtpSREvent with event number " << eventNum << endl;
00714     return 0;
00715   }
00716  
00717   Int_t shwIndex = srEvent->shw[shwNum];
00718   TClonesArray& shwArray = *(fstRecord->shw);
00719   NtpSRShower* shower = dynamic_cast<NtpSRShower*>
00720     (shwArray[shwIndex]); 
00721   return shower;
00722 }

const NtpSRTrack * SRMom::SRTrack const Int_t  eventNum,
const Int_t  trackNum
const [private, virtual]
 

Definition at line 725 of file SRMom.cxx.

References fstRecord, MSG, SREvent(), NtpStRecord::trk, and NtpSREvent::trk.

Referenced by ArrayRAlongTrack(), ArrayUAlongTrack(), ArrayVAlongTrack(), ArrayXAlongTrack(), ArrayYAlongTrack(), ChiSq(), ChiSqPerNDoF(), LongestTrackInEvent(), NDoF(), TrackEndDistOuterTransEdge(), TrackEndDistZEnd(), TrackEndPlane(), TrackEndU(), TrackEndV(), TrackEndX(), TrackEndY(), TrackEndZ(), TrackLength(), TrackLengthPlanes(), TrackNumStrips(), TrackVtxPlane(), TrackVtxQOvP(), TrackVtxQOvPError(), TrackVtxX(), TrackVtxY(), TrackVtxZ(), TrkEndR(), TrkFitPass(), TrkMomCurv(), TrkMomRange(), TrkNumPln(), TrkStartVtx(), and TrkVtxR().

00727 {
00728   /*
00729   if ((fbuffTrkNum == trackNum) && (fbuffEvtNum == eventNum)){
00730     //    cout << "Returning bufferred track " << SnarlNumber() << ", " << eventNum << ", " << trackNum << endl;
00731     return fbuffSRTrk;
00732   }
00733   */
00734   const NtpSREvent* srEvent = this->SREvent(eventNum);
00735   if (!srEvent){
00736     MSG("SRMom",Msg::kWarning) 
00737       << "No NtpSREvent with event number " << eventNum << endl;
00738     /*
00739     fbuffSRTrk = 0;
00740     fbuffTrkNum = trackNum;
00741     //   cout << "Returning 0 for track " << SnarlNumber() << ", " << eventNum << ", " << trackNum << endl;
00742     */
00743     return 0;
00744   }
00745 
00746   Int_t trackIndex = srEvent->trk[trackNum];
00747   TClonesArray& trackArray = *(fstRecord->trk);
00748   NtpSRTrack* track = dynamic_cast<NtpSRTrack*>
00749     (trackArray[trackIndex]);
00750   /*
00751   fbuffSRTrk = track;
00752   fbuffTrkNum = trackNum;
00753   //  cout << "Returning non-buferred track " << SnarlNumber() << ", " << eventNum << ", " << trackNum << endl;
00754   */
00755   return track;
00756 }

virtual const NtpStRecord* SRMom::STRecord  )  const [inline, virtual]
 

Definition at line 111 of file SRMom.h.

00111 {return fstRecord;}

const Float_t SRMom::TrackEndDistOuterTransEdge const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 783 of file SRMom.cxx.

References PlaneOutline::DistanceToOuterEdge(), fmom, PlexPlaneId::GetPlaneCoverage(), PlexPlaneId::GetPlaneView(), MSG, SRTrack(), TrackEndPlane(), and TrackEndY().

Referenced by TrkContained().

00785 {
00786   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00787   if (!srTrack){
00788     MSG("SRMom",Msg::kWarning)
00789       << "No NtpSRTrack number " << trackNum
00790       << " in event number " << eventNum << endl;
00791     return -999999.9;
00792   }
00793 
00794   const Int_t endPln = this->TrackEndPlane(srTrack);
00795   if (endPln < 0){
00796     MSG("SRMom",Msg::kWarning)
00797       << "Trying to find TrackEndDistOuterTransEdge for a plane "
00798       << "before the start of the detector."
00799       << endl;
00800     return -999999.9;
00801   }
00802   PlexPlaneId planeID(DataUtil::GetDetector(*fmom),
00803                       (UInt_t) endPln);
00804 
00805   Float_t distance = 0;
00806   Float_t xdist = 0;
00807   Float_t ydist = 0;
00808   PlaneOutline plnout;
00809   plnout.DistanceToOuterEdge(this->TrackEndX(srTrack),
00810                              this->TrackEndY(srTrack),
00811                              planeID.GetPlaneView(),
00812                              planeID.GetPlaneCoverage(),
00813                              distance,
00814                              xdist,
00815                              ydist);    
00816   return distance;
00817 }

const Float_t SRMom::TrackEndDistZEnd const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 820 of file SRMom.cxx.

References det, NtpSRTrack::end, fmom, DataUtil::GetDetector(), MSG, SRTrack(), and NtpSRVertex::z.

Referenced by TrkContained().

00822 {
00823   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00824   if (!srTrack){
00825     MSG("SRMom",Msg::kWarning)
00826       << "No NtpSRTrack number " << trackNum
00827       << " in event number " << eventNum << endl;
00828     return -999999.9;
00829   }
00830 
00831   Detector::Detector_t det = DataUtil::GetDetector(*fmom);
00832   Float_t detLength = 282*5.94*Munits::cm;
00833   if (Detector::kFar == det){
00834     detLength = 484*5.94*Munits::cm;
00835   }
00836   else{
00837     if (Detector::kNear != det){
00838       MSG("SRMom",Msg::kWarning)
00839         << "Trying to find TrkEndDistZEnd for non-existant detector."
00840         << endl;
00841       return -999999.9;
00842     }
00843   }
00844   return detLength - srTrack->end.z;
00845 }

const Int_t SRMom::TrackEndPlane const NtpSRTrack srTrack  )  const [private, virtual]
 

Definition at line 862 of file SRMom.cxx.

References NtpSRTrack::end, MSG, and NtpSRVertex::plane.

00863 {
00864   if (!srTrack){
00865     MSG("SRMom",Msg::kWarning)
00866       << "Trying to find TrackEndPlane for a null track." << endl;
00867     return -1;
00868   }
00869   return srTrack->end.plane;
00870 }

const Int_t SRMom::TrackEndPlane const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 848 of file SRMom.cxx.

References NtpSRTrack::end, MSG, NtpSRVertex::plane, and SRTrack().

Referenced by TrackEndDistOuterTransEdge(), and TrackLengthPlanes().

00850 {
00851   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00852   if (!srTrack){
00853     MSG("SRMom",Msg::kWarning)
00854       << "No NtpSRTrack number " << trackNum
00855       << " in event number " << eventNum << endl;
00856     return -1;
00857   }
00858   return srTrack->end.plane;
00859 }

const Float_t SRMom::TrackEndU const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 890 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), and NtpSRVertex::u.

00892 {
00893   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00894   if (!srTrack){
00895     MSG("SRMom",Msg::kWarning)
00896       << "No NtpSRTrack number " << trackNum
00897       << " in event number " << eventNum << endl;
00898     return -999999.9;
00899   }
00900   return srTrack->end.u;
00901 }

const Float_t SRMom::TrackEndV const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 904 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), and NtpSRVertex::v.

00906 {
00907   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00908   if (!srTrack){
00909     MSG("SRMom",Msg::kWarning)
00910       << "No NtpSRTrack number " << trackNum
00911       << " in event number " << eventNum << endl;
00912     return -999999.9;
00913   }
00914   return srTrack->end.v;
00915 }

const Float_t SRMom::TrackEndX const NtpSRTrack srTrack  )  const [private, virtual]
 

Definition at line 932 of file SRMom.cxx.

References NtpSRTrack::end, MSG, and NtpSRVertex::x.

00933 {
00934   if (!srTrack){
00935     MSG("SRMom",Msg::kWarning)
00936       << "Trying to find TrackEndX for a null track." << endl;
00937     return -999999.9;
00938   }
00939   return srTrack->end.x;
00940 }

const Float_t SRMom::TrackEndX const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 918 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), and NtpSRVertex::x.

00920 {
00921   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00922   if (!srTrack){
00923     MSG("SRMom",Msg::kWarning)
00924       << "No NtpSRTrack number " << trackNum
00925       << " in event number " << eventNum << endl;
00926     return -999999.9;
00927   }
00928   return srTrack->end.x;
00929 }

const Float_t SRMom::TrackEndY const NtpSRTrack srTrack  )  const [private, virtual]
 

Definition at line 957 of file SRMom.cxx.

References NtpSRTrack::end, MSG, and NtpSRVertex::y.

00958 {
00959   if (!srTrack){
00960     MSG("SRMom",Msg::kWarning)
00961       << "Trying to find TrackEndY for a null track." << endl;
00962     return -999999.9;
00963   }
00964   return srTrack->end.y;
00965 }

const Float_t SRMom::TrackEndY const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 943 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), and NtpSRVertex::y.

Referenced by TrackEndDistOuterTransEdge().

00945 {
00946   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00947   if (!srTrack){
00948     MSG("SRMom",Msg::kWarning)
00949       << "No NtpSRTrack number " << trackNum
00950       << " in event number " << eventNum << endl;
00951     return -999999.9;
00952   }
00953   return srTrack->end.y;
00954 }

const Float_t SRMom::TrackEndZ const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 968 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), and NtpSRVertex::z.

00970 {
00971   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00972   if (!srTrack){
00973     MSG("SRMom",Msg::kWarning)
00974       << "No NtpSRTrack number " << trackNum
00975       << " in event number " << eventNum << endl;
00976     return -999999.9;
00977   }
00978   return srTrack->end.z;
00979 }

const Float_t SRMom::TrackLength const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1011 of file SRMom.cxx.

References NtpSRTrack::ds, MSG, and SRTrack().

Referenced by LongestTrackIndex(), and LongestTrackInEvent().

01013 {
01014   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01015   if (!srTrack){
01016     MSG("SRMom",Msg::kWarning)
01017       << "No NtpSRTrack number " << trackNum
01018       << " in event number " << eventNum << endl;
01019     return -1.0;
01020   }
01021   Float_t trackLength = srTrack->ds;
01022   return trackLength;
01023 }

const Int_t SRMom::TrackLengthPlanes const NtpSRTrack srTrack  )  const [virtual]
 

Definition at line 1044 of file SRMom.cxx.

References MSG, TrackEndPlane(), and TrackVtxPlane().

01045 {
01046   if (!srTrack){
01047     MSG("SRMom",Msg::kWarning)
01048       << "No NtpSRTrack given to SRMom::TrkLthPln" << endl;
01049     return -1;
01050   }
01051   Int_t vtxPlane = TrackVtxPlane(srTrack);
01052   Int_t endPlane = TrackEndPlane(srTrack);
01053   if (-1 == endPlane || -1 == vtxPlane){return -1;}
01054   Int_t trackLength = endPlane - vtxPlane;
01055   return trackLength;
01056 }

const Int_t SRMom::TrackLengthPlanes const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1026 of file SRMom.cxx.

References MSG, SRTrack(), TrackEndPlane(), and TrackVtxPlane().

Referenced by MajorityCurvature::CurvatureComb(), MajorityCurvature::XCurvature(), MajorityCurvature::XCurvatureObject(), MajorityCurvature::YCurvature(), and MajorityCurvature::YCurvatureObject().

01028 {
01029   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01030   if (!srTrack){
01031     MSG("SRMom",Msg::kWarning)
01032       << "No NtpSRTrack number " << trackNum
01033       << " in event number " << eventNum << endl;
01034     return -1;
01035   }
01036   Int_t vtxPlane = TrackVtxPlane(srTrack);
01037   Int_t endPlane = TrackEndPlane(srTrack);
01038   if (-1 == endPlane || -1 == vtxPlane){return -1;}
01039   Int_t trackLength = endPlane - vtxPlane;
01040   return trackLength;
01041 }

const Int_t SRMom::TrackNumStrips const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1103 of file SRMom.cxx.

References MSG, NtpSRTrack::nstrip, and SRTrack().

01105 {
01106   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01107   if (!srTrack){
01108     MSG("SRMom",Msg::kWarning)
01109       << "No NtpSRTrack number " << trackNum
01110       << " in event number " << eventNum << endl;
01111     return -1;
01112   }
01113   return srTrack->nstrip;
01114 }

const Int_t SRMom::TrackVtxPlane const NtpSRTrack srTrack  )  const [private, virtual]
 

Definition at line 1145 of file SRMom.cxx.

References MSG, NtpSRVertex::plane, and NtpSRTrack::vtx.

01146 {
01147   if (!srTrack){
01148     MSG("SRMom",Msg::kWarning)
01149       << "Trying to find TrackEndX for a null track." << endl;
01150     return -1;
01151   }
01152   return srTrack->vtx.plane;
01153 }

const Int_t SRMom::TrackVtxPlane const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1131 of file SRMom.cxx.

References MSG, NtpSRVertex::plane, SRTrack(), and NtpSRTrack::vtx.

Referenced by TrackLengthPlanes().

01133 {
01134   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01135   if (!srTrack){
01136     MSG("SRMom",Msg::kWarning)
01137       << "No NtpSRTrack number " << trackNum
01138       << " in event number " << eventNum << endl;
01139     return -1;
01140   }
01141   return srTrack->vtx.plane;
01142 }

const Float_t SRMom::TrackVtxQOvP const NtpSRTrack srTrack  )  const [virtual]
 

Definition at line 1170 of file SRMom.cxx.

References NtpSRTrack::momentum, MSG, and NtpSRMomentum::qp.

01171 {
01172   if (!srTrack){
01173     MSG("SRMom",Msg::kWarning)
01174       << "No NtpSRTrack given to SRMom::TrackVtxQOvP" << endl;
01175     return -999999.9;
01176   }
01177   return srTrack->momentum.qp;
01178 }

const Float_t SRMom::TrackVtxQOvP const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1156 of file SRMom.cxx.

References NtpSRTrack::momentum, MSG, NtpSRMomentum::qp, and SRTrack().

Referenced by MajorityCurvature::CurvatureImproved().

01158 {
01159   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01160   if (!srTrack){
01161     MSG("SRMom",Msg::kWarning)
01162       << "No NtpSRTrack number " << trackNum
01163       << " in event number " << eventNum << endl;
01164     return -999999.9;
01165   }
01166   return srTrack->momentum.qp;
01167 }

const Float_t SRMom::TrackVtxQOvPError const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1181 of file SRMom.cxx.

References NtpSRMomentum::eqp, NtpSRTrack::momentum, MSG, and SRTrack().

01183 {
01184   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01185   if (!srTrack){
01186     MSG("SRMom",Msg::kWarning)
01187       << "No NtpSRTrack number " << trackNum
01188       << " in event number " << eventNum << endl;
01189     return -999999.9;
01190   }
01191   return srTrack->momentum.eqp;
01192 }

const Float_t SRMom::TrackVtxX const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1212 of file SRMom.cxx.

References MSG, SRTrack(), NtpSRTrack::vtx, and NtpSRVertex::x.

01214 {
01215   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01216   if (!srTrack){
01217     MSG("SRMom",Msg::kWarning)
01218       << "No NtpSRTrack number " << trackNum
01219       << " in event number " << eventNum << endl;
01220     return -999999.9;
01221   }
01222   return srTrack->vtx.x;
01223 }

const Float_t SRMom::TrackVtxY const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1226 of file SRMom.cxx.

References MSG, SRTrack(), NtpSRTrack::vtx, and NtpSRVertex::y.

01228 {
01229   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01230   if (!srTrack){
01231     MSG("SRMom",Msg::kWarning)
01232       << "No NtpSRTrack number " << trackNum
01233       << " in event number " << eventNum << endl;
01234     return -999999.9;
01235   }
01236   return srTrack->vtx.y;
01237 }

const Float_t SRMom::TrackVtxZ const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1240 of file SRMom.cxx.

References MSG, SRTrack(), NtpSRTrack::vtx, and NtpSRVertex::z.

01242 {
01243   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01244   if (!srTrack){
01245     MSG("SRMom",Msg::kWarning)
01246       << "No NtpSRTrack number " << trackNum
01247       << " in event number " << eventNum << endl;
01248     return -999999.9;
01249   }
01250   return srTrack->vtx.z;
01251 }

const Int_t SRMom::TrkContained const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 759 of file SRMom.cxx.

References TrackEndDistOuterTransEdge(), and TrackEndDistZEnd().

Referenced by TrkEnergySimple().

00761 {
00762   Float_t dOut = this->TrackEndDistOuterTransEdge(eventNum,trackNum);
00763   Float_t dz = this->TrackEndDistZEnd(eventNum,trackNum);
00764   if (dOut < -999990){return -1;}
00765   if (dz < -999990){return -1;}
00766   if (dOut < 0.2){return 0;}
00767   if (dz < 0.2){return 0;}
00768   return 1;
00769   /*
00770   //Will only work with newer versions of the code
00771   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00772   if (!srTrack){
00773     MSG("SRMom",Msg::kWarning)
00774       << "No NtpSRTrack number " << trackNum
00775       << " in event number " << eventNum << endl;
00776     return -1;
00777   }
00778   return srTrack->contained;
00779   */
00780 }

const Float_t SRMom::TrkEndR const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 873 of file SRMom.cxx.

References NtpSRTrack::end, MSG, SRTrack(), NtpSRVertex::x, and NtpSRVertex::y.

00875 {
00876   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
00877   if (!srTrack){
00878     MSG("SRMom",Msg::kWarning)
00879       << "No NtpSRTrack number " << trackNum
00880       << " in event number " << eventNum << endl;
00881     return -999999.9;
00882   }
00883   Float_t x = srTrack->end.x;
00884   Float_t y = srTrack->end.y;
00885   Float_t r = sqrt(x*x + y*y);
00886   return r;
00887 }

const Float_t SRMom::TrkEnergySimple const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 982 of file SRMom.cxx.

References TrkContained(), TrkMomCurv(), and TrkMomRange().

00984 {
00985   //Simple function that uses the SR's opinion on containment.
00986   Int_t contained = this->TrkContained(eventNum,trackNum);
00987   if (-1.0 == contained){
00988     return -999999.9;
00989   }
00990   if (!contained){
00991     return this->TrkMomCurv(eventNum,trackNum);
00992   }
00993   return TrkMomRange(eventNum,trackNum);
00994 }

const Int_t SRMom::TrkFitPass const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 997 of file SRMom.cxx.

References NtpSRTrack::fit, MSG, NtpSRFitTrack::pass, and SRTrack().

00999 {
01000   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01001   if (!srTrack){
01002     MSG("SRMom",Msg::kWarning)
01003       << "No NtpSRTrack number " << trackNum
01004       << " in event number " << eventNum << endl;
01005     return -1;
01006   }
01007   return (Int_t) srTrack->fit.pass;
01008 }

const Float_t SRMom::TrkMomCurv const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1059 of file SRMom.cxx.

References NtpSRTrack::momentum, MSG, NtpSRMomentum::qp, and SRTrack().

Referenced by TrkEnergySimple().

01061 {
01062   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01063   if (!srTrack){
01064     MSG("SRMom",Msg::kWarning)
01065       << "No NtpSRTrack number " << trackNum
01066       << " in event number " << eventNum << endl;
01067     return -999999.9;
01068   }
01069   Float_t qOvp = srTrack->momentum.qp;
01070   if (!qOvp) return -999999.9;
01071   return fabs(1.0/qOvp);
01072 }

const Float_t SRMom::TrkMomRange const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1075 of file SRMom.cxx.

References NtpSRTrack::momentum, MSG, NtpSRMomentum::range, and SRTrack().

Referenced by TrkEnergySimple().

01077 {
01078   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01079   if (!srTrack){
01080     MSG("SRMom",Msg::kWarning)
01081       << "No NtpSRTrack number " << trackNum
01082       << " in event number " << eventNum << endl;
01083     return -999999.9;
01084   }
01085   return srTrack->momentum.range;
01086 }

const Int_t SRMom::TrkNumPln const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1089 of file SRMom.cxx.

References MSG, NtpSRPlane::n, NtpSRTrack::plane, and SRTrack().

01091 {
01092   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01093   if (!srTrack){
01094     MSG("SRMom",Msg::kWarning)
01095       << "No NtpSRTrack number " << trackNum
01096       << " in event number " << eventNum << endl;
01097     return -1;
01098   }
01099   return srTrack->plane.n;
01100 }

const NtpSRVertex * SRMom::TrkStartVtx const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1117 of file SRMom.cxx.

References MSG, SRTrack(), and NtpSRTrack::vtx.

01119 {
01120   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01121   if (!srTrack){
01122     MSG("SRMom",Msg::kWarning)
01123       << "No NtpSRTrack number " << trackNum
01124       << " in event number " << eventNum << endl;
01125     return 0;
01126   }
01127   return &(srTrack->vtx);
01128 }

const Float_t SRMom::TrkVtxR const Int_t  eventNum,
const Int_t  trackNum
const [virtual]
 

Definition at line 1195 of file SRMom.cxx.

References MSG, SRTrack(), NtpSRTrack::vtx, NtpSRVertex::x, and NtpSRVertex::y.

01197 {
01198   const NtpSRTrack* srTrack = this->SRTrack(eventNum, trackNum);
01199   if (!srTrack){
01200     MSG("SRMom",Msg::kWarning)
01201       << "No NtpSRTrack number " << trackNum
01202       << " in event number " << eventNum << endl;
01203     return -999999.9;
01204   }
01205   Float_t x = srTrack->vtx.x;
01206   Float_t y = srTrack->vtx.y;
01207   Float_t r = sqrt(x*x + y*y);
01208   return r;
01209 }

const VldContext * SRMom::VldCntxt  )  const [private, virtual]
 

Definition at line 1254 of file SRMom.cxx.

References fstRecord, and RecRecordImp< T >::GetVldContext().

Referenced by Detector().

01255 {
01256   if (!fstRecord){
01257     return 0;
01258   }
01259   return fstRecord->GetVldContext();
01260 }


Member Data Documentation

const NtpBDLiteRecord* SRMom::fbdLiteRec [private]
 

Definition at line 178 of file SRMom.h.

Referenced by SnarlPoT(), SRMom(), and ~SRMom().

const BeamType::BeamType_t SRMom::fbeamType [private]
 

Definition at line 185 of file SRMom.h.

const MomNavigator* SRMom::fmom [private]
 

Definition at line 176 of file SRMom.h.

Referenced by SRMom(), TrackEndDistOuterTransEdge(), TrackEndDistZEnd(), and ~SRMom().

const NtpStRecord* SRMom::fstRecord [private]
 

Definition at line 177 of file SRMom.h.

Referenced by LISnarl(), NumEvents(), RunNumber(), SnarlNumber(), SREvent(), SRMom(), SRShower(), SRTrack(), VldCntxt(), and ~SRMom().


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