FillHvFromSingles Class Reference

#include <FillHvFromSingles.h>

Inheritance diagram for FillHvFromSingles:
JobCModule

List of all members.

Public Member Functions

 FillHvFromSingles ()
 ~FillHvFromSingles ()
void BeginJob ()
JobCResult Get (MomNavigator *mom)
const RegistryDefaultConfig () const
void Config (const Registry &r)
void HandleCommand (JobCommand *command)
void EndJob ()

Private Member Functions

void PrintResults ()
void ProcessBlock (TObject *obj)
void PruneShortEntries (Int_t nSecs, Int_t nChips)
void WriteToFile ()
void WriteToDatabase ()
void WriteToDatabase (Int_t begtime, Int_t endtime, Detector::Detector_t detector, Int_t supermodule, Int_t hvstatus, Int_t coldchips)
void ReadFromDatabase ()
void ReadFromDatabase (Int_t time, Detector::Detector_t detector, Int_t supermodule, Int_t &hvstatus, Int_t &coldchips)
void WriteOutResults (Int_t source, Int_t begtime, Int_t endtime, Detector::Detector_t detector, Int_t supermodule, Int_t hvstatus, Int_t coldchips)

Private Attributes

Int_t fBegTime
Int_t fEndTime
Int_t fRecord
Int_t fCounter
Int_t fWriteEntries
Int_t fReadEntries
Int_t fTask
Int_t fCurrColdChipsSM1
Int_t fCurrColdChipsSM2
Int_t fMinVaRate
Int_t fMinQieRate
Int_t fMaxColdChips
Int_t fWriteToDatabase
Int_t fReadFromDatabase
Int_t fWriteOutResults
Int_t fPruneShortEntries
Int_t fPruneMinTime
Int_t fPruneMinChips
TFile * fHvFile
TString fHvFileName
TTree * fHvTree
Int_t BegTime
Int_t EndTime
Int_t Source
Int_t Detector
Int_t Supermodule
Int_t HvStatus
Int_t ColdChips
vector< int > vecTimeSM1
vector< int > vecStatusSM1
vector< int > vecColdChipsSM1
vector< int > vecTimeSM2
vector< int > vecStatusSM2
vector< int > vecColdChipsSM2
Detector::Detector_t fDetector
RawReadoutfRawReadout

Detailed Description

Definition at line 20 of file FillHvFromSingles.h.


Constructor & Destructor Documentation

FillHvFromSingles::FillHvFromSingles (  ) 

Definition at line 41 of file FillHvFromSingles.cxx.

References Msg::kDebug, Detector::kUnknown, and MSG.

00041                                      :
00042   fBegTime(-1),
00043   fEndTime(-1),
00044   fRecord(0),
00045   fCounter(0),
00046   fWriteEntries(0),
00047   fReadEntries(0),
00048   fTask(1),
00049   fMinVaRate(50),
00050   fMinQieRate(0),
00051   fMaxColdChips(20),
00052   fWriteToDatabase(0),
00053   fReadFromDatabase(0),
00054   fWriteOutResults(0),
00055   fPruneShortEntries(0),
00056   fPruneMinTime(0),
00057   fPruneMinChips(0),
00058   fHvFile(0),
00059   fHvFileName("hvstatus.root"),
00060   fHvTree(0),
00061   fRawReadout(0)
00062 {
00063   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::FillHvFromSingles() *** " << endl;
00064  
00065   fCurrColdChipsSM1 = -1;
00066   fCurrColdChipsSM2 = -1;
00067 
00068   fDetector = Detector::kUnknown;
00069   fRawReadout = new RawReadout();
00070 }

FillHvFromSingles::~FillHvFromSingles (  ) 

Definition at line 72 of file FillHvFromSingles.cxx.

References fRawReadout, Msg::kDebug, and MSG.

00073 {
00074   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::~FillHvFromSingles() *** " << endl;
00075 
00076   if( fRawReadout) delete fRawReadout;
00077 }


Member Function Documentation

void FillHvFromSingles::BeginJob ( void   )  [virtual]

Implement for notification of begin of job

Reimplemented from JobCModule.

Definition at line 79 of file FillHvFromSingles.cxx.

References Msg::kDebug, and MSG.

00080 {
00081   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::BeginJob() *** " << endl;
00082  
00083 }

void FillHvFromSingles::Config ( const Registry r  )  [virtual]

Return the actual configuration. If your module directly pulls its configuration from the fConfig Registry, you don't need to override this. Override if you have local config variables.

Reimplemented from JobCModule.

Definition at line 161 of file FillHvFromSingles.cxx.

References fHvFileName, fMaxColdChips, fMinQieRate, fMinVaRate, fPruneMinChips, fPruneMinTime, fPruneShortEntries, fReadFromDatabase, fTask, fWriteOutResults, fWriteToDatabase, Registry::Get(), Msg::kDebug, and MSG.

00162 {
00163   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::Config() *** " << endl;
00164 
00165   Int_t tmpint; const char* tmpchar = 0;
00166 
00167   if(r.Get("HvFileName",tmpchar)) fHvFileName = tmpchar;
00168   if(r.Get("WriteToDatabase",tmpint)) fWriteToDatabase = tmpint;
00169   if(r.Get("WriteToDatabase",tmpint)) fWriteToDatabase = tmpint;
00170   if(r.Get("ReadFromDatabase",tmpint)) fReadFromDatabase = tmpint;
00171   if(r.Get("WriteOutResults",tmpint)) fWriteOutResults = tmpint;
00172   if(r.Get("PruneShortEntries",tmpint)) fPruneShortEntries = tmpint;
00173   if(r.Get("PruneMinTime",tmpint)) fPruneMinTime = tmpint;
00174   if(r.Get("PruneMinChips",tmpint)) fPruneMinChips = tmpint;
00175   if(r.Get("MinVaRate",tmpint)) fMinVaRate = tmpint;
00176   if(r.Get("MinQieRate",tmpint)) fMinQieRate = tmpint;
00177   if(r.Get("MaxColdChips",tmpint)) fMaxColdChips = tmpint;
00178   if(r.Get("TaskNumber",tmpint)) fTask = tmpint;
00179 
00180   MSG("HvStatus",Msg::kDebug)
00181     << "  configuration: " << endl
00182     << "     HvFileName=" << fHvFileName << endl
00183     << "     WriteToDatabase=" << fWriteToDatabase << endl
00184     << "     ReadFromDatabase=" << fReadFromDatabase << endl
00185     << "     WriteOutResults=" << fWriteOutResults << endl
00186     << "     PruneShortEntries=" << fPruneShortEntries << endl
00187     << "     PruneMinTime=" << fPruneMinTime << endl
00188     << "     PruneMinChips=" << fPruneMinChips << endl
00189     << "     MinVaRate=" << fMinVaRate << endl
00190     << "     MinQieRate=" << fMinQieRate << endl
00191     << "     MaxColdChips=" << fMaxColdChips << endl
00192     << "     TaskNumber=" << fTask << endl;
00193 
00194   return;
00195 }

