#include <TChain.h>
#include <TTree.h>
#include <TList.h>
-#include <TString.h>
-#include <TFile.h>
#include <TArrayI.h>
#include <TRandom.h>
#include "AliESDCaloCluster.h"
#include "AliESDCaloCells.h"
#include "AliMultiplicity.h"
-#include "AliRunTag.h"
-#include "AliEventTag.h"
-#include "AliAODTagCreator.h"
#include "AliLog.h"
ClassImp(AliAnalysisTaskESDfilter)
fKinkFilter(0x0),
fV0Filter(0x0),
fHighPthreshold(0),
- fPtshape(0x0),
- fCreateTags(kFALSE),
- fFirstFile(kTRUE),
- fRunTag(0),
- fTreeT(0),
- fTagCreator(0)
+ fPtshape(0x0)
{
// Default constructor
}
-AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter(const char* name, Bool_t tags):
+AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter(const char* name):
AliAnalysisTaskSE(name),
fTrackFilter(0x0),
fKinkFilter(0x0),
fV0Filter(0x0),
fHighPthreshold(0),
- fPtshape(0x0),
- fCreateTags(tags),
- fFirstFile(kTRUE),
- fRunTag(0),
- fTreeT(0),
- fTagCreator(0)
+ fPtshape(0x0)
{
// Constructor
- if (fCreateTags) {
- DefineOutput(1, TTree::Class());
- }
}
void AliAnalysisTaskESDfilter::UserCreateOutputObjects()
{
// Create the output container
OutputTree()->GetUserInfo()->Add(fTrackFilter);
-
-// In case tag creation has been requested
- if (fCreateTags) {
- OpenFile(1);
- fTreeT = new TTree("T", "AOD Tags");
- fRunTag = new AliRunTag();
- TBranch * btag = fTreeT->Branch("AliTAG", "AliRunTag", &fRunTag);
- btag->SetCompressionLevel(9);
-
- fTagCreator = new AliAODTagCreator();
- }
}
void AliAnalysisTaskESDfilter::Init()
if (fHighPthreshold == 0) AliInfo("detector PID signals are stored in each track");
if (!fPtshape) AliInfo("detector PID signals are not stored below the pt threshold");
ConvertESDtoAOD();
-
- if (fCreateTags) CreateTags();
}
void AliAnalysisTaskESDfilter::ConvertESDtoAOD() {
return;
}
-void AliAnalysisTaskESDfilter::CreateTags()
-{
- // Create Tags for the current event
- AliEventTag* evtTag = new AliEventTag();
- fTagCreator->FillEventTag(AODEvent(), evtTag);
- // Reference to the input file
- TString fturl, fturltemp, fguid;
-
- TString opt(fInputHandler->GetAnalysisType());
- opt.ToLower();
-
- TFile *file = OutputTree()->GetCurrentFile();
- const TUrl *url = file->GetEndpointUrl();
- fguid = file->GetUUID().AsString();
- if (opt.Contains("grid")) {
- fturltemp = "alien://"; fturltemp += url->GetFile();
- fturl = fturltemp(0,fturltemp.Index(".root",5,0,TString::kExact)+5);
- } else {
- fturl = url->GetFile();
- }
- evtTag->SetEventId(fInputHandler->GetReadEntry() + 1);
- evtTag->SetGUID(fguid);
- if(opt.Contains("grid")) {
- evtTag->SetMD5(0);
- evtTag->SetTURL(fturl);
- evtTag->SetSize(0);
- }
- else evtTag->SetPath(fturl);
- //
- // Add the event tag
- fRunTag->AddEventTag(*evtTag);
- PostData(1, fTreeT);
-}
void AliAnalysisTaskESDfilter::SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid, Double_t timezero)
{
}
-
-void AliAnalysisTaskESDfilter::FinishTaskOutput()
-{
-// Terminate analysis
-//
- if (fCreateTags) {
- if (fInputHandler->GetRunTag()) fRunTag->CopyStandardContent(fInputHandler->GetRunTag());
- fTreeT->Fill();
- }
-}
-
-Bool_t AliAnalysisTaskESDfilter::Notify()
-{
- // Notify file change
- if (fCreateTags) {
- if (!fFirstFile) {
- if (fInputHandler->GetRunTag()) fRunTag->CopyStandardContent(fInputHandler->GetRunTag());
- fTreeT->Fill();
- fRunTag->Clear();
- } else {
- fFirstFile = kFALSE;
- }
- }
-
- return kTRUE;
-}
-
-
void AliAnalysisTaskESDfilter::Terminate(Option_t */*option*/)
{
// Terminate analysis
#include "AliAODTrack.h"
#include "AliAODPid.h"
class AliAnalysisFilter;
-class AliRunTag;
-class AliAODTagCreator;
class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
{
public:
AliAnalysisTaskESDfilter();
- AliAnalysisTaskESDfilter(const char* name, Bool_t tags = kFALSE);
+ AliAnalysisTaskESDfilter(const char* name);
virtual ~AliAnalysisTaskESDfilter() {;}
// Implementation of interface methods
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
- virtual Bool_t Notify();
virtual void Terminate(Option_t *option);
- virtual void FinishTaskOutput();
virtual void ConvertESDtoAOD();
- virtual void CreateTags();
- virtual void SetCreateTags() {fCreateTags = kTRUE;}
// Setters
virtual void SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
virtual void SetKinkFilter (AliAnalysisFilter* KinkF) {fKinkFilter = KinkF;}
// PID
Double_t fHighPthreshold; // Pt threshold for detector signal setting
TF1 * fPtshape; // Pt spectrum distribution
- // Tags
- Bool_t fCreateTags; // Flag for tag creation
- Bool_t fFirstFile; //! To flag the first file
- AliRunTag *fRunTag; //! Pointer to run tag
- TTree *fTreeT; //! tree for aod tags
- AliAODTagCreator *fTagCreator; //! The tag creator
-
ClassDef(AliAnalysisTaskESDfilter, 1); // Analysis task for standard ESD filtering
};