]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/rec/AliHLTMiscImplementation.cxx
compile AliESDHLTDecision functionlity if header file is available
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTMiscImplementation.cxx
index fbfea54864d969a2ff686588fd6296792d372189..45392201deb72ead775cb9aa96686ce9fb561d2d 100644 (file)
 #include "AliGRPManager.h"
 #include "AliRawReader.h"
 #include "AliTracker.h"
+// AliESDEvent.h includes AliESDHLTDecision.h
+// and switches the functionality
+#include "AliESDEvent.h"
+#ifdef ALIESDHLTDECISION_H
+#include "AliESDHLTDecision.h"
+#endif //ALIESDHLTDECISION_H
 #include "TGeoGlobalMagField.h"
+#include "AliHLTGlobalTriggerDecision.h"
 
 /** ROOT macro for the implementation of ROOT specific class methods */
 ClassImp(AliHLTMiscImplementation);
@@ -163,3 +170,34 @@ void AliHLTMiscImplementation::GetBxByBz(const Double_t r[3], Double_t b[3])
   // Returns Bx, By and Bz (kG) at the point "r" .
   return AliTracker::GetBxByBz(r, b);
 }
+
+const TClass* AliHLTMiscImplementation::IsAliESDHLTDecision() const
+{
+  // Return the IsA of the AliESDHLTDecision class
+#ifdef ALIESDHLTDECISION_H
+  return AliESDHLTDecision::Class();
+#else // ALIESDHLTDECISION_H
+  return NULL;
+#endif // ALIESDHLTDECISION_H
+}
+
+int AliHLTMiscImplementation::Copy(const AliHLTGlobalTriggerDecision* pDecision, TObject* object) const
+{
+  // Copy HLT global trigger decision to AliESDHLTDecision container
+  if (!pDecision || !object) return -EINVAL;
+#ifdef ALIESDHLTDECISION_H
+  AliESDHLTDecision* pESDHLTDecision=NULL;
+  if (object->IsA()==NULL ||
+      object->IsA() != AliESDHLTDecision::Class() ||
+      (pESDHLTDecision=dynamic_cast<AliESDHLTDecision*>(object))==NULL) {
+//     HLTError("can not copy HLT global decision to object of class \"%s\"", 
+//          object->IsA()?object->IsA()->GetName():"NULL");
+    return -EINVAL;
+  }
+
+  pESDHLTDecision->~AliESDHLTDecision();
+  new (pESDHLTDecision) AliESDHLTDecision(pDecision->Result(), pDecision->GetTitle());
+
+#endif // ALIESDHLTDECISION_H
+  return 0;
+}