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

CandStripSR Class Reference

#include <CandStripSR.h>

Inheritance diagram for CandStripSR:

CandStrip CandBase CandRefCounted List of all members.

Public Member Functions

 CandStripSR ()
virtual std::ostream & FormatToOStream (std::ostream &os, Option_t *option="") const

Static Public Member Functions

CandStripSRHandle MakeCandidate (AlgHandle &ah, CandContext &cx)

Protected Member Functions

 CandStripSR (AlgHandle &ah)
 CandStripSR (AlgHandle &ah, CandHandle &ch, CandContext &cx)
 CandStripSR (const CandStripSR &rhs)
virtual ~CandStripSR ()
virtual void CreateLocalHandle ()
virtual CandStripSRDup () const
virtual Bool_t IsEquivalent (const TObject *rhs) const

Protected Attributes

Int_t fPlane
Int_t fStrip
Double_t fTime [3]
Double_t fBegTime [2]
Double_t fEndTime [2]
Float_t fChargeNone [2]
Float_t fChargeSigLin [2]
Float_t fChargeSigCorr [2]
Float_t fChargePE [2]
PlaneView::PlaneView_t fPlaneView
PlexStripEndId fStripEndId [3]
UShort_t fDemuxVetoFlag [3]

Friends

class CandStripSRHandle

Constructor & Destructor Documentation

CandStripSR::CandStripSR  ) 
 

Definition at line 28 of file CandStripSR.cxx.

References MSG.

Referenced by Dup(), and MakeCandidate().

00028                          :
00029   fPlane(-1),
00030   fStrip(-1),
00031   fPlaneView(PlaneView::kUnknown)
00032 {
00033   MSG("Cand", Msg::kDebug)
00034                     << "Begin CandStripSR::CandStripSR() ctor: " << endl
00035                                            << "UidInt = " << GetUidInt()
00036                            << ", ArchUidInt " << GetArchUidInt() << endl
00037                              << "No. of links = " << GetNLinks() << endl
00038                       << "End CandStripSR::CandStripSR() ctor." << endl;
00039 
00040   for (int i=0; i<2; i++) {
00041     fBegTime[i] = 0.;
00042     fEndTime[i] = 0.;
00043     fChargeNone[i] = 0.;
00044     fChargeSigLin[i] = 0.;
00045     fChargeSigCorr[i] = 0.;
00046     fChargePE[i] = 0.;
00047   }
00048   for (int i=0; i<3; i++) {
00049     fTime[i] = 0.;
00050     fDemuxVetoFlag[i] = 0;
00051   }
00052 }

CandStripSR::CandStripSR AlgHandle ah  )  [protected]
 

Definition at line 55 of file CandStripSR.cxx.

References fBegTime, fChargeNone, fChargePE, fChargeSigCorr, fChargeSigLin, fDemuxVetoFlag, fEndTime, and fTime.

00055                                       :
00056   CandStrip(ah),     // Should be the next class up on inheritance chain
00057   fPlane(-1),
00058   fStrip(-1),
00059   fPlaneView(PlaneView::kUnknown)
00060 {
00061 
00062 // The sole purpose of this constructor is to transmit the AlgHandle
00063 // up the inheritance chain to CandStrip without having to invoke the
00064 // full constructor of an intermediate Candidate type which the highest
00065 // level Candidate might inherit from.  One only wants to create the
00066 // LocalHandle and invoke the RunAlg() method in the lowest level class.
00067 
00068   for (int i=0; i<2; i++) {
00069     fBegTime[i] = 0.;
00070     fEndTime[i] = 0.;
00071     fChargeNone[i] = 0.;
00072     fChargeSigLin[i] = 0.;
00073     fChargeSigCorr[i] = 0.;
00074     fChargePE[i] = 0.;
00075   }
00076   for (int i=0; i<3; i++) {
00077     fTime[i] = 0.;
00078     fDemuxVetoFlag[i] = 0;
00079   }
00080 }

CandStripSR::CandStripSR AlgHandle ah,
CandHandle ch,
CandContext cx
[protected]
 

Definition at line 83 of file CandStripSR.cxx.

References CreateLocalHandle(), fBegTime, fChargeNone, fChargePE, fChargeSigCorr, fChargeSigLin, fDemuxVetoFlag, fEndTime, fTime, CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), MSG, and AlgHandle::RunAlg().

