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