#include "TString.h"
class AliVEvent;
class AliVParticle;
+class AliPIDResponse;
class TObjArray;
class TH1;
+class TH2;
class THnSparse;
/**
kNTrackPropertyLabels
};
+ enum {
+ kHistoEvent=0,
+ kHistoNrTracksPrEvent
+ };
+
/// set options
void SetOption(const char* opt) { fOption = opt; }
/// overloaded from TObject: get option
/// 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);
/// 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,
// 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
inline Double_t* ParticleProperties() const {return fParticleProperties;}
+ virtual int ParseArguments(const char* arguments);
+
private:
/// copy contructor prohibited
AliDxHFEParticleSelection(const AliDxHFEParticleSelection&);
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);
};