AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalJetTriggerQA", kTRUE),
fDebug(kFALSE),
fTriggerClass(""),
- fBitJ1((1<<8)),
- fBitJ2((1<<11)),
fContainerFull(0),
fContainerCharged(1),
fMaxPatchEnergy(0),
fh3PtEtaPhiTracks(0),
fh3PtEtaPhiTracksOnEmcal(0),
fh3PtEtaPhiTracksProp(0),
+ fh2CentPtJetFull(0),
+ fh2CentPtJetCharged(0),
fh3PtEtaPhiJetFull(0),
fh3PtEtaPhiJetCharged(0),
fh2NJetsPtFull(0),
AliAnalysisTaskEmcalJet(name, kTRUE),
fDebug(kFALSE),
fTriggerClass(""),
- fBitJ1((1<<8)),
- fBitJ2((1<<11)),
fContainerFull(0),
fContainerCharged(1),
fMaxPatchEnergy(0),
fh3PtEtaPhiTracks(0),
fh3PtEtaPhiTracksOnEmcal(0),
fh3PtEtaPhiTracksProp(0),
+ fh2CentPtJetFull(0),
+ fh2CentPtJetCharged(0),
fh3PtEtaPhiJetFull(0),
fh3PtEtaPhiJetCharged(0),
fh2NJetsPtFull(0),
}
TString firedTrigClass = InputEvent()->GetFiredTriggerClasses();
-
if(fTriggerClass.Contains(trigType1.Data()) && fTriggerClass.Contains(trigType2.Data())) { //if events with J1&&J2 are requested
if(!firedTrigClass.Contains(trigType1.Data()) || !firedTrigClass.Contains(trigType2.Data()) ) //check if both are fired
return kFALSE;
return kFALSE;
}
}
-
fhNEvents->Fill(1.5);
return kTRUE;
-
}
//________________________________________________________________________
-void AliAnalysisTaskEmcalJetTriggerQA::FindTriggerPatch() {
+void AliAnalysisTaskEmcalJetTriggerQA::FillTriggerPatchHistos() {
//Fill trigger patch histos for main trigger
fHistRhovsCentCharged->GetYaxis()->SetTitle("#rho_{ch} (GeV/c * rad^{-1})");
fOutput->Add(fHistRhovsCentCharged);
- Int_t fgkNCentBins = 20;
+ Int_t fgkNCentBins = 21;
Float_t kMinCent = 0.;
- Float_t kMaxCent = 100.;
+ Float_t kMaxCent = 105.;
Double_t *binsCent = new Double_t[fgkNCentBins+1];
for(Int_t i=0; i<=fgkNCentBins; i++) binsCent[i]=(Double_t)kMinCent + (kMaxCent-kMinCent)/fgkNCentBins*(Double_t)i ;
fh3PtEtaPhiTracksProp = new TH3F("fh3PtEtaPhiTracksProp","fh3PtEtaPhiTracksProp;#it{p}_{T}^{track};#eta;#varphi",fgkNEnBins,binsEn,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi);
fOutput->Add(fh3PtEtaPhiTracksProp);
+ fh2CentPtJetFull = new TH2F("fh2CentPtJetFull","fh2CentPtJetFull;cent;#it{p}_{T}^{jet}",fgkNCentBins,binsCent,fgkNPtBins,binsPt);
+ fOutput->Add(fh2CentPtJetFull);
+
+ fh2CentPtJetCharged = new TH2F("fh2CentPtJetCharged","fh2CentPtJetCharged;cent;#it{p}_{T}^{jet}",fgkNCentBins,binsCent,fgkNPtBins,binsPt);
+ fOutput->Add(fh2CentPtJetCharged);
+
fh3PtEtaPhiJetFull = new TH3F("fh3PtEtaPhiJetFull","fh3PtEtaPhiJetFull;#it{p}_{T}^{jet};#eta;#varphi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi);
fOutput->Add(fh3PtEtaPhiJetFull);
AliClusterContainer *clusCont = GetClusterContainer(0);
if (clusCont) {
Int_t nclusters = clusCont->GetNClusters();
- TString arrName = clusCont->GetArrayName();
for (Int_t ic = 0; ic < nclusters; ic++) {
AliVCluster *cluster = static_cast<AliVCluster*>(clusCont->GetCluster(ic));
if (!cluster) {
}
}
- //cells
+ //Cells
if(fCaloCells) {
const Short_t nCells = fCaloCells->GetNumberOfCells();
AliEmcalJet* jet = GetAcceptJetFromArray(ij,fContainerFull);
if (!jet)
continue; //jet not selected
-
+
Double_t jetPt = jet->Pt() - GetRhoVal(fContainerFull)*jet->Area();
- Double_t jetPhi = jet->Phi();
- Double_t dEPJetFull = -500.0;
- dEPJetFull = RelativeEP(jetPhi , fEPV0);
-
+ if(jetPt>ptLeadJet1) ptLeadJet1=jetPt;
+
+ Double_t dEPJetFull = RelativeEP(jet->Phi() , fEPV0);
fh3JetReacCent->Fill(jet->E(),fCent,dEPJetFull);
fh2FullJetCent->Fill(fCent,dEPJetFull);
- if(jetPt>ptLeadJet1) ptLeadJet1=jetPt;
+ fh2CentPtJetFull->Fill(fCent,jetPt);
+ fh2CentPtJetCharged->Fill(fCent,jetPt);
fh3PtEtaPhiJetFull->Fill(jetPt,jet->Eta(),jet->Phi());
fh3PtEtaAreaJetFull->Fill(jetPt,jet->Eta(),jet->Area());
-
+
//count jets above certain pT threshold
Int_t ptbin = fh2NJetsPtFull->GetYaxis()->FindBin(jetPt);
for(Int_t iptbin = ptbin; iptbin<=fh2NJetsPtFull->GetNbinsY(); iptbin++)
fh2PtNConstituentsCharged->Fill(jetPt,jet->GetNumberOfTracks());
fh2PtNConstituents->Fill(jetPt,jet->GetNumberOfConstituents());
-
fh2PtNEF->Fill(jetPt,jet->NEF());
fh3NEFEtaPhi->Fill(jet->NEF(),jet->Eta(),jet->Phi());
fh2NEFNConstituentsCharged->Fill(jet->NEF(),jet->GetNumberOfTracks());
return kFALSE;
if(fTriggerPatchInfo)
- FindTriggerPatch();
+ FillTriggerPatchHistos();
return kTRUE; // If return kFALSE FillHistogram() will NOT be executed.
}
}
//_________________________________________________________________________
-Float_t AliAnalysisTaskEmcalJetTriggerQA:: RelativeEP(Double_t objAng, Double_t EPAng) const
-{ // function to calculate angle between object and EP in the 1st quadrant (0,Pi/2)
- Double_t dphi = (EPAng - objAng);
-
- // ran into trouble with a few dEP<-Pi so trying this...
- if( dphi<-1*TMath::Pi() ){
- dphi = dphi + 1*TMath::Pi();
- }
-
- if( dphi>1*TMath::Pi()){
- dphi = dphi - 1*TMath::Pi();
- }
-
- if( (dphi>0) && (dphi<1*TMath::Pi()/2) ){
- // Do nothing! we are in quadrant 1
- }else if( (dphi>1*TMath::Pi()/2) && (dphi<1*TMath::Pi()) ){
- dphi = 1*TMath::Pi() - dphi;
- }else if( (dphi<0) && (dphi>-1*TMath::Pi()/2) ){
- dphi = fabs(dphi);
- }else if( (dphi<-1*TMath::Pi()/2) && (dphi>-1*TMath::Pi()) ){
- dphi = dphi + 1*TMath::Pi();
- }
-
- return dphi; // dphi in [0, Pi/2]
-}
+Float_t AliAnalysisTaskEmcalJetTriggerQA::RelativeEP(Double_t objAng, Double_t EPAng) const
+{
+ // function to calculate angle between object and EP in the 1st quadrant (0,Pi/2)
+ Double_t dphi = EPAng - objAng;
+
+ // ran into trouble with a few dEP<-Pi so trying this...
+ if( dphi<-1*TMath::Pi() )
+ dphi = dphi + 1*TMath::Pi();
+ if( dphi>1*TMath::Pi())
+ dphi = dphi - 1*TMath::Pi();
+
+ if( (dphi>0) && (dphi<1*TMath::Pi()/2) ){
+ // Do nothing! we are in quadrant 1
+ }else if( (dphi>1*TMath::Pi()/2) && (dphi<1*TMath::Pi()) ){
+ dphi = 1*TMath::Pi() - dphi;
+ }else if( (dphi<0) && (dphi>-1*TMath::Pi()/2) ){
+ dphi = fabs(dphi);
+ }else if( (dphi<-1*TMath::Pi()/2) && (dphi>-1*TMath::Pi()) ){
+ dphi = dphi + 1*TMath::Pi();
+ }
+ return dphi; // dphi in [0, Pi/2]
+}
void Terminate(Option_t *option);
Bool_t SelectEvent(); //decides if event is used for analysis
- void FindTriggerPatch();
+ void FillTriggerPatchHistos();
//Setters
void SetDebug(Int_t d) { fDebug = d;}
Bool_t FillHistograms() ;
Bool_t Run() ;
Float_t RelativeEP(Double_t objAng, Double_t EPAng) const;
-
Bool_t TestFilterBit(Int_t trigBit, UInt_t bitJetTrig) const {return (Bool_t) ((trigBit & bitJetTrig) != 0);}
-
private:
- Bool_t fDebug; // debug level
+ Bool_t fDebug; // debug level
TString fTriggerClass; // trigger class to analyze EJ1 or EJ2
- UInt_t fBitJ1; // trigger bit of EJE1
- UInt_t fBitJ2; // trigger bit of EJE2
- Int_t fContainerFull; // number of container with full jets DET
- Int_t fContainerCharged; // number of container with charged jets DET
+ Int_t fContainerFull; // number of container with full jets DET
+ Int_t fContainerCharged; // number of container with charged jets DET
Double_t fMaxPatchEnergy; // energy of patch with largest energy
Int_t fTriggerType; // trigger type
Int_t fNFastOR; // size of trigger patch fNFastORxfNFastOR
TH3F *fh3PtEtaPhiTracks; //! pt,eta,phi of tracks
TH3F *fh3PtEtaPhiTracksOnEmcal; //! pt,eta,phi of tracks
TH3F *fh3PtEtaPhiTracksProp; //! pt,eta,phi of tracks
+ TH2F *fh2CentPtJetFull; //! cent, pt of full jets
+ TH2F *fh2CentPtJetCharged; //! cent, pt of charged jets
TH3F *fh3PtEtaPhiJetFull; //! pt,eta,phi of full jets
TH3F *fh3PtEtaPhiJetCharged; //! pt,eta,phi of charged jets
TH2F *fh2NJetsPtFull; //! NJets per event vs pT,jet
TH3F *fh3PatchADCEnergyEtaPhiCenterJ1J2; //! patch ADC energy vs eta, phi at center of patch, low + high threshold
TH2F *fh2CellEnergyVsTime; //! emcal cell energy vs time
TH3F *fh3EClusELeadingCellVsTime; //! cluster energy vs energy of leading cell in cluster vs time of the leading cell
-
- TH3F *fh3JetReacCent;
- TH2F *fh2FullJetCent;
+ TH3F *fh3JetReacCent; //! jet energy vs cent vs dphi(jet,event plane)
+ TH2F *fh2FullJetCent; //! cent vs dphi(jet,event plane)
AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
- ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 9)
+ ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 10)
};
#endif