#include <Riostream.h>
#include <TObjArray.h>
#include "AliLog.h"
#include "AliTimeStamp.h"
#include "AliTriggerScalers.h"
#include "AliTriggerScalersRecord.h"
using std::endl;
using std::cout;
ClassImp( AliTriggerScalersRecord )
AliTriggerScalersRecord::AliTriggerScalersRecord():
fTimestamp(),
fScalers(),
fTimeGroup(0)
{
}
void AliTriggerScalersRecord::SetTimeStamp( UInt_t orbit, UInt_t period,
UInt_t seconds, UInt_t microsecs )
{
fTimestamp.SetTimeStamp( orbit, period, seconds, microsecs );
}
void AliTriggerScalersRecord::AddTriggerScalers( AliTriggerScalers* scaler )
{
fScalers.AddLast( scaler );
fScalers.Sort();
}
void AliTriggerScalersRecord::AddTriggerScalers( UChar_t classIndex, UInt_t LOCB, UInt_t LOCA,
UInt_t L1CB, UInt_t L1CA, UInt_t L2CB, UInt_t L2CA )
{
AddTriggerScalers( new AliTriggerScalers( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
fScalers.Sort();
}
Int_t AliTriggerScalersRecord::Compare( const TObject* obj ) const
{
return fTimestamp.Compare( &(((AliTriggerScalersRecord*)obj)->fTimestamp) );
}
const AliTriggerScalers* AliTriggerScalersRecord::GetTriggerScalersForClass( const Int_t classindex ) const
{
Int_t position, last;
AliTriggerScalers *op2 = 0;
position = 0;
last = fScalers.GetEntriesFast();
while (position < last) {
op2 = (AliTriggerScalers *)fScalers.At(position);
if( op2 && (op2->GetClassIndex() == classindex )) break;
op2=0;
position++;
}
return op2;
}
AliTriggerScalers* AliTriggerScalersRecord::GetTriggerScalersForClassBinary( const Int_t classindex )
{
Int_t base, position, last, result = 0;
AliTriggerScalers *op2 = NULL;
fScalers.Sort();
base = 0;
last = fScalers.GetEntriesFast();
while (last >= base) {
result = 0;
position = (base+last) / 2;
op2 = (AliTriggerScalers *)fScalers.At(position);
if( op2 && op2->GetClassIndex() > classindex ) result = -1;
if( op2 && op2->GetClassIndex() < classindex ) result = 1;
if (op2 && result == 0)
return op2;
if (!op2 || result < 0)
last = position-1;
else
base = position+1;
op2 = NULL;
}
return op2;
}
void AliTriggerScalersRecord::Print( const Option_t* ) const
{
cout << "Trigger Scalers Record, time group: "<< fTimeGroup << endl;
fTimestamp.Print();
for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
((AliTriggerScalers*)fScalers.At(i))->Print();
}
AliTriggerScalersRecord.cxx:1 AliTriggerScalersRecord.cxx:2 AliTriggerScalersRecord.cxx:3 AliTriggerScalersRecord.cxx:4 AliTriggerScalersRecord.cxx:5 AliTriggerScalersRecord.cxx:6 AliTriggerScalersRecord.cxx:7 AliTriggerScalersRecord.cxx:8 AliTriggerScalersRecord.cxx:9 AliTriggerScalersRecord.cxx:10 AliTriggerScalersRecord.cxx:11 AliTriggerScalersRecord.cxx:12 AliTriggerScalersRecord.cxx:13 AliTriggerScalersRecord.cxx:14 AliTriggerScalersRecord.cxx:15 AliTriggerScalersRecord.cxx:16 AliTriggerScalersRecord.cxx:17 AliTriggerScalersRecord.cxx:18 AliTriggerScalersRecord.cxx:19 AliTriggerScalersRecord.cxx:20 AliTriggerScalersRecord.cxx:21 AliTriggerScalersRecord.cxx:22 AliTriggerScalersRecord.cxx:23 AliTriggerScalersRecord.cxx:24 AliTriggerScalersRecord.cxx:25 AliTriggerScalersRecord.cxx:26 AliTriggerScalersRecord.cxx:27 AliTriggerScalersRecord.cxx:28 AliTriggerScalersRecord.cxx:29 AliTriggerScalersRecord.cxx:30 AliTriggerScalersRecord.cxx:31 AliTriggerScalersRecord.cxx:32 AliTriggerScalersRecord.cxx:33 AliTriggerScalersRecord.cxx:34 AliTriggerScalersRecord.cxx:35 AliTriggerScalersRecord.cxx:36 AliTriggerScalersRecord.cxx:37 AliTriggerScalersRecord.cxx:38 AliTriggerScalersRecord.cxx:39 AliTriggerScalersRecord.cxx:40 AliTriggerScalersRecord.cxx:41 AliTriggerScalersRecord.cxx:42 AliTriggerScalersRecord.cxx:43 AliTriggerScalersRecord.cxx:44 AliTriggerScalersRecord.cxx:45 AliTriggerScalersRecord.cxx:46 AliTriggerScalersRecord.cxx:47 AliTriggerScalersRecord.cxx:48 AliTriggerScalersRecord.cxx:49 AliTriggerScalersRecord.cxx:50 AliTriggerScalersRecord.cxx:51 AliTriggerScalersRecord.cxx:52 AliTriggerScalersRecord.cxx:53 AliTriggerScalersRecord.cxx:54 AliTriggerScalersRecord.cxx:55 AliTriggerScalersRecord.cxx:56 AliTriggerScalersRecord.cxx:57 AliTriggerScalersRecord.cxx:58 AliTriggerScalersRecord.cxx:59 AliTriggerScalersRecord.cxx:60 AliTriggerScalersRecord.cxx:61 AliTriggerScalersRecord.cxx:62 AliTriggerScalersRecord.cxx:63 AliTriggerScalersRecord.cxx:64 AliTriggerScalersRecord.cxx:65 AliTriggerScalersRecord.cxx:66 AliTriggerScalersRecord.cxx:67 AliTriggerScalersRecord.cxx:68 AliTriggerScalersRecord.cxx:69 AliTriggerScalersRecord.cxx:70 AliTriggerScalersRecord.cxx:71 AliTriggerScalersRecord.cxx:72 AliTriggerScalersRecord.cxx:73 AliTriggerScalersRecord.cxx:74 AliTriggerScalersRecord.cxx:75 AliTriggerScalersRecord.cxx:76 AliTriggerScalersRecord.cxx:77 AliTriggerScalersRecord.cxx:78 AliTriggerScalersRecord.cxx:79 AliTriggerScalersRecord.cxx:80 AliTriggerScalersRecord.cxx:81 AliTriggerScalersRecord.cxx:82 AliTriggerScalersRecord.cxx:83 AliTriggerScalersRecord.cxx:84 AliTriggerScalersRecord.cxx:85 AliTriggerScalersRecord.cxx:86 AliTriggerScalersRecord.cxx:87 AliTriggerScalersRecord.cxx:88 AliTriggerScalersRecord.cxx:89 AliTriggerScalersRecord.cxx:90 AliTriggerScalersRecord.cxx:91 AliTriggerScalersRecord.cxx:92 AliTriggerScalersRecord.cxx:93 AliTriggerScalersRecord.cxx:94 AliTriggerScalersRecord.cxx:95 AliTriggerScalersRecord.cxx:96 AliTriggerScalersRecord.cxx:97 AliTriggerScalersRecord.cxx:98 AliTriggerScalersRecord.cxx:99 AliTriggerScalersRecord.cxx:100 AliTriggerScalersRecord.cxx:101 AliTriggerScalersRecord.cxx:102 AliTriggerScalersRecord.cxx:103 AliTriggerScalersRecord.cxx:104 AliTriggerScalersRecord.cxx:105 AliTriggerScalersRecord.cxx:106 AliTriggerScalersRecord.cxx:107 AliTriggerScalersRecord.cxx:108 AliTriggerScalersRecord.cxx:109 AliTriggerScalersRecord.cxx:110 AliTriggerScalersRecord.cxx:111 AliTriggerScalersRecord.cxx:112 AliTriggerScalersRecord.cxx:113 AliTriggerScalersRecord.cxx:114 AliTriggerScalersRecord.cxx:115 AliTriggerScalersRecord.cxx:116 AliTriggerScalersRecord.cxx:117 AliTriggerScalersRecord.cxx:118 AliTriggerScalersRecord.cxx:119 AliTriggerScalersRecord.cxx:120 AliTriggerScalersRecord.cxx:121 AliTriggerScalersRecord.cxx:122 AliTriggerScalersRecord.cxx:123 AliTriggerScalersRecord.cxx:124 AliTriggerScalersRecord.cxx:125 AliTriggerScalersRecord.cxx:126 AliTriggerScalersRecord.cxx:127 AliTriggerScalersRecord.cxx:128 AliTriggerScalersRecord.cxx:129 AliTriggerScalersRecord.cxx:130 AliTriggerScalersRecord.cxx:131 AliTriggerScalersRecord.cxx:132 AliTriggerScalersRecord.cxx:133