00084                                                                        :
00085   CandStrip(ah),     // Should be the next class up on inheritance chain
00086   fPlane(-1),
00087   fStrip(-1),
00088   fPlaneView(PlaneView::kUnknown)
00089 {
00090   for (int i=0; i<2; i++) {
00091     fBegTime[i] = 0.;
00092     fEndTime[i] = 0.;
00093     fChargeNone[i] = 0.;
00094     fChargeSigLin[i] = 0.;
00095     fChargeSigCorr[i] = 0.;
00096     fChargePE[i] = 0.;
00097   }
00098   for (int i=0; i<3; i++) {
00099     fTime[i] = 0.;
00100     fDemuxVetoFlag[i] = 0;
00101   }
00102   CreateLocalHandle();
00103   MSG("Cand", Msg::kDebug)
00104          << "Begin CandStripSR::CandStripSR(AlgHandle &, CandHandle &, "
00105                                       << "CandContext &) ctor: " << endl
00106                                            << "UidInt = " << GetUidInt()
00107                            << ", ArchUidInt " << GetArchUidInt() << endl
00108                              << "No. of links = " << GetNLinks() << endl
00109            << "End CandStripSR::CandStripSR(AlgHandle &, CandHandle &, "
00110                                       << "CandContext &) ctor." << endl;
00111 
00112 // Run Algorithm to construct Candidate
00113   {                                                   // Start of scope.
00114     CandStripSRHandle cdh(this);             // cdh will go out of scope
00115     ch = cdh;                                       // after setting ch.
00116   }                                                     // End of scope.
00117   ah.RunAlg(ch, cx);
00118 }

CandStripSR::CandStripSR const CandStripSR rhs  )  [protected]
 

Definition at line 121 of file CandStripSR.cxx.

References fBegTime, fChargeNone, fChargePE, fChargeSigCorr, fChargeSigLin, fDemuxVetoFlag, fEndTime, fStripEndId, fTime, CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), and MSG.

00121                                                :
00122   CandStrip(rhs),    // Should be the next class up on inheritance chain
00123   fPlane(rhs.fPlane),
00124   fStrip(rhs.fStrip),
00125   fPlaneView(rhs.fPlaneView)
00126 {
00127 
00128 //CreateLocalHandle(); // Moved to Dup function following copy-ctor call
00129   MSG("Cand", Msg::kDebug)
00130        << "Begin CandStripSR::CandStripSR(const CandStripSR &rhs) ctor:"
00131                                    << endl << "UidInt = " << GetUidInt()
00132                            << ", ArchUidInt " << GetArchUidInt() << endl
00133                              << "No. of links = " << GetNLinks() << endl
00134          << "End CandStripSR::CandStripSR(const CandStripSR &rhs) ctor."
00135                                                                 << endl;
00136   for (int i=0; i<2; i++) {
00137     fBegTime[i] = rhs.fBegTime[i];
00138     fEndTime[i] = rhs.fEndTime[i];
00139     fChargeNone[i] = rhs.fChargeNone[i];
00140     fChargeSigLin[i] = rhs.fChargeSigLin[i];
00141     fChargeSigCorr[i] = rhs.fChargeSigCorr[i];
00142     fChargePE[i] = rhs.fChargePE[i];
00143   }
00144   for (int i=0; i<3; i++) {
00145     fTime[i] = rhs.fTime[i];
00146     fStripEndId[i] = rhs.fStripEndId[i];
00147     fDemuxVetoFlag[i] = rhs.fDemuxVetoFlag[i];
00148   }
00149 }

CandStripSR::~CandStripSR  )  [protected, virtual]
 

Definition at line 152 of file CandStripSR.cxx.

References CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), and MSG.

00153 {
00154   MSG("Cand", Msg::kDebug)
00155                    << "Begin CandStripSR::~CandStripSR() dtor: " << endl
00156                                            << "UidInt = " << GetUidInt()
00157                            << ", ArchUidInt " << GetArchUidInt() << endl
00158                              << "No. of links = " << GetNLinks() << endl
00159                      << "End CandStripSR::~CandStripSR() dtor." << endl;
00160 }


Member Function Documentation

void CandStripSR::CreateLocalHandle  )  [protected, virtual]
 

Reimplemented from CandStrip.

Definition at line 163 of file CandStripSR.cxx.

References CandStripSRHandle, and CandBase::SetLocalHandle().

Referenced by CandStripSR(), and Dup().

00164 {
00165   SetLocalHandle(new CandStripSRHandle(this));
00166 }

CandStripSR * CandStripSR::Dup  )  const [protected, virtual]
 

Reimplemented from CandStrip.

Definition at line 169 of file CandStripSR.cxx.

