#include "AliAnalysisGoodies.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
- //#include "AliPhotonAnalysisTask.h"
#include "AliLog.h"
#include <Riostream.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
{
}
//______________________________________________________________________
-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 ;
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
AliTagAnalysis * tagAna = new AliTagAnalysis();
tagAna->ChainGridTags(result);
- tagAna->CreateXMLCollection(out, runCuts, evtCuts) ;
+ tagAna->CreateXMLCollection(out, runCuts, lhcCuts, detCuts, evtCuts) ;
return rv ;
#else
// 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) ;
}
//______________________________________________________________________
-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)
// 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)
// 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) ;
class TClass ;
class AliEventTagCuts ;
class AliRunTagCuts ;
+class AliLHCTagCuts ;
+class AliDetectorTagCuts ;
class AliAnalysisGoodies : public TObject {
public:
AliAnalysisGoodies() ;
+ AliAnalysisGoodies(const AliAnalysisGoodies& ag) ;
~AliAnalysisGoodies() {;}
virtual void Help() const;
Bool_t Alien2Local(const TString collectionNameIn, const TString localDir) ;
- Bool_t Make(AliRunTagCuts *runCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const ;
+ Bool_t Make(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const ;
Bool_t Merge(const char * collection, const char * subFile = 0, const char * outFile = 0) ;
Bool_t Register( const char * lfndir, const char * pfndir, const char * file) ;
Bool_t Process(TChain * chain) ;
Bool_t Process(const char * esdFile) ;
- Bool_t Process(const char * esdFile, AliRunTagCuts * runCuts, AliEventTagCuts * evtCuts) ;
- Bool_t Process(const char * esdFile, const char * runCuts, const char * evtCuts) ;
- void SetESDTreeName(const char * name) { fESDTreeName = name ; }
+ Bool_t Process(const char * inFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts * evtCuts ) ;
+ Bool_t Process(const char * inFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts) ;
+ void SetESDTreeName(const char * name) { fESDTreeName = name ; }
void SetTasks(Int_t nb, AliAnalysisTask ** taskList, TClass ** inputType, TClass ** outputType) ;
- Bool_t MakeEsdCollectionFromTagFile(AliRunTagCuts * runCuts, AliEventTagCuts * evCuts, const char * in, const char * out) const ;
+ Bool_t MakeEsdCollectionFromTagFile(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const ;
private:
Bool_t MakeEsdCollectionFromTagFile(const char * , const char * , const char * , const char *) const ;
- //{ AliError("Not implemented") ; return 0 ;}
- Bool_t MakeEsdCollectionFromTagCollection(AliRunTagCuts * runCuts, AliEventTagCuts * evtCuts, const char * in, const char * out) const ;
- Bool_t MakeEsdCollectionFromTagCollection(const char * , const char * , const char * , const char * ) const ;
- //{ AliError("Not implemented") ; return 0 ;}
+ Bool_t MakeEsdCollectionFromTagCollection(AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts, const char * in, const char * out) const ;
+ Bool_t MakeEsdCollectionFromTagCollection(const char * runCuts, const char *lhcCuts, const char *detCuts, const char * evtCuts, const char * in, const char * out) const ;
Bool_t ProcessChain(TChain * chain) const ;
Bool_t ProcessEsdFile(const char * esdFile) const ;
- Bool_t ProcessTagFile(const char * tagFile, AliRunTagCuts *runCuts, AliEventTagCuts *evtCuts) const ;
+ Bool_t ProcessEsdXmlCollection(const char * xmlFile) const ;
+ Bool_t ProcessTagFile(const char * tagFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts *evtCuts) const ;
Bool_t ProcessTagFile(const char * tagFile, const char * runCuts, const char * evtCuts) const ;
- Bool_t ProcessEsdXmlCollection(const char * esdFile) const ;
- Bool_t ProcessTagXmlCollection(const char * esdFile, AliRunTagCuts * runCuts, AliEventTagCuts * evtCuts) const ;
- Bool_t ProcessTagXmlCollection(const char * esdFile, const char * runCuts, const char * evtCuts) const ;
+ Bool_t ProcessTagFile(const char * tagFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts) const ;
+ Bool_t ProcessTagXmlCollection(const char * xmlFile, AliRunTagCuts *runCuts, AliLHCTagCuts *lhcCuts, AliDetectorTagCuts *detCuts, AliEventTagCuts * evtCuts) const ;
+ Bool_t ProcessTagXmlCollection(const char * xmlFile, const char * runCuts, const char * lhcCuts, const char * detCuts, const char * evtCuts) const ;
TStopwatch fTimer ; //! stopwatch
TString fESDTreeName ; //! name of the ESD TTree