#include "AliTrackPointArray.h"
#include "AliTracker.h"
#include "AliKFVertex.h"
+#include <AliLog.h>
+
ClassImp(AliTPCcalibTime)
AliTPCcalibTime::AliTPCcalibTime()
- :AliTPCcalibBase(),
+ :AliTPCcalibBase(),
+ fMemoryMode(1), // 0 -do not fill THnSparse with residuals 1- fill only important QA THn 2 - Fill all THnsparse for calibration
fLaser(0), // pointer to laser calibration
fDz(0), // current delta z
fCutMaxD(3), // maximal distance in rfi ditection
for (Int_t i=0;i<12;i++) {
fTPCVertex[i]=0;
}
+ static Int_t counter=0;
+ if (1) {
+ TTimeStamp s;
+ Int_t time=s;
+ AliInfo(Form("Counter Constructor\t%d\t%d",counter,time));
+ counter++;
+ }
+
}
-AliTPCcalibTime::AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift)
+AliTPCcalibTime::AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift, Int_t memoryMode)
:AliTPCcalibBase(),
+ fMemoryMode(memoryMode), // 0 -do not fill THnSparse with residuals 1- fill only important QA THn 2 - Fill all THnsparse for calibration
fLaser(0), // pointer to laser calibration
fDz(0), // current delta z
fCutMaxD(5*0.5356), // maximal distance in rfi ditection
//
// Virtual Destructor
//
+ static Int_t counter=0;
+ if (1) {
+ TTimeStamp s;
+ Int_t time=s;
+ AliInfo(Form("Counter Destructor\t%s\t%d\t%d",GetName(),counter,time));
+ counter++;
+ }
for(Int_t i=0;i<3;i++){
if(fHistVdriftLaserA[i]){
delete fHistVdriftLaserA[i];
tree->Draw("sqrt(vA.fChi2/vA.fNDF)","sqrt(vA.fChi2/vA.fNDF)<100","")
*/
- vertexA.Print();
- vertexC.Print();
+ //vertexA.Print();
+ //vertexC.Print();
(*cstream)<<"vertexTPC"<<
"flags="<<flags<< // rejection flags
"vSPD.="<<vertexSPD<< // SPD vertex
//
TIterator* iter = li->MakeIterator();
AliTPCcalibTime* cal = 0;
-
+ //
while ((cal = (AliTPCcalibTime*)iter->Next())) {
if (!cal->InheritsFrom(AliTPCcalibTime::Class())) {
Error("Merge","Attempt to add object of class %s to a %s", cal->ClassName(), this->ClassName());
//
if (fTPCVertex && cal->fTPCVertex)
for (Int_t imeas=0; imeas<12; imeas++){
- fTPCVertex[imeas]->Add(cal->fTPCVertex[imeas]);
+ if (fTPCVertex[imeas] && cal->fTPCVertex[imeas]) fTPCVertex[imeas]->Add(cal->fTPCVertex[imeas]);
}
- for (Int_t imeas=0; imeas<5; imeas++){
- if (cal->GetResHistoTPCCE(imeas) && cal->GetResHistoTPCCE(imeas)){
- fResHistoTPCCE[imeas]->Add(cal->fResHistoTPCCE[imeas]);
- }else{
- fResHistoTPCCE[imeas]=(THnSparse*)cal->fResHistoTPCCE[imeas]->Clone();
+ if (fMemoryMode>0) for (Int_t imeas=0; imeas<5; imeas++){
+ if (fMemoryMode>1){
+ if ( cal->GetResHistoTPCCE(imeas) && cal->GetResHistoTPCCE(imeas)){
+ fResHistoTPCCE[imeas]->Add(cal->fResHistoTPCCE[imeas]);
+ }else{
+ fResHistoTPCCE[imeas]=(THnSparse*)cal->fResHistoTPCCE[imeas]->Clone();
+ }
}
- if (cal->GetResHistoTPCITS(imeas) && cal->GetResHistoTPCITS(imeas)){
- fResHistoTPCITS[imeas]->Add(cal->fResHistoTPCITS[imeas]);
- fResHistoTPCvertex[imeas]->Add(cal->fResHistoTPCvertex[imeas]);
+ //
+ if ((fMemoryMode>0) &&cal->GetResHistoTPCITS(imeas) && cal->GetResHistoTPCITS(imeas)){
+ if (fMemoryMode>1 || (imeas%2)==1) fResHistoTPCITS[imeas]->Add(cal->fResHistoTPCITS[imeas]);
+ if (fMemoryMode>1) fResHistoTPCvertex[imeas]->Add(cal->fResHistoTPCvertex[imeas]);
}
- if (cal->fResHistoTPCTRD[imeas]){
+ //
+ if ((fMemoryMode>1) && cal->fResHistoTPCTRD[imeas]){
if (fResHistoTPCTRD[imeas])
fResHistoTPCTRD[imeas]->Add(cal->fResHistoTPCTRD[imeas]);
else
fResHistoTPCTRD[imeas]=(THnSparse*)cal->fResHistoTPCTRD[imeas]->Clone();
}
- if (cal->fResHistoTPCTOF[imeas]){
+ //
+ if ((fMemoryMode>1) && cal->fResHistoTPCTOF[imeas]){
if (fResHistoTPCTOF[imeas])
fResHistoTPCTOF[imeas]->Add(cal->fResHistoTPCTOF[imeas]);
else
fResHistoTPCTOF[imeas]=(THnSparse*)cal->fResHistoTPCTOF[imeas]->Clone();
}
-
+ //
if (cal->fArrayLaserA){
fArrayLaserA->Expand(fArrayLaserA->GetEntriesFast()+cal->fArrayLaserA->GetEntriesFast());
fArrayLaserC->Expand(fArrayLaserC->GetEntriesFast()+cal->fArrayLaserC->GetEntriesFast());
TIterator* iterator = addArray->MakeIterator();
iterator->Reset();
THnSparse* addHist=NULL;
- while((addHist=(THnSparseF*)iterator->Next())){
+ if ((fMemoryMode>1)) while((addHist=(THnSparseF*)iterator->Next())){
if(!addHist) continue;
addHist->Print();
THnSparse* localHist=(THnSparseF*)fArrayDz->FindObject(addHist->GetName());
// fill residual histograms pTPCOut-pTPCin - trac crossing CE
// Histogram
//
+ if (fMemoryMode<2) return;
Double_t histoX[5];
Double_t xyz[3];
pTPCIn->GetXYZ(xyz);
// fill residual histograms pTPC - vertex
// Histogram is filled only for primary tracks
//
+ if (fMemoryMode<2) return;
Double_t histoX[4];
const AliExternalTrackParam * pTPCIn = pTrack->GetInnerParam();
AliExternalTrackParam pTPCvertex(*(pTrack->GetInnerParam()));
//
// fill resuidual histogram TPCout-TRDin
//
+ if (fMemoryMode<2) return;
Double_t histoX[4];
Double_t xyz[3];
pTPCOut->GetXYZ(xyz);
//
// fill resuidual histogram TPCout-TOFin
// track propagated to the TOF position
+ if (fMemoryMode<2) return;
Double_t histoX[4];
Double_t xyz[3];
class AliTPCcalibTime:public AliTPCcalibBase {
public:
AliTPCcalibTime();
- AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift);
+ AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift, Int_t memoryMode=2);
virtual ~AliTPCcalibTime();
virtual void Process(AliESDEvent *event);
protected:
void ResetCurrent(); // reset current values
-
+ Int_t fMemoryMode; // 0 -do not fill THnSparse with residuals 1- fill only important QA THn 2 - Fill all THnsparse for calibration
AliTPCcalibLaser * fLaser; //! laser calibration
//
// current information
AliTPCcalibTime(const AliTPCcalibTime&);
AliTPCcalibTime& operator=(const AliTPCcalibTime&);
- ClassDef(AliTPCcalibTime, 7);
+ ClassDef(AliTPCcalibTime, 8);
};
#endif