#ifndef ALIDXHFEPARTICLESELECTION_H
#define ALIDXHFEPARTICLESELECTION_H
#include "TNamed.h"
#include "TString.h"
class AliVEvent;
class AliVParticle;
class AliPIDResponse;
class TObjArray;
class TH1;
class TH2;
class THnSparse;
class AliDxHFEParticleSelection : public TNamed {
public:
AliDxHFEParticleSelection(const char* name=NULL, const char* opt="");
virtual ~AliDxHFEParticleSelection();
enum {
kEventsAll = 0,
kEventsSel,
kEventsWithParticle,
kNEventPropertyLabels
};
enum {
kTrackAll = 0,
kTrackSel,
kNTrackPropertyLabels
};
enum {
kHistoEvent=0,
kHistoNrTracksPrEvent
};
void SetOption(const char* opt) { fOption = opt; }
virtual Option_t* GetOption() const { return fOption;}
virtual int Init();
virtual int InitControlObjects();
virtual TObjArray* Select(const AliVEvent* pEvent);
virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
virtual void SetPIDResponse(const AliPIDResponse* ){}
const TList* GetControlObjects() const {return fControlObjects;}
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);
int CheckAndAdd(AliVParticle* p);
virtual void SetCuts(TObject* , int =0) {}
Bool_t GetUseMC() const {return fUseMC;}
const TObjArray* GetSelected() const {return fSelectedTracks;}
virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL);
virtual void Clear(Option_t * option ="");
virtual void Print(Option_t *option="") const;
virtual void SaveAs(const char *filename="", Option_t *option="") const;
virtual void Draw(Option_t *option="");
virtual TObject* FindObject(const char *name) const;
virtual TObject* FindObject(const TObject *obj) const;
void SetVerbosity(int verbosity) {fVerbosity=verbosity;}
inline int GetVerbosity() const {return fVerbosity;}
inline int GetDimTHnSparse() const {return fDimThn;}
TH2* CreateControl2DHistogram(const char* name,
const char* title,
double* nBins,
const char* xaxis,
const char* yaxis) const;
TH1* CreateControlHistogram(const char* name,
const char* title,
int nBins,
double min,
double max,
const char** binLabels=NULL) const;
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);
}
THnSparse* CreateControlTHnSparse(const char* name,
int thnSize,
int* thnBins,
double* thnMin,
double* thnMax,
const char** binLabels) const;
virtual THnSparse* DefineTHnSparse();
Int_t GetSystem() const {return fSystem;}
protected:
int AddControlObject(TObject* pObj);
virtual int HistogramParticleProperties(AliVParticle* p, int selected=1);
void InitTHnSparseArray(int dimension) {
fDimThn=dimension;
if (fParticleProperties) delete[] fParticleProperties; fParticleProperties=NULL;
if (dimension>0) fParticleProperties=new Double_t[dimension];
}
inline Double_t* ParticleProperties() const {return fParticleProperties;}
virtual int ParseArguments(const char* arguments);
private:
AliDxHFEParticleSelection(const AliDxHFEParticleSelection&);
AliDxHFEParticleSelection& operator=(const AliDxHFEParticleSelection&);
TString fOption;
TObjArray* fSelectedTracks;
TList* fControlObjects;
TH1* fhEventControl;
TH1* fhTrackControl;
TH1* fhNrTracksPerEvent;
bool fUseMC;
int fVerbosity;
int fDimThn;
Double_t* fParticleProperties;
Int_t fSystem;
static const char* fgkEventControlBinNames[];
static const char* fgkTrackControlBinNames[];
ClassDef(AliDxHFEParticleSelection, 5);
};
#endif
AliDxHFEParticleSelection.h:1 AliDxHFEParticleSelection.h:2 AliDxHFEParticleSelection.h:3 AliDxHFEParticleSelection.h:4 AliDxHFEParticleSelection.h:5 AliDxHFEParticleSelection.h:6 AliDxHFEParticleSelection.h:7 AliDxHFEParticleSelection.h:8 AliDxHFEParticleSelection.h:9 AliDxHFEParticleSelection.h:10 AliDxHFEParticleSelection.h:11 AliDxHFEParticleSelection.h:12 AliDxHFEParticleSelection.h:13 AliDxHFEParticleSelection.h:14 AliDxHFEParticleSelection.h:15 AliDxHFEParticleSelection.h:16 AliDxHFEParticleSelection.h:17 AliDxHFEParticleSelection.h:18 AliDxHFEParticleSelection.h:19 AliDxHFEParticleSelection.h:20 AliDxHFEParticleSelection.h:21 AliDxHFEParticleSelection.h:22 AliDxHFEParticleSelection.h:23 AliDxHFEParticleSelection.h:24 AliDxHFEParticleSelection.h:25 AliDxHFEParticleSelection.h:26 AliDxHFEParticleSelection.h:27 AliDxHFEParticleSelection.h:28 AliDxHFEParticleSelection.h:29 AliDxHFEParticleSelection.h:30 AliDxHFEParticleSelection.h:31 AliDxHFEParticleSelection.h:32 AliDxHFEParticleSelection.h:33 AliDxHFEParticleSelection.h:34 AliDxHFEParticleSelection.h:35 AliDxHFEParticleSelection.h:36 AliDxHFEParticleSelection.h:37 AliDxHFEParticleSelection.h:38 AliDxHFEParticleSelection.h:39 AliDxHFEParticleSelection.h:40 AliDxHFEParticleSelection.h:41 AliDxHFEParticleSelection.h:42 AliDxHFEParticleSelection.h:43 AliDxHFEParticleSelection.h:44 AliDxHFEParticleSelection.h:45 AliDxHFEParticleSelection.h:46 AliDxHFEParticleSelection.h:47 AliDxHFEParticleSelection.h:48 AliDxHFEParticleSelection.h:49 AliDxHFEParticleSelection.h:50 AliDxHFEParticleSelection.h:51 AliDxHFEParticleSelection.h:52 AliDxHFEParticleSelection.h:53 AliDxHFEParticleSelection.h:54 AliDxHFEParticleSelection.h:55 AliDxHFEParticleSelection.h:56 AliDxHFEParticleSelection.h:57 AliDxHFEParticleSelection.h:58 AliDxHFEParticleSelection.h:59 AliDxHFEParticleSelection.h:60 AliDxHFEParticleSelection.h:61 AliDxHFEParticleSelection.h:62 AliDxHFEParticleSelection.h:63 AliDxHFEParticleSelection.h:64 AliDxHFEParticleSelection.h:65 AliDxHFEParticleSelection.h:66 AliDxHFEParticleSelection.h:67 AliDxHFEParticleSelection.h:68 AliDxHFEParticleSelection.h:69 AliDxHFEParticleSelection.h:70 AliDxHFEParticleSelection.h:71 AliDxHFEParticleSelection.h:72 AliDxHFEParticleSelection.h:73 AliDxHFEParticleSelection.h:74 AliDxHFEParticleSelection.h:75 AliDxHFEParticleSelection.h:76 AliDxHFEParticleSelection.h:77 AliDxHFEParticleSelection.h:78 AliDxHFEParticleSelection.h:79 AliDxHFEParticleSelection.h:80 AliDxHFEParticleSelection.h:81 AliDxHFEParticleSelection.h:82 AliDxHFEParticleSelection.h:83 AliDxHFEParticleSelection.h:84 AliDxHFEParticleSelection.h:85 AliDxHFEParticleSelection.h:86 AliDxHFEParticleSelection.h:87 AliDxHFEParticleSelection.h:88 AliDxHFEParticleSelection.h:89 AliDxHFEParticleSelection.h:90 AliDxHFEParticleSelection.h:91 AliDxHFEParticleSelection.h:92 AliDxHFEParticleSelection.h:93 AliDxHFEParticleSelection.h:94 AliDxHFEParticleSelection.h:95 AliDxHFEParticleSelection.h:96 AliDxHFEParticleSelection.h:97 AliDxHFEParticleSelection.h:98 AliDxHFEParticleSelection.h:99 AliDxHFEParticleSelection.h:100 AliDxHFEParticleSelection.h:101 AliDxHFEParticleSelection.h:102 AliDxHFEParticleSelection.h:103 AliDxHFEParticleSelection.h:104 AliDxHFEParticleSelection.h:105 AliDxHFEParticleSelection.h:106 AliDxHFEParticleSelection.h:107 AliDxHFEParticleSelection.h:108 AliDxHFEParticleSelection.h:109 AliDxHFEParticleSelection.h:110 AliDxHFEParticleSelection.h:111 AliDxHFEParticleSelection.h:112 AliDxHFEParticleSelection.h:113 AliDxHFEParticleSelection.h:114 AliDxHFEParticleSelection.h:115 AliDxHFEParticleSelection.h:116 AliDxHFEParticleSelection.h:117 AliDxHFEParticleSelection.h:118 AliDxHFEParticleSelection.h:119 AliDxHFEParticleSelection.h:120 AliDxHFEParticleSelection.h:121 AliDxHFEParticleSelection.h:122 AliDxHFEParticleSelection.h:123 AliDxHFEParticleSelection.h:124 AliDxHFEParticleSelection.h:125 AliDxHFEParticleSelection.h:126 AliDxHFEParticleSelection.h:127 AliDxHFEParticleSelection.h:128 AliDxHFEParticleSelection.h:129 AliDxHFEParticleSelection.h:130 AliDxHFEParticleSelection.h:131 AliDxHFEParticleSelection.h:132 AliDxHFEParticleSelection.h:133 AliDxHFEParticleSelection.h:134 AliDxHFEParticleSelection.h:135 AliDxHFEParticleSelection.h:136 AliDxHFEParticleSelection.h:137 AliDxHFEParticleSelection.h:138 AliDxHFEParticleSelection.h:139 AliDxHFEParticleSelection.h:140 AliDxHFEParticleSelection.h:141 AliDxHFEParticleSelection.h:142 AliDxHFEParticleSelection.h:143 AliDxHFEParticleSelection.h:144 AliDxHFEParticleSelection.h:145 AliDxHFEParticleSelection.h:146 AliDxHFEParticleSelection.h:147 AliDxHFEParticleSelection.h:148 AliDxHFEParticleSelection.h:149 AliDxHFEParticleSelection.h:150 AliDxHFEParticleSelection.h:151 AliDxHFEParticleSelection.h:152 AliDxHFEParticleSelection.h:153 AliDxHFEParticleSelection.h:154 AliDxHFEParticleSelection.h:155 AliDxHFEParticleSelection.h:156 AliDxHFEParticleSelection.h:157 AliDxHFEParticleSelection.h:158 AliDxHFEParticleSelection.h:159 AliDxHFEParticleSelection.h:160 AliDxHFEParticleSelection.h:161 AliDxHFEParticleSelection.h:162 AliDxHFEParticleSelection.h:163 AliDxHFEParticleSelection.h:164 AliDxHFEParticleSelection.h:165 AliDxHFEParticleSelection.h:166 AliDxHFEParticleSelection.h:167 AliDxHFEParticleSelection.h:168 AliDxHFEParticleSelection.h:169 AliDxHFEParticleSelection.h:170 AliDxHFEParticleSelection.h:171 AliDxHFEParticleSelection.h:172 AliDxHFEParticleSelection.h:173 AliDxHFEParticleSelection.h:174 AliDxHFEParticleSelection.h:175 AliDxHFEParticleSelection.h:176 AliDxHFEParticleSelection.h:177 AliDxHFEParticleSelection.h:178 AliDxHFEParticleSelection.h:179 AliDxHFEParticleSelection.h:180 AliDxHFEParticleSelection.h:181 AliDxHFEParticleSelection.h:182 AliDxHFEParticleSelection.h:183 AliDxHFEParticleSelection.h:184 AliDxHFEParticleSelection.h:185 AliDxHFEParticleSelection.h:186 AliDxHFEParticleSelection.h:187 AliDxHFEParticleSelection.h:188 AliDxHFEParticleSelection.h:189 AliDxHFEParticleSelection.h:190 AliDxHFEParticleSelection.h:191 AliDxHFEParticleSelection.h:192 AliDxHFEParticleSelection.h:193 AliDxHFEParticleSelection.h:194 AliDxHFEParticleSelection.h:195 AliDxHFEParticleSelection.h:196 AliDxHFEParticleSelection.h:197 AliDxHFEParticleSelection.h:198 AliDxHFEParticleSelection.h:199 AliDxHFEParticleSelection.h:200 AliDxHFEParticleSelection.h:201 AliDxHFEParticleSelection.h:202 AliDxHFEParticleSelection.h:203 AliDxHFEParticleSelection.h:204 AliDxHFEParticleSelection.h:205 AliDxHFEParticleSelection.h:206 AliDxHFEParticleSelection.h:207 AliDxHFEParticleSelection.h:208 AliDxHFEParticleSelection.h:209 AliDxHFEParticleSelection.h:210 AliDxHFEParticleSelection.h:211 AliDxHFEParticleSelection.h:212 AliDxHFEParticleSelection.h:213 AliDxHFEParticleSelection.h:214 AliDxHFEParticleSelection.h:215 AliDxHFEParticleSelection.h:216 AliDxHFEParticleSelection.h:217 AliDxHFEParticleSelection.h:218