38 #include <TObjArray.h> 39 #include <TObjString.h> 40 #include <TPluginManager.h> 42 #include <TStopwatch.h> 56 fRunInfoOwner(kFALSE),
64 fCheckers[det] = NULL ;
70 fDataFile(qac.fDataFile),
71 fRunInfo(qac.fRunInfo),
72 fRunInfoOwner(kFALSE),
73 fRefFile(qac.fRefFile),
74 fFoundDetectors(qac.fFoundDetectors),
75 fEventSpecie(qac.fEventSpecie),
125 TPluginManager* pluginManager =
gROOT->GetPluginManager() ;
126 TString qacName =
"Ali" + detName +
"QAChecker" ;
129 TPluginHandler* pluginHandler = pluginManager->FindHandler(
"AliQAChecker", detName.Data());
131 if (!pluginHandler) {
133 TString libs = gSystem->GetLibraries();
135 if (libs.Contains(
"lib" + detName +
"base") || (gSystem->Load(
"lib" + detName +
"base") >= 0))
136 pluginManager->AddHandler(
"AliQAChecker", detName, qacName, detName +
"qac", qacName +
"()");
138 pluginManager->AddHandler(
"AliQAChecker", detName, qacName, detName, qacName +
"()");
140 pluginHandler = pluginManager->FindHandler(
"AliQAChecker", detName);
142 if (pluginHandler && (pluginHandler->LoadPlugin() == 0))
170 TMap* m =
static_cast<TMap*
>(entry->
GetObject());
189 AliFatal(
"No GRP entry found in OCDB!");
194 AliError(
"GRP/GRP/Data entry: missing value for the LHC state ! Using UNKNOWN");
195 lhcState =
"UNKNOWN";
200 AliError(
"GRP/GRP/Data entry: missing value for the beam type ! Using UNKNOWN");
201 beamType =
"UNKNOWN";
206 AliError(
"GRP/GRP/Data entry: missing value for the beam energy ! Using 0");
212 AliError(
"GRP/GRP/Data entry: missing value for the run type ! Using UNKNOWN");
218 AliError(
"GRP/GRP/Data entry: missing value for the detector mask ! Using 1074790399");
219 activeDetectors = 1074790399;
228 if (strcmp(runType,
"PHYSICS")) {
233 if (strcmp(lhcState,
"STABLE_BEAMS") == 0) {
236 if ((strcmp(beamType,
"p-p") == 0) ||
237 (strcmp(beamType,
"p-") == 0) ||
238 (strcmp(beamType,
"-p") == 0) ||
239 (strcmp(beamType,
"P-P") == 0) ||
240 (strcmp(beamType,
"P-") == 0) ||
241 (strcmp(beamType,
"-P") == 0)) {
245 else if (strcmp(beamType,
"-") == 0) {
249 else if (strcmp(beamType,
"UNKNOWN") == 0) {
261 TStopwatch stopwatch;
266 TIter nextd(detKeyList) ;
268 while ( (detKey = static_cast<TKey *>(nextd()) ) ) {
272 TString detNameQA(detKey->GetName()) ;
276 if (detNameQA.Contains(detName)) {
283 TList * taskKeyList = detDir->GetListOfKeys() ;
284 TIter nextt(taskKeyList) ;
287 while ( (taskKey = static_cast<TKey *>(nextt()) ) ) {
288 TString taskName( taskKey->GetName() ) ;
290 TDirectory * taskDir = detDir->GetDirectory(taskName.Data()) ;
296 AliFatal(Form(
"QA checker not found for %s", detName.Data())) ;
317 qac->
Run(index, recoParam) ;
329 AliInfo(Form(
"QA performed for following detectors: %s", detList.Data())) ;
339 AliError(Form(
"det = %i is larger than AliQAv1::kNDET ... should never happen", det));
371 qac->
Run(index, list, recoParam) ;
413 qac->
Run(index, list, recoParam) ;
TString GetRunType() const
AliQAChecker(const char *name="AliQAChecker", const char *title="Quality Assurance checker for Raws, Hits, Digits and ESDs")
AliRecoParam::EventSpecie_t fEventSpecie
list of detectors checkers
void LoadRunInfoFromGRP()
UInt_t GetDetectorMask() const
Bool_t Run(const char *fileName=NULL, AliDetectorRecoParam *recoParam=NULL)
static TString GetInvalidString()
Bool_t fRunInfoOwner
Event info object.
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
AliCDBEntry * Get(const AliCDBId &query, Bool_t forceCaching=kFALSE)
TString GetBeamType() const
#define AliDebugClass(logLevel, message)
static DETECTORINDEX_t GetDetIndex(const char *name)
virtual void Init(const AliQAv1::DETECTORINDEX_t det)
static Int_t GetInvalidInt()
AliRunInfo * fRunInfo
Data file to check.
void Show(DETECTORINDEX_t det=kNULLDET) const
virtual void MakeImage(TObjArray **list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode)
void Run(AliQAv1::ALITASK_t tsk, const AliDetectorRecoParam *recoParam=NULL)
AliQACheckerBase * fCheckers[AliQAv1::kNDET]
detectors for which the Quality assurance could be done
static TFile * GetQADataFile(const char *name, Int_t run)
TString fFoundDetectors
Reference Data file.
void ReadValuesFromMap(const TMap *map)
static const TString GetDetName(DETECTORINDEX_t det)
#define AliFatal(message)
void UnloadFromCache(const char *path)
#define AliDebug(logLevel, message)
static MODE_t Mode(TASKINDEX_t task)
static const TString GetGRPPath()
static Float_t GetInvalidFloat()
AliQACheckerBase * GetDetQAChecker(Int_t det)
void SetOwner(Bool_t owner)
#define AliError(message)
TString GetLHCState() const
static AliCDBManager * Instance(TMap *entryCache=NULL, Int_t run=-1)
static Int_t GetQADebugLevel()
static AliQAChecker * Instance()
AliQAChecker & operator=(const AliQAChecker &qac)
static TString GetTaskName(UInt_t tsk)
Float_t GetBeamEnergy() const
static AliQAChecker * fgQAChecker
static AliQAv1 * Instance()