1 #ifndef ALIMUONACCEFFSUBMITTER_H
2 #define ALIMUONACCEFFSUBMITTER_H
5 // AliMuonAccEffSubmitter : a class to help submit Acc x Eff simulations
6 // anchored to real runs for J/psi, upsilon, single muons, etc...
8 // author: Laurent Aphecetche (Subatech)
11 #include "AliMuonGridSubmitter.h"
13 class AliMuonAccEffSubmitter : public AliMuonGridSubmitter
16 AliMuonAccEffSubmitter(const char* generator="GenParamCustom",
17 Bool_t localOnly=kFALSE,
18 int pythia8version=8175);
20 virtual Bool_t Generate(const char* jdlname) const;
21 virtual Bool_t Run(const char* mode);
23 virtual ~AliMuonAccEffSubmitter();
25 void MakeNofEventsPropToTriggerCount(const char* trigger="CMUL7-B-NOPF-MUON", Float_t ratio=1.0);
27 void MakeNofEventsFixed(Int_t nevents);
29 void UseOCDBSnapshots(Bool_t flag);
31 void UseExternalConfig(const char* externalConfigFullFilePath);
33 void UseAODMerging(Bool_t flag);
35 Bool_t Merge(Int_t stage, Bool_t dryRun=kTRUE);
37 Int_t Submit(Bool_t dryRun=kTRUE);
41 TString RunJDLName() const { return "run.jdl"; }
43 TString MergeJDLName(Bool_t final) const { return (final ? "AOD_merge_final.jdl" : "AOD_merge.jdl"); }
45 virtual void Print(Option_t* opt="") const;
47 void SetSplitMaxInputFileNumber(Int_t n) { fSplitMaxInputFileNumber = n; }
49 Int_t GetSplitMaxInputFileNumber() const { return fSplitMaxInputFileNumber; }
51 Int_t CompactMode() const { return fCompactMode; }
53 void SetCompactMode(Int_t mode) { fCompactMode=mode; }
55 Bool_t MakeOCDBSnapshots();
57 void SetOCDBPath(const char* ocdbPath);
59 void SetOCDBSnapshotDir(const char* dir);
61 Bool_t SetGenerator(const char* generator);
63 Int_t MaxEventsPerChunk() const { return fMaxEventsPerChunk; }
64 void SetMaxEventsPerChunk(Int_t n) { fMaxEventsPerChunk = n; }
66 TString OCDBPath() const { return GetMapValue("OCDBPath"); }
68 TString SnapshotDir() const { return GetMapValue("OCDBsnapshot"); }
72 Bool_t GenerateRunJDL(const char* name) const;
74 Bool_t GenerateMergeJDL(const char* name) const;
76 TString ReferenceTrigger() const { return GetMapValue("ReferenceTrigger"); }
78 void UpdateLocalFileList(Bool_t clearSnapshots=kFALSE);
81 AliMuonAccEffSubmitter(const AliMuonAccEffSubmitter& rhs);
82 AliMuonAccEffSubmitter& operator=(const AliMuonAccEffSubmitter& rhs);
85 Float_t fRatio; // ratio simulated events vs real events
86 Int_t fFixedNofEvents; // fixed number of events to be used per run
87 Int_t fMaxEventsPerChunk; // max events to generate per subjob
88 TString fOCDBPath; // OCDB path
89 Int_t fSplitMaxInputFileNumber; // used for merging jdl
90 Int_t fCompactMode; // controls which outputs are kept (0=everything, 1=only aods)
91 TString fExternalConfig; // path to an (optional) external config file
92 Bool_t fUseOCDBSnapshots; // whether to use OCDB snapshots or not
93 TString fSnapshotDir; // directory for OCDB snapshots
94 Bool_t fUseAODMerging; // whether or not to perform (aod) merging
96 ClassDef(AliMuonAccEffSubmitter,2) // Helper class to submit AccxEff single particle simulations