#include "AliAnalysisGoodies.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
- //#include "AliPhotonAnalysisTask.h"
#include "AliLog.h"
#include <Riostream.h>
#ifdef WITHALIEN
#include <TAlienCollection.h>
+#include <TGridResult.h>
+#include <TFileMerger.h>
#endif
#include <TChain.h>
-#include <TFileMerger.h>
#include <TGrid.h>
#include <TROOT.h>
#include <TSystem.h>
//______________________________________________________________________________
AliAnalysisGoodies::AliAnalysisGoodies() :
+ TObject(),
+ fTimer(),
fESDTreeName("esdTree"),
fnumberOfTasks(0),
fTaskList(0),
AliInfo("You are not connected to the GRID") ;
}
+//______________________________________________________________________________
+AliAnalysisGoodies::AliAnalysisGoodies(const AliAnalysisGoodies& ag) :
+ TObject(),
+ fTimer(),
+ fESDTreeName(""),
+ fnumberOfTasks(0),
+ fTaskList(0),
+ fTaskInType(0),
+ fTaskOuType(0)
+{
+
+ fESDTreeName = ag.fESDTreeName ;
+ TString token = gSystem->Getenv("GRID_TOKEN") ;
+
+ if ( token == "OK" )
+ TGrid::Connect("alien://");
+ else
+ AliInfo("You are not connected to the GRID") ;
+}
+
//______________________________________________________________________________
void AliAnalysisGoodies::Help() const
{
// in: a xml esd collection file name
// ou: the local directory where to save the esd root files
+#ifdef WITHALIEN
Bool_t rv = kTRUE ;
fTimer.Start() ;
fTimer.Stop();
fTimer.Print();
- return rv ;
+ return rv ;
+#else
+ return kFALSE;
+#endif
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::Make(AliRunTagCuts *runCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const
+Bool_t AliAnalysisGoodies::Make(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const
{
// makes esd collection from tags
// usage Make(tags, esds)
TString file(in) ;
if ( file.Contains(".root") )
- rv = MakeEsdCollectionFromTagFile(runCuts, evtCuts, file.Data(), out) ;
+ rv = MakeEsdCollectionFromTagFile(runCuts, lhcCuts, detCuts, evtCuts, file.Data(), out) ;
else if ( file.Contains(".xml") )
- rv = MakeEsdCollectionFromTagCollection(runCuts, evtCuts, file.Data(), out) ;
+ rv = MakeEsdCollectionFromTagCollection(runCuts, lhcCuts, detCuts, evtCuts, file.Data(), out) ;
else {
AliError(Form("%s is not a valid file format", in)) ;
rv = kFALSE ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagFile(AliRunTagCuts *runCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const
+Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagFile(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const
{
// Makes an esd collection from a root tag file
Bool_t rv = kTRUE ;
if ( ! rv )
return rv ;
- tagAna->CreateXMLCollection(out, runCuts, evtCuts) ;
+ tagAna->CreateXMLCollection(out, runCuts, lhcCuts, detCuts, evtCuts) ;
return rv ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagCollection(AliRunTagCuts * runCuts, AliEventTagCuts * evtCuts, const char * in, const char * out) const
+Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagCollection(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const
{
// Makes an esd collection from a xml tag collection
Bool_t rv = kTRUE ;
#ifdef WITHALIEN
- TAlienCollection * collection = TAlienCollection::Open(in);
+ TGridCollection * collection = TAlienCollection::Open(in);
TGridResult* result = collection->GetGridResult("");
AliTagAnalysis * tagAna = new AliTagAnalysis();
tagAna->ChainGridTags(result);
- tagAna->CreateXMLCollection(out, runCuts, evtCuts) ;
+ tagAna->CreateXMLCollection(out, runCuts, lhcCuts, detCuts, evtCuts) ;
#else
rv = kFALSE;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagCollection(const char * runCuts, const char * evtCuts, const char * in, const char * out) const
+Bool_t AliAnalysisGoodies::MakeEsdCollectionFromTagCollection(const char * runCuts, const char *lhcCuts, const char *detCuts, const char * evtCuts, const char * in, const char * out) const
{
// Makes an esd collection from a xml tag collection
#ifdef WITHALIEN
- TAlienCollection * collection = TAlienCollection::Open(in);
+ TGridCollection * collection = TAlienCollection::Open(in);
TGridResult* result = collection->GetGridResult("");
AliTagAnalysis * tagAna = new AliTagAnalysis();
tagAna->ChainGridTags(result);
- tagAna->CreateXMLCollection(out, runCuts, evtCuts) ;
+ tagAna->CreateXMLCollection(out, runCuts, lhcCuts, detCuts, evtCuts) ;
return rv ;
#else
#ifdef WITHALIEN
- TAlienCollection * collection = TAlienCollection::Open(collectionFile);
+ TGridCollection * collection = TAlienCollection::Open(collectionFile);
TGridResult* result = collection->GetGridResult("");
Int_t index = 0 ;
// usage Process(esdFile)
// esdFile: is of the form opt?file_lfn
Bool_t rv = kFALSE ;
- AliRunTagCuts * runCuts = 0x0 ;
- AliEventTagCuts * evtCuts = 0x0 ;
+ AliRunTagCuts * runCuts = 0x0 ;
+ AliLHCTagCuts * lhcCuts = 0x0 ;
+ AliDetectorTagCuts * detCuts = 0x0 ;
+ AliEventTagCuts * evtCuts = 0x0 ;
- rv = Process(inFile, runCuts, evtCuts) ;
+ rv = Process(inFile, runCuts, lhcCuts, detCuts, evtCuts) ;
return rv ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::Process(const char * inFile, AliRunTagCuts *runCuts, AliEventTagCuts * evtCuts )
+Bool_t AliAnalysisGoodies::Process(const char * inFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts * evtCuts )
{
// process the events with an Analysis Task
// usage Process(esdFile, runtagCuts, evtTagCuts)
} else if (file.Contains("tag?") && file.Contains(".root") ) {
file.ReplaceAll("tag?", "") ;
- rv = ProcessTagFile(file.Data(), runCuts, evtCuts) ;
+ rv = ProcessTagFile(file.Data(), runCuts, lhcCuts, detCuts, evtCuts) ;
} else if (file.Contains("tag?") && file.Contains(".xml") ) {
file.ReplaceAll("tag?", "") ;
- rv = ProcessTagXmlCollection(file.Data(), runCuts, evtCuts) ;
+ rv = ProcessTagXmlCollection(file.Data(), runCuts, lhcCuts, detCuts, evtCuts) ;
} else {
AliError(Form("%s is not a valid file format", inFile)) ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::Process(const char * inFile, const char * runCuts, const char * evtCuts)
+Bool_t AliAnalysisGoodies::Process(const char * inFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts)
{
// process the events with an Analysis Task
// usage Process(esdFile, runtagCuts, evtTagCuts)
} else if (file.Contains("tag?") && file.Contains(".root") ) {
file.ReplaceAll("tag?", "") ;
- rv = ProcessTagFile(file.Data(), runCuts, evtCuts) ;
+ rv = ProcessTagFile(file.Data(), runCuts, lhcCuts, detCuts, evtCuts) ;
} else if (file.Contains("tag?") && file.Contains(".xml") ) {
file.ReplaceAll("tag?", "") ;
- rv = ProcessTagXmlCollection(file.Data(), runCuts, evtCuts) ;
+ rv = ProcessTagXmlCollection(file.Data(), runCuts, lhcCuts, detCuts, evtCuts) ;
} else {
AliError(Form("%s is not a valid file format", inFile)) ;
mgr->ConnectOutput(task, 0, taskOutput);
}
- // Open data
-// taskInput->SetData(chain);
+ // start processing
if (mgr->InitAnalysis()) {
mgr->PrintStatus();
-// chain->Process(mgr);
mgr->StartAnalysis("local",chain);
} else
rv = kFALSE ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::ProcessTagFile(const char * tagFile, AliRunTagCuts *runCuts, AliEventTagCuts *evtCuts) const
+Bool_t AliAnalysisGoodies::ProcessTagFile(const char * tagFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts) const
{
// process the events in a single Tag file with an Analysis Task
// usage ProcessLocalEsdFile(tagFile)
// Query the tag file and make the analysis chain
TChain * analysisChain = new TChain(fESDTreeName) ;
- analysisChain = tagAna->QueryTags(runCuts, evtCuts);
+ analysisChain = tagAna->QueryTags(runCuts, lhcCuts, detCuts, evtCuts);
// Process the events
rv = ProcessChain(analysisChain) ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::ProcessTagFile(const char * tagFile, const char * runCuts, const char * evtCuts) const
+Bool_t AliAnalysisGoodies::ProcessTagFile(const char * tagFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts) const
{
// process the events in a single Tag file with an Analysis Task
// usage ProcessLocalEsdFile(tagFile)
// Query the tag file and make the analysis chain
TChain * analysisChain = new TChain(fESDTreeName) ;
- analysisChain = tagAna->QueryTags(runCuts, evtCuts);
+ analysisChain = tagAna->QueryTags(runCuts, lhcCuts, detCuts, evtCuts);
// Process the events
rv = ProcessChain(analysisChain) ;
#ifdef WITHALIEN
- TAlienCollection * collection = TAlienCollection::Open(xmlFile) ;
+ TGridCollection * collection = TAlienCollection::Open(xmlFile) ;
if (! collection) {
AliError(Form("%s not found", xmlFile)) ;
return kFALSE ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::ProcessTagXmlCollection(const char * xmlFile, AliRunTagCuts *runCuts, AliEventTagCuts * evtCuts) const
+Bool_t AliAnalysisGoodies::ProcessTagXmlCollection(const char * xmlFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts * evtCuts) const
{
// process the events in a xml ESD collection with an Analysis Task
// usage ProcessLocalEsdFile(xmlFile)
#ifdef WITHALIEN
- TAlienCollection * collection = TAlienCollection::Open(xmlFile) ;
+ TGridCollection * collection = TAlienCollection::Open(xmlFile) ;
if (! collection) {
AliError(Form("%s not found", xmlFile)) ;
return kFALSE ;
// Query the tag file and make the analysis chain
TChain * analysisChain = new TChain(fESDTreeName) ;
- analysisChain = tagAna->QueryTags(runCuts, evtCuts);
+ analysisChain = tagAna->QueryTags(runCuts, lhcCuts, detCuts, evtCuts);
// Process the events
rv = ProcessChain(analysisChain) ;
}
//______________________________________________________________________
-Bool_t AliAnalysisGoodies::ProcessTagXmlCollection(const char * xmlFile, const char * runCuts, const char * evtCuts) const
+Bool_t AliAnalysisGoodies::ProcessTagXmlCollection(const char * xmlFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts) const
{
// process the events in a xml ESD collection with an Analysis Task
// usage ProcessLocalEsdFile(xmlFile)
if ( gSystem->AccessPathName(xmlFile) )
TGrid::Connect("alien://");
- TAlienCollection * collection = TAlienCollection::Open(xmlFile) ;
+ TGridCollection * collection = TAlienCollection::Open(xmlFile) ;
if (! collection) {
AliError(Form("%s not found", xmlFile)) ;
return kFALSE ;
// Query the tag file and make the analysis chain
TChain * analysisChain = new TChain(fESDTreeName) ;
- analysisChain = tagAna->QueryTags(runCuts, evtCuts);
+ analysisChain = tagAna->QueryTags(runCuts, lhcCuts, detCuts, evtCuts);
// Process the events
rv = ProcessChain(analysisChain) ;