]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliEventTag.cxx
Replacing TRefArray by TObjArray speeds up reading of MCEvents in PbPb
[u/mrichter/AliRoot.git] / STEER / AliEventTag.cxx
index 6eb15cdec3cc9474075db275da9fd9a6417ead55..056bb3e8cb4045d37097b6ba794ed80fec9b36f9 100644 (file)
@@ -22,6 +22,8 @@
 //-----------------------------------------------------------------
 
 #include "AliEventTag.h"
+#include <TObjArray.h>
+#include <TObjString.h>
 
 ClassImp(AliEventTag)
 
@@ -31,13 +33,16 @@ ClassImp(AliEventTag)
     fPeriodNumber(0),
     fOrbitNumber(0),
     fBunchCrossNumber(0),
-    fFiredTriggerClasses(),
+    //*T*    fFiredTriggerClasses(),
     fEventType(0),
-    fGUID(0),
-    fPath(0),
-    fsize(0),
-    fmd5(0),
-    fturl(0),
+    fPhysicsFlag(0),
+    fBackgroundFlag(0),
+//     fGUID(0),
+//     fPath(0),
+//     fsize(0),
+//     fmd5(0),
+//     fturl(0),
+//    fFileRef(0),
     fNumberOfParticipants(-10),
     fNumberOfParticipants2(-10),
     fImpactParameter(-10.0),
@@ -118,13 +123,16 @@ AliEventTag::AliEventTag(const AliEventTag & evTag) :
   fPeriodNumber(evTag.fPeriodNumber),
   fOrbitNumber(evTag.fOrbitNumber),
   fBunchCrossNumber(evTag.fBunchCrossNumber),
-  fFiredTriggerClasses(evTag.fFiredTriggerClasses),
+  //*T*  fFiredTriggerClasses(evTag.fFiredTriggerClasses),
   fEventType(evTag.fEventType),
-  fGUID(evTag.fGUID),
-  fPath(evTag.fPath),
-  fsize(evTag.fsize),
-  fmd5(evTag.fmd5),
-  fturl(evTag.fturl),
+  fPhysicsFlag(evTag.fPhysicsFlag),
+  fBackgroundFlag(evTag.fBackgroundFlag),
+//   fGUID(evTag.fGUID),
+//   fPath(evTag.fPath),
+//   fsize(evTag.fsize),
+//   fmd5(evTag.fmd5),
+//   fturl(evTag.fturl),
+// fFileRef(0),
   fNumberOfParticipants(evTag.fNumberOfParticipants),
   fNumberOfParticipants2(evTag.fNumberOfParticipants2),
   fImpactParameter(evTag.fImpactParameter),
@@ -207,13 +215,15 @@ AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
     SetPeriodNumber(evTag.GetPeriodNumber());
     SetOrbitNumber(evTag.GetOrbitNumber());
     SetBunchCrossNumber(evTag.GetBunchCrossNumber());
-    SetFiredTriggerClasses(evTag.GetFiredTriggerClasses());
+    //*T*    SetFiredTriggerClasses(evTag.GetFiredTriggerClasses());
     SetEventType(evTag.GetEventType());
-    SetGUID(evTag.GetGUID());
-    SetPath(evTag.GetPath());
-    SetMD5(evTag.GetMD5());
-    SetTURL(evTag.GetTURL());
-    SetSize(evTag.GetSize());
+    SetPhysicsFlag(evTag.GetPhysicsFlag());
+    SetBackgroungFlag(evTag.GetBackgroundFlag());
+//     SetGUID(evTag.GetGUID());
+//     SetPath(evTag.GetPath());
+//     SetMD5(evTag.GetMD5());
+//     SetTURL(evTag.GetTURL());
+//     SetSize(evTag.GetSize());
     SetNumOfParticipants(evTag.GetNumOfParticipants());
     SetImpactParameter(evTag.GetImpactParameter());
     SetVertexX(evTag.GetVertexX());
@@ -290,3 +300,30 @@ AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
 AliEventTag::~AliEventTag() {
   // AliEventTag destructor
 }
+
+// void AliEventTag::SetGUID(TString Pid) { ((AliFileTag * ) fFileRef.GetObject())->SetGUID(Pid);}
+// void AliEventTag::SetPath(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetPath(Pid);}
+// void AliEventTag::SetMD5(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetMD5(Pid);}
+// void AliEventTag::SetTURL(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetTURL(Pid);}
+// void AliEventTag::SetSize(Long64_t i) {((AliFileTag * ) fFileRef.GetObject())->SetSize(i);}
+
+TString AliEventTag::GetFiredTriggerClasses(TString actclass) const 
+{
+  // Uses the actclass string to decode the trigger mask
+  // into the fired trigger classes
+  TObjArray *actrig = actclass.Tokenize(" ");
+  TString tFired("");
+
+  for(Int_t i = 0; i < actrig->GetEntries(); i++) {
+    if (fTriggerMask & (1ull << i)) {
+      TString str = ((TObjString *) actrig->At(i))->GetString();
+      if (tFired.Length() > 0)
+       tFired += " ";
+      tFired += str;
+    }
+  }
+
+  delete actrig;
+  
+  return tFired;
+}