#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDfriend.h"
-#include "AliESDCentrality.h"
+#include "AliCentrality.h"
#include "AliESDInputHandler.h"
#include "AliESDtrack.h"
#include "AliESDfriendTrack.h"
fListHist(0),
fTRDCalibraFillHisto(0),
fNEvents(0),
+ fNEventsInput(0),
fNbTRDTrack(0),
fNbTRDTrackOffline(0),
fNbTRDTrackStandalone(0),
fNbMaxCluster(2),
fOfflineTracks(kFALSE),
fStandaloneTracks(kFALSE),
+ fFirstRunGain(-1),
fVersionGainUsed(-1),
fSubVersionGainUsed(-1),
+ fFirstRunGainLocal(-1),
fVersionGainLocalUsed(-1),
fSubVersionGainLocalUsed(-1),
+ fFirstRunVdrift(-1),
fVersionVdriftUsed(-1),
fSubVersionVdriftUsed(-1),
fCalDetGain(0x0),
// Pointeur
if(fNEvents) delete fNEvents;
+ if(fNEventsInput) delete fNEventsInput;
if(fNbTRDTrack) delete fNbTRDTrack;
if(fNbTRDTrackOffline) delete fNbTRDTrackOffline;
if(fNbTRDTrackStandalone) delete fNbTRDTrackStandalone;
if(fVector2d) fListHist->Add((TObject *) fTRDCalibraFillHisto->GetCalibraVector()); //calibra vector
fNEvents = new TH1I("NEvents","NEvents", 2, 0, 2);
fListHist->Add(fNEvents);
+ fNEventsInput = new TH1I("NEventsInput","NEventsInput", 2, 0, 2);
+ fListHist->Add(fNEventsInput);
// absolute gain calibration even without AliESDfriend
Int_t nBinsPt = 25;
delete [] binLimLogPt;
delete [] binLimPt;
+ PostData(1,fListHist);
+
//cout << "AliTRDCalibTask::UserCreateOutputObjects() OUT" << endl;
}
//cout << "AliTRDCalibTask::Exec() IN" << endl;
// Init Versions and subversions used
- if((fVersionGainUsed==-1) || (fSubVersionGainUsed==-1) || (fVersionGainLocalUsed==-1) || (fSubVersionGainLocalUsed==-1) || (fVersionVdriftUsed==-1) || (fSubVersionVdriftUsed==-1)) {
+ if((fFirstRunGain==-1) || (fVersionGainUsed==-1) || (fSubVersionGainUsed==-1) || (fFirstRunGainLocal==-1) || (fVersionGainLocalUsed==-1) || (fSubVersionGainLocalUsed==-1) || (fFirstRunVdrift==-1) || (fVersionVdriftUsed==-1) || (fSubVersionVdriftUsed==-1)) {
if(!SetVersionSubversion()) {
- fVersionGainUsed=0;
- fSubVersionGainUsed=0;
- fVersionGainLocalUsed=0;
- fSubVersionGainLocalUsed=0;
- fVersionVdriftUsed=0;
- fSubVersionVdriftUsed=0;
+ PostData(1, fListHist);
+ return;
}
}
if(fCounter==0) {
+ fTRDCalibraFillHisto->SetFirstRunGain(fFirstRunGain); // Gain Used
fTRDCalibraFillHisto->SetVersionGainUsed(fVersionGainUsed); // Gain Used
fTRDCalibraFillHisto->SetSubVersionGainUsed(fSubVersionGainUsed); // Gain Used
+ fTRDCalibraFillHisto->SetFirstRunGainLocal(fFirstRunGainLocal); // Gain Used
fTRDCalibraFillHisto->SetVersionGainLocalUsed(fVersionGainLocalUsed); // Gain Used
fTRDCalibraFillHisto->SetSubVersionGainLocalUsed(fSubVersionGainLocalUsed); // Gain Used
+ fTRDCalibraFillHisto->SetFirstRunVdrift(fFirstRunVdrift); // Vdrift Used
fTRDCalibraFillHisto->SetVersionVdriftUsed(fVersionVdriftUsed); // Vdrift Used
fTRDCalibraFillHisto->SetSubVersionVdriftUsed(fSubVersionVdriftUsed); // Vdrift Used
fTRDCalibraFillHisto->InitCalDet();
//printf("Counter %d\n",fCounter);
fCounter++;
+ fNEventsInput->Fill(1);
+
//cout << "maxEvent = " << fMaxEvent << endl;
//if(fCounter%100==0) cout << "fCounter = " << fCounter << endl;
if((fMaxEvent != 0) && (fMaxEvent < fCounter)) {
}
if(fDebug > 0) {
// Centrality
- AliESDCentrality *esdCentrality = fESD->GetCentrality();
+ AliCentrality *esdCentrality = fESD->GetCentrality();
Float_t centrality = esdCentrality->GetCentralityPercentile("V0M");
//Float_t centralityb = esdCentrality->GetCentralityPercentile("CL1");
fNbGoodTracks->Fill(nGoodParticles,centrality);
PostData(1, fListHist);
return;
}
+
+ if(fESDfriend->TestSkipBit()) {
+ PostData(1, fListHist);
+ return;
+ }
//printf("has friends\n");
if(!listcalibTask) return;
TH1I *nEvents = (TH1I *) listcalibTask->FindObject("NEvents");
+ TH1I *nEventsInput = (TH1I *) listcalibTask->FindObject("NEventsInput");
TH2F *absoluteGain = (TH2F *) listcalibTask->FindObject("AbsoluteGain");
TH1F *trdTrack = (TH1F *) listcalibTask->FindObject("TRDTrack");
//
+ TH1I *inEventsInput = (TH1I *) fListHist->FindObject("NEventsInput");
TH1I *inEvents = (TH1I *) fListHist->FindObject("NEvents");
TH2F *iabsoluteGain = (TH2F *) fListHist->FindObject("AbsoluteGain");
// Add
+
+ if(nEventsInput) {
+ if(inEventsInput) {
+ inEventsInput->Add(nEventsInput);
+ //printf("Add Events\n");
+ }
+ else {
+ //printf("Create new Events\n");
+ inEventsInput = new TH1I(*nEventsInput);
+ fListHist->Add(inEventsInput);
+ }
+ }
if(nEvents) {
if(inEvents) {
if(os->GetString().Contains("TRD/Calib/ChamberGainFactor")){
// Get Old gain calibration
AliCDBId *id=AliCDBId::MakeFromString(os->GetString());
+ fFirstRunGain = id->GetFirstRun();
fVersionGainUsed = id->GetVersion();
fSubVersionGainUsed = id->GetSubVersion();
} else if(os->GetString().Contains("TRD/Calib/ChamberVdrift")){
// Get Old drift velocity calibration
AliCDBId *id=AliCDBId::MakeFromString(os->GetString());
+ fFirstRunVdrift = id->GetFirstRun();
fVersionVdriftUsed = id->GetVersion();
fSubVersionVdriftUsed = id->GetSubVersion();
} else if(os->GetString().Contains("TRD/Calib/LocalGainFactor")){
// Get Old drift velocity calibration
AliCDBId *id=AliCDBId::MakeFromString(os->GetString());
+ fFirstRunGainLocal = id->GetFirstRun();
fVersionGainLocalUsed = id->GetVersion();
fSubVersionGainLocalUsed = id->GetSubVersion();
}
//printf("VersionGain %d, SubversionGain %d, VersionLocalGain %d, Subversionlocalgain %d, Versionvdrift %d, Subversionvdrift %d\n",fVersionGainUsed,fSubVersionGainUsed,fVersionGainLocalUsed,fSubVersionGainLocalUsed,fVersionVdriftUsed,fSubVersionVdriftUsed);
// Check
- if((fVersionGainUsed < 0) || (fVersionGainLocalUsed < 0) || (fSubVersionGainUsed < 0) || (fSubVersionGainLocalUsed < 0) || (fVersionVdriftUsed < 0) || (fSubVersionVdriftUsed < 0)) {
+ if((fFirstRunGain < 0) ||
+ (fFirstRunGainLocal < 0) ||
+ (fFirstRunVdrift < 0) ||
+ (fVersionGainUsed < 0) ||
+ (fVersionGainLocalUsed < 0) ||
+ (fSubVersionGainUsed < 0) ||
+ (fSubVersionGainLocalUsed < 0) ||
+ (fVersionVdriftUsed < 0) ||
+ (fSubVersionVdriftUsed < 0)) {
AliError("No recent calibration found");
return kFALSE;
}