#include "AliVCluster.h"
#include "AliVCaloCells.h"
#include "AliVEventHandler.h"
+#include "AliAODHandler.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
fLoadEMCALMatrices(kFALSE), //fLoadPHOSMatrices(kFALSE),
fGeoMatrixSet(kFALSE),
fConfigName(""), fFillAODFile(kTRUE),
+fFillMCParticles(kFALSE),
fFillTracks(kFALSE), fFillHybridTracks(kFALSE),
fFillAllVertices(kFALSE), fFillv0s(kFALSE),
fFillVZERO(kFALSE),
fLoadEMCALMatrices(kFALSE), //fLoadPHOSMatrices(kFALSE),
fGeoMatrixSet(kFALSE),
fConfigName(""), fFillAODFile(kTRUE),
+fFillMCParticles(kFALSE),
fFillTracks(kFALSE), fFillHybridTracks(kFALSE),
fFillAllVertices(kFALSE), fFillv0s(kFALSE),
fFillVZERO(kFALSE),
}
+
+//__________________________________________________
+void AliAnalysisTaskCaloFilter::FillAODMCParticles()
+{
+ // Copy MC particles
+
+ if(!fFillMCParticles) return;
+
+ TClonesArray* inMCParticles = (TClonesArray*) (fAODEvent ->FindListObject("mcparticles"));
+ TClonesArray* ouMCParticles = (TClonesArray*) ( AODEvent()->FindListObject("mcparticles"));
+
+ if( inMCParticles && ouMCParticles ) new (ouMCParticles) TClonesArray(*inMCParticles);
+
+}
+
//_____________________________________________
void AliAnalysisTaskCaloFilter::FillAODTracks()
{
fEMCALGeo = AliEMCALGeometry::GetInstance(fEMCALGeoName) ;
+ if(fFillMCParticles)
+ {
+ TClonesArray * aodMCParticles = new TClonesArray("AliAODMCParticle",500);
+ aodMCParticles->SetName("mcparticles");
+ ((AliAODHandler*)AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler())->AddBranch("TClonesArray", &aodMCParticles);
+ }
+
}
//____________________________________________________________
//
FillAODCaloTrigger();
+ //
+ FillAODMCParticles();
+
//printf("Filtered event, end processing : %s\n",fAODEvent->GetFiredTriggerClasses().Data());
}
void FillAODCaloTrigger();
+ void FillAODMCParticles();
+
void FillAODTracks();
void FillAODv0s();
void SwitchOnFillAODFile() { fFillAODFile = kTRUE ; }
void SwitchOffFillAODFile() { fFillAODFile = kFALSE ; }
+ void SwitchOnFillMCParticles() { fFillMCParticles = kTRUE ; }
+ void SwitchOffFillMCParticles() { fFillMCParticles = kFALSE ; }
+
void SwitchOnFillTracks() { fFillTracks = kTRUE ; }
void SwitchOffFillTracks() { fFillTracks = kFALSE ; }
TString fConfigName; // Name of analysis configuration file
Bool_t fFillAODFile; // Fill the output AOD file with clusters
+ Bool_t fFillMCParticles; // Fill tracks
Bool_t fFillTracks; // Fill tracks
Bool_t fFillHybridTracks; // Fill hybrid tracks
AliAnalysisTaskCaloFilter( const AliAnalysisTaskCaloFilter&);
AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
- ClassDef(AliAnalysisTaskCaloFilter, 9); // Analysis task for standard ESD filtering
+ ClassDef(AliAnalysisTaskCaloFilter, 10); // Analysis task for standard ESD filtering
};
AliAnalysisTaskCaloFilter * AddTaskCaloFilter(const Bool_t bias = kTRUE,
- const Float_t minE = 5,
+ const Bool_t mc = kFALSE,
+ const Float_t minE = 6,
const Float_t minN = 3,
const Float_t vz = 10.,
const Int_t opt = AliAnalysisTaskCaloFilter::kBoth, //kPHOS, kEMCAL or kBoth
filter->SetVzCut(vz);
- if(bias) // select events with significant signal in EMCAL or TPC or PHOS
+ if(mc)
{
- filter->SetEventSelection(1,1,1); // Select events depending on EMCAL, PHOS and tracks criteria
+ filter->SetEventSelection(1,0,0); // Select events depending on EMCAL, PHOS and tracks criteria
+ filter->SwitchOnAcceptAllMBEvent();
+
+ filter->SwitchOnFillMCParticles();
+
+ filter->SetEMCALEnergyCut(minE);
+ filter->SetEMCALNcellsCut(minN);
+
+ filter->SetPHOSEnergyCut(minE);
+ filter->SetPHOSNcellsCut(minN);
+
+ filter->SetTrackPtCut(minE);
+ }
+ else if(bias) // select events with significant signal in EMCAL or TPC or PHOS
+ {
+ filter->SetEventSelection(1,0,0); // Select events depending on EMCAL, PHOS and tracks criteria
filter->SwitchOnAcceptAllMBEvent();
filter->SetEMCALEnergyCut(minE);
printf("--- Select Min Bias events ---\n");
}
+
+ // filter->SelectCollisionCandidates(AliVEvent::kAny) ;
+
if(correct) filter->SwitchOnClusterCorrection();
else filter->SwitchOffClusterCorrection();