New classes for storing of the trigger scalers in ESD (Roman and Plamen).
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Jun 2009 10:44:00 +0000 (10:44 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Jun 2009 10:44:00 +0000 (10:44 +0000)
STEER/AliTriggerScalersESD.cxx [new file with mode: 0644]
STEER/AliTriggerScalersESD.h [new file with mode: 0644]
STEER/AliTriggerScalersRecordESD.cxx [new file with mode: 0644]
STEER/AliTriggerScalersRecordESD.h [new file with mode: 0644]
STEER/CMake_libESD.txt
STEER/ESDLinkDef.h
STEER/libESD.pkg

diff --git a/STEER/AliTriggerScalersESD.cxx b/STEER/AliTriggerScalersESD.cxx
new file mode 100644 (file)
index 0000000..c430752
--- /dev/null
@@ -0,0 +1,74 @@
+/*************************************************************************\r
+* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
+*                                                                        *\r
+* Author: The ALICE Off-line Project.                                    *\r
+* Contributors are mentioned in the code where appropriate.              *\r
+*                                                                        *\r
+* Permission to use, copy, modify and distribute this software and its   *\r
+* documentation strictly for non-commercial purposes is hereby granted   *\r
+* without fee, provided that the above copyright notice appears in all   *\r
+* copies and that both the copyright notice and this permission notice   *\r
+* appear in the supporting documentation. The authors make no claims     *\r
+* about the suitability of this software for any purpose. It is          *\r
+* provided "as is" without express or implied warranty.                  * **************************************************************************/\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+//  Class to define the ALICE Trigger Scalers  \r
+//\r
+//  For each trigger class there are six scalers:\r
+//\r
+//    LOCB       L0 triggers before any vetos \r
+//    LOCA       L0 triggers after all vetos \r
+//    L1CB       L1 triggers before any vetos \r
+//    L1CA       L1 triggers after all vetos \r
+//    L2CB       L2 triggers before any vetos \r
+//    L2CA       L2 triggers after all vetos \r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+\r
+#include <Riostream.h>\r
+\r
+#include "AliLog.h"\r
+#include "AliTriggerScalersESD.h"\r
+\r
+ClassImp( AliTriggerScalersESD )\r
+\r
+//_____________________________________________________________________________\r
+AliTriggerScalersESD::AliTriggerScalersESD(): \r
+  TObject(),\r
+  fClassIndex(0),\r
+  fLOCB(0),     \r
+  fLOCA(0),     \r
+  fL1CB(0),     \r
+  fL1CA(0),     \r
+  fL2CB(0),     \r
+  fL2CA(0)      \r
+{\r
+  // Default constructor\r
+}\r
+\r
+//_____________________________________________________________________________\r
+AliTriggerScalersESD::AliTriggerScalersESD( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,        \r
+                                      ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA ):   \r
+  TObject(),\r
+  fClassIndex( classIndex ),\r
+  fLOCB(LOCB),     \r
+  fLOCA(LOCA),     \r
+  fL1CB(L1CB),     \r
+  fL1CA(L1CA),     \r
+  fL2CB(L2CB),     \r
+  fL2CA(L2CA)      \r
+{\r
+  // Default constructor\r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliTriggerScalersESD::Print( const Option_t* ) const\r
+{\r
+   // Print\r
+  cout << "Trigger Scalers for Class: " << (Int_t)fClassIndex << endl;\r
+  cout << "  LOCB: " << fLOCB << " LOCA: " << fLOCA; //<< endl;\r
+  cout << "  L1CB: " << fL1CB << " L1CA: " << fL1CA; //<< endl;\r
+  cout << "  L2CB: " << fL2CB << " L2CA: " << fL2CA << endl;\r
+}\r
diff --git a/STEER/AliTriggerScalersESD.h b/STEER/AliTriggerScalersESD.h
new file mode 100644 (file)
index 0000000..9d26c45
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef ALITRIGGERSCALERSESD_H\r
+#define ALITRIGGERSCALERSESD_H\r
+\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
+* See cxx source for full Copyright notice */\r
+/* $Id$ */\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+//  Class to define the ALICE Trigger Scalers  \r
+//\r
+//  For each trigger class there are six scalers:\r
+//\r
+//    LOCB       L0 triggers before any vetos \r
+//    LOCA       L0 triggers after all vetos \r
+//    L1CB       L1 triggers before any vetos \r
+//    L1CA       L1 triggers after all vetos \r
+//    L2CB       L2 triggers before any vetos \r
+//    L2CA       L2 triggers after all vetos \r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+\r
+class AliTriggerScalersESD : public TObject {\r
+\r
+public:\r
+                         AliTriggerScalersESD();\r
+                         AliTriggerScalersESD(\r
+                                 UChar_t    classIndex,                                 \r
+                               ULong64_t    LOCB,        \r
+                               ULong64_t    LOCA,        \r
+                               ULong64_t    L1CB,        \r
+                               ULong64_t    L1CA,        \r
+                               ULong64_t    L2CB,        \r
+                               ULong64_t    L2CA     \r
+                         );   \r
+              virtual   ~AliTriggerScalersESD() {}\r
+              UChar_t    GetClassIndex() { return fClassIndex; }\r
+         virtual void    Print( const Option_t* opt ="" ) const;\r
+\r
+                 \r
+    \r
+private:    \r
+                         UChar_t    fClassIndex;            //  number of triggered classes        \r
+               ULong64_t    fLOCB;            //  L0 triggers before any vetos  (64 bits)\r
+               ULong64_t    fLOCA;            //  L0 triggers after all vetos   (64 bits)\r
+               ULong64_t    fL1CB;            //  L1 triggers before any vetos  (64 bits)\r
+               ULong64_t    fL1CA;            //  L1 triggers after all vetos   (64 bits)\r
+               ULong64_t    fL2CB;            //  L2 triggers before any vetos  (64 bits)\r
+               ULong64_t    fL2CA;            //  L2 triggers after all vetos   (64 bits)\r
+                         AliTriggerScalersESD( const AliTriggerScalersESD &run );\r
+                         AliTriggerScalersESD&   operator=(const AliTriggerScalersESD& clus);\r
+\r
+   ClassDef( AliTriggerScalersESD, 1 )  // Define a Run Trigger Scalers (Scalers)\r
+};\r
+\r
+#endif\r
diff --git a/STEER/AliTriggerScalersRecordESD.cxx b/STEER/AliTriggerScalersRecordESD.cxx
new file mode 100644 (file)
index 0000000..9c822d6
--- /dev/null
@@ -0,0 +1,68 @@
+ /*************************************************************************\r
+* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
+*                                                                        *\r
+* Author: The ALICE Off-line Project.                                    *\r
+* Contributors are mentioned in the code where appropriate.              *\r
+*                                                                        *\r
+* Permission to use, copy, modify and distribute this software and its   *\r
+* documentation strictly for non-commercial purposes is hereby granted   *\r
+* without fee, provided that the above copyright notice appears in all   *\r
+* copies and that both the copyright notice and this permission notice   *\r
+* appear in the supporting documentation. The authors make no claims     *\r
+* about the suitability of this software for any purpose. It is          *\r
+* provided "as is" without express or implied warranty.                  * **************************************************************************/\r
+\r
+\r
+#include <Riostream.h>\r
+#include <TObjArray.h>\r
+#include "AliLog.h"  \r
+#include "AliTriggerScalersESD.h"\r
+#include "AliTriggerScalersRecordESD.h"\r
+\r
+ClassImp( AliTriggerScalersRecordESD )\r
+//_____________________________________________________________________________\r
+AliTriggerScalersRecordESD::AliTriggerScalersRecordESD():\r
+fScalers()\r
+{\r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliTriggerScalersRecordESD::AddTriggerScalers( AliTriggerScalersESD* scaler ) \r
+{ \r
+  fScalers.AddLast( scaler ); \r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliTriggerScalersRecordESD::AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,        \r
+                                         ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA )\r
+{\r
+    AddTriggerScalers( new AliTriggerScalersESD( classIndex, LOCB, LOCA, L1CB, L1CA, L2CB, L2CA ) );\r
+} \r
+\r
+//_____________________________________________________________________________\r
+AliTriggerScalersESD* AliTriggerScalersRecordESD::GetTriggerScalersForClass( Int_t classindex )\r
+{\r
+   // Find Trigger scaler with class ID = classmask using a binary search. \r
+\r
+   Int_t   base, last;\r
+   AliTriggerScalersESD *op2 = NULL;\r
+   \r
+   base = 0;\r
+   last = fScalers.GetEntriesFast();\r
+\r
+   while (base < last) {\r
+      op2 = (AliTriggerScalersESD *)fScalers.At(base);\r
+      if( op2->GetClassIndex()  == classindex ) return op2;\r
+      base++;\r
+   }\r
+   return op2;   \r
+}\r
+                                      \r
+//_____________________________________________________________________________\r
+void AliTriggerScalersRecordESD::Print( const Option_t* ) const\r
+{\r
+   // Print\r
+  cout << "Trigger Scalers Record: " << endl;\r
+  for( Int_t i=0; i<fScalers.GetEntriesFast(); ++i ) \r
+     ((AliTriggerScalersESD*)fScalers.At(i))->Print();\r
+}\r
diff --git a/STEER/AliTriggerScalersRecordESD.h b/STEER/AliTriggerScalersRecordESD.h
new file mode 100644 (file)
index 0000000..eadaa3b
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef ALITRIGGERSCALERSRECORDESD_H\r
+#define ALITRIGGERSCALERSRECORDESD_H\r
+\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
+* See cxx source for full Copyright notice */\r
+/* $Id$ */\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Class to define the ALICE Trigger Scalers Record \r
+//\r
+// Each record consists of 1 time stamp (4 words)  (AliTimeStamp)\r
+// and an array with the scalers (AliTriggerScalers) for each trigger class \r
+// in partition  \r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+#include <TObjArray.h>\r
+class TObjArray;\r
+class AliTriggerScalersESD;\r
+\r
+class AliTriggerScalersRecordESD : public TObject {\r
+\r
+public:\r
+                            AliTriggerScalersRecordESD();\r
+                    \r
+                            virtual   ~AliTriggerScalersRecordESD() { fScalers.SetOwner(); fScalers.Delete(); }\r
+                 \r
+                 \r
+                    void    AddTriggerScalers( AliTriggerScalersESD* scaler );\r
+                    void    AddTriggerScalers( UChar_t classIndex, ULong64_t LOCB, ULong64_t LOCA,        \r
+                                              ULong64_t L1CB, ULong64_t L1CA, ULong64_t L2CB, ULong64_t L2CA );\r
+                            \r
+               TObjArray*   GetTriggerScalers()  { return  &fScalers; }\r
+    AliTriggerScalersESD*   GetTriggerScalersForClass( Int_t classindex );       \r
+                                \r
+            virtual void    Print( const Option_t* opt ="" ) const;\r
+\r
+               \r
+\r
+private:  \r
+\r
+                      TObjArray    fScalers;      // Array of scalers (AliTriggerScalersESD) \r
+                      AliTriggerScalersRecordESD( const AliTriggerScalersRecordESD &rec );\r
+                      AliTriggerScalersRecordESD&   operator=(const AliTriggerScalersRecordESD& rec);      \r
+\r
+   ClassDef( AliTriggerScalersRecordESD, 1 )  // Define a Record of Trigger Scalers \r
+};\r
+\r
+#endif\r
index 7c78ccb..2c39226 100644 (file)
@@ -30,6 +30,8 @@ set(SRCS
        AliESDVZEROfriend.cxx
        AliTPCpidESD.cxx
        AliTOFpidESD.cxx
+       AliTriggerScalersESD.cxx
+       AliTriggerScalersRecordESD.cxx 
 )
 
 # fill list of header files from list of source files
index dbf16e4..d00d8cc 100644 (file)
@@ -77,6 +77,9 @@
 #pragma link C++ class  AliTPCpidESD+;
 #pragma link C++ class  AliTOFpidESD+;
 
+#pragma link C++ class  AliTriggerScalersESD+;
+#pragma link C++ class  AliTriggerScalersRecordESD+;
+  
 #endif
 
 
index e22cd1d..4d8c4d9 100644 (file)
@@ -28,7 +28,9 @@ SRCS = AliESDEvent.cxx AliESDInputHandler.cxx AliESDInputHandlerRP.cxx AliESDfri
        AliTriggerIR.cxx \
        AliESDVZEROfriend.cxx \
        AliTPCpidESD.cxx \
-       AliTOFpidESD.cxx
+       AliTOFpidESD.cxx \
+       AliTriggerScalersESD.cxx \
+       AliTriggerScalersRecordESD.cxx 
 
 HDRS:= $(SRCS:.cxx=.h)