// efficiency calculation.
// prototype version by S.Arcelli silvia.arcelli@cern.ch
///////////////////////////////////////////////////////////////////////////
-#include "AliLog.h"
#include "AliCFCutBase.h"
#include "AliCFManager.h"
-#include "AliCFContainer.h"
ClassImp(AliCFManager)
//_____________________________________________________________________________
AliCFManager::AliCFManager() :
TNamed(),
+ fNStepEvt(0),
+ fNStepPart(0),
fEvtContainer(0x0),
fPartContainer(0x0),
fEvtCutList(0x0),
//_____________________________________________________________________________
AliCFManager::AliCFManager(Char_t* name, Char_t* title) :
TNamed(name,title),
+ fNStepEvt(0),
+ fNStepPart(0),
fEvtContainer(0x0),
fPartContainer(0x0),
fEvtCutList(0x0),
//_____________________________________________________________________________
AliCFManager::AliCFManager(const AliCFManager& c) :
TNamed(c),
+ fNStepEvt(c.fNStepEvt),
+ fNStepPart(c.fNStepPart),
fEvtContainer(c.fEvtContainer),
fPartContainer(c.fPartContainer),
fEvtCutList(c.fEvtCutList),
TNamed::operator=(c) ;
}
+ this->fNStepEvt=c.fNStepEvt;
+ this->fNStepPart=c.fNStepPart;
this->fEvtContainer=c.fEvtContainer;
this->fPartContainer=c.fPartContainer;
this->fEvtCutList=c.fEvtCutList;
// check whether object obj passes particle-level selection isel
//
- if(isel>=fPartContainer->GetNStep()){
- AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,fPartContainer->GetNStep()));
+ if(isel>=fNStepPart){
+ AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,fNStepPart));
return kTRUE;
}
if(!fPartCutList[isel])return kTRUE;
// check whether object obj passes event-level selection isel
//
- if(isel>=fEvtContainer->GetNStep()){
- AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,fEvtContainer->GetNStep()));
+ if(isel>=fNStepEvt){
+ AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,fNStepEvt));
return kTRUE;
}
if(!fEvtCutList[isel])return kTRUE;
}
//_____________________________________________________________________________
-void AliCFManager::SetEventInfo(TObject *obj) const {
+void AliCFManager::SetMCEventInfo(const TObject *obj) const {
//Particle level cuts
- if (!fPartContainer) {
- AliWarning("No particle container");
+ if (!fPartCutList) {
+ AliWarning("No particle cut list found");
}
else {
- for(Int_t isel=0;isel<fPartContainer->GetNStep(); isel++){
+ for(Int_t isel=0;isel<fNStepPart; isel++){
if(!fPartCutList[isel])continue;
TObjArrayIter iter(fPartCutList[isel]);
AliCFCutBase *cut = 0;
while ( (cut = (AliCFCutBase*)iter.Next()) ) {
- cut->SetEvtInfo(obj);
+ cut->SetMCEventInfo(obj);
}
}
}
//Event level cuts
- if (!fEvtContainer) {
- AliWarning("No event container found");
+ if (!fEvtCutList) {
+ AliWarning("No event cut list found");
}
else {
- for(Int_t isel=0;isel<fEvtContainer->GetNStep(); isel++){
+ for(Int_t isel=0;isel<fNStepEvt; isel++){
if(!fEvtCutList[isel])continue;
TObjArrayIter iter(fEvtCutList[isel]);
AliCFCutBase *cut = 0;
while ( (cut = (AliCFCutBase*)iter.Next()) ) {
- cut->SetEvtInfo(obj);
+ cut->SetMCEventInfo(obj);
+ }
+ }
+ }
+}
+//_____________________________________________________________________________
+void AliCFManager::SetRecEventInfo(const TObject *obj) const {
+
+ //Particle level cuts
+
+ if (!fPartCutList) {
+ AliWarning("No particle cut list found");
+ }
+ else {
+ for(Int_t isel=0;isel<fNStepPart; isel++){
+ if(!fPartCutList[isel])continue;
+ TObjArrayIter iter(fPartCutList[isel]);
+ AliCFCutBase *cut = 0;
+ while ( (cut = (AliCFCutBase*)iter.Next()) ) {
+ cut->SetRecEventInfo(obj);
+ }
+ }
+ }
+
+ //Event level cuts
+
+ if (!fEvtCutList) {
+ AliWarning("No event cut list found");
+ }
+ else {
+ for(Int_t isel=0;isel<fNStepEvt; isel++){
+ if(!fEvtCutList[isel])continue;
+ TObjArrayIter iter(fEvtCutList[isel]);
+ AliCFCutBase *cut = 0;
+ while ( (cut = (AliCFCutBase*)iter.Next()) ) {
+ cut->SetRecEventInfo(obj);
}
}
}
//
if (!fEvtContainer) {
- AliError("No event container defined, please set it first!");
- return;
+ AliWarning("No event container defined, you may need to set it first!");
}
- Int_t nstep = fEvtContainer->GetNStep() ;
+ Int_t nstep = fNStepEvt;
- if (!fEvtCutList) fEvtCutList = new TObjArray*[nstep] ;
+ if (!fEvtCutList) {
+ fEvtCutList = new TObjArray*[nstep] ;
+ for (Int_t i=0; i<nstep; ++i) fEvtCutList[i] = 0;
+ }
if (isel >= nstep) {
AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,nstep));
return;
//
if (!fPartContainer) {
- AliError("No event container defined, please set it first!");
- return;
+ AliWarning("No particle container defined, you may need to set it first!");
}
- Int_t nstep = fPartContainer->GetNStep() ;
+ Int_t nstep = fNStepPart ;
if (!fPartCutList) fPartCutList = new TObjArray*[nstep] ;
if (isel >= nstep) {