]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCcalibBase.cxx
Setter method added
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibBase.cxx
CommitLineData
3ab35fc5 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16
17///////////////////////////////////////////////////////////////////////////////
18// //
19// Base class for the calibration components using
20// as input TPCseeds and ESDs
21// Event loop outside of the component
22//
23//
ae28e92e 24// Base functionality to be implemeneted by component
25/*
26 //In some cases only one of this function to be implemented
27 virtual void Process(AliESDEvent *event)
28 virtual void Process(AliTPCseed *track)
29 //
30 virtual Long64_t Merge(TCollection *li);
31 virtual void Analyze()
32 void Terminate();
33*/
34// Functionality provided by base class for Algorith debuging:
35// TTreeSRedirector * cstream = GetDebugStreamer() - get debug streamer which can be use for numerical debugging
36//
37
38
39
40// marian.ivanov@cern.ch
3ab35fc5 41//
42#include "AliTPCcalibBase.h"
f7f33dec 43#include "TSystem.h"
44#include "TFile.h"
ae28e92e 45#include "TTreeStream.h"
f7f33dec 46#include "AliLog.h"
47328338 47#include "TTimeStamp.h"
108953e9 48#include "AliESDEvent.h"
f7f33dec 49
3ab35fc5 50
51ClassImp(AliTPCcalibBase)
52
ae28e92e 53AliTPCcalibBase::AliTPCcalibBase():
54 TNamed(),
55 fDebugStreamer(0),
108953e9 56 fStreamLevel(0),
57 fRun(0), //! current Run number
58 fEvent(0), //! current Event number
59 fTime(0), //! current Time
60 fTrigger(0), //! current trigger type
61 fMagF(0), //! current magnetic field
c51653e8 62 fTriggerMaskReject(-1), //trigger mask - reject trigger
63 fTriggerMaskAccept(-1), //trigger mask - accept trigger
ae28e92e 64 fDebugLevel(0)
3ab35fc5 65{
66 //
67 // Constructor
68 //
69}
70
ae28e92e 71AliTPCcalibBase::AliTPCcalibBase(const AliTPCcalibBase&calib):
72 TNamed(calib),
73 fDebugStreamer(0),
74 fStreamLevel(calib.fStreamLevel),
e5cbd73f 75 fRun(0), //! current Run number
76 fEvent(0), //! current Event number
77 fTime(0), //! current Time
78 fTrigger(0), //! current trigger type
79 fMagF(0), //! current magnetic field
c51653e8 80 fTriggerMaskReject(calib.fTriggerMaskReject), //trigger mask - reject trigger
81 fTriggerMaskAccept(calib.fTriggerMaskAccept), //trigger mask - accept trigger
ae28e92e 82 fDebugLevel(calib.fDebugLevel)
83{
84 //
85 // copy constructor
86 //
87}
88
89AliTPCcalibBase &AliTPCcalibBase::operator=(const AliTPCcalibBase&calib){
90 //
91 //
92 //
93 ((TNamed *)this)->operator=(calib);
94 fDebugStreamer=0;
95 fStreamLevel=calib.fStreamLevel;
96 fDebugLevel=calib.fDebugLevel;
525062ee 97 return *this;
ae28e92e 98}
99
100
3ab35fc5 101AliTPCcalibBase::~AliTPCcalibBase() {
102 //
103 // destructor
104 //
f7f33dec 105 if (fDebugLevel>0) printf("AliTPCcalibBase::~AliTPCcalibBase\n");
ae28e92e 106 if (fDebugStreamer) delete fDebugStreamer;
107 fDebugStreamer=0;
108}
109
110void AliTPCcalibBase::Terminate(){
111 //
112 //
113 //
f7f33dec 114 if (fDebugLevel>0) printf("AliTPCcalibBase::Terminate\n");
ae28e92e 115 if (fDebugStreamer) delete fDebugStreamer;
116 fDebugStreamer = 0;
117 return;
118}
119
120TTreeSRedirector *AliTPCcalibBase::GetDebugStreamer(){
121 //
122 // Get Debug streamer
123 // In case debug streamer not yet initialized and StreamLevel>0 create new one
124 //
125 if (fStreamLevel==0) return 0;
126 if (fDebugStreamer) return fDebugStreamer;
127 TString dsName;
128 dsName=GetName();
129 dsName+="Debug.root";
130 dsName.ReplaceAll(" ","");
131 fDebugStreamer = new TTreeSRedirector(dsName.Data());
132 return fDebugStreamer;
3ab35fc5 133}
f7f33dec 134
135
108953e9 136void AliTPCcalibBase::UpdateEventInfo(AliESDEvent * event){
137 //
138 //
139 //
140 fRun = event->GetRunNumber();
141 fEvent = event->GetEventNumberInFile();
142 fTime = event->GetTimeStamp();
143 fTrigger = event->GetTriggerMask();
144 fMagF = event->GetMagneticField();
145}
146
c51653e8 147Bool_t AliTPCcalibBase::AcceptTrigger(){
148 //
149 // Apply trigger mask - Don't do calibration for non proper triggers
150 //
151 if (fTriggerMaskReject==fTrigger) return kFALSE;
152 if (fTriggerMaskAccept>0 && fTriggerMaskAccept!=fTrigger) return kFALSE;
153 return kTRUE;
154}
155
156
f7f33dec 157void AliTPCcalibBase::RegisterDebugOutput(const char *path){
158 //
159 // store - copy debug output to the destination position
160 // currently ONLY for local copy
161 if (fDebugLevel>0) printf("AliTPCcalibBase::RegisterDebugOutput(%s)\n",path);
162 if (fStreamLevel==0) return;
163 TString dsName;
164 dsName=GetName();
165 dsName+="Debug.root";
166 dsName.ReplaceAll(" ","");
167 TString dsName2=path;
168 gSystem->MakeDirectory(dsName2.Data());
169 dsName2+=gSystem->HostName();
170 gSystem->MakeDirectory(dsName2.Data());
171 dsName2+="/";
47328338 172 TTimeStamp s;
173 dsName2+=Int_t(s.GetNanoSec());
174 dsName2+="/";
175 gSystem->MakeDirectory(dsName2.Data());
f7f33dec 176 dsName2+=dsName;
177 AliInfo(Form("copy %s\t%s\n",dsName.Data(),dsName2.Data()));
178 printf("copy %s\t%s\n",dsName.Data(),dsName2.Data());
179 TFile::Cp(dsName.Data(),dsName2.Data());
180}