const Registry & FillHvFromSingles::DefaultConfig ( void   )  const [virtual]

Get the default configuration registry. This should normally be overridden. One useful idiom is to implement it like:

const Registry& MyModule::DefaultConfig() const { static Registry cfg; // never is destroyed if (cfg.Size()) return cfg; // already filled it // set defaults: cfg.Set("TheAnswer",42); cfg.Set("Units","unknown"); return cfg; }

Reimplemented from JobCModule.

Definition at line 138 of file FillHvFromSingles.cxx.

References fHvFileName, fMaxColdChips, fMinQieRate, fMinVaRate, fPruneMinChips, fPruneMinTime, fPruneShortEntries, fReadFromDatabase, fTask, fWriteOutResults, fWriteToDatabase, Msg::kDebug, Registry::LockValues(), MSG, Registry::Set(), and Registry::UnLockValues().

00139 {
00140   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::DefaultConfig() *** " << endl;
00141  
00142   static Registry r;
00143   r.SetName("HvStatus.config.default");
00144   r.UnLockValues();
00145   r.Set("HvFileName",fHvFileName.Data());
00146   r.Set("WriteToDatabase",fWriteToDatabase);
00147   r.Set("ReadFromDatabase",fReadFromDatabase);
00148   r.Set("WriteOutResults",fWriteOutResults);
00149   r.Set("PruneShortEntries",fPruneShortEntries);
00150   r.Set("PruneMinTime",fPruneMinTime);
00151   r.Set("PruneMinChips",fPruneMinChips);
00152   r.Set("MinVaRate",fMinVaRate);
00153   r.Set("MinQieRate",fMinQieRate);
00154   r.Set("MaxColdChips",fMaxColdChips);
00155   r.Set("TaskNumber",fTask);
00156   r.LockValues();
00157                     
00158   return r;
00159 }

void FillHvFromSingles::EndJob (  )  [virtual]

Implement for notification of end of job

Reimplemented from JobCModule.

Definition at line 208 of file FillHvFromSingles.cxx.

References fEndTime, fHvFile, fHvTree, fPruneMinChips, fPruneMinTime, fPruneShortEntries, fReadEntries, fReadFromDatabase, fWriteEntries, fWriteOutResults, fWriteToDatabase, Msg::kInfo, MSG, PrintResults(), PruneShortEntries(), ReadFromDatabase(), vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, vecTimeSM2, WriteToDatabase(), and WriteToFile().

00209 {
00210   MSG("HvStatus",Msg::kInfo) << " *** FillHvFromSingles::EndJob() *** " << endl;
00211 
00212   // add final entry for SM1
00213   if( vecTimeSM1.size()>0 ){
00214     vecTimeSM1.push_back(fEndTime+1);
00215     vecStatusSM1.push_back(-1);
00216     vecColdChipsSM1.push_back(-1);
00217   }
00218 
00219   // add final entry for SM2
00220   if( vecTimeSM2.size()>0 ){
00221     vecTimeSM2.push_back(fEndTime+1);
00222     vecStatusSM2.push_back(-1);
00223     vecColdChipsSM2.push_back(-1);
00224   }
00225 
00226   // print out results
00227   this->PrintResults();
00228 
00229   // prune short entries
00230   if( fPruneShortEntries ){
00231     MSG("HvStatus",Msg::kInfo) << " *** pruning short entries *** " << endl;
00232     this->PruneShortEntries(fPruneMinTime,fPruneMinChips);
00233     this->PrintResults();
00234   }
00235 
00236   // write out results
00237   if( fWriteOutResults ){
00238     MSG("HvStatus",Msg::kInfo) << " *** writing to file..." << endl; 
00239     this->WriteToFile();
00240     MSG("HvStatus",Msg::kInfo) << "      ... finished writing to file *** " << endl; 
00241   }
00242 
00243   // write HV information to database
00244   if( fWriteToDatabase ){
00245     MSG("HvStatus",Msg::kInfo) << " *** writing to database..." << endl; 
00246     this->WriteToDatabase();
00247     MSG("HvStatus",Msg::kInfo) << "   WROTE " << fWriteEntries << " ENTRIES TO DATABASE " << endl;
00248     MSG("HvStatus",Msg::kInfo) << "      ... finished writing to database *** " << endl; 
00249   }
00250 
00251   // read HV information from database
00252   if( fReadFromDatabase ){
00253     MSG("HvStatus",Msg::kInfo) << " *** reading from database..." << endl; 
00254     this->ReadFromDatabase();
00255     MSG("HvStatus",Msg::kInfo) << "   READ " << fReadEntries << " ENTRIES FROM DATABASE " << endl;
00256     MSG("HvStatus",Msg::kInfo) << "      ... finished reading from database *** " << endl; 
00257   }
00258 
00259   // save HV information in root file
00260   if(fHvFile){
00261     MSG("HvStatus",Msg::kInfo) << " *** saving info to file ... " << endl;
00262     TDirectory* tmpd = gDirectory;
00263     fHvFile->cd();
00264     fHvTree->Write();
00265     fHvFile->Close();
00266     gDirectory = tmpd;
00267     MSG("HvStatus",Msg::kInfo) << "      ... info saved to file *** " << endl;
00268   }
00269 }

JobCResult FillHvFromSingles::Get ( MomNavigator mom  )  [virtual]

Implement if your module needs to read data from some external source and fill mom

Reimplemented from JobCModule.

Definition at line 85 of file FillHvFromSingles.cxx.

References fCounter, fDetector, MomNavigator::FragmentIter(), fRecord, VldContext::GetDetector(), RecMinos::GetHeader(), RawRecord::GetRawBlockIter(), RecMinosHdr::GetVldContext(), Msg::kDebug, Msg::kInfo, JobCResult::kPassed, Detector::kUnknown, Msg::kWarning, MSG, ProcessBlock(), and JobCResult::SetFailed().

00086 {
00087   MSG("HvStatus",Msg::kInfo) << " *** FillHvFromSingles::Get(...) *** " << endl;
00088   
00089   JobCResult result(JobCResult::kPassed);
00090 
00091   TObject* momobject = 0;
00092 
00093   fRecord=0;
00094 
00095   TIter momitr(mom->FragmentIter());
00096   while((momobject = momitr())){
00097     if(momobject->InheritsFrom("RawRecord")){
00098       RawRecord* rawrec = dynamic_cast<RawRecord*>(momobject);
00099       fRecord=1; fCounter++;
00100       MSG("HvStatus",Msg::kInfo) << "  *** RAW RECORD [" << fCounter << "] ***  " << endl;
00101 
00102       // set the detector type
00103       if(fDetector==Detector::kUnknown){
00104         fDetector=rawrec->GetHeader()->GetVldContext().GetDetector();
00105         MSG("HvStatus",Msg::kDebug) << " Detector = " << fDetector << endl;
00106       }
00107       
00108       // iterate over raw blocks
00109       TIter rawrecitr = rawrec->GetRawBlockIter();
00110       TObject* tob = 0;
00111       while((tob = rawrecitr())){
00112         MSG("HvStatus",Msg::kDebug) << " " << tob->GetName() << endl;
00113         this->ProcessBlock(tob);
00114       }
00115 
00116     }
00117   }
00118                                                                                             
00119   if( !fRecord ){
00120     MSG("HvStatus",Msg::kWarning) << "  *** FAILED TO FIND RAW RECORD ***  " << endl;
00121     return result.SetFailed();
00122   }
00123 
00124   return result;
00125 }

void FillHvFromSingles::HandleCommand ( JobCommand command  )  [virtual]

Implement to handle a JobCommand

Reimplemented from JobCModule.

Definition at line 197 of file FillHvFromSingles.cxx.

References JobCommand::PopCmd(), and JobCommand::PopOpt().

00198 {
00199   TString cmd = command->PopCmd();
00200   if(cmd=="Set"){
00201     TString opt = command->PopOpt();
00202 
00203   }
00204 
00205   return;
00206 }

void FillHvFromSingles::PrintResults (  )  [private]

Definition at line 271 of file FillHvFromSingles.cxx.

References Msg::kDebug, MSG, vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, and vecTimeSM2.

Referenced by EndJob().

00272 {
00273   // print out results for supermodule 1
00274   MSG("HvStatus",Msg::kDebug) << " results for supermodule 1: " << endl;
00275   for( unsigned int i=0; i<vecTimeSM1.size(); i++){
00276     MSG("HvStatus",Msg::kDebug) << "   time=" << vecTimeSM1[i] << " coldchips=" << vecColdChipsSM1[i] << " status=" << vecStatusSM1[i] << endl;
00277   }
00278 
00279   // print out results from supermodule 2
00280   MSG("HvStatus",Msg::kDebug) << " results for supermodule 2: " << endl;
00281   for( unsigned int i=0; i<vecTimeSM2.size(); i++){
00282     MSG("HvStatus",Msg::kDebug) << "   time=" << vecTimeSM2[i] << " coldchips=" << vecColdChipsSM2[i] << " status=" << vecStatusSM2[i] << endl;
00283   }
00284 }

void FillHvFromSingles::ProcessBlock ( TObject *  obj  )  [private]

Definition at line 286 of file FillHvFromSingles.cxx.

References MuELoss::e, fBegTime, fCurrColdChipsSM1, fCurrColdChipsSM2, fEndTime, fMaxColdChips, fMinQieRate, fMinVaRate, fRawReadout, RawChannelId::GetCrate(), RawTpSinglesSummaryBlock::GetEndTimeStamp(), VldTimeStamp::GetNanoSec(), RawTpSinglesSummaryBlock::GetRates(), RawReadout::GetReadoutType(), RawTpSinglesSummaryBlock::GetRunType(), VldTimeStamp::GetSec(), RawTpSinglesSummaryBlock::GetSource(), RawTpSinglesSummaryBlock::GetStartTimeStamp(), Msg::kDebug, RawReadout::kDetector, Detector::kFar, Msg::kInfo, Detector::kNear, Detector::kUnknown, Msg::kVerbose, RawReadout::kVetoShield, MSG, RUN_TYPE_PHYSICS, UtilRSM::RunType(), Source, vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, and vecTimeSM2.

Referenced by Get().

00287 {
00288 
00289   if(obj->InheritsFrom("RawTpSinglesSummaryBlock")){
00290     MSG("HvStatus",Msg::kDebug) << " ... found RawTpSinglesSummaryBlock " << endl;
00291     RawTpSinglesSummaryBlock* rdb = (RawTpSinglesSummaryBlock*)(obj);
00292 
00293     Int_t RunType = rdb->GetRunType();
00294     Bool_t PhysicsRun = 0;
00295 
00296     if( RunType>=0 ){
00297       if( (RunType==2) 
00298        || (RunType&RUN_TYPE_PHYSICS)==(RUN_TYPE_PHYSICS) ){
00299         PhysicsRun = 1;
00300       }
00301     }
00302 
00303     if( PhysicsRun==0 ){
00304       MSG("HvStatus",Msg::kInfo) << " *** Warning: Not a Physics Run *** " << endl;
00305     }
00306 
00307     Int_t Time = rdb->GetStartTimeStamp().GetSec();
00308     Double_t FrameTime = (rdb->GetEndTimeStamp().GetSec()-rdb->GetStartTimeStamp().GetSec())+1.0e-9*(rdb->GetEndTimeStamp().GetNanoSec()-rdb->GetStartTimeStamp().GetNanoSec());
00309     if( fBegTime<0 ) fBegTime=Time;
00310     if( Time>fEndTime ) fEndTime=Time;
00311 
00312     Int_t Source = rdb->GetSource();
00313     Int_t SourceCheck = 0;
00314     Int_t AllChipsSM1 = 0;
00315     Int_t AllChipsSM2 = 0;
00316     Int_t ColdChipsSM1 = 0;
00317     Int_t ColdChipsSM2 = 0;
00318     Int_t StatusSM1 = -1;
00319     Int_t StatusSM2 = -1;
00320     Int_t MaxColdChips = 99999;
00321     Int_t MinRate = 0;
00322 
00323     Detector::Detector_t Detector = Detector::kUnknown;
00324 
00325     switch( Source ){
00326       case 0: // Crate only
00327         Detector = Detector::kUnknown;
00328         break;
00329       case 1: // Crate and VARC (VA)
00330         Detector = Detector::kFar;
00331         break;
00332       case 2: // Crate and VFB/ADCSEL (VA)
00333         Detector = Detector::kFar;
00334         break;
00335       case 3: // Crate and VACHIP (VA)
00336         Detector = Detector::kFar;
00337         break;
00338       case 4: // Crate and Plane
00339         Detector = Detector::kUnknown;
00340         break;
00341       case 5: // Crate and MASTER (QIE)
00342         Detector = Detector::kNear;
00343         break;
00344       case 6: // Crate and MINDER (QIE)
00345         Detector = Detector::kNear;
00346         break;
00347       case 7: // Crate and MENU (QIE)
00348         Detector = Detector::kNear;
00349         break;
00350       default:
00351         break;
00352     }
00353 
00354     // check source type
00355     if( Source==3 && Detector==Detector::kFar ){
00356       MinRate=fMinVaRate;
00357       MaxColdChips=fMaxColdChips;
00358       SourceCheck=1;
00359     }      
00360 
00361     if( Source==7 && Detector==Detector::kNear ){
00362       MinRate=fMinQieRate;
00363       MaxColdChips=fMaxColdChips;
00364       SourceCheck=1;
00365     }
00366 
00367     //
00368     // *** Handle non-physics runs *** 
00369     //
00370     if( PhysicsRun==0 ) SourceCheck = 0;
00371 
00372     // Iterate over raw channels and record any hot/cold chips
00373     typedef std::map<RawChannelId,UInt_t> RCIdToRateMap;
00374     const RCIdToRateMap& rates = rdb->GetRates();
00375     RCIdToRateMap::const_iterator rateItr = rates.begin();
00376     RCIdToRateMap::const_iterator rateEnd = rates.end();
00377     while ( rateItr != rateEnd ) {
00378       RawChannelId rawch = rateItr->first;
00379       Int_t rawrate = rateItr->second;
00380       Int_t correctedrate = (Int_t)(rawrate/FrameTime);
00381       Int_t rate = correctedrate;
00382       Int_t crate = rawch.GetCrate();
00383 
00384       RawReadout::ReadoutType_t readout = fRawReadout->GetReadoutType(rawch);
00385             
00386       if( ( SourceCheck )
00387        && ( readout==RawReadout::kDetector 
00388          || readout==RawReadout::kVetoShield ) ){     
00389 
00390         // supermodule 1   
00391         if( crate>=0 && crate<8 ){
00392           AllChipsSM1++; 
00393           if(rate<MinRate){
00394             ColdChipsSM1++;
00395             MSG("HvStatus",Msg::kVerbose) << "   cold chip (SM1): crate=" << crate << " corrected rate=" << correctedrate << endl; 
00396           }
00397         }
00398 
00399         // supermodule 2
00400         if( crate>=8 && crate<16 ){
00401           AllChipsSM2++; 
00402           if(rate<MinRate){
00403             ColdChipsSM2++;
00404             MSG("HvStatus",Msg::kVerbose) << "   cold chip (SM2): crate=" << crate << " corrected rate=" << correctedrate << endl; 
00405           }
00406         }
00407 
00408       }
00409 
00410       rateItr++;
00411     }
00412 
00413     MSG("HvStatus",Msg::kVerbose) << "   RunType=" << RunType << " PhysicsRun=" << PhysicsRun << endl;
00414     MSG("HvStatus",Msg::kVerbose) << "   Time=" << Time << " FrameTime=" << FrameTime << " Source=" << Source << " Check=" << SourceCheck << endl;
00415     MSG("HvStatus",Msg::kVerbose) << "   MinRate=" << MinRate << " MaxColdChips=" << MaxColdChips << endl;
00416     MSG("HvStatus",Msg::kVerbose) << "   SM1: AllChips=" << AllChipsSM1 << " ColdChips=" << ColdChipsSM1 << endl;
00417     MSG("HvStatus",Msg::kVerbose) << "   SM2: AllChips=" << AllChipsSM2 << " ColdChips=" << ColdChipsSM2 << endl;
00418 
00419     // analyse the singles data
00420     if( SourceCheck ){
00421 
00422       // supermodule 1
00423       if( AllChipsSM1>0 ){
00424 
00425         // set HV status
00426         if( ColdChipsSM1<fMaxColdChips ) StatusSM1=1;
00427         else StatusSM1=0;
00428 
00429         // store new data if things have changed
00430         if( ColdChipsSM1!=fCurrColdChipsSM1 ){
00431           MSG("HvStatus",Msg::kDebug) << "   new data (SM1): time=" << Time << " status=" << StatusSM1 << " coldchips=" << ColdChipsSM1 << endl;
00432           vecTimeSM1.push_back(Time);
00433           vecStatusSM1.push_back(StatusSM1);
00434           vecColdChipsSM1.push_back(ColdChipsSM1);
00435           fCurrColdChipsSM1=ColdChipsSM1;
00436         }
00437       }
00438 
00439       // supermodule 2
00440       if( AllChipsSM2>0 ){
00441 
00442         // set HV status
00443         if( ColdChipsSM2<fMaxColdChips ) StatusSM2=1;
00444         else StatusSM2=0;
00445 
00446         // store new data if things have changed
00447         if( ColdChipsSM2!=fCurrColdChipsSM2 ){ 
00448           MSG("HvStatus",Msg::kDebug) << "   new data (SM2): time=" << Time << " status=" << StatusSM2 << " coldchips=" << ColdChipsSM2 << endl;
00449           vecTimeSM2.push_back(Time);
00450           vecStatusSM2.push_back(StatusSM2);
00451           vecColdChipsSM2.push_back(ColdChipsSM2);
00452           fCurrColdChipsSM2=ColdChipsSM2;
00453         }
00454       }
00455 
00456     }
00457 
00458   }
00459 
00460   return;
00461 }

void FillHvFromSingles::PruneShortEntries ( Int_t  nSecs,
Int_t  nChips 
) [private]

Definition at line 463 of file FillHvFromSingles.cxx.

References fMaxColdChips, Msg::kDebug, Msg::kVerbose, MSG, vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, and vecTimeSM2.

Referenced by EndJob().

00464 {
00465   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::PruneShortEntries(...) *** " << endl;
00466 
00467   MSG("HvStatus",Msg::kVerbose) << " nSecs=" << nSecs << " nChips=" << nChips << endl;
00468 
00469   Int_t delta=3;
00470   Int_t delta_coldchips=10;
00471 
00472   Bool_t carryon=1,newentry=0;
00473   Int_t currchips=-1,newchips=0;
00474   Int_t size_old=0,size_new=0;
00475   Int_t dt_pos=-1,dt_neg=-1;
00476   Int_t ctr=0;
00477 
00478   vector<int> tempTime;
00479   vector<int> tempStatus;
00480   vector<int> tempColdChips;
00481 
00482   // prune supermodule 1
00483   MSG("HvStatus",Msg::kVerbose) << "    pruning entries for SM1 " << endl;
00484   ctr=0;
00485   carryon=1;
00486   while(carryon){
00487     carryon=0;
00488     size_old=vecTimeSM1.size();
00489 
00490     tempTime=vecTimeSM1;
00491     tempStatus=vecStatusSM1;
00492     tempColdChips=vecColdChipsSM1;
00493 
00494     for( unsigned int i=0; i+1<vecTimeSM1.size(); i++){
00495 
00496       if( 1 // vecColdChipsSM1[i]<nChips
00497        && vecTimeSM1[i+1]-vecTimeSM1[i]<nSecs ){
00498 
00499         newentry=0;
00500         newchips=vecColdChipsSM1[i];
00501         dt_pos=-1;
00502         dt_neg=-1;
00503 
00504         if( i+2<vecTimeSM1.size() ) dt_pos=vecTimeSM1[i+2]-vecTimeSM1[i+1];
00505         if( i>=1 ) dt_neg=vecTimeSM1[i]-vecTimeSM1[i-1];
00506         if( dt_pos>=nSecs || dt_neg>=nSecs ) newchips=-1;
00507 
00508         if( i+1<vecTimeSM1.size()
00509          && vecColdChipsSM1[i+1]>newchips ){
00510           if( ( vecColdChipsSM1[i+1]-vecColdChipsSM1[i]>=-delta 
00511              && vecColdChipsSM1[i+1]-vecColdChipsSM1[i]<=+delta )
00512            || ( vecColdChipsSM1[i+1]>=fMaxColdChips+delta_coldchips 
00513              && vecColdChipsSM1[i]>=fMaxColdChips+delta_coldchips ) ){
00514             if( dt_pos>=nSecs || dt_neg<nSecs ){
00515               newchips=vecColdChipsSM1[i+1];
00516               newentry=1;
00517             }
00518           }
00519         }
00520       
00521         if( i>=1 
00522          && vecColdChipsSM1[i-1]>newchips ){
00523           if( ( vecColdChipsSM1[i-1]-vecColdChipsSM1[i]>=-delta 
00524              && vecColdChipsSM1[i-1]-vecColdChipsSM1[i]<=+delta ) 
00525            || ( vecColdChipsSM1[i-1]>=fMaxColdChips+delta_coldchips 
00526              && vecColdChipsSM1[i]>=fMaxColdChips+delta_coldchips ) ){
00527             if( dt_neg>=nSecs || dt_pos<nSecs ){
00528               newchips=vecColdChipsSM1[i-1];
00529               newentry=1;
00530             }
00531           }
00532         }
00533 
00534         if( newentry ){
00535           tempColdChips[i]=newchips;
00536           carryon=1;
00537         }
00538 
00539       }
00540     }
00541 
00542     vecTimeSM1.clear();
00543     vecStatusSM1.clear();
00544     vecColdChipsSM1.clear();
00545     currchips=-1;
00546 
00547     for( unsigned int i=0; i<tempColdChips.size(); i++){
00548       if( tempColdChips[i]!=currchips ){
00549         vecTimeSM1.push_back(tempTime[i]);
00550         vecStatusSM1.push_back(tempStatus[i]);
00551         vecColdChipsSM1.push_back(tempColdChips[i]);
00552         currchips=tempColdChips[i];
00553       }
00554     }
00555 
00556     size_new=vecTimeSM1.size();
00557     if( size_new>=size_old ) carryon=0;
00558 
00559     ctr++;
00560   }
00561   MSG("HvStatus",Msg::kVerbose) << "      ..." << ctr << " iterations " << endl; 
00562   
00563   // prune supermodule 2
00564   MSG("HvStatus",Msg::kVerbose) << "    pruning entries for SM2 " << endl;
00565   ctr=0;
00566   carryon=1;
00567   while(carryon){
00568     carryon=0;
00569     size_old=vecTimeSM2.size();
00570 
00571     tempTime=vecTimeSM2;
00572     tempStatus=vecStatusSM2;
00573     tempColdChips=vecColdChipsSM2;
00574 
00575     for( unsigned int i=0; i+1<vecTimeSM2.size(); i++){
00576       
00577       if( 1 // vecColdChipsSM2[i]<nChips
00578        && vecTimeSM2[i+1]-vecTimeSM2[i]<nSecs ){
00579 
00580         newentry=0;
00581         newchips=vecColdChipsSM2[i];
00582         dt_pos=-1;
00583         dt_neg=-1;
00584 
00585         if( i+2<vecTimeSM2.size() ) dt_pos=vecTimeSM2[i+2]-vecTimeSM2[i+1];
00586         if( i>=1 ) dt_neg=vecTimeSM2[i]-vecTimeSM2[i-1];
00587         if( dt_pos>=nSecs || dt_neg>=nSecs ) newchips=-1;
00588 
00589         if( i+1<vecTimeSM2.size()
00590          && vecColdChipsSM2[i+1]>newchips ){
00591           if( ( vecColdChipsSM2[i+1]-vecColdChipsSM2[i]>=-delta 
00592              && vecColdChipsSM2[i+1]-vecColdChipsSM2[i]<=+delta ) 
00593            || ( vecColdChipsSM2[i+1]>=fMaxColdChips+delta_coldchips 
00594              && vecColdChipsSM2[i]>=fMaxColdChips+delta_coldchips ) ){
00595             if( dt_pos>=nSecs || dt_neg<nSecs ){
00596               newchips=vecColdChipsSM2[i+1];
00597               newentry=1;
00598             }
00599           }
00600         }
00601 
00602         if( i>=1 
00603          && vecColdChipsSM2[i-1]>newchips ){
00604           if( ( vecColdChipsSM2[i-1]-vecColdChipsSM2[i]>=-delta
00605              && vecColdChipsSM2[i-1]-vecColdChipsSM2[i]<=+delta )
00606            || ( vecColdChipsSM2[i-1]>=fMaxColdChips+delta_coldchips 
00607              && vecColdChipsSM2[i]>=fMaxColdChips+delta_coldchips ) ){
00608             if( dt_neg>=nSecs || dt_pos<nSecs ){
00609               newchips=vecColdChipsSM2[i-1];
00610               newentry=1;
00611             }
00612           }
00613         }
00614 
00615         if( newentry ){
00616           tempColdChips[i]=newchips;
00617           carryon=1;
00618         }
00619 
00620       }
00621     }
00622 
00623     vecTimeSM2.clear();
00624     vecStatusSM2.clear();
00625     vecColdChipsSM2.clear();
00626     currchips=-1;
00627 
00628     for( unsigned int i=0; i<tempColdChips.size(); i++){
00629       if( tempColdChips[i]!=currchips ){
00630         vecTimeSM2.push_back(tempTime[i]);
00631         vecStatusSM2.push_back(tempStatus[i]);
00632         vecColdChipsSM2.push_back(tempColdChips[i]);
00633         currchips=tempColdChips[i];
00634       }
00635     }
00636 
00637     size_new=vecTimeSM2.size();
00638     if( size_new>=size_old ) carryon=0;
00639 
00640     ctr++;
00641   }
00642   MSG("HvStatus",Msg::kVerbose) << "      ..." << ctr << " iterations " << endl; 
00643   
00644   return;
00645 }

void FillHvFromSingles::ReadFromDatabase ( Int_t  time,
Detector::Detector_t  detector,
Int_t  supermodule,
Int_t &  hvstatus,
Int_t &  coldchips 
) [private]

Definition at line 809 of file FillHvFromSingles.cxx.

References VldTimeStamp::AsString(), fReadEntries, fTask, DbiTableProxyRegistry::GetCascader(), DbuHvFromSingles::GetColdChips(), DbiResultPtr< T >::GetNumRows(), DbiResultPtr< T >::GetRow(), DbuHvFromSingles::GetStatus(), DbuHvFromSingles::GetSupermodule(), DbiTableProxyRegistry::Instance(), SimFlag::kData, Msg::kVerbose, MSG, and DbiCascader::TableExists().

00810 {
00811   MSG("HvStatus",Msg::kVerbose) << " *** FillHvFromSingles::ReadFromDatabase(...) *** " << endl;
00812 
00813   hvstatus=-1; coldchips=0;
00814 
00815   DbiCascader& cascader = DbiTableProxyRegistry::Instance().GetCascader();
00816 
00817   if( cascader.TableExists("DBUHVFROMSINGLES") ){
00818     MSG("HvStatus",Msg::kVerbose) << "    Reading from DBUHVFROMSINGLES table... " << endl;
00819 
00820     Int_t tmpsupermodule=-1, tmphvstatus=-1, tmpcoldchips=0;
00821 
00822     VldTimeStamp timestamp(time,0);
00823     VldContext vldc(detector,SimFlag::kData,timestamp);
00824     DbiResultPtr<DbuHvFromSingles> resptr("DBUHVFROMSINGLES",vldc,fTask);
00825 
00826     MSG("HvStatus",Msg::kVerbose) << "    Number Of Rows = " << resptr.GetNumRows() << endl;
00827 
00828     if( resptr.GetNumRows()>0 ){
00829       for( unsigned int i=0; i<resptr.GetNumRows(); i++){
00830         const DbuHvFromSingles* rowptr = resptr.GetRow(i);
00831         tmpsupermodule=rowptr->GetSupermodule();
00832         if( tmpsupermodule==supermodule ){
00833           tmphvstatus=rowptr->GetStatus();
00834           tmpcoldchips=rowptr->GetColdChips();
00835         }
00836       }
00837     }
00838 
00839     hvstatus=tmphvstatus; coldchips=tmpcoldchips;
00840 
00841     MSG("HvStatus",Msg::kVerbose) << "    " << timestamp.AsString("s") << " supermodule=" << supermodule << " hvstatus=" << hvstatus << " coldchips=" << coldchips << endl;
00842 
00843     fReadEntries++;
00844   }
00845 
00846   return;
00847 }

void FillHvFromSingles::ReadFromDatabase (  )  [private]

Definition at line 774 of file FillHvFromSingles.cxx.

References fDetector, fWriteOutResults, Msg::kDebug, MSG, vecTimeSM1, vecTimeSM2, and WriteOutResults().

Referenced by EndJob().

00775 {
00776   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::ReadFromDatabase() *** " << endl;
00777 
00778   Int_t time,hvstatus,coldchips;  
00779 
00780   // supermodule 1
00781   if( vecTimeSM1.size()>0 ){
00782     for( unsigned int i=0; i+1<vecTimeSM1.size(); i++){
00783       time=vecTimeSM1[i];
00784       hvstatus=-1;
00785       coldchips=0;
00786       this->ReadFromDatabase(time,fDetector,1,hvstatus,coldchips);
00787       if( fWriteOutResults ){
00788         this->WriteOutResults(2,time,time,fDetector,1,hvstatus,coldchips);
00789       }
00790     }
00791   }
00792 
00793   // supermodule 2
00794   if( vecTimeSM2.size()>0 ){
00795     for( unsigned int i=0; i+1<vecTimeSM2.size(); i++){
00796       time=vecTimeSM2[i];
00797       hvstatus=-1;
00798       coldchips=0;
00799       this->ReadFromDatabase(time,fDetector,2,hvstatus,coldchips);
00800       if( fWriteOutResults ){
00801         this->WriteOutResults(2,time,time,fDetector,2,hvstatus,coldchips);
00802       }
00803     }
00804   }
00805  
00806   return;   
00807 }

void FillHvFromSingles::WriteOutResults ( Int_t  source,
Int_t  begtime,
Int_t  endtime,
Detector::Detector_t  detector,
Int_t  supermodule,
Int_t  hvstatus,
Int_t  coldchips 
) [private]

Definition at line 849 of file FillHvFromSingles.cxx.

References BegTime, ColdChips, EndTime, fHvFile, fHvFileName, fHvTree, HvStatus, Msg::kVerbose, MSG, Source, and Supermodule.

Referenced by ReadFromDatabase(), WriteToDatabase(), and WriteToFile().

00850 {
00851   MSG("HvStatus",Msg::kVerbose) << " *** FillHvFromSingles::WriteOutResults() *** " << endl;
00852 
00853   Source=source; 
00854   BegTime=begtime;
00855   EndTime=endtime;
00856   Detector=detector;
00857   Supermodule=supermodule;
00858   HvStatus=hvstatus;
00859   ColdChips=coldchips;
00860 
00861   MSG("HvStatus",Msg::kVerbose) << "    Source=" << Source << " BegTime=" << BegTime << " EndTime=" << EndTime << " Detector=" << Detector << " Supermodule=" << Supermodule << " HvStatus=" << HvStatus << " ColdChips=" << ColdChips << endl;
00862 
00863   if(!fHvFile){
00864     TDirectory* tmpd = gDirectory;
00865     fHvFile = new TFile(fHvFileName.Data(),"RECREATE");
00866     fHvTree = new TTree("HvStatus","HvStatus");
00867     fHvTree->SetAutoSave(300);
00868     fHvTree->Branch("Source",&Source,"Source/I");
00869     fHvTree->Branch("BegTime",&BegTime,"BegTime/I");
00870     fHvTree->Branch("EndTime",&EndTime,"EndTime/I");
00871     fHvTree->Branch("Detector",&Detector,"Detector/I");
00872     fHvTree->Branch("Supermodule",&Supermodule,"Supermodule/I");
00873     fHvTree->Branch("HvStatus",&HvStatus,"HvStatus/I");
00874     fHvTree->Branch("ColdChips",&ColdChips,"ColdChips/I");
00875     gDirectory = tmpd;
00876   }
00877   
00878   if(fHvFile){
00879     TDirectory* tmpd = gDirectory;
00880     fHvFile->cd();
00881     fHvTree->Fill();
00882     gDirectory = tmpd;
00883   }
00884 
00885   return;
00886 }

void FillHvFromSingles::WriteToDatabase ( Int_t  begtime,
Int_t  endtime,
Detector::Detector_t  detector,
Int_t  supermodule,
Int_t  hvstatus,
Int_t  coldchips 
) [private]

Definition at line 726 of file FillHvFromSingles.cxx.

References VldTimeStamp::AsString(), DbiCascader::CreateTemporaryTable(), fTask, fWriteEntries, DbiTableProxyRegistry::GetCascader(), DbiTableProxyRegistry::Instance(), SimFlag::kData, Msg::kDebug, Msg::kVerbose, MSG, and DbiCascader::TableExists().

00727 {
00728   MSG("HvStatus",Msg::kVerbose) << " *** FillHvFromSingles::WriteToDatabase(...) *** " << endl;
00729 
00730   DbiCascader& cascader = DbiTableProxyRegistry::Instance().GetCascader();
00731 
00732   if( !cascader.TableExists("DBUHVFROMSINGLES") ){
00733     MSG("HvStatus",Msg::kDebug) << "    Creating temporary DBUHVFROMSINGLES table " << endl;
00734 
00735     string tableDescr = "(SEQNO int, HV_STATUS int, HV_SUPERMODULE int, HV_COLDCHIPS int)";
00736     Int_t dbNoTempHvStatus = cascader.CreateTemporaryTable("DBUHVFROMSINGLES",tableDescr);
00737 
00738     MSG("HvStatus",Msg::kDebug) << "    DbNoTempHvStatus=" << dbNoTempHvStatus << endl;
00739   }  
00740 
00741   if( cascader.TableExists("DBUHVFROMSINGLES") ){
00742     MSG("HvStatus",Msg::kVerbose) << "    Writing to DBUHVFROMSINGLES table... " << endl;
00743 
00744     VldTimeStamp start(begtime);
00745     VldTimeStamp finish(endtime);
00746     TString logentry("HV status from singles (");
00747     logentry.Append(start.AsString("s"));
00748     logentry.Append(" to ");
00749     logentry.Append(finish.AsString("s"));
00750     logentry.Append(")");
00751 
00752     VldRange range(detector,SimFlag::kData,start,finish,logentry.Data());
00753 
00754     DbuHvFromSingles row(hvstatus,supermodule,coldchips);
00755 
00756     Int_t aggNo = row.GetAggregateNo();
00757     Dbi::Task task = fTask;
00758     VldTimeStamp creationDate;
00759 
00760     DbiWriter<DbuHvFromSingles> writer(range,aggNo,task,creationDate,0,logentry.Data());
00761 
00762     writer << row;
00763     writer.Close();
00764 
00765     MSG("HvStatus",Msg::kVerbose) << "    " << logentry.Data() << endl;
00766     MSG("HvStatus",Msg::kVerbose) << "    supermodule=" << supermodule << " hvstatus=" << hvstatus << " coldchips=" << coldchips << endl;
00767 
00768     fWriteEntries++;
00769   }
00770 
00771   return;
00772 }

void FillHvFromSingles::WriteToDatabase (  )  [private]

Definition at line 689 of file FillHvFromSingles.cxx.

References fDetector, fWriteOutResults, Msg::kDebug, MSG, vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, vecTimeSM2, and WriteOutResults().

Referenced by EndJob().

00690 {
00691   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::WriteToDatabase() *** " << endl;
00692 
00693   Int_t begtime,endtime,coldchips,hvstatus;  
00694 
00695   // supermodule 1
00696   if( vecTimeSM1.size()>0 ){
00697     for( unsigned int i=0; i+1<vecTimeSM1.size(); i++){
00698       begtime=vecTimeSM1[i];
00699       endtime=vecTimeSM1[i+1];
00700       hvstatus=vecStatusSM1[i];
00701       coldchips=vecColdChipsSM1[i];
00702       this->WriteToDatabase(begtime,endtime,fDetector,1,hvstatus,coldchips);
00703       if( fWriteOutResults ){
00704         this->WriteOutResults(1,begtime,endtime,fDetector,1,hvstatus,coldchips);
00705       }
00706     }
00707   }
00708 
00709   // supermodule 2
00710   if( vecTimeSM2.size()>0 ){
00711     for( unsigned int i=0; i+1<vecTimeSM2.size(); i++){
00712       begtime=vecTimeSM2[i];
00713       endtime=vecTimeSM2[i+1];
00714       hvstatus=vecStatusSM2[i];
00715       coldchips=vecColdChipsSM2[i];
00716       this->WriteToDatabase(begtime,endtime,fDetector,2,hvstatus,coldchips);
00717       if( fWriteOutResults ){
00718         this->WriteOutResults(1,begtime,endtime,fDetector,2,hvstatus,coldchips);
00719       }
00720     }
00721   }
00722 
00723   return;
00724 }

void FillHvFromSingles::WriteToFile (  )  [private]

Definition at line 647 of file FillHvFromSingles.cxx.

References fBegTime, fDetector, fEndTime, fWriteOutResults, Msg::kDebug, MSG, vecColdChipsSM1, vecColdChipsSM2, vecStatusSM1, vecStatusSM2, vecTimeSM1, vecTimeSM2, and WriteOutResults().

Referenced by EndJob().

00648 {
00649   MSG("HvStatus",Msg::kDebug) << " *** FillHvFromSingles::WriteToFile() *** " << endl;
00650 
00651   Int_t begtime,endtime,coldchips,hvstatus;  
00652 
00653   // supermodule 1
00654   if( vecTimeSM1.size()>0 ){
00655     for( unsigned int i=0; i+1<vecTimeSM1.size(); i++){
00656       begtime=vecTimeSM1[i];
00657       endtime=vecTimeSM1[i+1];
00658       hvstatus=vecStatusSM1[i];
00659       coldchips=vecColdChipsSM1[i];
00660       if( fWriteOutResults ){
00661         this->WriteOutResults(0,begtime,endtime,fDetector,1,hvstatus,coldchips);
00662       }
00663     }
00664   }
00665 
00666   // supermodule 2
00667   if( vecTimeSM2.size()>0 ){
00668     for( unsigned int i=0; i+1<vecTimeSM2.size(); i++){
00669       begtime=vecTimeSM2[i];
00670       endtime=vecTimeSM2[i+1];
00671       hvstatus=vecStatusSM2[i];
00672       coldchips=vecColdChipsSM2[i];
00673       if( fWriteOutResults ){
00674         this->WriteOutResults(0,begtime,endtime,fDetector,2,hvstatus,coldchips);
00675       }
00676     }
00677   }
00678 
00679   // write null entry
00680   if( fWriteOutResults
00681    && vecTimeSM1.size()==0 && vecTimeSM2.size()==0 ){
00682     this->WriteOutResults(0,fBegTime,fEndTime,fDetector,1,-1,0);
00683     this->WriteOutResults(0,fBegTime,fEndTime,fDetector,2,-1,0);
00684   }
00685 
00686   return;
00687 }


Member Data Documentation

Int_t FillHvFromSingles::BegTime [private]

Definition at line 63 of file FillHvFromSingles.h.

Referenced by WriteOutResults().

Definition at line 69 of file FillHvFromSingles.h.

Referenced by WriteOutResults().

Int_t FillHvFromSingles::Detector [private]

Definition at line 66 of file FillHvFromSingles.h.

Int_t FillHvFromSingles::EndTime [private]

Definition at line 64 of file FillHvFromSingles.h.

Referenced by WriteOutResults().

Int_t FillHvFromSingles::fBegTime [private]

Definition at line 37 of file FillHvFromSingles.h.

Referenced by ProcessBlock(), and WriteToFile().

Int_t FillHvFromSingles::fCounter [private]

Definition at line 40 of file FillHvFromSingles.h.

Referenced by Get().

Definition at line 45 of file FillHvFromSingles.h.

Referenced by ProcessBlock().

Definition at line 46 of file FillHvFromSingles.h.

Referenced by ProcessBlock().

Definition at line 77 of file FillHvFromSingles.h.

Referenced by Get(), ReadFromDatabase(), WriteToDatabase(), and WriteToFile().

Int_t FillHvFromSingles::fEndTime [private]

Definition at line 38 of file FillHvFromSingles.h.

Referenced by EndJob(), ProcessBlock(), and WriteToFile().

TFile* FillHvFromSingles::fHvFile [private]

Definition at line 59 of file FillHvFromSingles.h.

Referenced by EndJob(), and WriteOutResults().

TString FillHvFromSingles::fHvFileName [private]

Definition at line 60 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and WriteOutResults().

TTree* FillHvFromSingles::fHvTree [private]

Definition at line 61 of file FillHvFromSingles.h.

Referenced by EndJob(), and WriteOutResults().

Definition at line 50 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), ProcessBlock(), and PruneShortEntries().

