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

CandCalDetSI.cxx

Go to the documentation of this file.
00001  /********************************************************************************/
00002 /*  CandCalDetSI                                                                */
00003 /*  A class to hold supplemental information from CalDet data                   */
00004 /*  Tricia Vahle & Mike Kordosky                                                */
00005 /*  January 8, 2002                                                             */
00006 /********************************************************************************/
00007 
00008 #include "Algorithm/AlgHandle.h"
00009 #include "CalDetSI/CandCalDetSI.h"
00010 #include "CalDetSI/CandCalDetSIHandle.h"
00011 #include "MessageService/MsgService.h"
00012 
00013 ClassImp(CandCalDetSI)  //another macro for rootifying
00014 
00015   CVSID("$ID: CandCalDetSI.cxx, v 1 2002/01/08 00:00:00 vahle Exp$");
00016 
00017 //___________________________________________________________________________//
00018 CandCalDetSI::CandCalDetSI():
00019   fIsSnarlRecord(kTRUE),               //did we find some data?
00020   fTriggerPMT(kFALSE),            //Did the triggerPMT fire?
00021   fCosmicCnt(kFALSE),             //Did the CosmicCnt fire?
00022   fFafErr(kFALSE),                //Faf errors?
00023   fSparseErr(kFALSE),             //sparse errors?
00024   fSnarl(-1),                     //snarl number
00025   fTrigSource(0),                 //trigger source
00026   fKovADC1(0),                     //Cerenkov ADC value
00027   fKovTimeStamp1(0),               //Cerenkov TimeStamp
00028   fKovADC2(0),                     //Cerenkov ADC value
00029   fKovTimeStamp2(0),               //Cerenkov TimeStamp
00030   fKovADC3(0),                     //Cerenkov ADC value
00031   fKovTimeStamp3(0),               //Cerenkov TimeStamp
00032   fSnarlTimeFrame(0),               //Cerenkov Time frame
00033   fSnarlMinTimeStamp(640000000),    //snarl minimum time stamp
00034   fSnarlMaxTimeStamp(0),          //snarl maximum time stamp
00035   fTofTDC0(0),                    //TOF tdc0 value
00036   fTofTDC1(0),                    //TOF tdc1 value
00037   fTofTDC2(0),                    //TOF tdc2 value    
00038   fTofADC0(0),
00039   fTofADC1(0),
00040   fTofADC2(0),
00041   fTofADCTimeStamp0(0),
00042   fTofADCTimeStamp1(0),
00043   fTofADCTimeStamp2(0),
00044   fTofTimeStamp(0),
00045   fTickSinceLast(0),              //Ticks since last snarl
00046   fDeadChips(),                   //vector holding dead chips
00047   fUnderShootChips(),              //map listing undershoot channels
00048  
00049   fCerenkovChannel1(),
00050   fCerenkovChannel2(),
00051   fCerenkovChannel3(),  
00052   fTriggerORBits(0), fTriggerOROK(kFALSE)
00053 
00054 {
00055 } //end constructor
00056 
00057 //__________________________________________________________________________
00058 
00059 
00060 CandCalDetSI::CandCalDetSI(AlgHandle &ah):
00061   CandBase(ah),  //transmit the AlgHandle up the inheritance chain to CandBase
00062 
00063   fIsSnarlRecord(kTRUE),               //did we find some data?
00064   fTriggerPMT(kFALSE),            //Did the triggerPMT fire?
00065   fCosmicCnt(kFALSE),             //Did the CosmicCnt fire?
00066   fFafErr(kFALSE),                //Faf errors?
00067   fSparseErr(kFALSE),             //sparse errors?
00068   fSnarl(-1),                     //snarl number
00069   fTrigSource(0),                 //trigger source
00070   fKovADC1(0),                     //Cerenkov ADC value
00071   fKovTimeStamp1(0),               //Cerenkov TimeStamp
00072   fKovADC2(0),                     //Cerenkov ADC value
00073   fKovTimeStamp2(0),               //Cerenkov TimeStamp
00074   fKovADC3(0),                     //Cerenkov ADC value
00075   fKovTimeStamp3(0),               //Cerenkov TimeStamp
00076   fSnarlTimeFrame(0),               //Cerenkov Time frame
00077   fTofTDC0(0),                    //TOF tdc0 value
00078   fTofTDC1(0),                    //TOF tdc1 value
00079   fTofTDC2(0),                    //TOF tdc2 value
00080   fTofADC0(0),
00081   fTofADC1(0),
00082   fTofADC2(0),
00083   fTofADCTimeStamp0(0),
00084   fTofADCTimeStamp1(0),
00085   fTofADCTimeStamp2(0),
00086   fTofTimeStamp(0),
00087   fTickSinceLast(0),              //Ticks since last snarl
00088   fDeadChips(),                   //vector holding dead chips
00089   fUnderShootChips(),              //map listing undershoot channels
00090  
00091   fCerenkovChannel1(),
00092   fCerenkovChannel2(),
00093   fCerenkovChannel3(),  
00094   fTriggerORBits(0), fTriggerOROK(kFALSE)
00095 {
00096 
00097 
00098 
00099 } //end constructor
00100 
00101 //___________________________________________________________________________//
00102 
00103 CandCalDetSI::CandCalDetSI(AlgHandle &ah, CandHandle &ch, CandContext &cx):
00104 
00105   CandBase(ah),
00106 
00107   fIsSnarlRecord(kTRUE),               //did we find some data?
00108   fTriggerPMT(kFALSE),            //Did the triggerPMT fire?
00109   fCosmicCnt(kFALSE),             //Did the CosmicCnt fire?
00110   fFafErr(kFALSE),                //Faf errors?
00111   fSparseErr(kFALSE),             //sparse errors?
00112   fSnarl(-1),                     //snarl number
00113   fTrigSource(0),                 //trigger source
00114   fKovADC1(0),                     //Cerenkov ADC value
00115   fKovTimeStamp1(0),               //Cerenkov TimeStamp
00116   fKovADC2(0),                     //Cerenkov ADC value
00117   fKovTimeStamp2(0),               //Cerenkov TimeStamp
00118   fKovADC3(0),                     //Cerenkov ADC value
00119   fKovTimeStamp3(0),               //Cerenkov TimeStamp
00120   fSnarlTimeFrame(0),               //Cerenkov Time frame
00121   fTofTDC0(0),                    //TOF tdc0 value
00122   fTofTDC1(0),                    //TOF tdc1 value
00123   fTofTDC2(0),                    //TOF tdc2 value
00124   fTofADC0(0),
00125   fTofADC1(0),
00126   fTofADC2(0),
00127   fTofADCTimeStamp0(0),
00128   fTofADCTimeStamp1(0),
00129   fTofADCTimeStamp2(0),
00130   fTofTimeStamp(0),
00131   
00132   fTickSinceLast(0),              //Ticks since last snarl
00133   fDeadChips(),                   //vector holding dead chips
00134   fUnderShootChips(),              //map listing undershoot channels
00135 
00136   fCerenkovChannel1(),
00137   fCerenkovChannel2(),
00138   fCerenkovChannel3(),
00139   fTriggerORBits(0), fTriggerOROK(kFALSE)
00140 
00141 {
00142 
00143 
00144 
00145   CreateLocalHandle(); 
00146 
00147   MSG("Cand", Msg::kDebug)
00148              << "Begin CandDigit::CandDigit(AlgHandle &, CandHandle &, "
00149              << "CandContext &) ctor: " << endl
00150              << "UidInt = " << GetUidInt()
00151              << ", ArchUidInt " << GetArchUidInt() << endl
00152              << "No. of links = " << GetNLinks() << endl
00153              << "End CandDigit::CandDigit(AlgHandle &, CandHandle &, "
00154              << "CandContext &) ctor." << endl;
00155 
00156 // Run Algorithm to construct Candidate
00157    {                                         // Start of scope.
00158      CandCalDetSIHandle cdh(this);           // cdh will go out of scope
00159      ch = cdh;                               // after setting ch.
00160    }                                         // End of scope.
00161    ah.RunAlg(ch, cx);
00162 } //end constructor
00163 
00164 //___________________________________________________________________________//
00165 
00166 CandCalDetSI::CandCalDetSI(const CandCalDetSI &csi):
00167   CandBase(csi),
00168 
00169   fIsSnarlRecord(csi.fIsSnarlRecord),         //Did we find some data?
00170   fTriggerPMT(csi.fTriggerPMT),           //Did the triggerPMT fire?
00171   fCosmicCnt(csi.fCosmicCnt),             //Did the CosmicCnt fire?
00172   fFafErr(csi.fFafErr),                    //Faf errors?
00173   fSparseErr(csi.fSparseErr),              //sparse errors?
00174   fSnarl(csi.fSnarl),                     //snarl number
00175   fTrigSource(csi.fTrigSource),           //trigger source
00176   fKovADC1(csi.fKovADC1),                   //Cerenkov ADC value
00177   fKovTimeStamp1(csi.fKovTimeStamp1),         //Cerenkov TimeStamp
00178   fKovADC2(csi.fKovADC2),                   //Cerenkov ADC value
00179   fKovTimeStamp2(csi.fKovTimeStamp2),       //Cerenkov TimeStamp
00180   fKovADC3(csi.fKovADC3),                   //Cerenkov ADC value
00181   fKovTimeStamp3(csi.fKovTimeStamp3),        //Cerenkov TimeStamp
00182   fSnarlTimeFrame(0),               //Cerenkov Time frame
00183   fTofTDC0(csi.fTofTDC0),                 //TOF tdc0 value
00184   fTofTDC1(csi.fTofTDC1),                 //TOF tdc1 value
00185   fTofTDC2(csi.fTofTDC2),                 //TOF tdc2 value
00186   fTofADC0(csi.fTofADC0),
00187   fTofADC1(csi.fTofADC1),
00188   fTofADC2(csi.fTofADC2),
00189   fTofADCTimeStamp0(csi.fTofADCTimeStamp0),
00190   fTofADCTimeStamp1(csi.fTofADCTimeStamp1),
00191   fTofADCTimeStamp2(csi.fTofADCTimeStamp2),
00192   fTofTimeStamp(csi.fTofTimeStamp),
00193   
00194   fTickSinceLast(csi.fTickSinceLast),     //Ticks since last snarl    
00195   fDeadChips(csi.fDeadChips),             //vector holding dead chips
00196   fUnderShootChips(csi.fUnderShootChips),  //map listing undershoot channels
00197   fCerenkovChannel1(csi.fCerenkovChannel1),
00198   fCerenkovChannel2(csi.fCerenkovChannel2),
00199   fCerenkovChannel3(csi.fCerenkovChannel3),
00200   fTriggerORBits(csi.fTriggerORBits), fTriggerOROK(csi.fTriggerOROK)
00201 
00202 {
00203     MSG("Cand", Msg::kDebug)
00204     << "Begin CandDigit::CandDigit(const CandDigit &rhs) ctor: " << endl
00205     << "UidInt = " << GetUidInt()
00206     << ", ArchUidInt " << GetArchUidInt() << endl
00207     << "No. of links = " << GetNLinks() << endl
00208     << "End CandDigit::CandDigit(const CandDigit &rhs) ctor." << endl;
00209 } //end constructor
00210 
00211 //__________________________________________________________________________
00212 
00213 CandCalDetSI::~CandCalDetSI() {}  //destructor does nothing
00214 
00215 //__________________________________________________________________________
00216 
00217 void CandCalDetSI::CreateLocalHandle()
00218 {
00219 
00220   SetLocalHandle(new CandCalDetSIHandle(this));
00221 
00222 }//end CreateLocalHandle
00223 
00224 //_______________________________________________________________________
00225 
00226 CandCalDetSI *CandCalDetSI::Dup() const
00227 {
00228 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00229 // Daughter List copy is made in the derived class Dup() function.
00230 // This is because base class copy constructor hasn't yet created
00231 // fLocalHandle with a CandHandle* of the full derived type.
00232 
00233   CandCalDetSI *cb = new CandCalDetSI(*this);           // Copy-ctor dups ptrs
00234   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00235   TIter iterdau = GetDaughterIterator();
00236   CandHandle *dau;
00237   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00238   return cb;
00239 
00240 }//end Dup
00241 
00242 //_____________________________________________________________________________
00243 
00244 CandCalDetSIHandle CandCalDetSI::MakeCandidate(AlgHandle &ah, CandContext &cx)
00245 {
00246 
00247   CandCalDetSIHandle cdh;
00248   new CandCalDetSI(ah, cdh, cx);              // cdh owns the new CandCalDetSI
00249   return cdh;
00250 
00251 }//end MakeCandidate
00252 
00253 //_____________________________________________________________________________
00254 
00255 
00256 
00257 
00258 
00259 
00260 
00261 
00262 
00263 
00264 
00265 
00266 
00267 
00268 
00269 
00270 //  LocalWords:  fCerenkovChannel

Generated on Mon Feb 15 11:06:27 2010 for loon by  doxygen 1.3.9.1