fAcceptFastCluster(kFALSE), fRemoveLEDEvents(kTRUE),
//Trigger rejection
fRemoveBadTriggerEvents(0), fTriggerPatchClusterMatch(0),
-fTriggerPatchTimeWindow(), fTriggerEventThreshold(0),
+fTriggerPatchTimeWindow(), fTriggerL0EventThreshold(0), fTriggerL1EventThreshold(0),
fTriggerClusterBC(0), fTriggerClusterIndex(0), fTriggerClusterId(0),
fIsExoticEvent(0), fIsBadCellEvent(0), fIsBadMaxCellEvent(0),
fIsTriggerMatch(0), fIsTriggerMatchOpenCut(),
fTriggerPatchTimeWindow[0] = 8;
fTriggerPatchTimeWindow[1] = 9;
- fTriggerClusterBC = -10000 ;
- fTriggerEventThreshold = 2.;
- fTriggerClusterIndex = -1;
- fTriggerClusterId = -1;
+ fTriggerClusterBC = -10000 ;
+ fTriggerL0EventThreshold = 2.;
+ fTriggerClusterIndex = -1;
+ fTriggerClusterId = -1;
//Jets
fInputNonStandardJetBranchName = "jets";
// get object pointer
AliVCaloTrigger *caloTrigger = GetInputEvent()->GetCaloTrigger( "EMCAL" );
+ // Recover the threshold of the event that triggered, only possible for L1
+ if (IsEventEMCALL1Gamma1()) fTriggerL1EventThreshold = 0.07874*caloTrigger->GetL1Threshold(1);
+ else if(IsEventEMCALL1Gamma2()) fTriggerL1EventThreshold = 0.07874*caloTrigger->GetL1Threshold(3);
+ else if(IsEventEMCALL1Jet1 ()) fTriggerL1EventThreshold = 0.07874*caloTrigger->GetL1Threshold(0);
+ else if(IsEventEMCALL1Jet2 ()) fTriggerL1EventThreshold = 0.07874*caloTrigger->GetL1Threshold(2);
+
+// printf("L1 trigger Threshold Jet1 %f, Gamma1 %f, Jet2 %f, Gamma2 %f\n",
+// 0.07874*caloTrigger->GetL1Threshold(0),
+// 0.07874*caloTrigger->GetL1Threshold(1),
+// 0.07874*caloTrigger->GetL1Threshold(2),
+// 0.07874*caloTrigger->GetL1Threshold(3));
+
//printf("CaloTrigger Entries %d\n",caloTrigger->GetEntries() );
// class is not empty
Int_t absIdMaxMax = -1;
Int_t nOfHighECl = 0 ;
-
- Float_t minE = fTriggerEventThreshold / 2.;
+
+ Float_t triggerThreshold = fTriggerL1EventThreshold;
+ if(IsEventEMCALL0()) triggerThreshold = fTriggerL0EventThreshold;
+
+ Float_t minE = triggerThreshold / 2.;
+
// This method is not really suitable for JET trigger
// but in case, reduce the energy cut since we do not trigger on high energy particle
if(IsEventEMCALL1Jet() || minE < 1) minE = 1;
Bool_t CheckEventTriggers();
- Bool_t IsExoticEvent() { return fIsExoticEvent ; }
- Bool_t IsBadCellTriggerEvent() { return fIsBadCellEvent ; }
- Bool_t IsBadMaxCellTriggerEvent() { return fIsBadMaxCellEvent ; }
- Bool_t IsTriggerMatched() { return fIsTriggerMatch ; }
- Bool_t IsTriggerMatchedOpenCuts(Int_t i) { return fIsTriggerMatchOpenCut[i]; }
+ Bool_t IsExoticEvent() const { return fIsExoticEvent ; }
+ Bool_t IsBadCellTriggerEvent() const { return fIsBadCellEvent ; }
+ Bool_t IsBadMaxCellTriggerEvent() const { return fIsBadMaxCellEvent ; }
+ Bool_t IsTriggerMatched() const { return fIsTriggerMatch ; }
+ Bool_t IsTriggerMatchedOpenCuts(Int_t i) const { return fIsTriggerMatchOpenCut[i]; }
- Int_t GetTriggerClusterBC() { return fTriggerClusterBC ; }
- Int_t GetTriggerClusterIndex() { return fTriggerClusterIndex ; }
- Int_t GetTriggerClusterId() { return fTriggerClusterId ; }
+ Int_t GetTriggerClusterBC() const { return fTriggerClusterBC ; }
+ Int_t GetTriggerClusterIndex() const { return fTriggerClusterIndex ; }
+ Int_t GetTriggerClusterId() const { return fTriggerClusterId ; }
- Float_t GetEventTriggerThreshold() { return fTriggerEventThreshold ; }
- void SetEventTriggerThreshold(Float_t tr) { fTriggerEventThreshold = tr ; }
+ Float_t GetEventTriggerL0Threshold() const { return fTriggerL0EventThreshold ; }
+ void SetEventTriggerL0Threshold(Float_t tr) { fTriggerL0EventThreshold = tr ; }
+ Float_t GetEventTriggerL1Threshold() const { return fTriggerL1EventThreshold ; }
void SetTriggerPatchTimeWindow(Int_t min, Int_t max) { fTriggerPatchTimeWindow[0] = min ;
fTriggerPatchTimeWindow[1] = max ; }
Bool_t fRemoveBadTriggerEvents; // Remove triggered events because trigger was exotic, bad, or out of BC
Bool_t fTriggerPatchClusterMatch; // Search for the trigger patch and check if associated cluster was the trigger
Int_t fTriggerPatchTimeWindow[2]; // Trigger patch selection window
- Float_t fTriggerEventThreshold; // Threshold to look for triggered events
+ Float_t fTriggerL0EventThreshold; // L0 Threshold to look for triggered events, set outside
+ Float_t fTriggerL1EventThreshold; // L1 Threshold to look for triggered events, set in data
Int_t fTriggerClusterBC; // Event triggered by a cluster in BC -5 0 to 5
Int_t fTriggerClusterIndex; // Index in clusters array of trigger cluster
Int_t fTriggerClusterId; // Id of trigger cluster (cluster->GetID())
AliCaloTrackReader( const AliCaloTrackReader & r) ; // cpy ctor
AliCaloTrackReader & operator = (const AliCaloTrackReader & r) ; // cpy assignment
- ClassDef(AliCaloTrackReader,66)
+ ClassDef(AliCaloTrackReader,67)
} ;
if(bc==0)
{
- Float_t threshold = GetReader()->GetEventTriggerThreshold() ;
+ Float_t threshold = GetReader()->GetEventTriggerL1Threshold() ;
+ if(GetReader()->IsEventEMCALL0()) threshold = GetReader()->GetEventTriggerL0Threshold() ;
+
if(ecluster > threshold)
fhEtaPhiTriggerEMCALBCClusterOverTh->Fill(etacluster, phicluster);
else if(ecluster > threshold-1)
fhTimeTriggerEMCALBCUMCluster->Fill(ecluster, tofcluster);
if(bc==0)
{
- Float_t threshold = GetReader()->GetEventTriggerThreshold() ;
+ Float_t threshold = GetReader()->GetEventTriggerL1Threshold() ;
+ if(GetReader()->IsEventEMCALL0()) threshold = GetReader()->GetEventTriggerL0Threshold() ;
+
if(ecluster > threshold)
fhEtaPhiTriggerEMCALBCUMClusterOverTh->Fill(etacluster, phicluster);
else if(ecluster > threshold-1)
//reader->SwitchOffTriggerClusterTimeRecal() ;
reader->SetTriggerPatchTimeWindow(8,9); // L0
- if (kRunNumber < 146861) reader->SetEventTriggerThreshold(3.);
- else if(kRunNumber < 154000) reader->SetEventTriggerThreshold(4.);
- else if(kRunNumber < 165000) reader->SetEventTriggerThreshold(5.5);
- else reader->SetEventTriggerThreshold(8); // CAREFUL!
+ if (kRunNumber < 146861) reader->SetEventTriggerL0Threshold(3.);
+ else if(kRunNumber < 154000) reader->SetEventTriggerL0Threshold(4.);
+ else if(kRunNumber < 165000) reader->SetEventTriggerL0Threshold(5.5);
+
//redefine for other periods, triggers
//if(!kUseKinematics) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma