]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliTriggerScalersRecordESD.cxx
Time Group added to AliTriggerScalersRecordESD
[u/mrichter/AliRoot.git] / STEER / ESD / AliTriggerScalersRecordESD.cxx
1 /*************************************************************************\r
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
3 *                                                                        *\r
4 * Author: The ALICE Off-line Project.                                    *\r
5 * Contributors are mentioned in the code where appropriate.              *\r
6 *                                                                        *\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
15 \r
16 \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
23 \r
24 ClassImp( AliTriggerScalersRecordESD )\r
25 //_____________________________________________________________________________\r
26 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():\r
27 TObject(),\r
28 fTimestamp(),\r
29 fScalers(),\r
30 fTimeGroup(0)\r
31 {\r
32 }\r
33 \r
34 //_____________________________________________________________________________\r
35 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler ) \r
36\r
37   fScalers.AddLast( scaler ); \r
38 }\r
39 \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
43 {\r
44     AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );\r
45\r
46 \r
47 //_____________________________________________________________________________\r
48 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec ) :\r
49 TObject(rec),\r
50 fTimestamp(rec.fTimestamp),\r
51 fScalers(),\r
52 fTimeGroup(rec.fTimeGroup)\r
53 {\r
54 //copy constructor\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
57   }\r
58 }\r
59 //_____________________________________________________________________________\r
60 AliTriggerScalersRecordESD& AliTriggerScalersRecordESD:: operator=(const AliTriggerScalersRecordESD& rec)\r
61 {\r
62 //asignment operator\r
63 if(&rec == this) return *this;\r
64 ((TObject *)this)->operator=(rec);\r
65 fTimestamp=rec.fTimestamp;\r
66 fScalers.Delete();\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
69   }\r
70 fTimeGroup=rec.fTimeGroup;\r
71 return *this;\r
72\r
73 \r
74 //_____________________________________________________________________________\r
75 void AliTriggerScalersRecordESD::Reset()\r
76 {\r
77 fScalers.SetOwner();\r
78 fScalers.Clear();\r
79 fTimeGroup=0;\r
80\r
81 \r
82 //_____________________________________________________________________________\r
83 const AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( const Int_t classindex ) const\r
84 {\r
85    // Find Trigger scaler with class ID = classmask using a binary search. \r
86 \r
87    Int_t   base, last;\r
88    AliTriggerScalersESD *op2 = NULL;\r
89    \r
90    base = 0;\r
91    last = fScalers.GetEntriesFast();\r
92 \r
93    while (base < last) {\r
94       op2 = (AliTriggerScalersESD *)fScalers.At(base);\r
95       if( op2->GetClassIndex()  == classindex ) return op2;\r
96       base++;\r
97    }\r
98    return op2;   \r
99 }\r
100                                       \r
101 //_____________________________________________________________________________\r
102 void AliTriggerScalersRecordESD::Print( const Option_t* ) const\r
103 {\r
104    // Print\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
108 }\r