// To select on the Event Class: look at the Trigger mask and the ZDC info.
// Only pp-running trigger types implemented so far
// handles all masks for the trigger description
-// and some general combinations like MB1,MB2,MB3
+// and some general combinations like MB1,MB2,MB3,MB4 and MB5.
// The argument of IsSelected member function (passed object) is cast into
// an AliVEvent, but cuts have a true meaning only for AliESD(AOD)Event
// type objects.
fBitMap=new TBits(0);
Initialise();
}
+
//____________________________________________________________________
AliCFEventClassCuts::AliCFEventClassCuts(Char_t* name, Char_t* title) :
AliCFCutBase(name,title),
fBitMap=new TBits(0);
Initialise();
}
-//____________________________________________________________________
+
+//_____________________________________________________________________________
AliCFEventClassCuts::AliCFEventClassCuts(const AliCFEventClassCuts& c) :
AliCFCutBase(c),
fTriggerType(c.fTriggerType),
//copy constructor
//
}
-//____________________________________________________________________
+
+//_____________________________________________________________________________
AliCFEventClassCuts& AliCFEventClassCuts::operator=(const AliCFEventClassCuts& c){
//
// Assignment operator
return *this ;
}
-//____________________________________________________________________
+//_____________________________________________________________________________
AliCFEventClassCuts::~AliCFEventClassCuts()
{
//
if(fhBinLimZDCEnEM2)delete fhBinLimZDCEnEM2;
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::Init() {
//
- // initialises all histograms and the TList which holds the histograms
+ // initialises all QA histograms
//
if(fIsQAOn)
DefineHistograms();
}
-//__________________________________________________________________________________
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::Initialise()
{
//
//initialization
//
+
//
// sets pointers to histos to zero
//
SetHistogramBins(kZDCEnergyEM2,800,-500,7500);
}
+
//____________________________________________________________________
Bool_t AliCFEventClassCuts::IsSelected(TObject* obj) {
//
return fBitMap;
}
+
//_____________________________________________________________________________
Bool_t AliCFEventClassCuts::IsTriggered(AliVEvent* ev, TriggerType trigger) {
//
return isTriggered;
}
+
//_____________________________________________________________________________
void AliCFEventClassCuts::TriggerBitMap(AliVEvent* ev, TBits *bitmapT ) {
//
return;
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::GetBitMap(TObject* obj, TBits* bitmap){
//
// retrieve the pointer to the bitmap
bitmap = SelectionBitMap(obj);
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins)
{
//
switch(index){
case kTrigger:
- fhNBinsTrigger=nbins;
+ fhNBinsTrigger=nbins+1;
fhBinLimTrigger=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimTrigger[i]=bins[i];
break;
case kZDCEnergyN1:
- fhNBinsZDCEnN1=nbins;
+ fhNBinsZDCEnN1=nbins+1;
fhBinLimZDCEnN1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnN1[i]=bins[i];
break;
case kZDCEnergyP1:
- fhNBinsZDCEnP1=nbins;
+ fhNBinsZDCEnP1=nbins+1;
fhBinLimZDCEnP1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnP1[i]=bins[i];
break;
case kZDCEnergyN2:
- fhNBinsZDCEnN2=nbins;
+ fhNBinsZDCEnN2=nbins+1;
fhBinLimZDCEnN2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnN2[i]=bins[i];
break;
case kZDCEnergyP2:
- fhNBinsZDCEnP2=nbins;
+ fhNBinsZDCEnP2=nbins+1;
fhBinLimZDCEnP2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnP2[i]=bins[i];
break;
case kZDCEnergyEM1:
- fhNBinsZDCEnEM1=nbins;
+ fhNBinsZDCEnEM1=nbins+1;
fhBinLimZDCEnEM1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnEM1[i]=bins[i];
break;
case kZDCEnergyEM2:
- fhNBinsZDCEnEM2=nbins;
+ fhNBinsZDCEnEM2=nbins+1;
fhBinLimZDCEnEM2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnEM2[i]=bins[i];
break;
}
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax)
{
//
//
switch(index){
case kTrigger:
- fhNBinsTrigger=nbins;
+ fhNBinsTrigger=nbins+1;
fhBinLimTrigger=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimTrigger[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyN1:
- fhNBinsZDCEnN1=nbins;
+ fhNBinsZDCEnN1=nbins+1;
fhBinLimZDCEnN1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnN1[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyP1:
- fhNBinsZDCEnP1=nbins;
+ fhNBinsZDCEnP1=nbins+1;
fhBinLimZDCEnP1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnP1[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyN2:
- fhNBinsZDCEnN2=nbins;
+ fhNBinsZDCEnN2=nbins+1;
fhBinLimZDCEnN2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnN2[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyP2:
- fhNBinsZDCEnP2=nbins;
+ fhNBinsZDCEnP2=nbins+1;
fhBinLimZDCEnP2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnP2[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyEM1:
- fhNBinsZDCEnEM1=nbins;
+ fhNBinsZDCEnEM1=nbins+1;
fhBinLimZDCEnEM1=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnEM1[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kZDCEnergyEM2:
- fhNBinsZDCEnEM2=nbins;
+ fhNBinsZDCEnEM2=nbins+1;
fhBinLimZDCEnEM2=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimZDCEnEM2[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
}
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::DefineHistograms() {
//
// histograms for cut variables
if (i==0) sprintf(str," ");
else sprintf(str,"_cut");
- fhQA[kTrigger][i] = new TH1F(Form("%s_TriggerBits%s",GetName(),str), "",fhNBinsTrigger,fhBinLimTrigger);
- fhQA[kZDCEnergyN1][i] = new TH1F(Form("%s_ZDC_Energy_N1%s",GetName(),str), "",fhNBinsZDCEnN1,fhBinLimZDCEnN1);
- fhQA[kZDCEnergyP1][i] = new TH1F(Form("%s_ZDC_Energy_P1%s",GetName(),str), "",fhNBinsZDCEnP1,fhBinLimZDCEnP1);
- fhQA[kZDCEnergyN2][i] = new TH1F(Form("%s_ZDC_Energy_N2%s",GetName(),str), "",fhNBinsZDCEnN2,fhBinLimZDCEnN2);
- fhQA[kZDCEnergyP2][i] = new TH1F(Form("%s_ZDC_Energy_P2%s",GetName(),str), "",fhNBinsZDCEnP2,fhBinLimZDCEnP2);
- fhQA[kZDCEnergyEM1][i] = new TH1F(Form("%s_ZDC_Energy_EM1%s",GetName(),str), "",fhNBinsZDCEnEM1,fhBinLimZDCEnEM1);
- fhQA[kZDCEnergyEM2][i] = new TH1F(Form("%s_ZDC_Energy_EM2%s",GetName(),str), "",fhNBinsZDCEnEM2,fhBinLimZDCEnEM2);
+ fhQA[kTrigger][i] = new TH1F(Form("%s_TriggerBits%s",GetName(),str), "",fhNBinsTrigger-1,fhBinLimTrigger);
+ fhQA[kZDCEnergyN1][i] = new TH1F(Form("%s_ZDC_Energy_N1%s",GetName(),str), "",fhNBinsZDCEnN1-1,fhBinLimZDCEnN1);
+ fhQA[kZDCEnergyP1][i] = new TH1F(Form("%s_ZDC_Energy_P1%s",GetName(),str), "",fhNBinsZDCEnP1-1,fhBinLimZDCEnP1);
+ fhQA[kZDCEnergyN2][i] = new TH1F(Form("%s_ZDC_Energy_N2%s",GetName(),str), "",fhNBinsZDCEnN2-1,fhBinLimZDCEnN2);
+ fhQA[kZDCEnergyP2][i] = new TH1F(Form("%s_ZDC_Energy_P2%s",GetName(),str), "",fhNBinsZDCEnP2-1,fhBinLimZDCEnP2);
+ fhQA[kZDCEnergyEM1][i] = new TH1F(Form("%s_ZDC_Energy_EM1%s",GetName(),str), "",fhNBinsZDCEnEM1-1,fhBinLimZDCEnEM1);
+ fhQA[kZDCEnergyEM2][i] = new TH1F(Form("%s_ZDC_Energy_EM2%s",GetName(),str), "",fhNBinsZDCEnEM2-1,fhBinLimZDCEnEM2);
fhQA[kTrigger][i] ->SetXTitle("Trigger Bits");
for(Int_t i=0; i<kNCuts; i++) fhQA[i][1]->SetLineColor(color);
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::FillHistograms(TObject* obj, Bool_t b)
{
//
fhQA[kZDCEnergyEM2][index]->Fill(esd->GetZDCEMEnergy(1));
}
-//__________________________________________________________________________________
+
+//_____________________________________________________________________________
void AliCFEventClassCuts::AddQAHistograms(TList *list) const {
//
// saves the histograms in a TList