#include "TH1F.h"
#include "TH2F.h"
#include "TList.h"
#include "TIterator.h"
#include "TParameter.h"
#include "TMap.h"
#include "TRandom.h"
#include "AliTriggerAnalysis.h"
#include "AliLog.h"
#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliMultiplicity.h"
#include "AliESDVZERO.h"
#include "AliESDZDC.h"
#include "AliESDFMD.h"
#include "AliESDVertex.h"
#include "AliESDtrackCuts.h"
#include "AliDAQ.h"
#include "AliESDTrdTrack.h"
#include "AliVCaloTrigger.h"
ClassImp(AliTriggerAnalysis)
AliTriggerAnalysis::AliTriggerAnalysis() :
fSPDGFOThreshold(2),
fSPDGFOEfficiency(0),
fV0TimeOffset(0),
fV0AdcThr(0),
fV0HwAdcThr(2.5),
fV0HwWinLow(61.5),
fV0HwWinHigh(86.5),
fZDCCutRefSum(-568.5),
fZDCCutRefDelta(-2.1),
fZDCCutSigmaSum(3.25),
fZDCCutSigmaDelta(2.25),
fZDCCutRefSumCorr(-65.5),
fZDCCutRefDeltaCorr(-2.1),
fZDCCutSigmaSumCorr(6.0),
fZDCCutSigmaDeltaCorr(1.2),
fZDCCutZNATimeCorrMin(0.0),
fZDCCutZNATimeCorrMax(2.0),
fZDCCutZNCTimeCorrMin(0.0),
fZDCCutZNCTimeCorrMax(5.0),
fASPDCvsTCut(65),
fBSPDCvsTCut(4),
fTRDptHSE(3.),
fTRDpidHSE(144),
fTRDptHQU(2.),
fTRDpidHQU(164.),
fTRDptHEE(3.),
fTRDpidHEE(144),
fTRDminSectorHEE(6),
fTRDmaxSectorHEE(8),
fTRDptHJT(3.),
fTRDnHJT(3),
fDoFMD(kTRUE),
fFMDLowCut(0.2),
fFMDHitCut(0.5),
fHistBitsSPD(0),
fHistFiredBitsSPD(0),
fHistSPDClsVsTrk(0),
fHistV0A(0),
fHistV0C(0),
fHistZDC(0),
fHistTDCZDC(0),
fHistTimeZDC(0),
fHistTimeCorrZDC(0),
fHistFMDA(0),
fHistFMDC(0),
fHistFMDSingle(0),
fHistFMDSum(0),
fHistT0(0),
fTriggerClasses(0),
fMC(kFALSE),
fEsdTrackCuts(0),
fTPCOnly(kFALSE)
{
}
AliTriggerAnalysis::~AliTriggerAnalysis(){
if (fHistBitsSPD) { delete fHistBitsSPD; fHistBitsSPD = 0; }
if (fHistFiredBitsSPD) { delete fHistFiredBitsSPD; fHistFiredBitsSPD = 0; }
if (fHistSPDClsVsTrk) { delete fHistSPDClsVsTrk; fHistSPDClsVsTrk = 0; }
if (fHistV0A) { delete fHistV0A; fHistV0A = 0; }
if (fHistV0C) { delete fHistV0C; fHistV0C = 0; }
if (fHistZDC) { delete fHistZDC; fHistZDC = 0; }
if (fHistTDCZDC) { delete fHistTDCZDC; fHistTDCZDC = 0; }
if (fHistTimeZDC) { delete fHistTimeZDC; fHistTimeZDC = 0; }
if (fHistTimeCorrZDC) { delete fHistTimeCorrZDC; fHistTimeCorrZDC = 0; }
if (fHistFMDA) { delete fHistFMDA; fHistFMDA = 0; }
if (fHistFMDC) { delete fHistFMDC; fHistFMDC = 0; }
if (fHistFMDSingle) { delete fHistFMDSingle; fHistFMDSingle = 0; }
if (fHistFMDSum) { delete fHistFMDSum; fHistFMDSum = 0; }
if (fHistT0) { delete fHistT0; fHistT0 = 0; }
if (fEsdTrackCuts) { delete fEsdTrackCuts; fEsdTrackCuts =0; }
if (fTriggerClasses) { fTriggerClasses->DeleteAll(); delete fTriggerClasses; fTriggerClasses = 0; }
}
void AliTriggerAnalysis::EnableHistograms(Bool_t isLowFlux){
Int_t nBins = isLowFlux ? 600 : 1202;
Int_t nBinsX = isLowFlux ? 100 : 300;
Int_t nBinsY = isLowFlux ? 500 : 1000;
Float_t xMax = isLowFlux ? 400 : 2999.5;
Float_t yMax = isLowFlux ? 4000 : 9999.5;
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
fHistBitsSPD = new TH2F("fHistBitsSPD", "SPD GFO;number of fired chips (offline);number of fired chips (hardware)", nBins, -1.5, -1.5 + nBins, nBins, -1.5, -1.5+nBins);
fHistFiredBitsSPD = new TH1F("fHistFiredBitsSPD", "SPD GFO Hardware;chip number;events", 1200, -0.5, 1199.5);
fHistSPDClsVsTrk = new TH2F("fHistSPDClsVsTrk", "SPD Clusters vs Tracklets; n tracklets; n clusters", nBinsX, -0.5, xMax, nBinsY, -0.5, yMax);
fHistV0A = new TH1F("fHistV0A", "V0A;leading time (ns);events", 400, -100, 100);
fHistV0C = new TH1F("fHistV0C", "V0C;leading time (ns);events", 400, -100, 100);
fHistZDC = new TH1F("fHistZDC", "ZDC;trigger bits;events", 8, -1.5, 6.5);
fHistTDCZDC = new TH1F("fHistTDCZDC", "ZDC;TDC bits;events", 32, -0.5, 32-0.5);
fHistTimeZDC = new TH2F("fHistTimeZDC", "ZDC;TDC timing C-A;TDC timing C+A", 120,-30,30,120,-600,-540);
fHistTimeCorrZDC = new TH2F("fHistTimeCorrZDC", "ZDC;Corrected TDC timing C-A; Corrected TDC timing C+A", 120,-30,30,260,-100,30);
fHistFMDA = new TH1F("fHistFMDA", "FMDA;combinations above threshold;events", 102, -1.5, 100.5);
fHistFMDC = new TH1F("fHistFMDC", "FMDC;combinations above threshold;events", 102, -1.5, 100.5);
fHistFMDSingle = new TH1F("fHistFMDSingle", "FMD single;multiplicity value;counts", 1000, 0, 10);
fHistFMDSum = new TH1F("fHistFMDSum", "FMD sum;multiplicity value;counts", 1000, 0, 10);
fHistT0 = new TH1F("fHistT0", "T0;time (ns);events", 100, -25, 25);
fTriggerClasses = new TMap;
fTriggerClasses->SetOwner();
TH1::AddDirectory(oldStatus);
}
const char* AliTriggerAnalysis::GetTriggerName(Trigger trigger){
static TString str;
UInt_t triggerNoFlags = (UInt_t) trigger % (UInt_t) kStartOfFlags;
switch (triggerNoFlags) {
case kAcceptAll : str = "ACCEPT ALL (bypass!)"; break;
case kMB1 : str = "MB1"; break;
case kMB2 : str = "MB2"; break;
case kMB3 : str = "MB3"; break;
case kSPDGFO : str = "SPD GFO"; break;
case kSPDGFOBits : str = "SPD GFO Bits"; break;
case kSPDGFOL0 : str = "SPD GFO L0 (first layer)"; break;
case kSPDGFOL1 : str = "SPD GFO L1 (second layer)"; break;
case kSPDClsVsTrkBG : str = "Cluster vs Tracklets"; break;
case kV0A : str = "V0 A BB"; break;
case kV0C : str = "V0 C BB"; break;
case kV0OR : str = "V0 OR BB"; break;
case kV0AND : str = "V0 AND BB"; break;
case kV0ABG : str = "V0 A BG"; break;
case kV0CBG : str = "V0 C BG"; break;
case kZDC : str = "ZDC"; break;
case kZDCA : str = "ZDC A"; break;
case kZDCC : str = "ZDC C"; break;
case kZNA : str = "ZN A"; break;
case kZNC : str = "ZN C"; break;
case kZNABG : str = "ZN A BG"; break;
case kZNCBG : str = "ZN C BG"; break;
case kFMDA : str = "FMD A"; break;
case kFMDC : str = "FMD C"; break;
case kFPANY : str = "SPD GFO | V0 | ZDC | FMD"; break;
case kNSD1 : str = "NSD1"; break;
case kMB1Prime: str = "MB1prime"; break;
case kZDCTDCA : str = "ZDC TDC A"; break;
case kZDCTDCC : str = "ZDC TDC C"; break;
case kZDCTime : str = "ZDC Time Cut"; break;
case kCentral : str = "V0 Central"; break;
case kSemiCentral : str = "V0 Semi-central"; break;
case kEmcalL0 : str = "EMCAL"; break;
case kTRDHCO : str = "TRD cosmics"; break;
case kTRDHJT : str = "TRD Jet"; break;
case kTRDHSE : str = "TRD Single Electron"; break;
case kTRDHQU : str = "TRD Quarkonia"; break;
case kTRDHEE : str = "TRD Dielectron"; break;
default: str = ""; break;
}
if (trigger & kOfflineFlag) str += " OFFLINE";
if (trigger & kOneParticle) str += " OneParticle";
if (trigger & kOneTrack) str += " OneTrack";
return str;
}
Bool_t AliTriggerAnalysis::IsTriggerFired(const AliESDEvent* aEsd, Trigger trigger){
if (trigger & kOfflineFlag) return IsOfflineTriggerFired(aEsd, trigger);
return IsTriggerBitFired(aEsd, trigger);
}
Bool_t AliTriggerAnalysis::IsTriggerBitFired(const AliESDEvent* , Trigger ) const {
AliFatal("This IsTriggerBitFired function is obsolete.\n");
return 0;
}
Bool_t AliTriggerAnalysis::IsTriggerBitFired(const AliESDEvent* aEsd, ULong64_t tclass) const {
ULong64_t trigmask = aEsd->GetTriggerMask();
return (trigmask & (1ull << (tclass-1)));
}
Int_t AliTriggerAnalysis::EvaluateTrigger(const AliESDEvent* aEsd, Trigger trigger){
UInt_t triggerNoFlags = (UInt_t) trigger % (UInt_t) kStartOfFlags;
Bool_t offline = trigger & kOfflineFlag;
if (!offline) {
if ( triggerNoFlags==kT0BG
|| triggerNoFlags==kT0Pileup
|| triggerNoFlags==kSPDClsVsTrkBG
|| triggerNoFlags==kZDCA
|| triggerNoFlags==kZDCC
|| triggerNoFlags==kZDCTDCA
|| triggerNoFlags==kZDCTDCC
|| triggerNoFlags==kZDCTime
|| triggerNoFlags==kZNA
|| triggerNoFlags==kZNC
|| triggerNoFlags==kZNABG
|| triggerNoFlags==kZNCBG
|| triggerNoFlags==kFMDA
|| triggerNoFlags==kFMDC
|| triggerNoFlags==kTPCLaserWarmUp
|| triggerNoFlags==kTPCHVdip
|| triggerNoFlags==kIncompleteEvent
|| triggerNoFlags==kEMCAL
|| triggerNoFlags==kEmcalL0
|| triggerNoFlags==kEmcalL1GammaHigh
|| triggerNoFlags==kEmcalL1GammaLow
|| triggerNoFlags==kEmcalL1JetHigh
|| triggerNoFlags==kEmcalL1JetLow
|| triggerNoFlags==kTRDHCO
|| triggerNoFlags==kTRDHJT
|| triggerNoFlags==kTRDHSE
|| triggerNoFlags==kTRDHQU
|| triggerNoFlags==kTRDHEE
) AliFatal(Form("Online trigger not available for trigger %d", triggerNoFlags));
} else {
if ( triggerNoFlags==kCTPV0A
||triggerNoFlags==kCTPV0C
||triggerNoFlags==kCentral
||triggerNoFlags==kSemiCentral
) AliFatal(Form("Offline trigger not available for trigger %d", triggerNoFlags));
}
switch (triggerNoFlags) {
case kCTPV0A: return aEsd->GetHeader()->IsTriggerInputFired("V0A");
case kCTPV0C: return aEsd->GetHeader()->IsTriggerInputFired("V0C");
case kSPDGFO: return SPDFiredChips(aEsd, !offline, kFALSE, 0);
case kSPDGFOL0: return SPDFiredChips(aEsd, !offline, kFALSE, 1);
case kSPDGFOL1: return SPDFiredChips(aEsd, !offline, kFALSE, 2);
case kSPDClsVsTrkBG: return IsSPDClusterVsTrackletBG(aEsd);
case kV0A: return V0Trigger(aEsd, kASide, !offline) == kV0BB;
case kV0C: return V0Trigger(aEsd, kCSide, !offline) == kV0BB;
case kV0ABG: return V0Trigger(aEsd, kASide, !offline) == kV0BG;
case kV0CBG: return V0Trigger(aEsd, kCSide, !offline) == kV0BG;
case kT0: return T0Trigger(aEsd, !offline) == kT0BB;
case kT0BG: return T0Trigger(aEsd, !offline) == kT0DecBG;
case kT0Pileup: return T0Trigger(aEsd, !offline) == kT0DecPileup;
case kZDCA: return ZDCTrigger(aEsd, kASide);
case kZDCC: return ZDCTrigger(aEsd, kCSide);
case kZDCTDCA: return ZDCTDCTrigger(aEsd, kASide);
case kZDCTDCC: return ZDCTDCTrigger(aEsd, kCSide);
case kZDCTime: return ZDCTimeTrigger(aEsd);
case kZNA: return ZDCTDCTrigger(aEsd,kASide,kTRUE,kFALSE,kFALSE);
case kZNC: return ZDCTDCTrigger(aEsd,kCSide,kTRUE,kFALSE,kFALSE);
case kZNABG: return ZDCTimeBGTrigger(aEsd,kASide);
case kZNCBG: return ZDCTimeBGTrigger(aEsd,kCSide);
case kFMDA: return FMDTrigger(aEsd, kASide);
case kFMDC: return FMDTrigger(aEsd, kCSide);
case kTPCLaserWarmUp: return IsLaserWarmUpTPCEvent(aEsd);
case kTPCHVdip: return IsHVdipTPCEvent(aEsd);
case kIncompleteEvent: return IsIncompleteEvent(aEsd);
case kEMCAL: return EMCALCellsTrigger(aEsd);
case kEmcalL0: return EMCALTrigger(aEsd,kEmcalL0);
case kEmcalL1GammaHigh:return EMCALTrigger(aEsd,kEmcalL1GammaHigh);
case kEmcalL1GammaLow: return EMCALTrigger(aEsd,kEmcalL1GammaLow);
case kEmcalL1JetHigh: return EMCALTrigger(aEsd,kEmcalL1JetHigh);
case kEmcalL1JetLow: return EMCALTrigger(aEsd,kEmcalL1JetLow);
case kTRDHCO: return TRDTrigger(aEsd,kTRDHCO);
case kTRDHJT: return TRDTrigger(aEsd,kTRDHJT);
case kTRDHSE: return TRDTrigger(aEsd,kTRDHSE);
case kTRDHQU: return TRDTrigger(aEsd,kTRDHQU);
case kTRDHEE: return TRDTrigger(aEsd,kTRDHEE);
case kCentral: {
if (!aEsd->GetVZEROData()) { AliWarning("V0 centrality trigger bits were not filled!"); return kFALSE; }
if (!aEsd->GetVZEROData()->TestBit(AliESDVZERO::kTriggerChargeBitsFilled)) return kFALSE;
return aEsd->GetVZEROData()->GetTriggerBits() & (1<<AliESDVZERO::kCTA2andCTC2);
}
case kSemiCentral: {
if (!aEsd->GetVZEROData()) { AliWarning("V0 centrality trigger bits were not filled!"); return kFALSE; }
if (!aEsd->GetVZEROData()->TestBit(AliESDVZERO::kTriggerChargeBitsFilled)) return kFALSE;
return aEsd->GetVZEROData()->GetTriggerBits() & (1<<AliESDVZERO::kCTA1andCTC1);
}
default: AliFatal(Form("Trigger type %d not implemented", triggerNoFlags));
}
return kFALSE;
}
Bool_t AliTriggerAnalysis::IsOfflineTriggerFired(const AliESDEvent* aEsd, Trigger trigger){
UInt_t triggerNoFlags = (UInt_t) trigger % (UInt_t) kStartOfFlags;
Bool_t decision = kFALSE;
switch (triggerNoFlags) {
case kAcceptAll: decision = kTRUE; break;
case kMB1: decision = SPDGFOTrigger(aEsd, 0) || V0Trigger(aEsd, kASide, kFALSE) == kV0BB || V0Trigger(aEsd, kCSide, kFALSE) == kV0BB; break;
case kMB2: decision = SPDGFOTrigger(aEsd, 0) && (V0Trigger(aEsd, kASide, kFALSE) == kV0BB || V0Trigger(aEsd, kCSide, kFALSE) == kV0BB); break;
case kMB3: decision = SPDGFOTrigger(aEsd, 0) && V0Trigger(aEsd, kASide, kFALSE) == kV0BB && V0Trigger(aEsd, kCSide, kFALSE) == kV0BB; break;
case kSPDGFO: decision = SPDGFOTrigger(aEsd, 0); break;
case kSPDGFOBits: decision = SPDGFOTrigger(aEsd, 1); break;
case kV0A: decision = V0Trigger(aEsd, kASide, kFALSE) == kV0BB; break;
case kV0C: decision = V0Trigger(aEsd, kCSide, kFALSE) == kV0BB; break;
case kV0OR: decision = V0Trigger(aEsd, kASide, kFALSE) == kV0BB || V0Trigger(aEsd, kCSide, kFALSE) == kV0BB; break;
case kV0AND: decision = V0Trigger(aEsd, kASide, kFALSE) == kV0BB && V0Trigger(aEsd, kCSide, kFALSE) == kV0BB; break;
case kV0ABG: decision = V0Trigger(aEsd, kASide, kFALSE) == kV0BG; break;
case kV0CBG: decision = V0Trigger(aEsd, kCSide, kFALSE) == kV0BG; break;
case kZDC: decision = ZDCTrigger(aEsd, kASide) || ZDCTrigger(aEsd, kCentralBarrel) || ZDCTrigger(aEsd, kCSide); break;
case kZDCA: decision = ZDCTrigger(aEsd, kASide); break;
case kZDCC: decision = ZDCTrigger(aEsd, kCSide); break;
case kZNA: decision = ZDCTDCTrigger(aEsd,kASide,kTRUE,kFALSE,kFALSE); break;
case kZNC: decision = ZDCTDCTrigger(aEsd,kCSide,kTRUE,kFALSE,kFALSE); break;
case kZNABG: decision = ZDCTimeBGTrigger(aEsd,kASide); break;
case kZNCBG: decision = ZDCTimeBGTrigger(aEsd,kCSide); break;
case kFMDA: decision = FMDTrigger(aEsd, kASide); break;
case kFMDC: decision = FMDTrigger(aEsd, kCSide); break;
case kEMCAL: decision = EMCALCellsTrigger(aEsd); break;
case kEmcalL0: decision = EMCALTrigger(aEsd,kEmcalL0); break;
case kEmcalL1GammaHigh: decision = EMCALTrigger(aEsd,kEmcalL1GammaHigh); break;
case kEmcalL1GammaLow: decision = EMCALTrigger(aEsd,kEmcalL1GammaLow); break;
case kEmcalL1JetHigh: decision = EMCALTrigger(aEsd,kEmcalL1JetHigh); break;
case kEmcalL1JetLow: decision = EMCALTrigger(aEsd,kEmcalL1JetLow); break;
case kTRDHCO: decision = TRDTrigger(aEsd,kTRDHCO); break;
case kTRDHJT: decision = TRDTrigger(aEsd,kTRDHJT); break;
case kTRDHSE: decision = TRDTrigger(aEsd,kTRDHSE); break;
case kTRDHQU: decision = TRDTrigger(aEsd,kTRDHQU); break;
case kTRDHEE: decision = TRDTrigger(aEsd,kTRDHEE); break;
case kNSD1: decision = SPDFiredChips(aEsd, 0) >= 5 || (V0Trigger(aEsd, kASide, kFALSE) == kV0BB && V0Trigger(aEsd, kCSide, kFALSE) == kV0BB); break;
case kFPANY: decision |= SPDGFOTrigger(aEsd, 0);
decision |= V0Trigger(aEsd, kASide, kFALSE) == kV0BB;
decision |= V0Trigger(aEsd, kCSide, kFALSE) == kV0BB;
decision |= ZDCTrigger(aEsd, kASide);
decision |= ZDCTrigger(aEsd, kCentralBarrel);
decision |= ZDCTrigger(aEsd, kCSide);
decision |= FMDTrigger(aEsd, kASide);
decision |= FMDTrigger(aEsd, kCSide);
break;
case kMB1Prime: decision |= SPDGFOTrigger(aEsd, 0) && V0Trigger(aEsd, kASide, kFALSE) == kV0BB;
decision |= SPDGFOTrigger(aEsd, 0) && V0Trigger(aEsd, kCSide, kFALSE) == kV0BB;
decision |= V0Trigger(aEsd, kASide, kFALSE) == kV0BB && V0Trigger(aEsd, kCSide, kFALSE) == kV0BB;
break;
default: AliFatal(Form("Trigger type %d not implemented", triggerNoFlags));
}
if (decision && (trigger & kOneParticle)) {
decision = kFALSE;
const AliESDVertex* vertex = aEsd->GetPrimaryVertexSPD();
const AliMultiplicity* mult = aEsd->GetMultiplicity();
if (mult && vertex && vertex->GetNContributors() > 0 && (!vertex->IsFromVertexerZ() || vertex->GetDispersion() < 0.02) && TMath::Abs(vertex->GetZ()) < 5.5) {
for (Int_t i=0; i<mult->GetNumberOfTracklets(); ++i) {
if (TMath::Abs(mult->GetEta(i)) < 1) {
decision = kTRUE;
break;
}
}
}
}
if (decision && (trigger & kOneTrack)) {
decision = kFALSE;
const AliESDVertex* vertex =0x0;
vertex = aEsd->GetPrimaryVertexTracks();
if (!vertex || vertex->GetNContributors() <= 0) vertex = aEsd->GetPrimaryVertexSPD();
Float_t ptmin, ptmax;
fEsdTrackCuts->GetPtRange(ptmin,ptmax);
AliDebug(3, Form("ptmin = %f, ptmax = %f\n",ptmin, ptmax));
if (vertex && vertex->GetNContributors() > 0 && (!vertex->IsFromVertexerZ() || vertex->GetDispersion() < 0.02) && TMath::Abs(vertex->GetZ()) < 10.) {
AliDebug(3,Form("Check on the vertex passed\n"));
for (Int_t i=0; i<aEsd->GetNumberOfTracks(); ++i){
if (fTPCOnly == kFALSE){
if (fEsdTrackCuts->AcceptTrack(aEsd->GetTrack(i))){
AliDebug(2, Form("pt of track = %f --> check passed\n",aEsd->GetTrack(i)->Pt()));
decision = kTRUE;
break;
}
}
else {
AliESDtrack *tpcTrack = fEsdTrackCuts->GetTPCOnlyTrack((AliESDEvent*)aEsd, i);
if (!tpcTrack){
AliDebug(3,Form("track %d is NOT a TPC track",i));
continue;
}
else{
AliDebug(3,Form("track %d IS a TPC track",i));
if (!(fEsdTrackCuts->AcceptTrack(tpcTrack))) {
AliDebug(2, Form("TPC track %d NOT ACCEPTED, pt = %f, eta = %f",i,tpcTrack->Pt(), tpcTrack->Eta()));
delete tpcTrack; tpcTrack = 0x0;
continue;
}
else{
AliDebug(2, Form("TPC track %d ACCEPTED, pt = %f, eta = %f",i,tpcTrack->Pt(), tpcTrack->Eta()));
decision = kTRUE;
delete tpcTrack; tpcTrack = 0x0;
break;
}
}
}
}
}
else{
AliDebug(4,Form("Check on the vertex not passed\n"));
for (Int_t i=0; i<aEsd->GetNumberOfTracks(); ++i){
if (fEsdTrackCuts->AcceptTrack(aEsd->GetTrack(i))){
AliDebug(4,Form("pt of track = %f --> check would be passed if the vertex was ok\n",aEsd->GetTrack(i)->Pt()));
break;
}
}
}
if (!decision) AliDebug(3,("Check for kOneTrack NOT passed\n"));
}
return decision;
}
Int_t AliTriggerAnalysis::SPDFiredChips(const AliESDEvent* aEsd, Int_t origin, Bool_t fillHists, Int_t layer){
const AliMultiplicity* mult = aEsd->GetMultiplicity();
if (!mult) { AliFatal("AliMultiplicity not available"); }
if (origin == 0) {
if (layer == 0) return mult->GetNumberOfFiredChips(0) + mult->GetNumberOfFiredChips(1);
return mult->GetNumberOfFiredChips(layer-1);
}
if (origin == 1) {
Int_t nChips = 0;
Int_t firstChip = 0;
Int_t lastChip = 1200;
if(layer == 1) lastChip = 400;
if(layer == 2) firstChip = 400;
for (Int_t i=firstChip; i<lastChip; i++) {
if (mult->TestFastOrFiredChips(i)) {
if (fSPDGFOEfficiency) if (gRandom->Uniform() > fSPDGFOEfficiency->GetBinContent(i+1)) continue;
nChips++;
if (fillHists) fHistFiredBitsSPD->Fill(i);
}
}
return nChips;
}
return -1;
}
Int_t AliTriggerAnalysis::SSDClusters(const AliVEvent* event){
return event->GetNumberOfITSClusters(4)+event->GetNumberOfITSClusters(5);
}
AliTriggerAnalysis::V0Decision AliTriggerAnalysis::V0Trigger(const AliESDEvent* aEsd, AliceSide side, Bool_t online, Bool_t fillHists){
AliESDVZERO* esdV0 = aEsd->GetVZEROData();
if (!esdV0) { AliError("AliESDVZERO not available"); return kV0Invalid; }
if (side != kASide && side != kCSide) return kV0Invalid;
AliDebug(2,Form("In V0Trigger: %f %f",esdV0->GetV0ATime(),esdV0->GetV0CTime()));
Int_t begin = (side == kASide) ? 32 : 0;
Int_t end = (side == kASide) ? 64 : 32;
if (esdV0->TestBit(AliESDVZERO::kDecisionFilled)) {
if (online) {
if (esdV0->TestBit(AliESDVZERO::kOnlineBitsFilled)) {
for (Int_t i = begin; i < end; ++i) if (esdV0->GetBBFlag(i)) return kV0BB;
for (Int_t i = begin; i < end; ++i) if (esdV0->GetBGFlag(i)) return kV0BG;
return kV0Empty;
}
else {
AliWarning("V0 online trigger analysis is not yet available!");
return kV0BB;
}
}
else {
if (fillHists) {
if (side == kASide && fHistV0A) fHistV0A->Fill(esdV0->GetV0ATime());
if (side == kCSide && fHistV0C) fHistV0C->Fill(esdV0->GetV0CTime());
}
if (side == kASide) return (V0Decision) esdV0->GetV0ADecision();
else if (side == kCSide) return (V0Decision) esdV0->GetV0CDecision();
}
}
Float_t time = 0;
Float_t weight = 0;
if (fMC) {
Int_t runRange;
if (aEsd->GetRunNumber() <= 104803) runRange = 0;
else if (aEsd->GetRunNumber() <= 104876) runRange = 1;
else runRange = 2;
Float_t factors[3][64] = {
{4.6,5.9,6.3,6.0,4.7,5.9,4.9,5.4,4.8,4.1,4.9,4.6,4.5,5.5,5.1,5.8,4.3,4.0,4.0,3.3,3.1,2.9,3.0,5.6,3.3,4.9,3.9,5.3,4.1,4.4,3.9,5.5,5.7,9.5,5.1,5.3,6.6,7.1,8.9,4.4,4.1,5.9,9.0,4.5,4.1,6.0,4.7,7.1,4.2,4.7,3.9,6.3,5.9,4.8,4.7,4.5,4.7,5.4,5.8,5.0,5.1,5.9,5.3,3.6},
{4.6,4.8,4.9,4.8,4.3,4.9,4.4,4.5,4.6,5.0,4.7,4.6,4.7,4.6,4.6,5.5,4.7,4.5,4.7,5.0,6.5,7.6,5.3,4.9,5.5,4.8,4.6,4.9,4.5,4.5,4.6,4.9,5.7,9.8,4.9,5.2,7.1,7.1,8.1,4.4,4.0,6.0,8.3,4.6,4.2,5.6,4.6,6.4,4.4,4.7,4.5,6.5,6.0,4.7,4.5,4.4,4.8,5.5,5.9,5.3,5.0,5.7,5.1,3.6},
{4.7,5.2,4.8,5.0,4.4,5.0,4.4,4.6,4.6,4.5,4.4,4.6,4.5,4.6,4.8,5.5,4.8,4.5,4.4,4.3,5.4,7.7,5.6,5.0,5.4,4.3,4.5,4.8,4.5,4.5,4.6,5.3,5.7,9.6,4.9,5.4,6.1,7.2,8.6,4.4,4.0,5.4,8.8,4.4,4.2,5.8,4.7,6.7,4.3,4.7,4.0,6.1,6.0,4.9,4.8,4.6,4.7,5.2,5.7,5.0,5.0,5.8,5.3,3.6}
};
Float_t dA = 77.4 - 11.0;
Float_t dC = 77.4 - 2.9;
Float_t timeShift[64] = {0.477957 , 0.0889999 , 0.757669 , 0.205439 , 0.239666 , -0.183705 , 0.442873 , -0.281366 , 0.260976 , 0.788995 , 0.974758 , 0.548532 , 0.495023 , 0.868472 , 0.661167 , 0.358307 , 0.221243 , 0.530179 , 1.26696 , 1.33082 , 1.27086 , 1.77133 , 1.10253 , 0.634806 , 2.14838 , 1.50212 , 1.59253 , 1.66122 , 1.16957 , 1.52056 , 1.47791 , 1.81905 , -1.94123 , -1.29124 , -2.16045 , -1.78939 , -3.11111 , -1.87178 , -1.57671 , -1.70311 , -1.81208 , -1.94475 , -2.53058 , -1.7042 , -2.08109 , -1.84416 , -0.61073 , -1.77145 , 0.16999 , -0.0585339 , 0.00401133 , 0.397726 , 0.851111 , 0.264187 , 0.59573 , -0.158263 , 0.584362 , 1.20835 , 0.927573 , 1.13895 , 0.64648 , 2.18747 , 1.68909 , 0.451194};
Float_t dA2 = 2.8, dC2 = 3.3;
if (online) {
for (Int_t i = begin; i < end; ++i) {
Float_t tempAdc = esdV0->GetAdc(i)/factors[runRange][i];
Float_t tempTime = (i >= 32) ? esdV0->GetTime(i)+dA+timeShift[i]+dA2 : esdV0->GetTime(i)+dC+timeShift[i]+dC2;
if (esdV0->GetTime(i) >= 1e-6 && tempTime > fV0HwWinLow && tempTime < fV0HwWinHigh && tempAdc > fV0HwAdcThr) return kV0BB;
}
return kV0Empty;
}
else {
for (Int_t i = begin; i < end; ++i) {
Float_t tempAdc = esdV0->GetAdc(i)/factors[runRange][i];
Float_t tempTime = (i >= 32) ? esdV0->GetTime(i)+dA : esdV0->GetTime(i)+dC;
Float_t tempRawTime = (i >= 32) ? esdV0->GetTime(i)+dA+timeShift[i]+dA2 : esdV0->GetTime(i)+dC+timeShift[i]+dC2;
if (esdV0->GetTime(i) >= 1e-6 && tempRawTime < 125.0 && tempAdc > fV0AdcThr) {
weight += 1.0;
time += tempTime;
}
}
}
}
else {
if (online) {
for (Int_t i = begin; i < end; ++i) {
if (esdV0->GetTime(i) >= 1e-6 && esdV0->GetTime(i) > fV0HwWinLow && esdV0->GetTime(i) < fV0HwWinHigh && esdV0->GetAdc(i) > fV0HwAdcThr) return kV0BB;
}
return kV0Empty;
}
else {
for (Int_t i = begin; i < end; ++i) {
if (esdV0->GetTime(i) > 1e-6 && esdV0->GetAdc(i) > fV0AdcThr) {
Float_t correctedTime = V0CorrectLeadingTime(i, esdV0->GetTime(i), esdV0->GetAdc(i),aEsd->GetRunNumber());
Float_t timeWeight = V0LeadingTimeWeight(esdV0->GetAdc(i));
time += correctedTime*timeWeight;
weight += timeWeight;
}
}
}
}
if (weight > 0) time /= weight;
time += fV0TimeOffset;
if (fillHists) {
if (side == kASide && fHistV0A) fHistV0A->Fill(time);
if (side == kCSide && fHistV0C) fHistV0C->Fill(time);
}
if (side == kASide) {
if (time > 68 && time < 100) return kV0BB;
if (time > 54 && time < 57.5) return kV0BG;
if (time > 57.5 && time < 68) return kV0Fake;
}
if (side == kCSide) {
if (time > 75.5 && time < 100) return kV0BB;
if (time > 69.5 && time < 73) return kV0BG;
if (time > 55 && time < 69.5) return kV0Fake;
}
return kV0Empty;
}
Float_t AliTriggerAnalysis::V0CorrectLeadingTime(Int_t i, Float_t time, Float_t adc, Int_t runNumber) const {
if (time == 0) return 0;
Float_t timeShift[64] = {0.477957 , 0.0889999 , 0.757669 , 0.205439 , 0.239666 , -0.183705 , 0.442873 , -0.281366 , 0.260976 , 0.788995 , 0.974758 , 0.548532 , 0.495023 , 0.868472 , 0.661167 , 0.358307 , 0.221243 , 0.530179 , 1.26696 , 1.33082 , 1.27086 , 1.77133 , 1.10253 , 0.634806 , 2.14838 , 1.50212 , 1.59253 , 1.66122 , 1.16957 , 1.52056 , 1.47791 , 1.81905 , -1.94123 , -1.29124 , -2.16045 , -1.78939 , -3.11111 , -1.87178 , -1.57671 , -1.70311 , -1.81208 , -1.94475 , -2.53058 , -1.7042 , -2.08109 , -1.84416 , -0.61073 , -1.77145 , 0.16999 , -0.0585339 , 0.00401133 , 0.397726 , 0.851111 , 0.264187 , 0.59573 , -0.158263 , 0.584362 , 1.20835 , 0.927573 , 1.13895 , 0.64648 , 2.18747 , 1.68909 , 0.451194};
if(runNumber < 106031) time -= timeShift[i];
if (adc == 0) return time;
Double_t p1 = 1.57345e+1;
Double_t p2 =-4.25603e-1;
if(runNumber >= 106031) adc *= (2.5/4.0);
return (time - p1*TMath::Power(adc,p2));
}
Float_t AliTriggerAnalysis::V0LeadingTimeWeight(Float_t adc) const {
if (adc < 1e-6) return 0;
Float_t p1 = 40.211;
Float_t p2 =-4.25603e-1;
Float_t p3 = 0.5646;
return 1./(p1*p1*TMath::Power(adc,2.*(p2-1.))+p3*p3);
}
Bool_t AliTriggerAnalysis::ZDCTDCTrigger(const AliESDEvent* aEsd, AliceSide side, Bool_t useZN, Bool_t useZP, Bool_t fillHists) const{
AliESDZDC *esdZDC = aEsd->GetESDZDC();
Bool_t zdcNA = kFALSE;
Bool_t zdcNC = kFALSE;
Bool_t zdcPA = kFALSE;
Bool_t zdcPC = kFALSE;
if (fMC) {
Double_t minEnergy = 0;
zdcNA = esdZDC->GetZDCN2Energy()>minEnergy;
zdcNC = esdZDC->GetZDCN1Energy()>minEnergy;
zdcPA = esdZDC->GetZDCP2Energy()>minEnergy;
zdcPC = esdZDC->GetZDCP1Energy()>minEnergy;
}
else {
Bool_t tdc[32] = {kFALSE};
for(Int_t itdc=0; itdc<32; itdc++){
for(Int_t i=0; i<4; i++) tdc[itdc] |= esdZDC->GetZDCTDCData(itdc, i)!=0;
if(fillHists && tdc[itdc]) fHistTDCZDC->Fill(itdc);
}
zdcNA = tdc[12];
zdcNC = tdc[10];
zdcPA = tdc[13];
zdcPC = tdc[11];
}
if (side == kASide) return ((useZP && zdcPA) || (useZN && zdcNA));
if (side == kCSide) return ((useZP && zdcPC) || (useZN && zdcNC));
return kFALSE;
}
Bool_t AliTriggerAnalysis::ZDCTimeTrigger(const AliESDEvent *aEsd, Bool_t fillHists) const {
AliESDZDC *esdZDC = aEsd->GetESDZDC();
if(fMC) {
UInt_t esdFlag = esdZDC->GetESDQuality();
Bool_t znaFired = (esdFlag & 0x01) == 0x01;
Bool_t zncFired = (esdFlag & 0x10) == 0x10;
return znaFired | zncFired;
}
else {
for(Int_t i=0;i<4;++i) {
if (esdZDC->GetZDCTDCData(10,i)==0) continue;
Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i));
Float_t tdcCcorr = esdZDC->GetZDCTDCCorrected(10,i);
for(Int_t j=0;j<4;++j) {
if (esdZDC->GetZDCTDCData(12,j)==0) continue;
Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
Float_t tdcAcorr = esdZDC->GetZDCTDCCorrected(12,j);
if(fillHists) {
fHistTimeZDC->Fill(tdcC-tdcA,tdcC+tdcA);
fHistTimeCorrZDC->Fill(tdcCcorr-tdcAcorr,tdcCcorr+tdcAcorr);
}
if (esdZDC->TestBit(AliESDZDC::kCorrectedTDCFilled)) {
if (TMath::Power((tdcCcorr-tdcAcorr-fZDCCutRefDeltaCorr)/fZDCCutSigmaDeltaCorr,2.)+
TMath::Power((tdcCcorr+tdcAcorr-fZDCCutRefSumCorr )/fZDCCutSigmaSumCorr,2.) < 1.) return kTRUE;
}
else {
if (TMath::Power((tdcC-tdcA-fZDCCutRefDelta)/fZDCCutSigmaDelta,2.)+
TMath::Power((tdcC+tdcA-fZDCCutRefSum )/fZDCCutSigmaSum,2. )<1.0) return kTRUE;
}
}
}
}
return kFALSE;
}
Bool_t AliTriggerAnalysis::ZDCTimeBGTrigger(const AliESDEvent *aEsd, AliceSide side) const{
if(fMC) return kFALSE;
AliESDZDC* zdcData = aEsd->GetESDZDC();
Bool_t znabadhit = kFALSE;
Bool_t zncbadhit = kFALSE;
Float_t tdcCcorr=999, tdcAcorr=999;
for(Int_t i = 0; i < 4; ++i) {
if (zdcData->GetZDCTDCData(10,i)==0) continue;
tdcCcorr = TMath::Abs(zdcData->GetZDCTDCCorrected(10,i));
if(tdcCcorr<fZDCCutZNCTimeCorrMax && tdcCcorr>fZDCCutZNCTimeCorrMin) zncbadhit = kTRUE;
}
for(Int_t i = 0; i < 4; ++i) {
if (zdcData->GetZDCTDCData(12,i)==0) continue;
tdcAcorr = TMath::Abs(zdcData->GetZDCTDCCorrected(12,i));
if(tdcAcorr<fZDCCutZNATimeCorrMax && tdcAcorr>fZDCCutZNATimeCorrMin) znabadhit = kTRUE;
}
if (side == kASide) return znabadhit;
if (side == kCSide) return zncbadhit;
return kFALSE;
}
Bool_t AliTriggerAnalysis::ZDCTrigger(const AliESDEvent* aEsd, AliceSide side) const {
AliESDZDC* zdcData = aEsd->GetESDZDC();
UInt_t quality = zdcData->GetESDQuality();
static UInt_t zpc = 0x20;
static UInt_t znc = 0x10;
static UInt_t zem1 = 0x08;
static UInt_t zem2 = 0x04;
static UInt_t zpa = 0x02;
static UInt_t zna = 0x01;
if (side == kASide && ((quality & zpa) || (quality & zna ))) return kTRUE;
if (side == kCentralBarrel && ((quality & zem1) || (quality & zem2))) return kTRUE;
if (side == kCSide && ((quality & zpc) || (quality & znc ))) return kTRUE;
return kFALSE;
}
Int_t AliTriggerAnalysis::FMDHitCombinations(const AliESDEvent* aEsd, AliceSide side, Bool_t fillHists){
if (!fDoFMD) return -1;
const AliESDFMD* fmdData = (const_cast<AliESDEvent*>(aEsd))->GetFMDData();
if (!fmdData) {
AliError("AliESDFMD not available");
return -1;
}
Int_t detFrom = (side == kASide) ? 1 : 3;
Int_t detTo = (side == kASide) ? 2 : 3;
Int_t triggers = 0;
Float_t totalMult = 0;
for (UShort_t det=detFrom;det<=detTo;det++) {
Int_t nRings = (det == 1 ? 1 : 2);
for (UShort_t ir = 0; ir < nRings; ir++) {
Char_t ring = (ir == 0 ? 'I' : 'O');
UShort_t nsec = (ir == 0 ? 20 : 40);
UShort_t nstr = (ir == 0 ? 512 : 256);
for (UShort_t sec =0; sec < nsec; sec++) {
for (UShort_t strip = 0; strip < nstr; strip++) {
Float_t mult = fmdData->Multiplicity(det,ring,sec,strip);
if (mult == AliESDFMD::kInvalidMult) continue;
if (fillHists) fHistFMDSingle->Fill(mult);
if (mult > fFMDLowCut)
totalMult = totalMult + mult;
else {
if (totalMult > fFMDHitCut) triggers++;
if (fillHists) fHistFMDSum->Fill(totalMult);
totalMult = 0;
}
}
}
}
}
return triggers;
}
Bool_t AliTriggerAnalysis::FMDTrigger(const AliESDEvent* aEsd, AliceSide side){
return FMDHitCombinations(aEsd, side, kFALSE);
}
AliTriggerAnalysis::T0Decision AliTriggerAnalysis::T0Trigger(const AliESDEvent* aEsd, Bool_t online, Bool_t fillHists){
const AliESDTZERO* esdT0 = aEsd->GetESDTZERO();
if (!esdT0) {
AliError("AliESDTZERO not available");
return kT0Invalid;
}
Float_t tvdc0 = esdT0->GetTVDC(0);
if(fillHists) fHistT0->Fill(tvdc0);
if (online) {
if( aEsd->GetHeader()->IsTriggerInputFired("0TVX")) return kT0BB;
}
else {
if (esdT0->GetPileupFlag()) return kT0DecPileup;
if (esdT0->GetBackgroundFlag()) return kT0DecBG;
if (tvdc0>-5 && tvdc0<5 && tvdc0!=0) return kT0BB;
}
if (fMC) if(esdT0->GetT0zVertex()>-12.3 && esdT0->GetT0zVertex() < 10.3) return kT0BB;
return kT0Empty;
}
Bool_t AliTriggerAnalysis::EMCALCellsTrigger(const AliESDEvent *aEsd){
Bool_t isFired = kTRUE;
const Int_t runNumber = aEsd->GetRunNumber();
AliVCaloCells *cells = aEsd->GetEMCALCells();
const Short_t nCells = cells->GetNumberOfCells();
Int_t nCellCount[10] = {0,0,0,0,0,0,0,0,0,0};
for(Int_t iCell=0; iCell<nCells; ++iCell) {
Short_t cellId = cells->GetCellNumber(iCell);
Double_t cellE = cells->GetCellAmplitude(cellId);
Int_t sm = cellId / (24*48);
if (cellE>0.1)
++nCellCount[sm];
}
Bool_t isLedEvent = kFALSE;
if ((runNumber>=144871) && (runNumber<=146860)) {
if (nCellCount[4] > 100)
isLedEvent = kTRUE;
else {
if ((runNumber>=146858) && (runNumber<=146860)) {
if (nCellCount[3]>=35)
isLedEvent = kTRUE;
}
}
}
if (isLedEvent) {
isFired = kFALSE;
}
return isFired;
}
Bool_t AliTriggerAnalysis::TRDTrigger(const AliESDEvent *esd, Trigger trigger){
if(trigger!=kTRDHCO && trigger!=kTRDHJT && trigger!=kTRDHSE && trigger!=kTRDHQU && trigger!=kTRDHEE) {
AliWarning("Beware you are erroneously trying to use this function (wrong trigger)");
return kFALSE;
}
Int_t nTrdTracks = esd->GetNumberOfTrdTracks();
if (nTrdTracks<=0) return kFALSE;
if (trigger==kTRDHCO) return kTRUE;
else if (trigger!=kTRDHJT) {
for (Int_t iTrack = 0; iTrack < nTrdTracks; ++iTrack) {
AliESDTrdTrack *trdTrack = esd->GetTrdTrack(iTrack);
if (!trdTrack) continue;
if(trigger==kTRDHQU) if (TMath::Abs(trdTrack->Pt())>fTRDptHQU && trdTrack->GetPID()>fTRDpidHQU) return kTRUE;
if(trigger==kTRDHSE) if (TMath::Abs(trdTrack->Pt())>fTRDptHSE && trdTrack->GetPID()>fTRDpidHSE) return kTRUE;
if(trigger==kTRDHEE) if (TMath::Abs(trdTrack->Pt())>fTRDptHSE && trdTrack->GetPID()>fTRDpidHSE && trdTrack->GetSector()>=fTRDminSectorHEE && trdTrack->GetSector()<=fTRDmaxSectorHEE) return kTRUE;
}
}
else if (trigger==kTRDHJT) {
Int_t nTracks[90] = { 0 };
for (Int_t iTrack = 0; iTrack < nTrdTracks; ++iTrack) {
AliESDTrdTrack *trdTrack = esd->GetTrdTrack(iTrack);
if (!trdTrack) continue;
Int_t globalStack = 5*trdTrack->GetSector() + trdTrack->GetStack();
if (TMath::Abs(trdTrack->GetPt()) >= fTRDptHJT) ++nTracks[globalStack];
}
for (Int_t iStack = 0; iStack < 90; iStack++) if (nTracks[iStack] >= fTRDnHJT) return kTRUE;
}
return kFALSE;
}
Bool_t AliTriggerAnalysis::EMCALTrigger(const AliVEvent* event, Trigger trigger){
AliVCaloTrigger* emcalTrigger = event->GetCaloTrigger("EMCAL");
if (!emcalTrigger) return kFALSE;
Int_t emcalTriggerBits = 0;
emcalTrigger->GetTriggerBits(emcalTriggerBits);
if (trigger==kEmcalL0 ) { return emcalTriggerBits & 1<<0; }
else if (trigger==kEmcalL1GammaHigh) { return emcalTriggerBits & 1<<1; }
else if (trigger==kEmcalL1GammaLow ) { return emcalTriggerBits & 1<<2; }
else if (trigger==kEmcalL1JetHigh ) { return emcalTriggerBits & 1<<3; }
else if (trigger==kEmcalL1JetLow ) { return emcalTriggerBits & 1<<4; }
else {
AliWarning("Beware you are erroneously trying to use this function (wrong trigger)");
return kFALSE;
}
return kFALSE;
}
Bool_t AliTriggerAnalysis::IsSPDClusterVsTrackletBG(const AliVEvent* event, Bool_t fillHists){
const AliVMultiplicity* mult = event->GetMultiplicity();
if (!mult) { AliFatal("No multiplicity object"); }
Int_t ntracklet = mult->GetNumberOfTracklets();
Int_t spdClusters = event->GetNumberOfITSClusters(0) + event->GetNumberOfITSClusters(1);
if(fillHists) fHistSPDClsVsTrk->Fill(ntracklet,spdClusters);
return spdClusters > Float_t(fASPDCvsTCut) + Float_t(ntracklet)*fBSPDCvsTCut;
}
Bool_t AliTriggerAnalysis::IsLaserWarmUpTPCEvent(const AliESDEvent* esd){
Int_t trackCounter = 0;
for (Int_t i=0; i<esd->GetNumberOfTracks(); ++i) {
AliESDtrack *track = esd->GetTrack(i);
if (!track) continue;
if (track->GetTPCNcls() < 30) continue;
if (TMath::Abs(track->Eta()) > 0.005) continue;
if (track->Pt() < 4) continue;
if (track->GetKinkIndex(0) > 0) continue;
UInt_t status = track->GetStatus();
if ((status&AliESDtrack::kITSrefit)==AliESDtrack::kITSrefit) continue;
if ((status&AliESDtrack::kTPCrefit)!=AliESDtrack::kTPCrefit) continue;
if (track->GetTPCsignal() > 10) continue;
trackCounter++;
}
if (trackCounter > 15) return kTRUE;
return kFALSE;
}
Bool_t AliTriggerAnalysis::IsHVdipTPCEvent(const AliESDEvent* esd) {
if (fMC) return kFALSE;
if (!esd->IsDetectorOn(AliDAQ::kTPC)) return kTRUE;
return kFALSE;
}
Bool_t AliTriggerAnalysis::IsIncompleteEvent(const AliESDEvent* esd){
if (fMC) return kFALSE;
if ((esd->GetEventType() == 7) &&
(esd->GetDAQDetectorPattern() & (1<<4)) &&
!(esd->GetDAQAttributes() & (1<<7))) return kTRUE;
return kFALSE;
}
Long64_t AliTriggerAnalysis::Merge(TCollection* list){
if (!list) return 0;
if (list->IsEmpty()) return 1;
TIterator* iter = list->MakeIterator();
TObject* obj;
const Int_t nHists = 14;
TList collections[nHists];
Int_t count = 0;
while ((obj = iter->Next())) {
AliTriggerAnalysis* entry = dynamic_cast<AliTriggerAnalysis*> (obj);
if (entry == 0) continue;
Int_t n = 0;
collections[n++].Add(entry->fHistV0A);
collections[n++].Add(entry->fHistV0C);
collections[n++].Add(entry->fHistZDC);
collections[n++].Add(entry->fHistTDCZDC);
collections[n++].Add(entry->fHistTimeZDC);
collections[n++].Add(entry->fHistTimeCorrZDC);
collections[n++].Add(entry->fHistFMDA);
collections[n++].Add(entry->fHistFMDC);
collections[n++].Add(entry->fHistFMDSingle);
collections[n++].Add(entry->fHistFMDSum);
collections[n++].Add(entry->fHistBitsSPD);
collections[n++].Add(entry->fHistFiredBitsSPD);
collections[n++].Add(entry->fHistSPDClsVsTrk);
collections[n++].Add(entry->fHistT0);
TIterator* iter2 = entry->fTriggerClasses->MakeIterator();
TObjString* obj2 = 0;
while ((obj2 = dynamic_cast<TObjString*> (iter2->Next()))) {
TParameter<Long64_t>* param2 = static_cast<TParameter<Long64_t>*> (entry->fTriggerClasses->GetValue(obj2));
TParameter<Long64_t>* param1 = dynamic_cast<TParameter<Long64_t>*> (fTriggerClasses->GetValue(obj2));
if (param1) { param1->SetVal(param1->GetVal() + param2->GetVal()); }
else {
param1 = dynamic_cast<TParameter<Long64_t>*> (param2->Clone());
fTriggerClasses->Add(new TObjString(obj2->String()), param1);
}
}
delete iter2;
count++;
}
Int_t n = 0;
fHistV0A->Merge(&collections[n++]);
fHistV0C->Merge(&collections[n++]);
fHistZDC->Merge(&collections[n++]);
fHistTDCZDC->Merge(&collections[n++]);
if (fHistTimeZDC) fHistTimeZDC->Merge(&collections[n++]); else n++;
if (fHistTimeCorrZDC) fHistTimeCorrZDC->Merge(&collections[n++]); else n++;
fHistFMDA->Merge(&collections[n++]);
fHistFMDC->Merge(&collections[n++]);
fHistFMDSingle->Merge(&collections[n++]);
fHistFMDSum->Merge(&collections[n++]);
fHistBitsSPD->Merge(&collections[n++]);
fHistFiredBitsSPD->Merge(&collections[n++]);
fHistSPDClsVsTrk->Merge(&collections[n++]);
fHistT0->Merge(&collections[n++]);
delete iter;
return count+1;
}
void AliTriggerAnalysis::FillHistograms(const AliESDEvent* aEsd){
fHistBitsSPD->Fill(SPDFiredChips(aEsd, 0), SPDFiredChips(aEsd, 1, kTRUE));
V0Trigger(aEsd, kASide, kFALSE, kTRUE);
V0Trigger(aEsd, kCSide, kFALSE, kTRUE);
T0Trigger(aEsd, kFALSE, kTRUE);
ZDCTDCTrigger(aEsd,kASide,kFALSE,kFALSE,kTRUE);
ZDCTimeTrigger(aEsd,kTRUE);
IsSPDClusterVsTrackletBG(aEsd, kTRUE);
AliESDZDC* zdcData = aEsd->GetESDZDC();
if (zdcData) {
UInt_t quality = zdcData->GetESDQuality();
static UInt_t zpc = 0x20;
static UInt_t znc = 0x10;
static UInt_t zem1 = 0x08;
static UInt_t zem2 = 0x04;
static UInt_t zpa = 0x02;
static UInt_t zna = 0x01;
fHistZDC->Fill(1, (quality & zna) ? 1 : 0);
fHistZDC->Fill(2, (quality & zpa) ? 1 : 0);
fHistZDC->Fill(3, (quality & zem2) ? 1 : 0);
fHistZDC->Fill(4, (quality & zem1) ? 1 : 0);
fHistZDC->Fill(5, (quality & znc) ? 1 : 0);
fHistZDC->Fill(6, (quality & zpc) ? 1 : 0);
}
else {
fHistZDC->Fill(-1);
AliError("AliESDZDC not available");
}
if (fDoFMD) {
fHistFMDA->Fill(FMDHitCombinations(aEsd, kASide, kTRUE));
fHistFMDC->Fill(FMDHitCombinations(aEsd, kCSide, kTRUE));
}
}
void AliTriggerAnalysis::SaveHistograms() const {
if (fHistBitsSPD) fHistBitsSPD->Write();
if (fHistFiredBitsSPD) fHistFiredBitsSPD->Write();
if (fHistV0A) fHistV0A->Write();
if (fHistV0C) fHistV0C->Write();
if (fHistZDC) fHistZDC->Write();
if (fHistTDCZDC) fHistTDCZDC->Write();
if (fHistTimeZDC) fHistTimeZDC->Write();
if (fHistTimeCorrZDC) fHistTimeCorrZDC->Write();
if (fHistFMDA) fHistFMDA->Write();
if (fHistFMDC) fHistFMDC->Write();
if (fHistFMDSingle) fHistFMDSingle->Write();
if (fHistFMDSum) fHistFMDSum->Write();
if (fSPDGFOEfficiency) fSPDGFOEfficiency->Write("fSPDGFOEfficiency");
if (fHistSPDClsVsTrk) fHistSPDClsVsTrk->Write("fHistSPDClsVsTrk");
if (fHistT0) fHistT0->Write("fHistT0");
fTriggerClasses->Write("fTriggerClasses", TObject::kSingleKey);
}
void AliTriggerAnalysis::FillTriggerClasses(const AliESDEvent* aEsd){
TParameter<Long64_t>* count = dynamic_cast<TParameter<Long64_t>*> (fTriggerClasses->GetValue(aEsd->GetFiredTriggerClasses().Data()));
if (!count) {
count = new TParameter<Long64_t>(aEsd->GetFiredTriggerClasses(), 0);
fTriggerClasses->Add(new TObjString(aEsd->GetFiredTriggerClasses().Data()), count);
}
count->SetVal(count->GetVal() + 1);
}
void AliTriggerAnalysis::PrintTriggerClasses() const {
Printf("Trigger Classes:");
Printf("Event count for trigger combinations:");
TMap singleTrigger;
singleTrigger.SetOwner();
TIterator* iter = fTriggerClasses->MakeIterator();
TObjString* obj = 0;
while ((obj = dynamic_cast<TObjString*> (iter->Next()))) {
TParameter<Long64_t>* param = static_cast<TParameter<Long64_t>*> (fTriggerClasses->GetValue(obj));
Printf(" %s: %ld triggers", obj->String().Data(), (Long_t)param->GetVal());
TObjArray* tokens = obj->String().Tokenize(" ");
for (Int_t i=0; i<tokens->GetEntries(); i++) {
TParameter<Long64_t>* count = dynamic_cast<TParameter<Long64_t>*> (singleTrigger.GetValue(((TObjString*) tokens->At(i))->String().Data()));
if (!count) {
count = new TParameter<Long64_t>(((TObjString*) tokens->At(i))->String().Data(), 0);
singleTrigger.Add(new TObjString(((TObjString*) tokens->At(i))->String().Data()), count);
}
count->SetVal(count->GetVal() + param->GetVal());
}
delete tokens;
}
delete iter;
Printf("Event count for single trigger:");
iter = singleTrigger.MakeIterator();
while ((obj = dynamic_cast<TObjString*> (iter->Next()))) {
TParameter<Long64_t>* param = static_cast<TParameter<Long64_t>*> (singleTrigger.GetValue(obj));
Printf(" %s: %ld triggers", obj->String().Data(), (Long_t)param->GetVal());
}
delete iter;
singleTrigger.DeleteAll();
}
AliTriggerAnalysis.cxx:10 AliTriggerAnalysis.cxx:11 AliTriggerAnalysis.cxx:12 AliTriggerAnalysis.cxx:13 AliTriggerAnalysis.cxx:14 AliTriggerAnalysis.cxx:15 AliTriggerAnalysis.cxx:16 AliTriggerAnalysis.cxx:17 AliTriggerAnalysis.cxx:18 AliTriggerAnalysis.cxx:19 AliTriggerAnalysis.cxx:20 AliTriggerAnalysis.cxx:21 AliTriggerAnalysis.cxx:22 AliTriggerAnalysis.cxx:23 AliTriggerAnalysis.cxx:24 AliTriggerAnalysis.cxx:25 AliTriggerAnalysis.cxx:26 AliTriggerAnalysis.cxx:27 AliTriggerAnalysis.cxx:28 AliTriggerAnalysis.cxx:29 AliTriggerAnalysis.cxx:30 AliTriggerAnalysis.cxx:31 AliTriggerAnalysis.cxx:32 AliTriggerAnalysis.cxx:33 AliTriggerAnalysis.cxx:34 AliTriggerAnalysis.cxx:35 AliTriggerAnalysis.cxx:36 AliTriggerAnalysis.cxx:37 AliTriggerAnalysis.cxx:38 AliTriggerAnalysis.cxx:39 AliTriggerAnalysis.cxx:40 AliTriggerAnalysis.cxx:41 AliTriggerAnalysis.cxx:42 AliTriggerAnalysis.cxx:43 AliTriggerAnalysis.cxx:44 AliTriggerAnalysis.cxx:45 AliTriggerAnalysis.cxx:46 AliTriggerAnalysis.cxx:47 AliTriggerAnalysis.cxx:48 AliTriggerAnalysis.cxx:49 AliTriggerAnalysis.cxx:50 AliTriggerAnalysis.cxx:51 AliTriggerAnalysis.cxx:52 AliTriggerAnalysis.cxx:53 AliTriggerAnalysis.cxx:54 AliTriggerAnalysis.cxx:55 AliTriggerAnalysis.cxx:56 AliTriggerAnalysis.cxx:57 AliTriggerAnalysis.cxx:58 AliTriggerAnalysis.cxx:59 AliTriggerAnalysis.cxx:60 AliTriggerAnalysis.cxx:61 AliTriggerAnalysis.cxx:62 AliTriggerAnalysis.cxx:63 AliTriggerAnalysis.cxx:64 AliTriggerAnalysis.cxx:65 AliTriggerAnalysis.cxx:66 AliTriggerAnalysis.cxx:67 AliTriggerAnalysis.cxx:68 AliTriggerAnalysis.cxx:69 AliTriggerAnalysis.cxx:70 AliTriggerAnalysis.cxx:71 AliTriggerAnalysis.cxx:72 AliTriggerAnalysis.cxx:73 AliTriggerAnalysis.cxx:74 AliTriggerAnalysis.cxx:75 AliTriggerAnalysis.cxx:76 AliTriggerAnalysis.cxx:77 AliTriggerAnalysis.cxx:78 AliTriggerAnalysis.cxx:79 AliTriggerAnalysis.cxx:80 AliTriggerAnalysis.cxx:81 AliTriggerAnalysis.cxx:82 AliTriggerAnalysis.cxx:83 AliTriggerAnalysis.cxx:84 AliTriggerAnalysis.cxx:85 AliTriggerAnalysis.cxx:86 AliTriggerAnalysis.cxx:87 AliTriggerAnalysis.cxx:88 AliTriggerAnalysis.cxx:89 AliTriggerAnalysis.cxx:90 AliTriggerAnalysis.cxx:91 AliTriggerAnalysis.cxx:92 AliTriggerAnalysis.cxx:93 AliTriggerAnalysis.cxx:94 AliTriggerAnalysis.cxx:95 AliTriggerAnalysis.cxx:96 AliTriggerAnalysis.cxx:97 AliTriggerAnalysis.cxx:98 AliTriggerAnalysis.cxx:99 AliTriggerAnalysis.cxx:100 AliTriggerAnalysis.cxx:101 AliTriggerAnalysis.cxx:102 AliTriggerAnalysis.cxx:103 AliTriggerAnalysis.cxx:104 AliTriggerAnalysis.cxx:105 AliTriggerAnalysis.cxx:106 AliTriggerAnalysis.cxx:107 AliTriggerAnalysis.cxx:108 AliTriggerAnalysis.cxx:109 AliTriggerAnalysis.cxx:110 AliTriggerAnalysis.cxx:111 AliTriggerAnalysis.cxx:112 AliTriggerAnalysis.cxx:113 AliTriggerAnalysis.cxx:114 AliTriggerAnalysis.cxx:115 AliTriggerAnalysis.cxx:116 AliTriggerAnalysis.cxx:117 AliTriggerAnalysis.cxx:118 AliTriggerAnalysis.cxx:119 AliTriggerAnalysis.cxx:120 AliTriggerAnalysis.cxx:121 AliTriggerAnalysis.cxx:122 AliTriggerAnalysis.cxx:123 AliTriggerAnalysis.cxx:124 AliTriggerAnalysis.cxx:125 AliTriggerAnalysis.cxx:126 AliTriggerAnalysis.cxx:127 AliTriggerAnalysis.cxx:128 AliTriggerAnalysis.cxx:129 AliTriggerAnalysis.cxx:130 AliTriggerAnalysis.cxx:131 AliTriggerAnalysis.cxx:132 AliTriggerAnalysis.cxx:133 AliTriggerAnalysis.cxx:134 AliTriggerAnalysis.cxx:135 AliTriggerAnalysis.cxx:136 AliTriggerAnalysis.cxx:137 AliTriggerAnalysis.cxx:138 AliTriggerAnalysis.cxx:139 AliTriggerAnalysis.cxx:140 AliTriggerAnalysis.cxx:141 AliTriggerAnalysis.cxx:142 AliTriggerAnalysis.cxx:143 AliTriggerAnalysis.cxx:144 AliTriggerAnalysis.cxx:145 AliTriggerAnalysis.cxx:146 AliTriggerAnalysis.cxx:147 AliTriggerAnalysis.cxx:148 AliTriggerAnalysis.cxx:149 AliTriggerAnalysis.cxx:150 AliTriggerAnalysis.cxx:151 AliTriggerAnalysis.cxx:152 AliTriggerAnalysis.cxx:153 AliTriggerAnalysis.cxx:154 AliTriggerAnalysis.cxx:155 AliTriggerAnalysis.cxx:156 AliTriggerAnalysis.cxx:157 AliTriggerAnalysis.cxx:158 AliTriggerAnalysis.cxx:159 AliTriggerAnalysis.cxx:160 AliTriggerAnalysis.cxx:161 AliTriggerAnalysis.cxx:162 AliTriggerAnalysis.cxx:163 AliTriggerAnalysis.cxx:164 AliTriggerAnalysis.cxx:165 AliTriggerAnalysis.cxx:166 AliTriggerAnalysis.cxx:167 AliTriggerAnalysis.cxx:168 AliTriggerAnalysis.cxx:169 AliTriggerAnalysis.cxx:170 AliTriggerAnalysis.cxx:171 AliTriggerAnalysis.cxx:172 AliTriggerAnalysis.cxx:173 AliTriggerAnalysis.cxx:174 AliTriggerAnalysis.cxx:175 AliTriggerAnalysis.cxx:176 AliTriggerAnalysis.cxx:177 AliTriggerAnalysis.cxx:178 AliTriggerAnalysis.cxx:179 AliTriggerAnalysis.cxx:180 AliTriggerAnalysis.cxx:181 AliTriggerAnalysis.cxx:182 AliTriggerAnalysis.cxx:183 AliTriggerAnalysis.cxx:184 AliTriggerAnalysis.cxx:185 AliTriggerAnalysis.cxx:186 AliTriggerAnalysis.cxx:187 AliTriggerAnalysis.cxx:188 AliTriggerAnalysis.cxx:189 AliTriggerAnalysis.cxx:190 AliTriggerAnalysis.cxx:191 AliTriggerAnalysis.cxx:192 AliTriggerAnalysis.cxx:193 AliTriggerAnalysis.cxx:194 AliTriggerAnalysis.cxx:195 AliTriggerAnalysis.cxx:196 AliTriggerAnalysis.cxx:197 AliTriggerAnalysis.cxx:198 AliTriggerAnalysis.cxx:199 AliTriggerAnalysis.cxx:200 AliTriggerAnalysis.cxx:201 AliTriggerAnalysis.cxx:202 AliTriggerAnalysis.cxx:203 AliTriggerAnalysis.cxx:204 AliTriggerAnalysis.cxx:205 AliTriggerAnalysis.cxx:206 AliTriggerAnalysis.cxx:207 AliTriggerAnalysis.cxx:208 AliTriggerAnalysis.cxx:209 AliTriggerAnalysis.cxx:210 AliTriggerAnalysis.cxx:211 AliTriggerAnalysis.cxx:212 AliTriggerAnalysis.cxx:213 AliTriggerAnalysis.cxx:214 AliTriggerAnalysis.cxx:215 AliTriggerAnalysis.cxx:216 AliTriggerAnalysis.cxx:217 AliTriggerAnalysis.cxx:218 AliTriggerAnalysis.cxx:219 AliTriggerAnalysis.cxx:220 AliTriggerAnalysis.cxx:221 AliTriggerAnalysis.cxx:222 AliTriggerAnalysis.cxx:223 AliTriggerAnalysis.cxx:224 AliTriggerAnalysis.cxx:225 AliTriggerAnalysis.cxx:226 AliTriggerAnalysis.cxx:227 AliTriggerAnalysis.cxx:228 AliTriggerAnalysis.cxx:229 AliTriggerAnalysis.cxx:230 AliTriggerAnalysis.cxx:231 AliTriggerAnalysis.cxx:232 AliTriggerAnalysis.cxx:233 AliTriggerAnalysis.cxx:234 AliTriggerAnalysis.cxx:235 AliTriggerAnalysis.cxx:236 AliTriggerAnalysis.cxx:237 AliTriggerAnalysis.cxx:238 AliTriggerAnalysis.cxx:239 AliTriggerAnalysis.cxx:240 AliTriggerAnalysis.cxx:241 AliTriggerAnalysis.cxx:242 AliTriggerAnalysis.cxx:243 AliTriggerAnalysis.cxx:244 AliTriggerAnalysis.cxx:245 AliTriggerAnalysis.cxx:246 AliTriggerAnalysis.cxx:247 AliTriggerAnalysis.cxx:248 AliTriggerAnalysis.cxx:249 AliTriggerAnalysis.cxx:250 AliTriggerAnalysis.cxx:251 AliTriggerAnalysis.cxx:252 AliTriggerAnalysis.cxx:253 AliTriggerAnalysis.cxx:254 AliTriggerAnalysis.cxx:255 AliTriggerAnalysis.cxx:256 AliTriggerAnalysis.cxx:257 AliTriggerAnalysis.cxx:258 AliTriggerAnalysis.cxx:259 AliTriggerAnalysis.cxx:260 AliTriggerAnalysis.cxx:261 AliTriggerAnalysis.cxx:262 AliTriggerAnalysis.cxx:263 AliTriggerAnalysis.cxx:264 AliTriggerAnalysis.cxx:265 AliTriggerAnalysis.cxx:266 AliTriggerAnalysis.cxx:267 AliTriggerAnalysis.cxx:268 AliTriggerAnalysis.cxx:269 AliTriggerAnalysis.cxx:270 AliTriggerAnalysis.cxx:271 AliTriggerAnalysis.cxx:272 AliTriggerAnalysis.cxx:273 AliTriggerAnalysis.cxx:274 AliTriggerAnalysis.cxx:275 AliTriggerAnalysis.cxx:276 AliTriggerAnalysis.cxx:277 AliTriggerAnalysis.cxx:278 AliTriggerAnalysis.cxx:279 AliTriggerAnalysis.cxx:280 AliTriggerAnalysis.cxx:281 AliTriggerAnalysis.cxx:282 AliTriggerAnalysis.cxx:283 AliTriggerAnalysis.cxx:284 AliTriggerAnalysis.cxx:285 AliTriggerAnalysis.cxx:286 AliTriggerAnalysis.cxx:287 AliTriggerAnalysis.cxx:288 AliTriggerAnalysis.cxx:289 AliTriggerAnalysis.cxx:290 AliTriggerAnalysis.cxx:291 AliTriggerAnalysis.cxx:292 AliTriggerAnalysis.cxx:293 AliTriggerAnalysis.cxx:294 AliTriggerAnalysis.cxx:295 AliTriggerAnalysis.cxx:296 AliTriggerAnalysis.cxx:297 AliTriggerAnalysis.cxx:298 AliTriggerAnalysis.cxx:299 AliTriggerAnalysis.cxx:300 AliTriggerAnalysis.cxx:301 AliTriggerAnalysis.cxx:302 AliTriggerAnalysis.cxx:303 AliTriggerAnalysis.cxx:304 AliTriggerAnalysis.cxx:305 AliTriggerAnalysis.cxx:306 AliTriggerAnalysis.cxx:307 AliTriggerAnalysis.cxx:308 AliTriggerAnalysis.cxx:309 AliTriggerAnalysis.cxx:310 AliTriggerAnalysis.cxx:311 AliTriggerAnalysis.cxx:312 AliTriggerAnalysis.cxx:313 AliTriggerAnalysis.cxx:314 AliTriggerAnalysis.cxx:315 AliTriggerAnalysis.cxx:316 AliTriggerAnalysis.cxx:317 AliTriggerAnalysis.cxx:318 AliTriggerAnalysis.cxx:319 AliTriggerAnalysis.cxx:320 AliTriggerAnalysis.cxx:321 AliTriggerAnalysis.cxx:322 AliTriggerAnalysis.cxx:323 AliTriggerAnalysis.cxx:324 AliTriggerAnalysis.cxx:325 AliTriggerAnalysis.cxx:326 AliTriggerAnalysis.cxx:327 AliTriggerAnalysis.cxx:328 AliTriggerAnalysis.cxx:329 AliTriggerAnalysis.cxx:330 AliTriggerAnalysis.cxx:331 AliTriggerAnalysis.cxx:332 AliTriggerAnalysis.cxx:333 AliTriggerAnalysis.cxx:334 AliTriggerAnalysis.cxx:335 AliTriggerAnalysis.cxx:336 AliTriggerAnalysis.cxx:337 AliTriggerAnalysis.cxx:338 AliTriggerAnalysis.cxx:339 AliTriggerAnalysis.cxx:340 AliTriggerAnalysis.cxx:341 AliTriggerAnalysis.cxx:342 AliTriggerAnalysis.cxx:343 AliTriggerAnalysis.cxx:344 AliTriggerAnalysis.cxx:345 AliTriggerAnalysis.cxx:346 AliTriggerAnalysis.cxx:347 AliTriggerAnalysis.cxx:348 AliTriggerAnalysis.cxx:349 AliTriggerAnalysis.cxx:350 AliTriggerAnalysis.cxx:351 AliTriggerAnalysis.cxx:352 AliTriggerAnalysis.cxx:353 AliTriggerAnalysis.cxx:354 AliTriggerAnalysis.cxx:355 AliTriggerAnalysis.cxx:356 AliTriggerAnalysis.cxx:357 AliTriggerAnalysis.cxx:358 AliTriggerAnalysis.cxx:359 AliTriggerAnalysis.cxx:360 AliTriggerAnalysis.cxx:361 AliTriggerAnalysis.cxx:362 AliTriggerAnalysis.cxx:363 AliTriggerAnalysis.cxx:364 AliTriggerAnalysis.cxx:365 AliTriggerAnalysis.cxx:366 AliTriggerAnalysis.cxx:367 AliTriggerAnalysis.cxx:368 AliTriggerAnalysis.cxx:369 AliTriggerAnalysis.cxx:370 AliTriggerAnalysis.cxx:371 AliTriggerAnalysis.cxx:372 AliTriggerAnalysis.cxx:373 AliTriggerAnalysis.cxx:374 AliTriggerAnalysis.cxx:375 AliTriggerAnalysis.cxx:376 AliTriggerAnalysis.cxx:377 AliTriggerAnalysis.cxx:378 AliTriggerAnalysis.cxx:379 AliTriggerAnalysis.cxx:380 AliTriggerAnalysis.cxx:381 AliTriggerAnalysis.cxx:382 AliTriggerAnalysis.cxx:383 AliTriggerAnalysis.cxx:384 AliTriggerAnalysis.cxx:385 AliTriggerAnalysis.cxx:386 AliTriggerAnalysis.cxx:387 AliTriggerAnalysis.cxx:388 AliTriggerAnalysis.cxx:389 AliTriggerAnalysis.cxx:390 AliTriggerAnalysis.cxx:391 AliTriggerAnalysis.cxx:392 AliTriggerAnalysis.cxx:393 AliTriggerAnalysis.cxx:394 AliTriggerAnalysis.cxx:395 AliTriggerAnalysis.cxx:396 AliTriggerAnalysis.cxx:397 AliTriggerAnalysis.cxx:398 AliTriggerAnalysis.cxx:399 AliTriggerAnalysis.cxx:400 AliTriggerAnalysis.cxx:401 AliTriggerAnalysis.cxx:402 AliTriggerAnalysis.cxx:403 AliTriggerAnalysis.cxx:404 AliTriggerAnalysis.cxx:405 AliTriggerAnalysis.cxx:406 AliTriggerAnalysis.cxx:407 AliTriggerAnalysis.cxx:408 AliTriggerAnalysis.cxx:409 AliTriggerAnalysis.cxx:410 AliTriggerAnalysis.cxx:411 AliTriggerAnalysis.cxx:412 AliTriggerAnalysis.cxx:413 AliTriggerAnalysis.cxx:414 AliTriggerAnalysis.cxx:415 AliTriggerAnalysis.cxx:416 AliTriggerAnalysis.cxx:417 AliTriggerAnalysis.cxx:418 AliTriggerAnalysis.cxx:419 AliTriggerAnalysis.cxx:420 AliTriggerAnalysis.cxx:421 AliTriggerAnalysis.cxx:422 AliTriggerAnalysis.cxx:423 AliTriggerAnalysis.cxx:424 AliTriggerAnalysis.cxx:425 AliTriggerAnalysis.cxx:426 AliTriggerAnalysis.cxx:427 AliTriggerAnalysis.cxx:428 AliTriggerAnalysis.cxx:429 AliTriggerAnalysis.cxx:430 AliTriggerAnalysis.cxx:431 AliTriggerAnalysis.cxx:432 AliTriggerAnalysis.cxx:433 AliTriggerAnalysis.cxx:434 AliTriggerAnalysis.cxx:435 AliTriggerAnalysis.cxx:436 AliTriggerAnalysis.cxx:437 AliTriggerAnalysis.cxx:438 AliTriggerAnalysis.cxx:439 AliTriggerAnalysis.cxx:440 AliTriggerAnalysis.cxx:441 AliTriggerAnalysis.cxx:442 AliTriggerAnalysis.cxx:443 AliTriggerAnalysis.cxx:444 AliTriggerAnalysis.cxx:445 AliTriggerAnalysis.cxx:446 AliTriggerAnalysis.cxx:447 AliTriggerAnalysis.cxx:448 AliTriggerAnalysis.cxx:449 AliTriggerAnalysis.cxx:450 AliTriggerAnalysis.cxx:451 AliTriggerAnalysis.cxx:452 AliTriggerAnalysis.cxx:453 AliTriggerAnalysis.cxx:454 AliTriggerAnalysis.cxx:455 AliTriggerAnalysis.cxx:456 AliTriggerAnalysis.cxx:457 AliTriggerAnalysis.cxx:458 AliTriggerAnalysis.cxx:459 AliTriggerAnalysis.cxx:460 AliTriggerAnalysis.cxx:461 AliTriggerAnalysis.cxx:462 AliTriggerAnalysis.cxx:463 AliTriggerAnalysis.cxx:464 AliTriggerAnalysis.cxx:465 AliTriggerAnalysis.cxx:466 AliTriggerAnalysis.cxx:467 AliTriggerAnalysis.cxx:468 AliTriggerAnalysis.cxx:469 AliTriggerAnalysis.cxx:470 AliTriggerAnalysis.cxx:471 AliTriggerAnalysis.cxx:472 AliTriggerAnalysis.cxx:473 AliTriggerAnalysis.cxx:474 AliTriggerAnalysis.cxx:475 AliTriggerAnalysis.cxx:476 AliTriggerAnalysis.cxx:477 AliTriggerAnalysis.cxx:478 AliTriggerAnalysis.cxx:479 AliTriggerAnalysis.cxx:480 AliTriggerAnalysis.cxx:481 AliTriggerAnalysis.cxx:482 AliTriggerAnalysis.cxx:483 AliTriggerAnalysis.cxx:484 AliTriggerAnalysis.cxx:485 AliTriggerAnalysis.cxx:486 AliTriggerAnalysis.cxx:487 AliTriggerAnalysis.cxx:488 AliTriggerAnalysis.cxx:489 AliTriggerAnalysis.cxx:490 AliTriggerAnalysis.cxx:491 AliTriggerAnalysis.cxx:492 AliTriggerAnalysis.cxx:493 AliTriggerAnalysis.cxx:494 AliTriggerAnalysis.cxx:495 AliTriggerAnalysis.cxx:496 AliTriggerAnalysis.cxx:497 AliTriggerAnalysis.cxx:498 AliTriggerAnalysis.cxx:499 AliTriggerAnalysis.cxx:500 AliTriggerAnalysis.cxx:501 AliTriggerAnalysis.cxx:502 AliTriggerAnalysis.cxx:503 AliTriggerAnalysis.cxx:504 AliTriggerAnalysis.cxx:505 AliTriggerAnalysis.cxx:506 AliTriggerAnalysis.cxx:507 AliTriggerAnalysis.cxx:508 AliTriggerAnalysis.cxx:509 AliTriggerAnalysis.cxx:510 AliTriggerAnalysis.cxx:511 AliTriggerAnalysis.cxx:512 AliTriggerAnalysis.cxx:513 AliTriggerAnalysis.cxx:514 AliTriggerAnalysis.cxx:515 AliTriggerAnalysis.cxx:516 AliTriggerAnalysis.cxx:517 AliTriggerAnalysis.cxx:518 AliTriggerAnalysis.cxx:519 AliTriggerAnalysis.cxx:520 AliTriggerAnalysis.cxx:521 AliTriggerAnalysis.cxx:522 AliTriggerAnalysis.cxx:523 AliTriggerAnalysis.cxx:524 AliTriggerAnalysis.cxx:525 AliTriggerAnalysis.cxx:526 AliTriggerAnalysis.cxx:527 AliTriggerAnalysis.cxx:528 AliTriggerAnalysis.cxx:529 AliTriggerAnalysis.cxx:530 AliTriggerAnalysis.cxx:531 AliTriggerAnalysis.cxx:532 AliTriggerAnalysis.cxx:533 AliTriggerAnalysis.cxx:534 AliTriggerAnalysis.cxx:535 AliTriggerAnalysis.cxx:536 AliTriggerAnalysis.cxx:537 AliTriggerAnalysis.cxx:538 AliTriggerAnalysis.cxx:539 AliTriggerAnalysis.cxx:540 AliTriggerAnalysis.cxx:541 AliTriggerAnalysis.cxx:542 AliTriggerAnalysis.cxx:543 AliTriggerAnalysis.cxx:544 AliTriggerAnalysis.cxx:545 AliTriggerAnalysis.cxx:546 AliTriggerAnalysis.cxx:547 AliTriggerAnalysis.cxx:548 AliTriggerAnalysis.cxx:549 AliTriggerAnalysis.cxx:550 AliTriggerAnalysis.cxx:551 AliTriggerAnalysis.cxx:552 AliTriggerAnalysis.cxx:553 AliTriggerAnalysis.cxx:554 AliTriggerAnalysis.cxx:555 AliTriggerAnalysis.cxx:556 AliTriggerAnalysis.cxx:557 AliTriggerAnalysis.cxx:558 AliTriggerAnalysis.cxx:559 AliTriggerAnalysis.cxx:560 AliTriggerAnalysis.cxx:561 AliTriggerAnalysis.cxx:562 AliTriggerAnalysis.cxx:563 AliTriggerAnalysis.cxx:564 AliTriggerAnalysis.cxx:565 AliTriggerAnalysis.cxx:566 AliTriggerAnalysis.cxx:567 AliTriggerAnalysis.cxx:568 AliTriggerAnalysis.cxx:569 AliTriggerAnalysis.cxx:570 AliTriggerAnalysis.cxx:571 AliTriggerAnalysis.cxx:572 AliTriggerAnalysis.cxx:573 AliTriggerAnalysis.cxx:574 AliTriggerAnalysis.cxx:575 AliTriggerAnalysis.cxx:576 AliTriggerAnalysis.cxx:577 AliTriggerAnalysis.cxx:578 AliTriggerAnalysis.cxx:579 AliTriggerAnalysis.cxx:580 AliTriggerAnalysis.cxx:581 AliTriggerAnalysis.cxx:582 AliTriggerAnalysis.cxx:583 AliTriggerAnalysis.cxx:584 AliTriggerAnalysis.cxx:585 AliTriggerAnalysis.cxx:586 AliTriggerAnalysis.cxx:587 AliTriggerAnalysis.cxx:588 AliTriggerAnalysis.cxx:589 AliTriggerAnalysis.cxx:590 AliTriggerAnalysis.cxx:591 AliTriggerAnalysis.cxx:592 AliTriggerAnalysis.cxx:593 AliTriggerAnalysis.cxx:594 AliTriggerAnalysis.cxx:595 AliTriggerAnalysis.cxx:596 AliTriggerAnalysis.cxx:597 AliTriggerAnalysis.cxx:598 AliTriggerAnalysis.cxx:599 AliTriggerAnalysis.cxx:600 AliTriggerAnalysis.cxx:601 AliTriggerAnalysis.cxx:602 AliTriggerAnalysis.cxx:603 AliTriggerAnalysis.cxx:604 AliTriggerAnalysis.cxx:605 AliTriggerAnalysis.cxx:606 AliTriggerAnalysis.cxx:607 AliTriggerAnalysis.cxx:608 AliTriggerAnalysis.cxx:609 AliTriggerAnalysis.cxx:610 AliTriggerAnalysis.cxx:611 AliTriggerAnalysis.cxx:612 AliTriggerAnalysis.cxx:613 AliTriggerAnalysis.cxx:614 AliTriggerAnalysis.cxx:615 AliTriggerAnalysis.cxx:616 AliTriggerAnalysis.cxx:617 AliTriggerAnalysis.cxx:618 AliTriggerAnalysis.cxx:619 AliTriggerAnalysis.cxx:620 AliTriggerAnalysis.cxx:621 AliTriggerAnalysis.cxx:622 AliTriggerAnalysis.cxx:623 AliTriggerAnalysis.cxx:624 AliTriggerAnalysis.cxx:625 AliTriggerAnalysis.cxx:626 AliTriggerAnalysis.cxx:627 AliTriggerAnalysis.cxx:628 AliTriggerAnalysis.cxx:629 AliTriggerAnalysis.cxx:630 AliTriggerAnalysis.cxx:631 AliTriggerAnalysis.cxx:632 AliTriggerAnalysis.cxx:633 AliTriggerAnalysis.cxx:634 AliTriggerAnalysis.cxx:635 AliTriggerAnalysis.cxx:636 AliTriggerAnalysis.cxx:637 AliTriggerAnalysis.cxx:638 AliTriggerAnalysis.cxx:639 AliTriggerAnalysis.cxx:640 AliTriggerAnalysis.cxx:641 AliTriggerAnalysis.cxx:642 AliTriggerAnalysis.cxx:643 AliTriggerAnalysis.cxx:644 AliTriggerAnalysis.cxx:645 AliTriggerAnalysis.cxx:646 AliTriggerAnalysis.cxx:647 AliTriggerAnalysis.cxx:648 AliTriggerAnalysis.cxx:649 AliTriggerAnalysis.cxx:650 AliTriggerAnalysis.cxx:651 AliTriggerAnalysis.cxx:652 AliTriggerAnalysis.cxx:653 AliTriggerAnalysis.cxx:654 AliTriggerAnalysis.cxx:655 AliTriggerAnalysis.cxx:656 AliTriggerAnalysis.cxx:657 AliTriggerAnalysis.cxx:658 AliTriggerAnalysis.cxx:659 AliTriggerAnalysis.cxx:660 AliTriggerAnalysis.cxx:661 AliTriggerAnalysis.cxx:662 AliTriggerAnalysis.cxx:663 AliTriggerAnalysis.cxx:664 AliTriggerAnalysis.cxx:665 AliTriggerAnalysis.cxx:666 AliTriggerAnalysis.cxx:667 AliTriggerAnalysis.cxx:668 AliTriggerAnalysis.cxx:669 AliTriggerAnalysis.cxx:670 AliTriggerAnalysis.cxx:671 AliTriggerAnalysis.cxx:672 AliTriggerAnalysis.cxx:673 AliTriggerAnalysis.cxx:674 AliTriggerAnalysis.cxx:675 AliTriggerAnalysis.cxx:676 AliTriggerAnalysis.cxx:677 AliTriggerAnalysis.cxx:678 AliTriggerAnalysis.cxx:679 AliTriggerAnalysis.cxx:680 AliTriggerAnalysis.cxx:681 AliTriggerAnalysis.cxx:682 AliTriggerAnalysis.cxx:683 AliTriggerAnalysis.cxx:684 AliTriggerAnalysis.cxx:685 AliTriggerAnalysis.cxx:686 AliTriggerAnalysis.cxx:687 AliTriggerAnalysis.cxx:688 AliTriggerAnalysis.cxx:689 AliTriggerAnalysis.cxx:690 AliTriggerAnalysis.cxx:691 AliTriggerAnalysis.cxx:692 AliTriggerAnalysis.cxx:693 AliTriggerAnalysis.cxx:694 AliTriggerAnalysis.cxx:695 AliTriggerAnalysis.cxx:696 AliTriggerAnalysis.cxx:697 AliTriggerAnalysis.cxx:698 AliTriggerAnalysis.cxx:699 AliTriggerAnalysis.cxx:700 AliTriggerAnalysis.cxx:701 AliTriggerAnalysis.cxx:702 AliTriggerAnalysis.cxx:703 AliTriggerAnalysis.cxx:704 AliTriggerAnalysis.cxx:705 AliTriggerAnalysis.cxx:706 AliTriggerAnalysis.cxx:707 AliTriggerAnalysis.cxx:708 AliTriggerAnalysis.cxx:709 AliTriggerAnalysis.cxx:710 AliTriggerAnalysis.cxx:711 AliTriggerAnalysis.cxx:712 AliTriggerAnalysis.cxx:713 AliTriggerAnalysis.cxx:714 AliTriggerAnalysis.cxx:715 AliTriggerAnalysis.cxx:716 AliTriggerAnalysis.cxx:717 AliTriggerAnalysis.cxx:718 AliTriggerAnalysis.cxx:719 AliTriggerAnalysis.cxx:720 AliTriggerAnalysis.cxx:721 AliTriggerAnalysis.cxx:722 AliTriggerAnalysis.cxx:723 AliTriggerAnalysis.cxx:724 AliTriggerAnalysis.cxx:725 AliTriggerAnalysis.cxx:726 AliTriggerAnalysis.cxx:727 AliTriggerAnalysis.cxx:728 AliTriggerAnalysis.cxx:729 AliTriggerAnalysis.cxx:730 AliTriggerAnalysis.cxx:731 AliTriggerAnalysis.cxx:732 AliTriggerAnalysis.cxx:733 AliTriggerAnalysis.cxx:734 AliTriggerAnalysis.cxx:735 AliTriggerAnalysis.cxx:736 AliTriggerAnalysis.cxx:737 AliTriggerAnalysis.cxx:738 AliTriggerAnalysis.cxx:739 AliTriggerAnalysis.cxx:740 AliTriggerAnalysis.cxx:741 AliTriggerAnalysis.cxx:742 AliTriggerAnalysis.cxx:743 AliTriggerAnalysis.cxx:744 AliTriggerAnalysis.cxx:745 AliTriggerAnalysis.cxx:746 AliTriggerAnalysis.cxx:747 AliTriggerAnalysis.cxx:748 AliTriggerAnalysis.cxx:749 AliTriggerAnalysis.cxx:750 AliTriggerAnalysis.cxx:751 AliTriggerAnalysis.cxx:752 AliTriggerAnalysis.cxx:753 AliTriggerAnalysis.cxx:754 AliTriggerAnalysis.cxx:755 AliTriggerAnalysis.cxx:756 AliTriggerAnalysis.cxx:757 AliTriggerAnalysis.cxx:758 AliTriggerAnalysis.cxx:759 AliTriggerAnalysis.cxx:760 AliTriggerAnalysis.cxx:761 AliTriggerAnalysis.cxx:762 AliTriggerAnalysis.cxx:763 AliTriggerAnalysis.cxx:764 AliTriggerAnalysis.cxx:765 AliTriggerAnalysis.cxx:766 AliTriggerAnalysis.cxx:767 AliTriggerAnalysis.cxx:768 AliTriggerAnalysis.cxx:769 AliTriggerAnalysis.cxx:770 AliTriggerAnalysis.cxx:771 AliTriggerAnalysis.cxx:772 AliTriggerAnalysis.cxx:773 AliTriggerAnalysis.cxx:774 AliTriggerAnalysis.cxx:775 AliTriggerAnalysis.cxx:776 AliTriggerAnalysis.cxx:777 AliTriggerAnalysis.cxx:778 AliTriggerAnalysis.cxx:779 AliTriggerAnalysis.cxx:780 AliTriggerAnalysis.cxx:781 AliTriggerAnalysis.cxx:782 AliTriggerAnalysis.cxx:783 AliTriggerAnalysis.cxx:784 AliTriggerAnalysis.cxx:785 AliTriggerAnalysis.cxx:786 AliTriggerAnalysis.cxx:787 AliTriggerAnalysis.cxx:788 AliTriggerAnalysis.cxx:789 AliTriggerAnalysis.cxx:790 AliTriggerAnalysis.cxx:791 AliTriggerAnalysis.cxx:792 AliTriggerAnalysis.cxx:793 AliTriggerAnalysis.cxx:794 AliTriggerAnalysis.cxx:795 AliTriggerAnalysis.cxx:796 AliTriggerAnalysis.cxx:797 AliTriggerAnalysis.cxx:798 AliTriggerAnalysis.cxx:799 AliTriggerAnalysis.cxx:800 AliTriggerAnalysis.cxx:801 AliTriggerAnalysis.cxx:802 AliTriggerAnalysis.cxx:803 AliTriggerAnalysis.cxx:804 AliTriggerAnalysis.cxx:805 AliTriggerAnalysis.cxx:806 AliTriggerAnalysis.cxx:807 AliTriggerAnalysis.cxx:808 AliTriggerAnalysis.cxx:809 AliTriggerAnalysis.cxx:810 AliTriggerAnalysis.cxx:811 AliTriggerAnalysis.cxx:812 AliTriggerAnalysis.cxx:813 AliTriggerAnalysis.cxx:814 AliTriggerAnalysis.cxx:815 AliTriggerAnalysis.cxx:816 AliTriggerAnalysis.cxx:817 AliTriggerAnalysis.cxx:818 AliTriggerAnalysis.cxx:819 AliTriggerAnalysis.cxx:820 AliTriggerAnalysis.cxx:821 AliTriggerAnalysis.cxx:822 AliTriggerAnalysis.cxx:823 AliTriggerAnalysis.cxx:824 AliTriggerAnalysis.cxx:825 AliTriggerAnalysis.cxx:826 AliTriggerAnalysis.cxx:827 AliTriggerAnalysis.cxx:828 AliTriggerAnalysis.cxx:829 AliTriggerAnalysis.cxx:830 AliTriggerAnalysis.cxx:831 AliTriggerAnalysis.cxx:832 AliTriggerAnalysis.cxx:833 AliTriggerAnalysis.cxx:834 AliTriggerAnalysis.cxx:835 AliTriggerAnalysis.cxx:836 AliTriggerAnalysis.cxx:837 AliTriggerAnalysis.cxx:838 AliTriggerAnalysis.cxx:839 AliTriggerAnalysis.cxx:840 AliTriggerAnalysis.cxx:841 AliTriggerAnalysis.cxx:842 AliTriggerAnalysis.cxx:843 AliTriggerAnalysis.cxx:844 AliTriggerAnalysis.cxx:845 AliTriggerAnalysis.cxx:846 AliTriggerAnalysis.cxx:847 AliTriggerAnalysis.cxx:848 AliTriggerAnalysis.cxx:849 AliTriggerAnalysis.cxx:850 AliTriggerAnalysis.cxx:851 AliTriggerAnalysis.cxx:852 AliTriggerAnalysis.cxx:853 AliTriggerAnalysis.cxx:854 AliTriggerAnalysis.cxx:855 AliTriggerAnalysis.cxx:856 AliTriggerAnalysis.cxx:857 AliTriggerAnalysis.cxx:858 AliTriggerAnalysis.cxx:859 AliTriggerAnalysis.cxx:860 AliTriggerAnalysis.cxx:861 AliTriggerAnalysis.cxx:862 AliTriggerAnalysis.cxx:863 AliTriggerAnalysis.cxx:864 AliTriggerAnalysis.cxx:865 AliTriggerAnalysis.cxx:866 AliTriggerAnalysis.cxx:867 AliTriggerAnalysis.cxx:868 AliTriggerAnalysis.cxx:869 AliTriggerAnalysis.cxx:870 AliTriggerAnalysis.cxx:871 AliTriggerAnalysis.cxx:872 AliTriggerAnalysis.cxx:873 AliTriggerAnalysis.cxx:874 AliTriggerAnalysis.cxx:875 AliTriggerAnalysis.cxx:876 AliTriggerAnalysis.cxx:877 AliTriggerAnalysis.cxx:878 AliTriggerAnalysis.cxx:879 AliTriggerAnalysis.cxx:880 AliTriggerAnalysis.cxx:881 AliTriggerAnalysis.cxx:882 AliTriggerAnalysis.cxx:883 AliTriggerAnalysis.cxx:884 AliTriggerAnalysis.cxx:885 AliTriggerAnalysis.cxx:886 AliTriggerAnalysis.cxx:887 AliTriggerAnalysis.cxx:888 AliTriggerAnalysis.cxx:889 AliTriggerAnalysis.cxx:890 AliTriggerAnalysis.cxx:891 AliTriggerAnalysis.cxx:892 AliTriggerAnalysis.cxx:893 AliTriggerAnalysis.cxx:894 AliTriggerAnalysis.cxx:895 AliTriggerAnalysis.cxx:896 AliTriggerAnalysis.cxx:897 AliTriggerAnalysis.cxx:898 AliTriggerAnalysis.cxx:899 AliTriggerAnalysis.cxx:900 AliTriggerAnalysis.cxx:901 AliTriggerAnalysis.cxx:902 AliTriggerAnalysis.cxx:903 AliTriggerAnalysis.cxx:904 AliTriggerAnalysis.cxx:905 AliTriggerAnalysis.cxx:906 AliTriggerAnalysis.cxx:907 AliTriggerAnalysis.cxx:908 AliTriggerAnalysis.cxx:909 AliTriggerAnalysis.cxx:910 AliTriggerAnalysis.cxx:911 AliTriggerAnalysis.cxx:912 AliTriggerAnalysis.cxx:913 AliTriggerAnalysis.cxx:914 AliTriggerAnalysis.cxx:915 AliTriggerAnalysis.cxx:916 AliTriggerAnalysis.cxx:917 AliTriggerAnalysis.cxx:918 AliTriggerAnalysis.cxx:919 AliTriggerAnalysis.cxx:920 AliTriggerAnalysis.cxx:921 AliTriggerAnalysis.cxx:922 AliTriggerAnalysis.cxx:923 AliTriggerAnalysis.cxx:924 AliTriggerAnalysis.cxx:925 AliTriggerAnalysis.cxx:926 AliTriggerAnalysis.cxx:927 AliTriggerAnalysis.cxx:928 AliTriggerAnalysis.cxx:929 AliTriggerAnalysis.cxx:930 AliTriggerAnalysis.cxx:931 AliTriggerAnalysis.cxx:932 AliTriggerAnalysis.cxx:933 AliTriggerAnalysis.cxx:934 AliTriggerAnalysis.cxx:935 AliTriggerAnalysis.cxx:936 AliTriggerAnalysis.cxx:937 AliTriggerAnalysis.cxx:938 AliTriggerAnalysis.cxx:939 AliTriggerAnalysis.cxx:940 AliTriggerAnalysis.cxx:941 AliTriggerAnalysis.cxx:942 AliTriggerAnalysis.cxx:943 AliTriggerAnalysis.cxx:944 AliTriggerAnalysis.cxx:945 AliTriggerAnalysis.cxx:946 AliTriggerAnalysis.cxx:947 AliTriggerAnalysis.cxx:948 AliTriggerAnalysis.cxx:949 AliTriggerAnalysis.cxx:950 AliTriggerAnalysis.cxx:951 AliTriggerAnalysis.cxx:952 AliTriggerAnalysis.cxx:953 AliTriggerAnalysis.cxx:954 AliTriggerAnalysis.cxx:955 AliTriggerAnalysis.cxx:956 AliTriggerAnalysis.cxx:957 AliTriggerAnalysis.cxx:958 AliTriggerAnalysis.cxx:959 AliTriggerAnalysis.cxx:960 AliTriggerAnalysis.cxx:961 AliTriggerAnalysis.cxx:962 AliTriggerAnalysis.cxx:963 AliTriggerAnalysis.cxx:964 AliTriggerAnalysis.cxx:965 AliTriggerAnalysis.cxx:966 AliTriggerAnalysis.cxx:967 AliTriggerAnalysis.cxx:968 AliTriggerAnalysis.cxx:969 AliTriggerAnalysis.cxx:970 AliTriggerAnalysis.cxx:971 AliTriggerAnalysis.cxx:972 AliTriggerAnalysis.cxx:973 AliTriggerAnalysis.cxx:974 AliTriggerAnalysis.cxx:975 AliTriggerAnalysis.cxx:976 AliTriggerAnalysis.cxx:977 AliTriggerAnalysis.cxx:978 AliTriggerAnalysis.cxx:979 AliTriggerAnalysis.cxx:980 AliTriggerAnalysis.cxx:981 AliTriggerAnalysis.cxx:982 AliTriggerAnalysis.cxx:983 AliTriggerAnalysis.cxx:984 AliTriggerAnalysis.cxx:985 AliTriggerAnalysis.cxx:986 AliTriggerAnalysis.cxx:987 AliTriggerAnalysis.cxx:988 AliTriggerAnalysis.cxx:989 AliTriggerAnalysis.cxx:990 AliTriggerAnalysis.cxx:991 AliTriggerAnalysis.cxx:992 AliTriggerAnalysis.cxx:993 AliTriggerAnalysis.cxx:994 AliTriggerAnalysis.cxx:995 AliTriggerAnalysis.cxx:996 AliTriggerAnalysis.cxx:997 AliTriggerAnalysis.cxx:998 AliTriggerAnalysis.cxx:999 AliTriggerAnalysis.cxx:1000 AliTriggerAnalysis.cxx:1001 AliTriggerAnalysis.cxx:1002 AliTriggerAnalysis.cxx:1003 AliTriggerAnalysis.cxx:1004 AliTriggerAnalysis.cxx:1005 AliTriggerAnalysis.cxx:1006 AliTriggerAnalysis.cxx:1007 AliTriggerAnalysis.cxx:1008 AliTriggerAnalysis.cxx:1009 AliTriggerAnalysis.cxx:1010 AliTriggerAnalysis.cxx:1011 AliTriggerAnalysis.cxx:1012 AliTriggerAnalysis.cxx:1013 AliTriggerAnalysis.cxx:1014 AliTriggerAnalysis.cxx:1015 AliTriggerAnalysis.cxx:1016 AliTriggerAnalysis.cxx:1017 AliTriggerAnalysis.cxx:1018 AliTriggerAnalysis.cxx:1019 AliTriggerAnalysis.cxx:1020 AliTriggerAnalysis.cxx:1021 AliTriggerAnalysis.cxx:1022 AliTriggerAnalysis.cxx:1023 AliTriggerAnalysis.cxx:1024 AliTriggerAnalysis.cxx:1025 AliTriggerAnalysis.cxx:1026 AliTriggerAnalysis.cxx:1027 AliTriggerAnalysis.cxx:1028 AliTriggerAnalysis.cxx:1029 AliTriggerAnalysis.cxx:1030 AliTriggerAnalysis.cxx:1031 AliTriggerAnalysis.cxx:1032 AliTriggerAnalysis.cxx:1033 AliTriggerAnalysis.cxx:1034 AliTriggerAnalysis.cxx:1035 AliTriggerAnalysis.cxx:1036 AliTriggerAnalysis.cxx:1037 AliTriggerAnalysis.cxx:1038 AliTriggerAnalysis.cxx:1039 AliTriggerAnalysis.cxx:1040 AliTriggerAnalysis.cxx:1041 AliTriggerAnalysis.cxx:1042 AliTriggerAnalysis.cxx:1043 AliTriggerAnalysis.cxx:1044 AliTriggerAnalysis.cxx:1045 AliTriggerAnalysis.cxx:1046 AliTriggerAnalysis.cxx:1047 AliTriggerAnalysis.cxx:1048 AliTriggerAnalysis.cxx:1049 AliTriggerAnalysis.cxx:1050 AliTriggerAnalysis.cxx:1051 AliTriggerAnalysis.cxx:1052 AliTriggerAnalysis.cxx:1053 AliTriggerAnalysis.cxx:1054 AliTriggerAnalysis.cxx:1055 AliTriggerAnalysis.cxx:1056 AliTriggerAnalysis.cxx:1057 AliTriggerAnalysis.cxx:1058 AliTriggerAnalysis.cxx:1059 AliTriggerAnalysis.cxx:1060 AliTriggerAnalysis.cxx:1061 AliTriggerAnalysis.cxx:1062 AliTriggerAnalysis.cxx:1063 AliTriggerAnalysis.cxx:1064 AliTriggerAnalysis.cxx:1065 AliTriggerAnalysis.cxx:1066 AliTriggerAnalysis.cxx:1067 AliTriggerAnalysis.cxx:1068 AliTriggerAnalysis.cxx:1069 AliTriggerAnalysis.cxx:1070 AliTriggerAnalysis.cxx:1071 AliTriggerAnalysis.cxx:1072 AliTriggerAnalysis.cxx:1073 AliTriggerAnalysis.cxx:1074 AliTriggerAnalysis.cxx:1075 AliTriggerAnalysis.cxx:1076 AliTriggerAnalysis.cxx:1077 AliTriggerAnalysis.cxx:1078 AliTriggerAnalysis.cxx:1079 AliTriggerAnalysis.cxx:1080 AliTriggerAnalysis.cxx:1081 AliTriggerAnalysis.cxx:1082 AliTriggerAnalysis.cxx:1083 AliTriggerAnalysis.cxx:1084 AliTriggerAnalysis.cxx:1085 AliTriggerAnalysis.cxx:1086 AliTriggerAnalysis.cxx:1087 AliTriggerAnalysis.cxx:1088 AliTriggerAnalysis.cxx:1089 AliTriggerAnalysis.cxx:1090 AliTriggerAnalysis.cxx:1091 AliTriggerAnalysis.cxx:1092 AliTriggerAnalysis.cxx:1093 AliTriggerAnalysis.cxx:1094 AliTriggerAnalysis.cxx:1095 AliTriggerAnalysis.cxx:1096 AliTriggerAnalysis.cxx:1097 AliTriggerAnalysis.cxx:1098 AliTriggerAnalysis.cxx:1099 AliTriggerAnalysis.cxx:1100 AliTriggerAnalysis.cxx:1101 AliTriggerAnalysis.cxx:1102 AliTriggerAnalysis.cxx:1103 AliTriggerAnalysis.cxx:1104 AliTriggerAnalysis.cxx:1105 AliTriggerAnalysis.cxx:1106 AliTriggerAnalysis.cxx:1107 AliTriggerAnalysis.cxx:1108 AliTriggerAnalysis.cxx:1109 AliTriggerAnalysis.cxx:1110 AliTriggerAnalysis.cxx:1111 AliTriggerAnalysis.cxx:1112 AliTriggerAnalysis.cxx:1113 AliTriggerAnalysis.cxx:1114 AliTriggerAnalysis.cxx:1115 AliTriggerAnalysis.cxx:1116 AliTriggerAnalysis.cxx:1117 AliTriggerAnalysis.cxx:1118 AliTriggerAnalysis.cxx:1119 AliTriggerAnalysis.cxx:1120 AliTriggerAnalysis.cxx:1121 AliTriggerAnalysis.cxx:1122 AliTriggerAnalysis.cxx:1123 AliTriggerAnalysis.cxx:1124 AliTriggerAnalysis.cxx:1125 AliTriggerAnalysis.cxx:1126 AliTriggerAnalysis.cxx:1127 AliTriggerAnalysis.cxx:1128 AliTriggerAnalysis.cxx:1129 AliTriggerAnalysis.cxx:1130 AliTriggerAnalysis.cxx:1131 AliTriggerAnalysis.cxx:1132 AliTriggerAnalysis.cxx:1133 AliTriggerAnalysis.cxx:1134 AliTriggerAnalysis.cxx:1135 AliTriggerAnalysis.cxx:1136 AliTriggerAnalysis.cxx:1137 AliTriggerAnalysis.cxx:1138 AliTriggerAnalysis.cxx:1139 AliTriggerAnalysis.cxx:1140 AliTriggerAnalysis.cxx:1141 AliTriggerAnalysis.cxx:1142 AliTriggerAnalysis.cxx:1143 AliTriggerAnalysis.cxx:1144 AliTriggerAnalysis.cxx:1145 AliTriggerAnalysis.cxx:1146 AliTriggerAnalysis.cxx:1147 AliTriggerAnalysis.cxx:1148 AliTriggerAnalysis.cxx:1149 AliTriggerAnalysis.cxx:1150 AliTriggerAnalysis.cxx:1151 AliTriggerAnalysis.cxx:1152 AliTriggerAnalysis.cxx:1153 AliTriggerAnalysis.cxx:1154 AliTriggerAnalysis.cxx:1155 AliTriggerAnalysis.cxx:1156 AliTriggerAnalysis.cxx:1157 AliTriggerAnalysis.cxx:1158 AliTriggerAnalysis.cxx:1159 AliTriggerAnalysis.cxx:1160 AliTriggerAnalysis.cxx:1161 AliTriggerAnalysis.cxx:1162 AliTriggerAnalysis.cxx:1163 AliTriggerAnalysis.cxx:1164 AliTriggerAnalysis.cxx:1165 AliTriggerAnalysis.cxx:1166 AliTriggerAnalysis.cxx:1167 AliTriggerAnalysis.cxx:1168 AliTriggerAnalysis.cxx:1169 AliTriggerAnalysis.cxx:1170 AliTriggerAnalysis.cxx:1171 AliTriggerAnalysis.cxx:1172 AliTriggerAnalysis.cxx:1173 AliTriggerAnalysis.cxx:1174 AliTriggerAnalysis.cxx:1175 AliTriggerAnalysis.cxx:1176 AliTriggerAnalysis.cxx:1177 AliTriggerAnalysis.cxx:1178 AliTriggerAnalysis.cxx:1179 AliTriggerAnalysis.cxx:1180 AliTriggerAnalysis.cxx:1181 AliTriggerAnalysis.cxx:1182 AliTriggerAnalysis.cxx:1183 AliTriggerAnalysis.cxx:1184 AliTriggerAnalysis.cxx:1185 AliTriggerAnalysis.cxx:1186 AliTriggerAnalysis.cxx:1187 AliTriggerAnalysis.cxx:1188 AliTriggerAnalysis.cxx:1189 AliTriggerAnalysis.cxx:1190 AliTriggerAnalysis.cxx:1191 AliTriggerAnalysis.cxx:1192 AliTriggerAnalysis.cxx:1193 AliTriggerAnalysis.cxx:1194 AliTriggerAnalysis.cxx:1195 AliTriggerAnalysis.cxx:1196 AliTriggerAnalysis.cxx:1197 AliTriggerAnalysis.cxx:1198 AliTriggerAnalysis.cxx:1199 AliTriggerAnalysis.cxx:1200 AliTriggerAnalysis.cxx:1201 AliTriggerAnalysis.cxx:1202 AliTriggerAnalysis.cxx:1203 AliTriggerAnalysis.cxx:1204 AliTriggerAnalysis.cxx:1205 AliTriggerAnalysis.cxx:1206 AliTriggerAnalysis.cxx:1207 AliTriggerAnalysis.cxx:1208 AliTriggerAnalysis.cxx:1209 AliTriggerAnalysis.cxx:1210 AliTriggerAnalysis.cxx:1211 AliTriggerAnalysis.cxx:1212 AliTriggerAnalysis.cxx:1213 AliTriggerAnalysis.cxx:1214 AliTriggerAnalysis.cxx:1215 AliTriggerAnalysis.cxx:1216 AliTriggerAnalysis.cxx:1217 AliTriggerAnalysis.cxx:1218 AliTriggerAnalysis.cxx:1219 AliTriggerAnalysis.cxx:1220 AliTriggerAnalysis.cxx:1221 AliTriggerAnalysis.cxx:1222 AliTriggerAnalysis.cxx:1223 AliTriggerAnalysis.cxx:1224 AliTriggerAnalysis.cxx:1225 AliTriggerAnalysis.cxx:1226 AliTriggerAnalysis.cxx:1227 AliTriggerAnalysis.cxx:1228 AliTriggerAnalysis.cxx:1229 AliTriggerAnalysis.cxx:1230 AliTriggerAnalysis.cxx:1231 AliTriggerAnalysis.cxx:1232 AliTriggerAnalysis.cxx:1233 AliTriggerAnalysis.cxx:1234 AliTriggerAnalysis.cxx:1235 AliTriggerAnalysis.cxx:1236 AliTriggerAnalysis.cxx:1237 AliTriggerAnalysis.cxx:1238 AliTriggerAnalysis.cxx:1239 AliTriggerAnalysis.cxx:1240 AliTriggerAnalysis.cxx:1241 AliTriggerAnalysis.cxx:1242