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
24 ClassImp( AliTriggerScalersRecordESD )
\r
25 //_____________________________________________________________________________
\r
26 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():
\r
33 //_____________________________________________________________________________
\r
34 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler )
\r
36 fScalers.AddLast( scaler );
\r
39 //_____________________________________________________________________________
\r
40 void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,
\r
41 ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )
\r
43 AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
\r
46 //_____________________________________________________________________________
\r
47 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :
\r
49 fTimestamp(rec.fTimestamp),
\r
53 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
54 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
57 //_____________________________________________________________________________
\r
58 AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)
\r
60 //asignment operator
\r
61 if(&rec == this) return *this;
\r
62 ((TObject *)this)->operator=(rec);
\r
63 fTimestamp=rec.fTimestamp;
\r
64 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
65 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
71 //_____________________________________________________________________________
\r
72 void AliTriggerScalersRecordESD::Reset()
\r
74 fScalers.SetOwner();
\r
78 //_____________________________________________________________________________
\r
79 const AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( const Int_t classindex ) const
\r
81 // Find Trigger scaler with class ID = classmask using a binary search.
\r
84 AliTriggerScalersESD *op2 = NULL;
\r
87 last = fScalers.GetEntriesFast();
\r
89 while (base < last) {
\r
90 op2 = (AliTriggerScalersESD *)fScalers.At(base);
\r
91 if( op2->GetClassIndex() == classindex ) return op2;
\r
97 //_____________________________________________________________________________
\r
98 void AliTriggerScalersRecordESD::Print( const Option_t* ) const
\r
101 cout << "Trigger Scalers Record: " << endl;
\r
102 for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
\r
103 ((AliTriggerScalersESD*)fScalers.At(i))->Print();
\r