#ifndef ALICFEVENTCLASSCUTS_H
#define ALICFEVENTCLASSCUTS_H
#include "AliCFCutBase.h"
#include "TBits.h"
class TH1F;
class AliVEvent;
class AliCFEventClassCuts: public AliCFCutBase
{
public :
AliCFEventClassCuts() ;
AliCFEventClassCuts(Char_t* name, Char_t* title) ;
AliCFEventClassCuts(const AliCFEventClassCuts& c) ;
AliCFEventClassCuts& operator=(const AliCFEventClassCuts& c) ;
~AliCFEventClassCuts();
Bool_t IsSelected(TObject* obj);
Bool_t IsSelected(TList* ) {return kTRUE;}
enum TriggerType {
kVZEROLeft=0,kVZERORight,kVZEROBeamGas,
kSTARTAL0,kSTARTCL0,
kITSSPDGFOL0,kITSSPDHMultL0,
kMUSingleLPtL0,kMUUnlikeLPtL0,kMUUnlikeHPtL0,kMULikeLPtL0,kMULikeHPtL0,
kMB,kTOFMB,
kMUSingleMB,kMUUnLikeLPtMB,kMULikeLPtMB,
kMB1,kMB2,kMB3,kMB4,kMB5
};
static Bool_t IsTriggered(AliVEvent *ev, TriggerType trigger=kMB1);
void SetTriggerType(TriggerType trigger=kMB1) { fTriggerType.SetBitNumber(trigger,kTRUE);}
TBits GetTriggerType() const { return fTriggerType;}
void SetTriggersInAND( Bool_t flag){fTriggerAND=flag;}
void SetZDCN1EnergyCut(Double_t min,Double_t max){fZDCN1EnergyMin=min; fZDCN1EnergyMax=max;}
void SetZDCN2EnergyCut(Double_t min,Double_t max){fZDCN2EnergyMin=min; fZDCN2EnergyMax=max;}
void SetZDCP1EnergyCut(Double_t min,Double_t max){fZDCP1EnergyMin=min; fZDCP1EnergyMax=max;}
void SetZDCP2EnergyCut(Double_t min,Double_t max){fZDCP2EnergyMin=min; fZDCP2EnergyMax=max;}
void SetZDCEM1EnergyCut(Double_t min,Double_t max){fZDCEM1EnergyMin=min; fZDCEM1EnergyMax=max;}
void SetZDCEM2EnergyCut(Double_t min,Double_t max){fZDCEM2EnergyMin=min; fZDCEM2EnergyMax=max;}
Double_t GetZDCN1EnergyCutMin() const {return fZDCN1EnergyMin;};
Double_t GetZDCN2EnergyCutMin() const {return fZDCN2EnergyMin;};
Double_t GetZDCP1EnergyCutMin() const {return fZDCP1EnergyMin;};
Double_t GetZDCP2EnergyCutMin() const {return fZDCP2EnergyMin;};
Double_t GetZDCEM1EnergyCutMin() const {return fZDCEM1EnergyMin;};
Double_t GetZDCEM2EnergyCutMin() const {return fZDCEM2EnergyMin;};
Double_t GetZDCN1EnergyCutMax() const {return fZDCN1EnergyMax;};
Double_t GetZDCN2EnergyCutMax() const {return fZDCN2EnergyMax;};
Double_t GetZDCP1EnergyCutMax() const {return fZDCP1EnergyMax;};
Double_t GetZDCP2EnergyCutMax() const {return fZDCP2EnergyMax;};
Double_t GetZDCEM1EnergyCutMax() const {return fZDCEM1EnergyMax;};
Double_t GetZDCEM2EnergyCutMax() const {return fZDCEM2EnergyMax;};
void SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins);
void SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax);
enum{kTrigger=0,
kZDCEnergyN1,
kZDCEnergyP1,
kZDCEnergyN2,
kZDCEnergyP2,
kZDCEnergyEM1,
kZDCEnergyEM2,
kNTriggers=17,
kNTriggersMB=5,
kNCuts=7,
kNStepQA=2
};
protected:
void SelectionBitMap(TObject* obj);
static void TriggerBitMap(AliVEvent* ev,TBits *bitmapT);
void DefineHistograms();
void AddQAHistograms(TList *qaList) ;
void Initialise();
void FillHistograms(TObject* obj, Bool_t b);
TBits fTriggerType ;
Bool_t fTriggerAND;
Double_t fZDCN1EnergyMin;
Double_t fZDCP1EnergyMin;
Double_t fZDCN2EnergyMin;
Double_t fZDCP2EnergyMin;
Double_t fZDCEM1EnergyMin;
Double_t fZDCEM2EnergyMin;
Double_t fZDCN1EnergyMax;
Double_t fZDCP1EnergyMax;
Double_t fZDCN2EnergyMax;
Double_t fZDCP2EnergyMax;
Double_t fZDCEM1EnergyMax;
Double_t fZDCEM2EnergyMax;
TBits *fBitMap ;
TH1F* fhQA[kNCuts][kNStepQA];
ClassDef(AliCFEventClassCuts,2);
};
#endif
AliCFEventClassCuts.h:100 AliCFEventClassCuts.h:101 AliCFEventClassCuts.h:102 AliCFEventClassCuts.h:103 AliCFEventClassCuts.h:104 AliCFEventClassCuts.h:105 AliCFEventClassCuts.h:106 AliCFEventClassCuts.h:107 AliCFEventClassCuts.h:108 AliCFEventClassCuts.h:109 AliCFEventClassCuts.h:110 AliCFEventClassCuts.h:111 AliCFEventClassCuts.h:112 AliCFEventClassCuts.h:113 AliCFEventClassCuts.h:114 AliCFEventClassCuts.h:115 AliCFEventClassCuts.h:116 AliCFEventClassCuts.h:117 AliCFEventClassCuts.h:118 AliCFEventClassCuts.h:119 AliCFEventClassCuts.h:120 AliCFEventClassCuts.h:121 AliCFEventClassCuts.h:122 AliCFEventClassCuts.h:123 AliCFEventClassCuts.h:124 AliCFEventClassCuts.h:125 AliCFEventClassCuts.h:126 AliCFEventClassCuts.h:127 AliCFEventClassCuts.h:128