fMagField(k5G),
fSpecies(kPP)
{
-
-
+ // Do not use this - it is only for IO
+ fgInstance = this;
//fVerticies.Add(new TVector2(4.2231, 26.6638));
// fVerticies.Add(new TVector2(1.8357, 27.9500));
// Default constructor
}
//____________________________________________________________________
-void AliFMDAnaParameters::PrintStatus() {
+void AliFMDAnaParameters::PrintStatus() const
+{
TString energystring;
switch(fEnergy) {
enum MagField {k0G, k5G};
enum Species {kPP, kPbPb};
+
+ /** DO NOT USE THIS - ONLY FOR IO */
+ AliFMDAnaParameters();
/** Singleton access
@return single to */
void SetMagField(MagField magfield) {fMagField = magfield;}
char* GetPath(const char* species);
void SetCollisionSystem(Species collsystem) {fSpecies = collsystem;}
- void PrintStatus();
-
+ void PrintStatus() const;
+ void Print(Option_t* /* option */) const { PrintStatus(); }
protected:
- AliFMDAnaParameters();
-
AliFMDAnaParameters(const AliFMDAnaParameters& o)
: TNamed(o),
fIsInit(o.fIsInit),
#include "AliMCEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliFMDAnaParameters.h"
+#include "AliLog.h"
ClassImp(AliFMDAnalysisTaskSE)
fSharing("Sharing",kFALSE),
fDensity("Density",kFALSE),
fBackground("BackgroundCorrected",kFALSE),
- fDndeta("dNdeta",kFALSE)
+ fDndeta("dNdeta",kFALSE),
+ fParams(0)
{
// Default constructor
}
fSharing("Sharing",kFALSE),
fDensity("Density",kFALSE),
fBackground("BackgroundCorrected",kFALSE),
- fDndeta("dNdeta",kFALSE)
+ fDndeta("dNdeta",kFALSE),
+ fParams(0)
{
-
+ SetParams(AliFMDAnaParameters::Instance());
DefineOutput(1, TList::Class());
}
//_____________________________________________________________________
fDndeta.Terminate("");
}
+
+//_____________________________________________________________________
+void AliFMDAnalysisTaskSE::Print(Option_t* option) const
+{
+ AliInfo(Form("FMD Single Event Analysis Task\n"
+ "Parameters set to %p", fParams));
+ TString opt(option);
+ opt.ToLower();
+ if (opt.Contains("s")) {
+ fSharing.Print(option);
+ fDensity.Print(option);
+ fBackground.Print(option);
+ fDndeta.Print(option);
+ }
+ if (opt.Contains("p") && fParams)
+ fParams->Print(option);
+}
+
//_____________________________________________________________________
//
// EOF
#include "AliFMDAnalysisTaskDensity.h"
#include "AliFMDAnalysisTaskBackgroundCorrection.h"
#include "AliFMDAnalysisTaskDndeta.h"
+class AliFMDAnaParameters;
/** @defgroup FMD_ana Analysis tasks
@brief Various classes to do analysis tasks
class AliFMDAnalysisTaskSE : public AliAnalysisTaskSE
{
- public:
- AliFMDAnalysisTaskSE();
- AliFMDAnalysisTaskSE(const char* name);
- virtual ~AliFMDAnalysisTaskSE() {;}
- AliFMDAnalysisTaskSE(const AliFMDAnalysisTaskSE& o) : AliAnalysisTaskSE(),
- fListOfHistos(o.fListOfHistos),
- fSharing(o.fSharing),
- fDensity(o.fDensity),
- fBackground(o.fBackground),
- fDndeta(o.fDndeta) {}
- AliFMDAnalysisTaskSE& operator=(const AliFMDAnalysisTaskSE&) { return *this; }
+public: //
+ AliFMDAnalysisTaskSE();
+ AliFMDAnalysisTaskSE(const char* name);
+ virtual ~AliFMDAnalysisTaskSE() {;}
+ AliFMDAnalysisTaskSE(const AliFMDAnalysisTaskSE& o)
+ : AliAnalysisTaskSE(),
+ fListOfHistos(o.fListOfHistos),
+ fSharing(o.fSharing),
+ fDensity(o.fDensity),
+ fBackground(o.fBackground),
+ fDndeta(o.fDndeta),
+ fParams(o.fParams)
+ {}
+ AliFMDAnalysisTaskSE& operator=(const AliFMDAnalysisTaskSE&) { return *this; }
virtual void Init();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t* /*option*/);
- void Terminate(Option_t */*option*/);
-
+ void Terminate(Option_t */*option*/);
+ void SetParams(AliFMDAnaParameters* p) { fParams = p; }
+ void Print(Option_t* option="") const;
private:
TList* fListOfHistos;
AliFMDAnalysisTaskDensity fDensity;
AliFMDAnalysisTaskBackgroundCorrection fBackground;
AliFMDAnalysisTaskDndeta fDndeta;
+ AliFMDAnaParameters* fParams;
+
ClassDef(AliFMDAnalysisTaskSE, 1);
--- /dev/null
+void
+TestTaskIO(bool read=false)
+{
+ gSystem->Load("libANALYSIS.so");
+ gSystem->Load("libANALYSISalice.so");
+ gSystem->Load("libPWG2forward.so");
+
+ TFile* file = TFile::Open("task.root", (read ? "READ" : "RECREATE"));
+
+ if (!read) TestTaskIOWrite(file);
+ else TestTaskIORead(file);
+
+ file->Close();
+}
+
+void
+TestTaskIOWrite(TFile* f)
+{
+ AliFMDAnaParameters* p = AliFMDAnaParameters::Instance();
+ p->SetEnergy(AliFMDAnaParameters::k900);
+ p->Init();
+ p->Dump();
+
+ f->cd();
+
+ AliFMDAnalysisTaskSE* t = new AliFMDAnalysisTaskSE("FMD");
+ t->Write();
+ t->Print("p");
+}
+
+
+void
+TestTaskIORead(TFile* f)
+{
+ AliFMDAnalysisTaskSE* t = static_cast<AliFMDAnalysisTaskSE*>(f->Get("FMD"));
+ t->Print("p");
+
+ AliFMDAnaParameters* p = AliFMDAnaParameters::Instance();
+ p->Dump();
+}