1 /*************************************************************************
\r
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
\r
4 * Author: The ALICE Off-line Project. *
\r
5 * Contributors are mentioned in the code where appropriate. *
\r
7 * Permission to use, copy, modify and distribute this software and its *
\r
8 * documentation strictly for non-commercial purposes is hereby granted *
\r
9 * without fee, provided that the above copyright notice appears in all *
\r
10 * copies and that both the copyright notice and this permission notice *
\r
11 * appear in the supporting documentation. The authors make no claims *
\r
12 * about the suitability of this software for any purpose. It is *
\r
13 * provided "as is" without express or implied warranty. *
\r
14 **************************************************************************/
\r
17 #include <Riostream.h>
\r
18 #include <TObjArray.h>
\r
19 #include <AliTimeStamp.h>
\r
20 #include "AliLog.h"
\r
21 #include "AliTriggerScalersESD.h"
\r
22 #include "AliTriggerScalersRecordESD.h"
\r
26 ClassImp( AliTriggerScalersRecordESD )
\r
27 //_____________________________________________________________________________
\r
28 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():
\r
36 //_____________________________________________________________________________
\r
37 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler )
\r
39 fScalers.AddLast( scaler );
\r
42 //_____________________________________________________________________________
\r
43 void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,
\r
44 ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )
\r
46 AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
\r
49 //_____________________________________________________________________________
\r
50 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :
\r
52 fTimestamp(rec.fTimestamp),
\r
54 fTimeGroup(rec.fTimeGroup)
\r
57 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
58 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
61 //_____________________________________________________________________________
\r
62 AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)
\r
64 //asignment operator
\r
65 if(&rec == this) return *this;
\r
66 ((TObject *)this)->operator=(rec);
\r
67 fTimestamp=rec.fTimestamp;
\r
69 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
70 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
72 fTimeGroup=rec.fTimeGroup;
\r
76 //_____________________________________________________________________________
\r
77 void AliTriggerScalersRecordESD::Reset()
\r
79 fScalers.SetOwner();
\r
84 //_____________________________________________________________________________
\r
85 const AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( const Int_t classindex ) const
\r
87 // Find Trigger scaler with class ID = classmask using a binary search.
\r
90 AliTriggerScalersESD *op2 = NULL;
\r
93 last = fScalers.GetEntriesFast();
\r
95 while (base < last) {
\r
96 op2 = (AliTriggerScalersESD *)fScalers.At(base);
\r
97 if( op2->GetClassIndex() == classindex ) return op2;
\r
103 //_____________________________________________________________________________
\r
104 void AliTriggerScalersRecordESD::Print( const Option_t* ) const
\r
107 cout << "Trigger Scalers Record, time group: "<< fTimeGroup << endl;
\r
108 fTimestamp.Print();
\r
109 for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
\r
110 ((AliTriggerScalersESD*)fScalers.At(i))->Print();
\r