References CandBase::AddDaughterLink(), CandStripSR(), CreateLocalHandle(), and CandBase::GetDaughterIterator().

00170 {
00171 
00172 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00173 // Daughter List copy is made in the derived class Dup() function.
00174 // This is because base class copy constructor hasn't yet created
00175 // fLocalHandle with a CandHandle* of the full derived type.
00176   CandStripSR *cb = new CandStripSR(*this);       // Copy-ctor dups ptrs
00177   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00178   TIter iterdau = GetDaughterIterator();
00179   CandHandle *dau;
00180   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00181   return cb;
00182 }

std::ostream & CandStripSR::FormatToOStream std::ostream &  os,
Option_t *  option = ""
const [virtual]
 

Reimplemented from CandStrip.

Definition at line 241 of file CandStripSR.cxx.

References fBegTime, fChargeNone, fChargePE, fChargeSigCorr, fChargeSigLin, fDemuxVetoFlag, fEndTime, CandStrip::FormatToOStream(), fPlane, fStrip, fTime, CandBase::GetDataIndent(), CandBase::GetIndentString(), and option.

00243 {
00244   CandStrip::FormatToOStream(os,option);
00245 
00246   TString opt(option);
00247   if (!opt.Contains("v0")) { // v0 means suppress the data values
00248     const TString& indent = GetIndentString();
00249 
00250     static MsgFormat qfmt("f6.3");
00251     static MsgFormat timefmt("f10.9");
00252     static MsgFormat timensfmt("f5");
00253     os << indent << GetDataIndent()
00254        << "pln " << setw(4) << fPlane 
00255        << " strip " << setw(3) << fStrip
00256        << " VetoFlags " 
00257        <<     fDemuxVetoFlag[0] << " "
00258        <<     fDemuxVetoFlag[1] << " "
00259        <<     fDemuxVetoFlag[2] << " "
00260        << endl;
00261     os << indent << GetDataIndent()
00262        << "Time(ns) " 
00263        <<     timefmt(fTime[0]/Munits::ns) << " "
00264        <<     timefmt(fTime[1]/Munits::ns) << " "
00265        <<     timefmt(fTime[2]/Munits::ns)
00266        << endl;
00267     for (int indx=0; indx<2; ++indx) {
00268       os << indent << GetDataIndent() << "[" << indx << "]"
00269          << " Time(ns) Beg " << timefmt(fBegTime[indx]/Munits::ns)
00270          <<          " End " << timefmt(fEndTime[indx]/Munits::ns)
00271          << endl
00272          << indent << GetDataIndent() 
00273          << "    Charge None "  << qfmt(fChargeNone[indx])
00274          <<      " SigLin "  << qfmt(fChargeSigLin[indx])
00275          <<      " SigCorr " << qfmt(fChargeSigCorr[indx])
00276          <<      " SigPE "   << qfmt(fChargePE[indx])
00277          << endl;
00278     }
00279   }
00280   return os;
00281   
00282 }

Bool_t CandStripSR::IsEquivalent const TObject *  rhs  )  const [protected, virtual]
 

Reimplemented from CandStrip.

Definition at line 185 of file CandStripSR.cxx.

References fBegTime, fChargeNone, fChargePE, fChargeSigCorr, fChargeSigLin, fDemuxVetoFlag, fEndTime, fPlane, fPlaneView, fStrip, fStripEndId, fTime, CandStrip::IsEquivalent(), CandBase::TestArrayEquality(), CandBase::TestDisplayCandBanner(), and CandBase::TestEquality().

