]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliTriggerScalersRecordESD.cxx
Updates in event mixing code for low-pt code
[u/mrichter/AliRoot.git] / STEER / ESD / AliTriggerScalersRecordESD.cxx
CommitLineData
a65a7e70 1/*************************************************************************
2* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
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**************************************************************************/
15
16
17#include <Riostream.h>
18#include <TObjArray.h>
19#include <AliTimeStamp.h>
20#include "AliLog.h"
21#include "AliTriggerScalersESD.h"
22#include "AliTriggerScalersRecordESD.h"
23
24using std::endl;
25using std::cout;
26ClassImp( AliTriggerScalersRecordESD )
27//_____________________________________________________________________________
28AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():
29TObject(),
30fTimestamp(),
31fScalers(),
32fTimeGroup(0)
33{
34}
35
36//_____________________________________________________________________________
37void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler )
38{
39 fScalers.AddLast( scaler );
40}
41
42//_____________________________________________________________________________
43void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,
44 ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )
45{
46 AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );
47}
48
49//_____________________________________________________________________________
50AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :
51TObject(rec),
52fTimestamp(rec.fTimestamp),
53fScalers(),
54fTimeGroup(rec.fTimeGroup)
55{
56//copy constructor
57for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
58 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
59 }
60}
61//_____________________________________________________________________________
62AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)
63{
64//asignment operator
65if(&rec == this) return *this;
66((TObject *)this)->operator=(rec);
67fTimestamp=rec.fTimestamp;
68fScalers.Delete();
69for (Int_t i = 0; i < rec.fScalers.GetEntriesFast(); i++) {
70 if (rec.fScalers[i]) fScalers.Add(rec.fScalers[i]->Clone());
71 }
72fTimeGroup=rec.fTimeGroup;
73return *this;
74}
75
76//_____________________________________________________________________________
77void AliTriggerScalersRecordESD::Reset()
78{
79fScalers.SetOwner();
80fScalers.Clear();
81fTimeGroup=0;
82}
83
84//_____________________________________________________________________________
85const AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( const Int_t classindex ) const
86{
87 // Find Trigger scaler with class ID = classmask using a binary search.
88
89 Int_t base, last;
90 AliTriggerScalersESD *op2 = NULL;
91
92 base = 0;
93 last = fScalers.GetEntriesFast();
94
95 while (base < last) {
96 op2 = (AliTriggerScalersESD *)fScalers.At(base);
97 if( op2->GetClassIndex() == classindex ) return op2;
98 base++;
99 }
100 return op2;
101}
102
103//_____________________________________________________________________________
104void AliTriggerScalersRecordESD::Print( const Option_t* ) const
105{
106 // Print
107 cout << "Trigger Scalers Record, time group: "<< fTimeGroup << endl;
108 fTimestamp.Print();
109 for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i )
110 ((AliTriggerScalersESD*)fScalers.At(i))->Print();
111}