9 #include <TClonesArray.h>
12 #include <TLorentzVector.h>
15 #include "AliEMCALGeometry.h"
17 #include "AliVCluster.h"
18 #include "AliVParticle.h"
19 #include "AliVTrack.h"
32 fHistPtEMCALvsCent(0),
35 fHistDeltaScalevsCent(0),
36 fHistScaleEmcalvsCent(0),
37 fHistScale2EmcalvsCent(0),
38 fHistDeltaScale2EmcalvsCent(0),
39 fHistChScalevsCent(0),
40 fHistChScale2EmcalvsCent(0),
41 fHistPtTPCvsNtrack(0),
42 fHistPtEMCALvsNtrack(0),
44 fHistScalevsNtrack(0),
45 fHistDeltaScalevsNtrack(0),
46 fHistScaleEmcalvsNtrack(0),
47 fHistScale2EmcalvsNtrack(0),
48 fHistChScalevsNtrack(0),
49 fHistChScale2EmcalvsNtrack(0),
50 fHistTrackPtvsCent(0),
51 fHistClusterPtvsCent(0),
53 fHistClusterEtaPhi(0),
54 fHistScalevsScale2Emcal(0),
55 fHistScalevsScaleEmcal(0),
56 fHistScaleEmcalvsScale2Emcal(0),
62 SetMakeGeneralHistograms(kTRUE);
72 fHistPtEMCALvsCent(0),
75 fHistDeltaScalevsCent(0),
76 fHistScaleEmcalvsCent(0),
77 fHistScale2EmcalvsCent(0),
78 fHistDeltaScale2EmcalvsCent(0),
79 fHistChScalevsCent(0),
80 fHistChScale2EmcalvsCent(0),
81 fHistPtTPCvsNtrack(0),
82 fHistPtEMCALvsNtrack(0),
84 fHistScalevsNtrack(0),
85 fHistDeltaScalevsNtrack(0),
86 fHistScaleEmcalvsNtrack(0),
87 fHistScale2EmcalvsNtrack(0),
88 fHistChScalevsNtrack(0),
89 fHistChScale2EmcalvsNtrack(0),
90 fHistTrackPtvsCent(0),
91 fHistClusterPtvsCent(0),
93 fHistClusterEtaPhi(0),
94 fHistScalevsScale2Emcal(0),
95 fHistScalevsScaleEmcal(0),
96 fHistScaleEmcalvsScale2Emcal(0),
119 fHistPtTPCvsCent =
new TH2F(
"fHistPtTPCvsCent",
"fHistPtTPCvsCent", 101, -1, 100, 750, 0, 1500);
125 fHistPtEMCALvsCent =
new TH2F(
"fHistPtEMCALvsCent",
"fHistPtEMCALvsCent", 101, -1, 100, 250, 0, 500);
131 fHistEtvsCent =
new TH2F(
"fHistEtvsCent",
"fHistEtvsCent", 101, -1, 100, 250, 0, 500);
133 fHistEtvsCent->GetYaxis()->SetTitle(
"#sum E_{T,cluster} GeV");
137 fHistScalevsCent =
new TH2F(
"fHistScalevsCent",
"fHistScalevsCent", 101, -1, 100, 500, 0, 5);
139 fHistScalevsCent->GetYaxis()->SetTitle(
"s_{TPC} = (#sum E_{T,cluster} + #sum p_{T,track}^{TPC}) / #sum p_{T,track}^{TPC}");
143 fHistDeltaScalevsCent =
new TH2F(
"fHistDeltaScalevsCent",
"fHistDeltaScalevsCent", 101, -1, 100, 500, -2.5, 2.5);
149 fHistScaleEmcalvsCent=
new TH2F(
"fHistScaleEmcalvsCent",
"fHistScaleEmcalvsCent", 101, -1, 100, 500, 0, 5);
155 fHistScale2EmcalvsCent =
new TH2F(
"fHistScale2EmcalvsCent",
"fHistScale2EmcalvsCent", 101, -1, 100, 500, 0, 5);
161 fHistDeltaScale2EmcalvsCent =
new TH2F(
"fHistDeltaScale2EmcalvsCent",
"fHistDeltaScale2EmcalvsCent", 101, -1, 100, 500, -2.5, 2.5);
167 fHistChScalevsCent =
new TH2F(
"fHistChScalevsCent",
"fHistChScalevsCent", 101, -1, 100, 500, 0, 5);
173 fHistChScale2EmcalvsCent =
new TH2F(
"fHistChScale2EmcalvsCent",
"fHistChScale2EmcalvsCent", 101, -1, 100, 500, 0, 5);
179 fHistPtTPCvsNtrack =
new TH2F(
"fHistPtTPCvsNtrack",
"fHistPtTPCvsNtrack", 800, 0, 4000, 750, 0, 1500);
185 fHistPtEMCALvsNtrack =
new TH2F(
"fHistPtEMCALvsNtrack",
"fHistPtEMCALvsNtrack", 800, 0, 4000, 500, 0, 1000);
191 fHistEtvsNtrack =
new TH2F(
"fHistEtvsNtrack",
"fHistEtvsNtrack", 800, 0, 4000, 500, 0, 1000);
197 fHistScalevsNtrack =
new TH2F(
"fHistScalevsNtrack",
"fHistScalevsNtrack", 800, 0, 4000, 500, 0, 5);
203 fHistDeltaScalevsNtrack =
new TH2F(
"fHistDeltaScalevsNtrack",
"fHistDeltaScalevsNtrack", 800, 0, 4000, 500, -2.5, 2.5);
209 fHistScaleEmcalvsNtrack =
new TH2F(
"fHistScaleEmcalvsNtrack",
"fHistScaleEmcalvsNtrack", 800, 0, 4000, 500, 0, 5);
215 fHistScale2EmcalvsNtrack =
new TH2F(
"fHistScale2EmcalvsNtrack",
"fHistScale2EmcalvsNtrack", 800, 0, 4000, 500, 0, 5);
221 fHistChScalevsNtrack =
new TH2F(
"fHistChScalevsNtrack",
"fHistChScalevsNtrack", 800, 0, 4000, 500, 0, 5);
233 fHistTrackPtvsCent =
new TH2F(
"fHistTrackPtvsCent",
"fHistTrackPtvsCent", 101, -1, 100, 500, 0, 100);
239 fHistClusterPtvsCent =
new TH2F(
"fHistClusterPtvsCent",
"fHistClusterPtvsCent", 101, -1, 100, 500, 0, 100);
245 fHistTrackEtaPhi =
new TH2F(
"fHistTrackEtaPhi",
"fHistTrackEtaPhi", 100, -1.0, 1.0, 101, 0, 2.02*TMath::Pi());
251 fHistClusterEtaPhi =
new TH2F(
"fHistClusterEtaPhi",
"fHistClusterEtaPhi", 100, -1.0, 1.0, 101, 0, 2.02*TMath::Pi());
263 fHistScalevsScaleEmcal =
new TH2F(
"fHistScalevsScaleEmcal",
"fHistScalevsScaleEmcal", 500, 0, 5, 500, 0, 5);
294 Double_t EmcalMinPhi =
fGeom->GetArm1PhiMin() * TMath::DegToRad();
295 Double_t EmcalMaxPhi =
fGeom->GetArm1PhiMax() * TMath::DegToRad();
300 const Double_t EmcalWidth = (EmcalMaxPhi-EmcalMinPhi)/2.0;
303 Double_t ptEMCAL = 0;
304 Double_t ptEMCAL2 = 0;
309 AliVTrack *track = NULL;
313 ptTPC += track->Pt();
314 if ((track->Phi() > (EmcalMaxPhi+EmcalWidth)) || (track->Phi() < (EmcalMinPhi-EmcalWidth)))
continue;
315 ptEMCAL2 += track->Pt();
316 if ((track->Phi() > EmcalMaxPhi) || (track->Phi() < EmcalMinPhi))
continue;
317 ptEMCAL += track->Pt();
327 AliVCluster *c = NULL;
329 TLorentzVector nPart;
339 Double_t scalecalc = -1;
340 if (ptEMCAL > 0 && Et > 0 && ptTPC > 0)
343 Double_t scalecalcemcal = -1;
345 scalecalcemcal = (Et+ptEMCAL)/ptEMCAL;
346 Double_t scalecalcemcal2 = -1;
347 Double_t Chscalecalcemcal2 = -1;
349 scalecalcemcal2 = 2*(Et+ptEMCAL)/ptEMCAL2;
350 Chscalecalcemcal2 = 2*ptEMCAL/ptEMCAL2;}
385 const Double_t EmcalMinEta =
fGeom->GetArm1EtaMin();
386 const Double_t EmcalMaxEta =
fGeom->GetArm1EtaMax();
387 Double_t EmcalMinPhi =
fGeom->GetArm1PhiMin() * TMath::DegToRad();
388 Double_t EmcalMaxPhi =
fGeom->GetArm1PhiMax() * TMath::DegToRad();
394 fEmcalArea = (EmcalMaxPhi - EmcalMinPhi) * (EmcalMinEta - EmcalMaxEta);
398 AliError(Form(
"%s: No particle container found! Assuming tpc area = 1...",GetName()));
406 if (TpcMaxPhi > TMath::Pi()*2) TpcMaxPhi = TMath::Pi()*2;
407 if (TpcMinPhi < 0) TpcMinPhi = 0;
409 fTpcArea = (TpcMaxPhi - TpcMinPhi) * (EmcalMinEta - EmcalMaxEta);
AliParticleContainer * fTracksCont
output histogram
TH2 * fHistTrackEtaPhi
output histogram
virtual AliVParticle * GetNextAcceptParticle()
TH2 * fHistScaleEmcalvsNtrack
output histogram
TH2 * fHistScalevsNtrack
output histogram
Double_t fTpcArea
Emcal area.
TH2 * fHistScalevsScale2Emcal
output histogram
Base task in the EMCAL framework.
TH2 * fHistPtEMCALvsNtrack
output histogram
TH2 * fHistChScalevsNtrack
output histogram
TH2 * fHistPtEMCALvsCent
output histogram
TH2 * fHistPtTPCvsCent
Tpc area.
TH2 * fHistClusterEtaPhi
output histogram
Container for particles within the EMCAL framework.
TH2 * fHistChScale2EmcalvsNtrack
output histogram
TH2 * fHistPtTPCvsNtrack
output histogram
ClassImp(AliAnalysisTaskScale) AliAnalysisTaskScale
AliParticleContainer * GetParticleContainer(Int_t i=0) const
AliClusterContainer * fCaloClustersCont
Tracks.
AliEMCALGeometry * fGeom
!emcal geometry
TH2 * fHistScaleEmcalvsCent
output histogram
TH2 * fHistTrackPtvsCent
output histogram
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Double_t fCent
!event centrality
TH2 * fHistChScale2EmcalvsCent
output histogram
TH2 * fHistScalevsCent
output histogram
TH2 * fHistDeltaScalevsCent
output histogram
TH2 * fHistEtvsNtrack
output histogram
TH2 * fHistDeltaScale2EmcalvsCent
output histogram
AliEmcalList * fOutput
!output list
Double_t GetParticlePhiMax() const
TH2 * fHistScale2EmcalvsNtrack
output histogram
TH2 * fHistDeltaScalevsNtrack
output histogram
Double_t fVertex[3]
!event vertex
TH2 * fHistEtvsCent
output histogram
void UserCreateOutputObjects()
void SetMakeGeneralHistograms(Bool_t g)
Double_t GetParticlePhiMin() const
Bool_t GetMomentum(TLorentzVector &mom, const AliVCluster *vc, Double_t mass) const
TH2 * fHistScale2EmcalvsCent
output histogram
TH2 * fHistScaleEmcalvsScale2Emcal
output histogram
Int_t GetRunNumber(TString)
void UserCreateOutputObjects()
TH2 * fHistClusterPtvsCent
output histogram
TH2 * fHistScalevsScaleEmcal
output histogram
TH2 * fHistChScalevsCent
output histogram
Int_t GetNAcceptedParticles() const
AliVCluster * GetNextAcceptCluster()
Double_t GetScaleFactor(Double_t cent)