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
34 //_____________________________________________________________________________
\r
35 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler )
\r
37 fScalers.AddLast( scaler );
\r
40 //_____________________________________________________________________________
\r
41 void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,
\r
42 ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )
\r
44 AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
\r
47 //_____________________________________________________________________________
\r
48 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :
\r
50 fTimestamp(rec.fTimestamp),
\r
52 fTimeGroup(rec.fTimeGroup)
\r
55 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
56 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
59 //_____________________________________________________________________________
\r
60 AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)
\r
62 //asignment operator
\r
63 if(&rec == this) return *this;
\r
64 ((TObject *)this)->operator=(rec);
\r
65 fTimestamp=rec.fTimestamp;
\r
67 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
68 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
70 fTimeGroup=rec.fTimeGroup;
\r
74 //_____________________________________________________________________________
\r
75 void AliTriggerScalersRecordESD::Reset()
\r
77 fScalers.SetOwner();
\r
82 //_____________________________________________________________________________
\r
83 const AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( const Int_t classindex ) const
\r
85 // Find Trigger scaler with class ID = classmask using a binary search.
\r
88 AliTriggerScalersESD *op2 = NULL;
\r
91 last = fScalers.GetEntriesFast();
\r
93 while (base < last) {
\r
94 op2 = (AliTriggerScalersESD *)fScalers.At(base);
\r
95 if( op2->GetClassIndex() == classindex ) return op2;
\r
101 //_____________________________________________________________________________
\r
102 void AliTriggerScalersRecordESD::Print( const Option_t* ) const
\r
105 cout << "Trigger Scalers Record, time group: "<< fTimeGroup << endl;
\r
106 for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
\r
107 ((AliTriggerScalersESD*)fScalers.At(i))->Print();
\r