]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTriggerScalersRecordESD.cxx
New classes for storing of the trigger scalers in ESD (Roman and Plamen).
[u/mrichter/AliRoot.git] / STEER / 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 #include <Riostream.h>\r
17 #include <TObjArray.h>\r
18 #include "AliLog.h"  \r
19 #include "AliTriggerScalersESD.h"\r
20 #include "AliTriggerScalersRecordESD.h"\r
21 \r
22 ClassImp( AliTriggerScalersRecordESD )\r
23 //_____________________________________________________________________________\r
24 AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():\r
25 fScalers()\r
26 {\r
27 }\r
28 \r
29 //_____________________________________________________________________________\r
30 void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler ) \r
31\r
32   fScalers.AddLast( scaler ); \r
33 }\r
34 \r
35 //_____________________________________________________________________________\r
36 void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,        \r
37                                          ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )\r
38 {\r
39     AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );\r
40\r
41 \r
42 //_____________________________________________________________________________\r
43 AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( Int_t classindex )\r
44 {\r
45    // Find Trigger scaler with class ID = classmask using a binary search. \r
46 \r
47    Int_t   base, last;\r
48    AliTriggerScalersESD *op2 = NULL;\r
49    \r
50    base = 0;\r
51    last = fScalers.GetEntriesFast();\r
52 \r
53    while (base < last) {\r
54       op2 = (AliTriggerScalersESD *)fScalers.At(base);\r
55       if( op2->GetClassIndex()  == classindex ) return op2;\r
56       base++;\r
57    }\r
58    return op2;   \r
59 }\r
60                                       \r
61 //_____________________________________________________________________________\r
62 void AliTriggerScalersRecordESD::Print( const Option_t* ) const\r
63 {\r
64    // Print\r
65   cout << "Trigger Scalers Record: " << endl;\r
66   for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i ) \r
67      ((AliTriggerScalersESD*)fScalers.At(i))->Print();\r
68 }\r