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 "AliLog.h"
\r
20 #include "AliTriggerScalersESD.h"
\r
21 #include "AliTriggerScalersRecordESD.h"
\r
23 ClassImp( AliTriggerScalersRecordESD )
\r
24 //_____________________________________________________________________________
\r
25 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():
\r
31 //_____________________________________________________________________________
\r
32 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler )
\r
34 fScalers.AddLast( scaler );
\r
37 //_____________________________________________________________________________
\r
38 void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,
\r
39 ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )
\r
41 AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
\r
44 //_____________________________________________________________________________
\r
45 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :
\r
49 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
50 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
53 //_____________________________________________________________________________
\r
54 AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)
\r
56 if(&rec == this) return *this;
\r
57 ((TObject *)this)->operator=(rec);
\r
58 for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
\r
59 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
\r
65 //_____________________________________________________________________________
\r
66 void AliTriggerScalersRecordESD::Reset()
\r
68 fScalers.SetOwner();
\r
72 //_____________________________________________________________________________
\r
73 AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( Int_t classindex )
\r
75 // Find Trigger scaler with class ID = classmask using a binary search.
\r
78 AliTriggerScalersESD *op2 = NULL;
\r
81 last = fScalers.GetEntriesFast();
\r
83 while (base < last) {
\r
84 op2 = (AliTriggerScalersESD *)fScalers.At(base);
\r
85 if( op2->GetClassIndex() == classindex ) return op2;
\r
91 //_____________________________________________________________________________
\r
92 void AliTriggerScalersRecordESD::Print( const Option_t* ) const
\r
95 cout << "Trigger Scalers Record: " << endl;
\r
96 for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
\r
97 ((AliTriggerScalersESD*)fScalers.At(i))->Print();
\r