}
}
+void AliAnalysisTaskEmcal::Init()
+{
+ // Init the analysis.
+
+ if (!fCaloName.IsNull() && (fAnaType == kEMCAL) && !fCaloClusters) {
+ fCaloClusters = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fCaloName));
+ if (!fCaloClusters) {
+ AliWarning(Form("%s: Could not retrieve clusters %s!", GetName(), fCaloName.Data()));
+ }
+ }
+
+ if (!fTracksName.IsNull() && !fTracks) {
+ fTracks = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTracksName));
+ if (!fTracks) {
+ AliWarning(Form("%s: Could not retrieve tracks %s!", GetName(), fTracksName.Data()));
+ }
+ }
+
+ SetInitialized();
+}
+
//________________________________________________________________________
Bool_t AliAnalysisTaskEmcal::RetrieveEventObjects()
{
fCentBin = 0;
}
- if (!fCaloName.IsNull() && (fAnaType == kEMCAL) && !fCaloClusters) {
- fCaloClusters = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fCaloName));
- if (!fCaloClusters) {
- AliWarning(Form("%s: Could not retrieve clusters %s!", GetName(), fCaloName.Data()));
- }
- }
-
- if (!fTracksName.IsNull() && !fTracks) {
- fTracks = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTracksName));
- if (!fTracks) {
- AliWarning(Form("%s: Could not retrieve tracks %s!", GetName(), fTracksName.Data()));
- }
- }
-
return kTRUE;
}
-
//________________________________________________________________________
Bool_t AliAnalysisTaskEmcal::AcceptCluster(AliVCluster *clus, Bool_t acceptMC) const
{
{
// Main loop, called for each event.
+ if (!fInitialized)
+ Init();
+
if (!RetrieveEventObjects())
return;
AliAnalysisTaskEmcal(const char *name, Bool_t histo=kFALSE);
virtual ~AliAnalysisTaskEmcal();
+ virtual void Init();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
void SetTracksName(const char *n) { fTracksName = n ; }
protected:
-
Bool_t AcceptCluster(AliVCluster *clus, Bool_t acceptMC = kFALSE) const;
Bool_t AcceptEmcalPart(AliEmcalParticle *part, Bool_t acceptMC = kFALSE) const;
Bool_t AcceptTrack(AliVTrack *track, Bool_t acceptMC = kFALSE) const;
BeamType GetBeamType() ;
-
- virtual Bool_t FillHistograms() { return fCreateHisto; }
+ virtual Bool_t FillHistograms() { return fCreateHisto; }
+ void SetInitialized(Bool_t ini = kTRUE) { fInitialized = ini ; }
virtual Bool_t RetrieveEventObjects();
- virtual Bool_t Run() { return kTRUE ; }
+ virtual Bool_t Run() { return kTRUE ; }
EmcalAnaType fAnaType; // analysis type
Bool_t fInitialized; // whether or not the task has been already initialized