/* History of cvs commits:
*
* $Log$
+ * Revision 1.101 2007/10/14 21:08:10 schutz
+ * Introduced the checking of QA results from previous step before entering the event loop
+ *
* Revision 1.100 2007/10/10 09:05:10 schutz
* Changing name QualAss to QA
*
fEventFolderName(""),
fFirstEvent(0),
fLastEvent(0),
- fQADM (0x0),
+// fQADM (0x0),
fEventCounter(0)
{
// ctor
fEventFolderName(eventFolderName),
fFirstEvent(0),
fLastEvent(0),
- fQADM (0x0),
+// fQADM (0x0),
fEventCounter(0)
{
// ctor
Init() ;
fDefaultInit = kFALSE ;
fManager = 0 ; // We work in the standalong mode
- //Initialize the quality assurance data maker only once
- fQADM = new AliPHOSQADataMaker() ;
- //FIXME: get the run number
- Int_t run = 0 ;
- //EMXIF
- GetQADataMaker()->Init(AliQA::kDIGITS, run, fgkCycles) ;
- GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
+ // //Initialize the quality assurance data maker only once
+// fQADM = new AliPHOSQADataMaker() ;
+// //FIXME: get the run number
+// Int_t run = 0 ;
+// //EMXIF
+// GetQADataMaker()->Init(AliQA::kDIGITS, run, fgkCycles) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
}
//____________________________________________________________________________
fEventFolderName(d.fEventFolderName),
fFirstEvent(d.fFirstEvent),
fLastEvent(d.fLastEvent),
- fQADM (d.fQADM),
+// fQADM (d.fQADM),
fEventCounter(0)
{
SetTitle(d.GetTitle()) ;
//Initialize the quality assurance data maker only once
//FIXME: get the run number
- Int_t run = 0 ;
- //EMXIF
- GetQADataMaker()->Init(AliQA::kDIGITS, run, fgkCycles) ;
- GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
+// Int_t run = 0 ;
+// //EMXIF
+// GetQADataMaker()->Init(AliQA::kDIGITS, run, fgkCycles) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
}
//____________________________________________________________________________
fEventFolderName(fManager->GetInputFolderName(0)),
fFirstEvent(0),
fLastEvent(0),
- fQADM (0x0),
+// fQADM (0x0),
fEventCounter(0)
{
InitParameters() ;
fDefaultInit = kFALSE ;
//Initialize the quality assurance data maker only once
- fQADM = new AliPHOSQADataMaker() ;
- //FIXME: get the run number
- Int_t run = 0 ;
- //EMXIF
- GetQADataMaker()->Init(AliQA::kDIGITS, run) ;
- GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
+// fQADM = new AliPHOSQADataMaker() ;
+// //FIXME: get the run number
+// Int_t run = 0 ;
+// //EMXIF
+// GetQADataMaker()->Init(AliQA::kDIGITS, run) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
}
//____________________________________________________________________________
delete [] fInputFileNames ;
delete [] fEventNames ;
- delete fQADM ;
+// delete fQADM ;
}
Digitize(ievent) ; //Add prepared SDigits to digits and add the noise
- //makes the quality assurance data
- if (GetQADataMaker()->IsCycleDone() ) {
- GetQADataMaker()->EndOfCycle(AliQA::kDIGITS) ;
- GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
- }
- GetQADataMaker()->Exec(AliQA::kDIGITS, gime->Digits()) ;
- GetQADataMaker()->Increment() ;
+// //makes the quality assurance data
+// if (GetQADataMaker()->IsCycleDone() ) {
+// GetQADataMaker()->EndOfCycle(AliQA::kDIGITS) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kDIGITS) ;
+// }
+// GetQADataMaker()->Exec(AliQA::kDIGITS, gime->Digits()) ;
+// GetQADataMaker()->Increment() ;
WriteDigits() ;
fDigitsInRun += gime->Digits()->GetEntriesFast() ;
}
- //Write the quality assurance data only after the last event
- if ( fEventCounter == gime->MaxEvent() ) {
- GetQADataMaker()->EndOfCycle(AliQA::kDIGITS) ;
- GetQADataMaker()->Finish(AliQA::kDIGITS) ;
- }
+// //Write the quality assurance data only after the last event
+// if ( fEventCounter == gime->MaxEvent() ) {
+// GetQADataMaker()->EndOfCycle(AliQA::kDIGITS) ;
+// GetQADataMaker()->Finish() ;
+// }
gime->PhosLoader()->CleanDigitizer();
/* History of cvs commits:
*
* $Log$
+ * Revision 1.37 2007/10/10 09:05:10 schutz
+ * Changing name QualAss to QA
+ *
* Revision 1.36 2007/09/30 17:08:20 schutz
* Introducing the notion of QA data acquisition cycle (needed by online)
*
// --- AliRoot header files ---
#include "AliDigitizer.h"
class AliPHOSSDigitizer ;
-class AliPHOSQADataMaker ;
+//class AliPHOSQADataMaker ;
class AliRunDigitizer ;
class AliPHOSDigitizer: public AliDigitizer {
private:
- AliPHOSQADataMaker * GetQADataMaker() const { return fQADM ; }
+// AliPHOSQADataMaker * GetQADataMaker() const { return fQADM ; }
virtual Bool_t Init() ;
void InitParameters() ;
TString fEventFolderName; // skowron: name of EFN to read data from in stand alone mode
Int_t fFirstEvent; // first event to process
Int_t fLastEvent; // last event to process
- AliPHOSQADataMaker * fQADM ; //!Quality Assurance Data Maker
+// AliPHOSQADataMaker * fQADM ; //!Quality Assurance Data Maker
Int_t fEventCounter ; //! counts the events processed
//QA stuff
- static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle
+// static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle
ClassDef(AliPHOSDigitizer,4) // description
Add2DigitsList(h0, 0) ;
TH1I * h1 = new TH1I("hPhosDigitsMul", "Digits multiplicity distribution in PHOS", 500, 0, 1000) ;
h1->Sumw2() ;
- Add2DigitsList(h1, 0) ;
+ Add2DigitsList(h1, 1) ;
}
//____________________________________________________________________________
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *Ă„Qual * appear in the supporting documentation. The authors make no claims *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
/* History of cvs commits:
*
* $Log$
+ * Revision 1.55 2007/10/14 21:08:10 schutz
+ * Introduced the checking of QA results from previous step before entering the event loop
+ *
* Revision 1.54 2007/10/10 09:05:10 schutz
* Changing name QualAss to QA
*
fInit(kFALSE),
fSDigitsInRun(0),
fFirstEvent(0),
- fLastEvent(0),
- fQADM (0x0)
+ fLastEvent(0)
+// , fQADM (0x0)
{
// ctor
// Intialize the quality assurance data maker
fInit(kFALSE),
fSDigitsInRun(0),
fFirstEvent(0),
- fLastEvent(0),
- fQADM (0x0)
+ fLastEvent(0)
+// , fQADM (0x0)
{
// ctor
InitParameters() ;
Init();
fDefaultInit = kFALSE ;
- // Intialize the quality assurance data maker
- //FIXME: get the run number
- Int_t run = 0 ;
- //EMXIF
- GetQADataMaker()->Init(AliQA::kHITS, run, fgkCycles) ;
- GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
- GetQADataMaker()->Init(AliQA::kSDIGITS, run) ;
- GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, "same") ;
+// // Intialize the quality assurance data maker
+// //FIXME: get the run number
+// Int_t run = 0 ;
+// //EMXIF
+// GetQADataMaker()->Init(AliQA::kHITS, run, fgkCycles) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
+// GetQADataMaker()->Init(AliQA::kSDIGITS, run) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, kTRUE) ;
}
//____________________________________________________________________________
fInit(kFALSE),
fSDigitsInRun(sd.fSDigitsInRun),
fFirstEvent(sd.fFirstEvent),
- fLastEvent(sd.fLastEvent),
- fQADM (sd.fQADM)
+ fLastEvent(sd.fLastEvent)
+// , fQADM (sd.fQADM)
{
// cpy ctor
- // Intialize the quality assurance data maker
- //FIXME: get the run number
- Int_t run = 0 ;
- //EMXIF
- GetQADataMaker()->Init(AliQA::kHITS, run, fgkCycles) ;
- GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
- GetQADataMaker()->Init(AliQA::kSDIGITS, run) ;
- GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, "same") ;
+// // Intialize the quality assurance data maker
+// //FIXME: get the run number
+// Int_t run = 0 ;
+// //EMXIF
+// GetQADataMaker()->Init(AliQA::kHITS, run, fgkCycles) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
+// GetQADataMaker()->Init(AliQA::kSDIGITS, run) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, kTRUE) ;
}
//_____________________________________________________________________________
AliPHOSGetter * gime =
AliPHOSGetter::Instance();
gime->PhosLoader()->CleanSDigitizer();
- delete fQADM ;
+// delete fQADM ;
}
//____________________________________________________________________________
gime->PostSDigitizer(this);
gime->PhosLoader()->GetSDigitsDataLoader()->GetBaseTaskLoader()->SetDoNotReload(kTRUE);
- fQADM = new AliPHOSQADataMaker() ;
+// fQADM = new AliPHOSQADataMaker() ;
}
digit->SetIndexInList(i) ;
}
- // make Quality Assurance data
-
- if (GetQADataMaker()->IsCycleDone() ) {
- GetQADataMaker()->EndOfCycle(AliQA::kHITS) ;
- GetQADataMaker()->EndOfCycle(AliQA::kSDIGITS) ;
- GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
- GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, "same") ;
- }
- GetQADataMaker()->Exec(AliQA::kHITS, hits) ;
- GetQADataMaker()->Exec(AliQA::kSDIGITS, sdigits) ;
- GetQADataMaker()->Increment() ;
+// // make Quality Assurance data
+//
+// if (GetQADataMaker()->IsCycleDone() ) {
+// GetQADataMaker()->EndOfCycle(AliQA::kHITS) ;
+// GetQADataMaker()->EndOfCycle(AliQA::kSDIGITS) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kHITS) ;
+// GetQADataMaker()->StartOfCycle(AliQA::kSDIGITS, kTRUE) ;
+// }
+// GetQADataMaker()->Exec(AliQA::kHITS, hits) ;
+// GetQADataMaker()->Exec(AliQA::kSDIGITS, sdigits) ;
+// GetQADataMaker()->Increment() ;
//Now write SDigits
//memwatcher.Watch(ievent);
}// event loop
- //Write the quality assurance data
- GetQADataMaker()->EndOfCycle(AliQA::kHITS) ;
- GetQADataMaker()->EndOfCycle(AliQA::kSDIGITS) ;
- GetQADataMaker()->Finish(AliQA::kHITS) ;
- GetQADataMaker()->Finish(AliQA::kSDIGITS) ;
+// //Write the quality assurance data
+// GetQADataMaker()->EndOfCycle(AliQA::kHITS) ;
+// GetQADataMaker()->EndOfCycle(AliQA::kSDIGITS) ;
+// GetQADataMaker()->Finish() ;
Unload();
/* History of cvs commits:
*
* $Log$
+ * Revision 1.29 2007/10/10 09:05:10 schutz
+ * Changing name QualAss to QA
+ *
* Revision 1.28 2007/09/30 17:08:20 schutz
* Introducing the notion of QA data acquisition cycle (needed by online)
*
// --- Standard library ---
// --- AliRoot header files ---
-class AliPHOSQADataMaker ;
+//class AliPHOSQADataMaker ;
class AliPHOSSDigitizer: public TTask {
private:
- AliPHOSQADataMaker * GetQADataMaker() const { return fQADM ; }
+// AliPHOSQADataMaker * GetQADataMaker() const { return fQADM ; }
void Init() ;
void InitParameters() ;
Int_t fFirstEvent; // first event to process
Int_t fLastEvent; // last event to process
- AliPHOSQADataMaker * fQADM ; //!Quality Assurance Data Maker
- static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle
+// AliPHOSQADataMaker * fQADM ; //!Quality Assurance Data Maker
+// static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle
ClassDef(AliPHOSSDigitizer,4) // description
}
//____________________________________________________________________________
-void AliQADataMaker::Finish(AliQA::TASKINDEX) const
+void AliQADataMaker::Finish() const
{
// write to the output File
fOutput->Close() ;
}
//____________________________________________________________________________
-void AliQADataMaker::StartOfCycle(AliQA::TASKINDEX task, Option_t * sameCycle)
+void AliQADataMaker::Reset()
+{
+ // Resets defaut value of data members
+ fCurrentCycle = -1 ;
+ fCycleCounter = 0 ;
+}
+
+//____________________________________________________________________________
+void AliQADataMaker::StartOfCycle(AliQA::TASKINDEX task, const Bool_t sameCycle)
{
// Finishes a cycle of QA data acquistion
- if ( (strcmp(sameCycle, "new") == 0) ) {
+ if ( !sameCycle ) {
ResetCycle() ;
if (fOutput)
fOutput->Close() ;
const Int_t Add2SDigitsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fSDigitsQAList) ; }
virtual void Exec(AliQA::TASKINDEX, TObject * data) ;
void EndOfCycle(AliQA::TASKINDEX) ;
- void Finish(AliQA::TASKINDEX task) const ;
+ void Finish() const ;
TH1 * GetDigitsData(const Int_t index) { return dynamic_cast<TH1 *>(GetData(fDigitsQAList, index)) ; }
TH1 * GetESDsData(const Int_t index) { return dynamic_cast<TH1 *>(GetData(fESDsQAList, index)) ; }
TH1 * GetHitsData(const Int_t index) { return dynamic_cast<TH1 *>(GetData(fHitsQAList, index)) ; }
TList * Init(AliQA::TASKINDEX, Int_t run, Int_t cycles = -1) ;
void Init(AliQA::TASKINDEX, TList * list, Int_t run, Int_t cycles = -1) ;
const Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
+ void Reset() ;
void SetCycle(Int_t nevts) { fCycle = nevts ; }
- void StartOfCycle(AliQA::TASKINDEX, Option_t * sameCycle = "new") ;
+ void StartOfCycle(AliQA::TASKINDEX, const Bool_t sameCycle = kFALSE) ;
protected:
//_____________________________________________________________________________
AliQADataMakerSteer::AliQADataMakerSteer(const char* gAliceFilename, const char * name, const char * title) :
TNamed(name, title),
- fCycleOption("new"),
+ fCycleSame(kFALSE),
fESD(NULL),
fESDTree(NULL),
fFirst(kTRUE),
//_____________________________________________________________________________
AliQADataMakerSteer::AliQADataMakerSteer(const AliQADataMakerSteer & qas) :
TNamed(qas),
- fCycleOption("new"),
+ fCycleSame(kFALSE),
fESD(NULL),
fESDTree(NULL),
fFirst(qas.fFirst),
// dtor
for (UInt_t iDet = 0; iDet < fgkNDetectors; iDet++) {
fLoader[iDet] = NULL;
- delete fQADataMaker[iDet];
- fQADataMaker[iDet] = NULL;
+ if (fQADataMaker[iDet]) {
+ (fQADataMaker[iDet])->Finish() ;
+ delete fQADataMaker[iDet] ;
+ fQADataMaker[iDet] = NULL ;
+ }
}
- delete fRunLoader;
- fRunLoader = NULL;
- delete fRawReader;
- fRawReader = NULL;
+ fRunLoader = NULL ;
+ delete fRawReader ;
+ fRawReader = NULL ;
}
//_____________________________________________________________________________
} else {
AliInfo(Form("Data Maker found for %s", qadm->GetName())) ;
qadm->Init(taskIndex, fRunNumber, GetQACycles(iDet)) ;
- qadm->StartOfCycle(taskIndex, fCycleOption) ;
+ qadm->StartOfCycle(taskIndex, fCycleSame) ;
}
}
fFirst = kFALSE ;
{
// get or create the run loader
if (fRunLoader) {
- fCycleOption = "same" ;
+ fCycleSame = kTRUE ;
return kTRUE ;
}
AliQADataMaker * qadm = GetQADataMaker(iDet) ;
if (qadm) {
qadm->EndOfCycle(taskIndex) ;
- qadm->Finish(taskIndex) ;
}
}
return kTRUE ;
}
+//_____________________________________________________________________________
+void AliQADataMakerSteer::Reset()
+{
+ // Reset the default data members
+ for (UInt_t iDet = 0; iDet < fgkNDetectors; iDet++) {
+ fLoader[iDet] = NULL;
+ if (fQADataMaker[iDet]) {
+ (fQADataMaker[iDet])->Reset() ;
+// delete fQADataMaker[iDet] ;
+// fQADataMaker[iDet] = NULL ;
+ }
+ }
+
+ fRunLoader = NULL ;
+ delete fRawReader ;
+ fRawReader = NULL ;
+
+ fCycleSame = kFALSE ;
+ fESD = NULL ;
+ fESDTree = NULL ;
+ fFirst = kTRUE ;
+ fNumberOfEvents = 0 ;
+}
+
//_____________________________________________________________________________
Bool_t AliQADataMakerSteer::Run(const AliQA::TASKINDEX taskIndex, const char * fileName )
{
class AliQADataMaker ;
class AliRawReaderRoot ;
class AliRunLoader ;
+class AliESDEvent ;
class AliQADataMakerSteer: public TNamed {
public:
AliQADataMakerSteer(const AliQADataMakerSteer & qas) ;
AliQADataMakerSteer & operator = (const AliQADataMakerSteer & qas) ;
virtual ~AliQADataMakerSteer() ;
+ void Reset() ;
Bool_t Run(const AliQA::TASKINDEX taskIndex, const char * fileName = NULL) ;
void SetCycleLength(const AliQA::DETECTORINDEX det, const Int_t cycle) { fQACycles[det] = cycle ; }
Bool_t Finish(const AliQA::TASKINDEX taskIndex) ;
- Option_t * fCycleOption ; //! new or same in case of 2 consecutive data making for a same detector
+ Bool_t fCycleSame ; //! true if 2 consecutive data making for a same detector
AliESDEvent * fESD ; //! current ESD
TTree * fESDTree ; //! current ESD Tree
Bool_t fFirst ; //! to search the detector QA data maker only once
#include "AliAODFmdCluster.h"
#include "AliAODTracklets.h"
-#include "AliQADataMaker.h"
+//#include "AliQADataMaker.h"
+#include "AliQA.h"
+#include "AliQADataMakerSteer.h"
#include "AliSysInfo.h" // memory snapshots
fReconstructor[iDet] = NULL;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
- fQADataMaker[iDet] = NULL;
- fQACycles[iDet] = 999999;
+// fQADataMaker[iDet] = NULL;
+// fQACycles[iDet] = 999999;
}
AliPID pid;
}
fReconstructor[iDet] = NULL;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
- fQADataMaker[iDet] = NULL;
- fQACycles[iDet] = rec.fQACycles[iDet];
+// fQADataMaker[iDet] = NULL;
+// fQACycles[iDet] = rec.fQACycles[iDet];
}
for (Int_t i = 0; i < rec.fSpecCDBUri.GetEntriesFast(); i++) {
if (rec.fSpecCDBUri[i]) fSpecCDBUri.Add(rec.fSpecCDBUri[i]->Clone());
}
}
- if (!fFillESD.IsNull())
- RunQA(fFillESD.Data(), esd);
+// if (!fFillESD.IsNull())
+// RunQA(fFillESD.Data(), esd);
// fill Event header information from the RawEventHeader
if (fRawReader){FillRawEventHeaderESD(esd);}
}
detStr = fFillESD ;
- // write quality assurance ESDs data (one entry for all events)
- for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
- if (!IsSelected(fgkDetectorName[iDet], detStr))
- continue;
- AliQADataMaker * qadm = GetQADataMaker(iDet);
- if (!qadm) continue;
- qadm->EndOfCycle(AliQA::kRECPOINTS);
- qadm->EndOfCycle(AliQA::kESDS);
- qadm->Finish(AliQA::kRECPOINTS);
- qadm->Finish(AliQA::kESDS) ;
- }
+// // write quality assurance ESDs data (one entry for all events)
+// for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
+// if (!IsSelected(fgkDetectorName[iDet], detStr))
+// continue;
+// AliQADataMaker * qadm = GetQADataMaker(iDet);
+// if (!qadm) continue;
+// qadm->EndOfCycle(AliQA::kRECPOINTS);
+// qadm->EndOfCycle(AliQA::kESDS);
+// qadm->Finish();
+// }
tree->GetUserInfo()->Add(esd);
hlttree->GetUserInfo()->Add(hltesd);
aodtagCreator->CreateAODTags(fFirstEvent,fLastEvent,fGRPList);
}
+ //QA
+ AliQADataMakerSteer qas ;
+ qas.Run(AliQA::kRECPOINTS) ;
+ qas.Reset() ;
+ qas.Run(AliQA::kESDS) ;
+
return kTRUE;
}
loader->UnloadDigits();
}
- AliQADataMaker * qadm = GetQADataMaker(iDet);
- if (qadm) {
- AliCodeTimerStart(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
- AliInfo(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
-
- if (qadm->IsCycleDone() ) {
- qadm->EndOfCycle(AliQA::kRECPOINTS) ;
- qadm->EndOfCycle(AliQA::kESDS) ;
- qadm->StartOfCycle(AliQA::kRECPOINTS) ;
- qadm->StartOfCycle(AliQA::kESDS, "same") ;
- }
- qadm->Exec(AliQA::kRECPOINTS, clustersTree) ;
- AliCodeTimerStop(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
- }
+// AliQADataMaker * qadm = GetQADataMaker(iDet);
+// if (qadm) {
+// AliCodeTimerStart(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+// AliInfo(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+//
+// if (qadm->IsCycleDone() ) {
+// qadm->EndOfCycle(AliQA::kRECPOINTS) ;
+// qadm->EndOfCycle(AliQA::kESDS) ;
+// qadm->StartOfCycle(AliQA::kRECPOINTS) ;
+// qadm->StartOfCycle(AliQA::kESDS, "same") ;
+// }
+// qadm->Exec(AliQA::kRECPOINTS, clustersTree) ;
+// AliCodeTimerStop(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+// }
loader->WriteRecPoints("OVERWRITE");
loader->UnloadRecPoints();
fLoader[iDet] = NULL;
delete fTracker[iDet];
fTracker[iDet] = NULL;
- delete fQADataMaker[iDet];
- fQADataMaker[iDet] = NULL;
+// delete fQADataMaker[iDet];
+// fQADataMaker[iDet] = NULL;
}
delete fVertexer;
fVertexer = NULL;
//_____________________________________________________________________________
-AliQADataMaker * AliReconstruction::GetQADataMaker(Int_t iDet)
-{
+//AliQADataMaker * AliReconstruction::GetQADataMaker(Int_t iDet)
+//{
// get the quality assurance data maker object and the loader for a detector
-
- if (fQADataMaker[iDet])
- return fQADataMaker[iDet];
-
- // load the QA data maker object
- TPluginManager* pluginManager = gROOT->GetPluginManager();
- TString detName = fgkDetectorName[iDet];
- TString qadmName = "Ali" + detName + "QADataMaker";
- if (gAlice && !gAlice->GetDetector(detName) && (detName != "HLT"))
- return NULL;
-
- AliQADataMaker * qadm = NULL;
- // first check if a plugin is defined for the quality assurance data maker
- TPluginHandler* pluginHandler = pluginManager->FindHandler("AliQADataMaker", detName);
- // if not, add a plugin for it
- if (!pluginHandler) {
- AliDebug(1, Form("defining plugin for %s", qadmName.Data()));
- TString libs = gSystem->GetLibraries();
- if (libs.Contains("lib" + detName + "base.so") ||
- (gSystem->Load("lib" + detName + "base.so") >= 0)) {
- pluginManager->AddHandler("AliQADataMaker", detName,
- qadmName, detName + "qadm", qadmName + "()");
- } else {
- pluginManager->AddHandler("AliQADataMaker", detName,
- qadmName, detName, qadmName + "()");
- }
- pluginHandler = pluginManager->FindHandler("AliQADataMaker", detName);
- }
- if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
- qadm = (AliQADataMaker *) pluginHandler->ExecPlugin(0);
- }
- if (qadm) {
- AliInfo(Form("Initializing quality assurance data maker for %s", fgkDetectorName[iDet]));
- qadm->Init(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun(), GetQACycles(fgkDetectorName[iDet]));
- qadm->StartOfCycle(AliQA::kRECPOINTS);
- qadm->Init(AliQA::kESDS, AliCDBManager::Instance()->GetRun());
- qadm->StartOfCycle(AliQA::kESDS, "same") ;
- fQADataMaker[iDet] = qadm;
- }
-
- return qadm;
-}
-
+//
+// if (fQADataMaker[iDet])
+// return fQADataMaker[iDet];
+//
+// // load the QA data maker object
+// TPluginManager* pluginManager = gROOT->GetPluginManager();
+// TString detName = fgkDetectorName[iDet];
+// TString qadmName = "Ali" + detName + "QADataMaker";
+// if (gAlice && !gAlice->GetDetector(detName) && (detName != "HLT"))
+// return NULL;
+//
+// AliQADataMaker * qadm = NULL;
+// // first check if a plugin is defined for the quality assurance data maker
+// TPluginHandler* pluginHandler = pluginManager->FindHandler("AliQADataMaker", detName);
+// // if not, add a plugin for it
+// if (!pluginHandler) {
+// AliDebug(1, Form("defining plugin for %s", qadmName.Data()));
+// TString libs = gSystem->GetLibraries();
+// if (libs.Contains("lib" + detName + "base.so") ||
+// (gSystem->Load("lib" + detName + "base.so") >= 0)) {
+// pluginManager->AddHandler("AliQADataMaker", detName,
+// qadmName, detName + "qadm", qadmName + "()");
+// } else {
+// pluginManager->AddHandler("AliQADataMaker", detName,
+// qadmName, detName, qadmName + "()");
+// }
+// pluginHandler = pluginManager->FindHandler("AliQADataMaker", detName);
+// }
+// if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
+// qadm = (AliQADataMaker *) pluginHandler->ExecPlugin(0);
+// }
+// if (qadm) {
+// AliInfo(Form("Initializing quality assurance data maker for %s", fgkDetectorName[iDet]));
+// qadm->Init(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun(), GetQACycles(fgkDetectorName[iDet]));
+// qadm->StartOfCycle(AliQA::kRECPOINTS);
+// qadm->Init(AliQA::kESDS, AliCDBManager::Instance()->GetRun());
+// qadm->StartOfCycle(AliQA::kESDS, "same") ;
+// fQADataMaker[iDet] = qadm;
+// }
+//
+// return qadm;
+//}
+//
//_____________________________________________________________________________
-Bool_t AliReconstruction::RunQA(const char* detectors, AliESDEvent *& esd)
-{
- // run the Quality Assurance data producer
-
- AliCodeTimerAuto("")
- TString detStr = detectors;
- for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
- if (!IsSelected(fgkDetectorName[iDet], detStr))
- continue;
- AliQADataMaker * qadm = GetQADataMaker(iDet);
- if (!qadm)
- continue;
- AliCodeTimerStart(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
- AliInfo(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
-
- qadm->Exec(AliQA::kESDS, esd) ;
- qadm->Increment() ;
-
- AliCodeTimerStop(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
- }
- if ((detStr.CompareTo("ALL") != 0) && !detStr.IsNull()) {
- AliError(Form("the following detectors were not found: %s",
- detStr.Data()));
- if (fStopOnError)
- return kFALSE;
- }
-
- return kTRUE;
-
-}
-
+//Bool_t AliReconstruction::RunQA(const char* detectors, AliESDEvent *& esd)
+//{
+// // run the Quality Assurance data producer
+//
+// AliCodeTimerAuto("")
+// TString detStr = detectors;
+// for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
+// if (!IsSelected(fgkDetectorName[iDet], detStr))
+// continue;
+// AliQADataMaker * qadm = GetQADataMaker(iDet);
+// if (!qadm)
+// continue;
+// AliCodeTimerStart(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+// AliInfo(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+//
+// qadm->Exec(AliQA::kESDS, esd) ;
+// qadm->Increment() ;
+//
+// AliCodeTimerStop(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));
+// }
+// if ((detStr.CompareTo("ALL") != 0) && !detStr.IsNull()) {
+// AliError(Form("the following detectors were not found: %s",
+// detStr.Data()));
+// if (fStopOnError)
+// return kFALSE;
+// }
+//
+// return kTRUE;
+//
+//}
+//
//_____________________________________________________________________________
void AliReconstruction::CheckQA()
virtual Bool_t Run(const char* input = NULL);
// Quality Assurance
- virtual Bool_t RunQA(const char* detectors, AliESDEvent *& esd);
- void SetQACycles(const char * detector, const Int_t cycles) { fQACycles[GetDetIndex(detector)] = cycles ; }
+// virtual Bool_t RunQA(const char* detectors, AliESDEvent *& esd);
+// void SetQACycles(const char * detector, const Int_t cycles) { fQACycles[GetDetIndex(detector)] = cycles ; }
private:
Bool_t RunLocalReconstruction(const TString& detectors);
//Quality Assurance
Int_t GetDetIndex(const char * detector);
- AliQADataMaker* GetQADataMaker(Int_t iDet);
- const Int_t GetQACycles(const char * detector) { return fQACycles[GetDetIndex(detector)] ; }
+// AliQADataMaker* GetQADataMaker(Int_t iDet);
+// const Int_t GetQACycles(const char * detector) { return fQACycles[GetDetIndex(detector)] ; }
void CheckQA() ;
//*** Global reconstruction flags *******************
TObjArray fSpecCDBUri; // Array with detector specific CDB storages
//Quality Assurance
- AliQADataMaker * fQADataMaker[fgkNDetectors]; //! array of QA data maker objects
- Int_t fQACycles[fgkNDetectors] ; // cycle length (# events) over which QA data are accumulated
+// AliQADataMaker * fQADataMaker[fgkNDetectors]; //! array of QA data maker objects
+// Int_t fQACycles[fgkNDetectors] ; // cycle length (# events) over which QA data are accumulated
ClassDef(AliReconstruction, 15) // class for running the reconstruction
};
#include "AliGenEventHeader.h"
#include "AliMC.h"
#include "AliHLTSimulation.h"
+#include "AliQA.h"
+#include "AliQADataMakerSteer.h"
ClassImp(AliSimulation)
fCDBUri(sim.fCDBUri),
fRemoteCDBUri(sim.fRemoteCDBUri),
fSpecCDBUri(),
- fEmbeddingFlag(sim.fEmbeddingFlag)
+ fEmbeddingFlag(sim.fEmbeddingFlag),
+ fRunHLT(sim.fRunHLT)
{
// copy constructor
{
// run the generation, simulation and digitization
- AliCodeTimerAuto("")
+
+ AliCodeTimerAuto("")
InitCDBStorage();
if (!RunSimulation()) if (fStopOnError) return kFALSE;
}
+//QA
+ AliQADataMakerSteer qas ;
+ qas.Run(AliQA::kHITS);
+
// Set run number in CDBManager (if it is not already set in RunSimulation)
if (!SetRunNumber()) if (fStopOnError) return kFALSE;
if (!fMakeSDigits.IsNull()) {
if (!RunSDigitization(fMakeSDigits)) if (fStopOnError) return kFALSE;
}
+
+ //QA
+ qas.Reset() ;
+ qas.Run(AliQA::kSDIGITS);
// summable digits -> digits
if (!fMakeDigits.IsNull()) {
if (fStopOnError) return kFALSE;
}
}
+
+ //QA
+ qas.Reset() ;
+ qas.Run(AliQA::kDIGITS);
// digits -> trigger
if (!RunTrigger(fMakeTrigger)) {