Definition at line 49 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and ProcessBlock().

Definition at line 48 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and ProcessBlock().

Definition at line 57 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and EndJob().

Definition at line 56 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and EndJob().

Definition at line 55 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and EndJob().

Definition at line 110 of file FillHvFromSingles.h.

Referenced by ProcessBlock(), and ~FillHvFromSingles().

Definition at line 42 of file FillHvFromSingles.h.

Referenced by EndJob(), and ReadFromDatabase().

Definition at line 53 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and EndJob().

Int_t FillHvFromSingles::fRecord [private]

Definition at line 39 of file FillHvFromSingles.h.

Referenced by Get().

Int_t FillHvFromSingles::fTask [private]

Definition at line 43 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), ReadFromDatabase(), and WriteToDatabase().

Definition at line 41 of file FillHvFromSingles.h.

Referenced by EndJob(), and WriteToDatabase().

Definition at line 52 of file FillHvFromSingles.h.

Referenced by Config(), DefaultConfig(), and EndJob().

Int_t FillHvFromSingles::HvStatus [private]

Definition at line 68 of file FillHvFromSingles.h.

Referenced by WriteOutResults().

Int_t FillHvFromSingles::Source [private]

Definition at line 65 of file FillHvFromSingles.h.

Referenced by ProcessBlock(), and WriteOutResults().

Definition at line 67 of file FillHvFromSingles.h.

Referenced by WriteOutResults().

vector<int> FillHvFromSingles::vecColdChipsSM1 [private]
vector<int> FillHvFromSingles::vecColdChipsSM2 [private]
vector<int> FillHvFromSingles::vecStatusSM1 [private]
vector<int> FillHvFromSingles::vecStatusSM2 [private]
vector<int> FillHvFromSingles::vecTimeSM1 [private]
vector<int> FillHvFromSingles::vecTimeSM2 [private]

The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1