00186 {
00187   Bool_t result = true;
00188   if (!CandStrip::IsEquivalent(rhs)) result = false;  // superclass test
00189   TestDisplayCandBanner("CandStripSR");
00190   const CandStripSR* rCnd = dynamic_cast<const CandStripSR*>(rhs);
00191   if (rCnd == NULL) return false;
00192 
00193   result = TestEquality(     "fPlane",  this->fPlane,
00194                                         rCnd->fPlane)         && result;
00195   result = TestEquality(     "fStrip",  this->fStrip,
00196                                         rCnd->fStrip)         && result;
00197   result = TestArrayEquality("fTime",          3,
00198                                         this->fTime, 
00199                                         rCnd->fTime)          && result;
00200   result = TestArrayEquality("fBegTime",       2,
00201                                         this->fBegTime, 
00202                                         rCnd->fBegTime)       && result;
00203   result = TestArrayEquality("fEndTime",       2,
00204                                         this->fEndTime, 
00205                                         rCnd->fEndTime)       && result;
00206   result = TestArrayEquality("fChargeNone",    2,
00207                                         this->fChargeNone, 
00208                                         rCnd->fChargeNone)    && result;
00209   result = TestArrayEquality("fChargeSigLin",  2,
00210                                         this->fChargeSigLin, 
00211                                         rCnd->fChargeSigLin)  && result;
00212   result = TestArrayEquality("fChargeSigCorr", 2,
00213                                         this->fChargeSigCorr, 
00214                                         rCnd->fChargeSigCorr) && result;
00215   result = TestArrayEquality("fChargePE",      2,
00216                                         this->fChargePE, 
00217                                         rCnd->fChargePE)      && result;
00218   result = TestEquality(     "fPlaneView",
00219                                         this->fPlaneView,
00220                                         rCnd->fPlaneView)     && result;
00221   result = TestArrayEquality("fStripEndId",    3,
00222                                         this->fStripEndId, 
00223                                         rCnd->fStripEndId)    && result;
00224   result = TestArrayEquality("fDemuxVetoFlag", 3,
00225                                         this->fDemuxVetoFlag, 
00226                                         rCnd->fDemuxVetoFlag) && result;
00227 
00228   return result;
00229 }

CandStripSRHandle CandStripSR::MakeCandidate AlgHandle ah,
CandContext cx
[static]
 

Reimplemented from CandStrip.

Definition at line 232 of file CandStripSR.cxx.

References CandStripSR().

00234 {
00235   CandStripSRHandle cdh;
00236   new CandStripSR(ah, cdh, cx);          // cdh owns the new CandStripSR
00237   return cdh;
00238 }


Friends And Related Function Documentation

friend class CandStripSRHandle [friend]
 

Definition at line 23 of file CandStripSR.h.

Referenced by CreateLocalHandle().


Member Data Documentation

Double_t CandStripSR::fBegTime[2] [protected]
 

Definition at line 45 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetBegTime(), IsEquivalent(), and CandStripSRHandle::SetBegTime().

Float_t CandStripSR::fChargeNone[2] [protected]
 

Definition at line 47 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetCharge(), IsEquivalent(), and CandStripSRHandle::SetChargeNone().

Float_t CandStripSR::fChargePE[2] [protected]
 

Definition at line 50 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetCharge(), IsEquivalent(), and CandStripSRHandle::SetChargePE().

Float_t CandStripSR::fChargeSigCorr[2] [protected]
 

Definition at line 49 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetCharge(), IsEquivalent(), and CandStripSRHandle::SetChargeSigCorr().

Float_t CandStripSR::fChargeSigLin[2] [protected]
 

Definition at line 48 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetCharge(), IsEquivalent(), and CandStripSRHandle::SetChargeSigLin().

UShort_t CandStripSR::fDemuxVetoFlag[3] [protected]
 

Definition at line 53 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetDemuxVetoFlag(), IsEquivalent(), and CandStripSRHandle::SetDemuxVetoFlag().

Double_t CandStripSR::fEndTime[2] [protected]
 

Definition at line 46 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetEndTime(), IsEquivalent(), and CandStripSRHandle::SetEndTime().

Int_t CandStripSR::fPlane [protected]
 

Definition at line 42 of file CandStripSR.h.

Referenced by FormatToOStream(), CandStripSRHandle::GetPlane(), IsEquivalent(), and CandStripSRHandle::SetPlane().

PlaneView::PlaneView_t CandStripSR::fPlaneView [protected]
 

Definition at line 51 of file CandStripSR.h.

Referenced by CandStripSRHandle::GetPlaneView(), IsEquivalent(), and CandStripSRHandle::SetPlaneView().

Int_t CandStripSR::fStrip [protected]
 

Definition at line 43 of file CandStripSR.h.

Referenced by FormatToOStream(), CandStripSRHandle::GetStrip(), IsEquivalent(), and CandStripSRHandle::SetStrip().

PlexStripEndId CandStripSR::fStripEndId[3] [protected]
 

Definition at line 52 of file CandStripSR.h.

Referenced by CandStripSR(), CandStripSRHandle::GetStripEndId(), IsEquivalent(), and CandStripSRHandle::SetStripEndId().

Double_t CandStripSR::fTime[3] [protected]
 

Definition at line 44 of file CandStripSR.h.

Referenced by CandStripSR(), FormatToOStream(), CandStripSRHandle::GetTime(), IsEquivalent(), and CandStripSRHandle::SetTime().


The documentation for this class was generated from the following files:
Generated on Thu Nov 1 15:56:04 2007 for loon by  doxygen 1.3.9.1