]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliHFEpidBase.h
Cannot wait for the fix -- better do it myself
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEpidBase.h
index 56d037f11a2cd71fa699e1fe35648d536833fe70..c03c1f977661b87f77579434cd5401b778484459 100644 (file)
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
+//
+// Base Class for Detector PID Objects
+// For more information see the implementation file
+//
 #ifndef ALIHFEPIDBASE_H
 #define ALIHFEPIDBASE_H
  
- #ifndef ROOT_TNamed
- #include <TNamed.h>
- #endif
+#ifndef ROOT_TNamed
+#include <TNamed.h>
+#endif
+
+#ifndef ALIHFEPIDOBJECT_H
+#include "AliHFEpidObject.h"
+#endif
 
 class TList;
+class AliPIDResponse;
 class AliVParticle;
 class AliMCParticle;
-
-struct AliHFEpidObject{
-    typedef enum{ 
-      kESDanalysis,
-      kAODanalysis
-    }AnalysisType_t;
-    AliVParticle *fRecTrack;
-    AliVParticle *fMCtrack;
-    UChar_t fAnalysisType;
-    AliHFEpidObject():fRecTrack(NULL), fMCtrack(NULL), fAnalysisType(kESDanalysis){}
-};
+class AliHFEpidQAmanager;
 
 class AliHFEpidBase : public TNamed{
-  enum{
-    kQAon = BIT(14),
-    kHasMCData = BIT(15)
-  };
   public:
+    AliHFEpidBase();
     AliHFEpidBase(const Char_t *name);
     AliHFEpidBase(const AliHFEpidBase &c);
     AliHFEpidBase &operator=(const AliHFEpidBase &c);
     virtual ~AliHFEpidBase() {};
     // Framework functions that have to be implemented by the detector PID classes
-    virtual Bool_t InitializePID() = 0;
-    virtual Int_t IsSelected(AliHFEpidObject *track) = 0;
-    virtual Bool_t HasQAhistos() const = 0;
+    virtual Bool_t InitializePID(Int_t run) = 0;
+    virtual Int_t IsSelected(const AliHFEpidObject *track, AliHFEpidQAmanager *pidqa = NULL) const = 0;
 
-    Int_t GetDebugLevel() const { return fDebugLevel; };
-    Bool_t IsQAon() const { return TestBit(kQAon);};
     Bool_t HasMCData() const { return TestBit(kHasMCData); };
 
-    void SetDebugLevel(Int_t debugLevel) { fDebugLevel = debugLevel; }; 
-    inline void SetQAOn(TList *fQAlist);
+    void SetPIDResponse(const AliPIDResponse * const pid) { fkPIDResponse = pid; }
     void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData,hasMCdata); };
 
+    const AliPIDResponse *GetPIDResponse() const { return fkPIDResponse; }; 
+
   protected:
+    const AliPIDResponse *fkPIDResponse;        //! PID Response
     void Copy(TObject &ref) const;
-    virtual void AddQAhistograms(TList *){};
+
   private:
-    Int_t fDebugLevel;              // Debug Level
+    enum{
+      kHasMCData = BIT(14)
+    };
 
-    ClassDef(AliHFEpidBase, 1)      // Base class for detector Electron ID
+    ClassDef(AliHFEpidBase, 2)      // Base class for detector Electron ID
 };
-
-//___________________________________________________________________
-void AliHFEpidBase::SetQAOn(TList *qaList){
-  //
-  // Initialize QA for Detector PID class
-  //
-  if(HasQAhistos()){
-    SetBit(kQAon, kTRUE);
-    AddQAhistograms(qaList);
-  }
-}
 #endif