1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
21 Produces the data needed to calculate the quality assurance.
22 All data must be mergeable objects.
23 Y. Schutz CERN July 2007
26 // --- ROOT system ---
30 // --- Standard library ---
32 // --- AliRoot header files ---
34 #include "AliQualAssDataMaker.h"
36 ClassImp(AliQualAssDataMaker)
38 TString AliQualAssDataMaker::fDetectorDirName("") ;
41 //____________________________________________________________________________
42 AliQualAssDataMaker::AliQualAssDataMaker(const char * name, const char * title) :
49 TString tmp(GetName()) ;
52 fOutput = AliQualAss::GetQADMOutFile() ;
53 fDetectorDirName = GetName() ;
56 //____________________________________________________________________________
57 AliQualAssDataMaker::AliQualAssDataMaker(const AliQualAssDataMaker& qadm) :
58 TNamed(qadm.GetName(), qadm.GetTitle()),
59 fOutput(qadm.fOutput),
60 fDetectorDir(qadm.fDetectorDir),
64 fDetectorDirName = GetName() ;
67 //__________________________________________________________________
68 AliQualAssDataMaker& AliQualAssDataMaker::operator = (const AliQualAssDataMaker& qadm )
71 this->~AliQualAssDataMaker();
72 new(this) AliQualAssDataMaker(qadm);
76 //____________________________________________________________________________
77 void AliQualAssDataMaker::Exec(AliQualAss::TASKINDEX task)
79 // creates the quality assurance data for the various tasks (Hits, SDigits, Digits, ESDs)
81 fDetectorDir = fOutput->GetDirectory(GetDetectorDirName()) ;
83 fDetectorDir = fOutput->mkdir(GetDetectorDirName()) ;
86 case AliQualAss::kHITS:
87 AliInfo("Processing Hits QA") ;
91 case AliQualAss::kSDIGITS:
92 AliInfo("Processing SDigits QA") ;
96 case AliQualAss::kDIGITS:
97 AliInfo("Processing Digits QA") ;
101 case AliQualAss::kRECPOINTS:
102 AliInfo("Processing RecPoints QA") ;
106 case AliQualAss::kTRACKSEGMENTS:
107 AliInfo("Processing Track Segments QA") ;
108 MakeTrackSegments() ;
111 case AliQualAss::kRECPARTICLES:
112 AliInfo("Processing RecParticles QA") ;
116 case AliQualAss::kESDS:
117 AliInfo("Processing ESDs QA") ;
123 //____________________________________________________________________________
124 void AliQualAssDataMaker::Finish(AliQualAss::TASKINDEX task) const
126 // write to the output File
129 TDirectory * subDir = 0x0 ;
132 // case AliQualAss::kHITS:
133 subDir = fDetectorDir->GetDirectory(AliQualAss::GetTaskName(task)) ;
136 // case AliQualAss::kSDIGITS:
137 // subDir = fDetectorDir->GetDirectory("SDigits") ;
140 // case AliQualAss::kDIGITS:
141 // subDir = fDetectorDir->GetDirectory("Digits") ;
144 // case AliQualAss::kRECPOINTS:
145 // subDir = fDetectorDir->GetDirectory("RecPoints") ;
148 // case AliQualAss::kTRACKSEGMENTS:
149 // subDir = fDetectorDir->GetDirectory("TrackSegments") ;
152 // case AliQualAss::kRECPARTICLES:
153 // subDir = fDetectorDir->GetDirectory("RecParticles") ;
156 // case AliQualAss::kESDS:
157 // subDir = fDetectorDir->GetDirectory("ESDs") ;
163 //____________________________________________________________________________
164 void AliQualAssDataMaker::Init(AliQualAss::TASKINDEX task)
166 // general intialisation
168 TDirectory * subDir = 0x0 ;
171 case AliQualAss::kHITS:
172 subDir = fDetectorDir->GetDirectory("Hits") ;
174 subDir = fDetectorDir->mkdir("Hits") ;
179 case AliQualAss::kSDIGITS:
180 subDir = fDetectorDir->GetDirectory("SDigits") ;
182 subDir = fDetectorDir->mkdir("SDigits") ;
187 case AliQualAss::kDIGITS:
188 subDir = fDetectorDir->GetDirectory("Digits") ;
190 subDir = fDetectorDir->mkdir("Digits") ;
195 case AliQualAss::kRECPOINTS:
196 subDir = fDetectorDir->GetDirectory("RecPoints") ;
198 subDir = fDetectorDir->mkdir("RecPoints") ;
203 case AliQualAss::kTRACKSEGMENTS:
204 subDir = fDetectorDir->GetDirectory("TrackSegments") ;
206 subDir = fDetectorDir->mkdir("TrackSegments") ;
208 InitTrackSegments() ;
211 case AliQualAss::kRECPARTICLES:
212 subDir = fDetectorDir->GetDirectory("RecParticles") ;
214 subDir = fDetectorDir->mkdir("RecParticles") ;
219 case AliQualAss::kESDS:
220 subDir = fDetectorDir->GetDirectory("ESDs") ;
222 subDir = fDetectorDir->mkdir("ESDs") ;