]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/correlationHF/AliDxHFEParticleSelection.h
Update from Prabhat - DptDpt Corr
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelection.h
index b27674524562a9ca6dbd18f37a12f3d298938de4..68b76a6f8ec22bc9b1713301755a8cb8e6468619 100644 (file)
 #include "TString.h"
 class AliVEvent;
 class AliVParticle;
+class AliPIDResponse;
 class TObjArray;
 class TH1;
+class TH2;
 class THnSparse;
 
 /**
@@ -55,6 +57,11 @@ class AliDxHFEParticleSelection : public TNamed {
     kNTrackPropertyLabels
   };
 
+  enum {
+    kHistoEvent=0,
+    kHistoNrTracksPrEvent
+  };
+
   /// set options
   void SetOption(const char* opt) { fOption = opt; }
   /// overloaded from TObject: get option
@@ -73,13 +80,19 @@ class AliDxHFEParticleSelection : public TNamed {
   /// object array needs to be deleted by caller
   virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
 
+  virtual void SetPIDResponse(const AliPIDResponse* /*const pidresp*/){}
+
   // Get the list fControlObjects. 
   const TList* GetControlObjects() const {return fControlObjects;}
 
   /// histogram event properties
-  virtual int HistogramEventProperties(int bin);
-
+  virtual int HistogramEventProperties(int histonr, int bin);
+  virtual int HistogramEventProperties(int bin){
+    return HistogramEventProperties(kHistoEvent,bin);
+  }
+  
   virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
+  virtual AliVParticle* CreateParticle(AliVParticle* track);
 
   /// check and add track to internal array
   int CheckAndAdd(AliVParticle* p);
@@ -119,6 +132,29 @@ class AliDxHFEParticleSelection : public TNamed {
 
   /// get the dimension of THn, fixed
   inline int GetDimTHnSparse() const {return fDimThn;}
+
+  /// create 2D control histogram
+  TH2* CreateControl2DHistogram(const char* name,
+                               const char* title,
+                               double* nBins,
+                               const char* xaxis,
+                               const char* yaxis) const;
+
+  /// create control histogram
+  TH1* CreateControlHistogram(const char* name,
+                             const char* title,
+                             int nBins,
+                             double min,
+                             double max,
+                             const char** binLabels=NULL) const;
+
+  /// create control histogram
+  TH1* CreateControlHistogram(const char* name,
+                             const char* title,
+                             int nBins,
+                             const char** binLabels=NULL) const {
+    return CreateControlHistogram(name, title, nBins, -0.5, nBins-0.5, binLabels);
+  }
   
   /// create control THnSparse
   THnSparse* CreateControlTHnSparse(const char* name,
@@ -131,6 +167,8 @@ class AliDxHFEParticleSelection : public TNamed {
   // define and create the THnSparse object
   // initializes also the dimension to be used further
   virtual THnSparse* DefineTHnSparse();
+  
+  Int_t GetSystem() const {return fSystem;}
 
  protected:
   /// add control object to list, the base class becomes owner of the object
@@ -148,6 +186,8 @@ class AliDxHFEParticleSelection : public TNamed {
 
   inline Double_t* ParticleProperties() const {return fParticleProperties;}
 
+  virtual int ParseArguments(const char* arguments);
+
  private:
   /// copy contructor prohibited
   AliDxHFEParticleSelection(const AliDxHFEParticleSelection&);
@@ -161,15 +201,17 @@ class AliDxHFEParticleSelection : public TNamed {
   TList* fControlObjects; // list of control objects
   TH1* fhEventControl; //! event control histogram
   TH1* fhTrackControl; //! track control histogram
+  TH1* fhNrTracksPerEvent; //! Control histo for nr particles pr event
   bool fUseMC;         // specific implementation for MC selection
   int fVerbosity;      //! verbosity
   int fDimThn;         //  dim of thnsparse
   Double_t* fParticleProperties;  //! filling array for THnSparse
+  Int_t     fSystem;            // whether running on pp(0,default), PbPb(1) or pPb(2, not used yet) 
 
   static const char* fgkEventControlBinNames[]; //! bin labels for event control histogram
   static const char* fgkTrackControlBinNames[]; //! bin labels for track control histogram
 
-  ClassDef(AliDxHFEParticleSelection, 3);
+  ClassDef(AliDxHFEParticleSelection, 5);
 
 };