1 #ifndef ALIANALYSISTASKSE_H 10 #include <TProfile2D.h> 19 #include <THnSparse.h> 22 #include <TClonesArray.h> 26 #include <TInterpreter.h> 27 #include "AliAnalysisTask.h" 28 #include "AliCentrality.h" 30 #include "AliESDEvent.h" 31 #include "AliESDInputHandler.h" 32 #include "AliAODEvent.h" 33 #include "AliAODHandler.h" 34 #include "AliAnalysisManager.h" 35 #include "AliAnalysisTaskSE.h" 38 #include "AliInputEventHandler.h" 43 #include "AliGenEventHeader.h" 44 #include "AliGenPythiaEventHeader.h" 45 #include "AliGenHijingEventHeader.h" 46 #include "AliAODMCHeader.h" 47 #include "AliMCEvent.h" 51 #include "AliVEventHandler.h" 52 #include "AliVParticle.h" 53 #include "AliAODMCParticle.h" 54 #include "AliAnalysisUtils.h" 57 #include "AliVVertex.h" 58 #include "AliExternalTrackParam.h" 64 #include "AliGenDPMjetEventHeader.h" 69 #include "AliHeader.h" 70 #include "AliRunLoader.h" 71 #include "AliVVZERO.h" 72 #include "AliAODZDC.h" 74 #include "AliMultSelection.h" 86 fUseDefaultVertexCut(1),
88 fMyTrackContainerName(""),
89 fMyParticleContainerName(""),
90 fMyJetContainerName(""),
91 fMyJetParticleContainerName(""),
92 fTrkContainerDetLevel(0x0),
93 fParticleContainerPartLevel(0x0),
94 fJetContainerDetLevel(0x0),
95 fJetContainerPartLevel(0x0),
118 fTrackEtaWindow(0.9),
121 fHelperClass(0), fInitializedLocal(0),
122 fHistEvtSelection(0x0),
124 fhTrackPhiIncl(0x0), fhTrackEtaIncl(0x0),
125 fhJetPhiIncl(0x0), fhJetEtaIncl(0x0),
132 for(
Int_t i=0; i<2; i++) fNClusters[i] = 0;
133 for(
Int_t i=0; i<8; i++) fRingMultV0[i] = 0;
135 for(
Int_t i=0; i<5; i++){
146 for(
Int_t i=0; i<fkTTbins; i++){
151 for(
Int_t i=0; i<fkTTbins;i++){
152 fHadronTTLowPt[i]=-1;
153 fHadronTTHighPt[i]=-1;
155 fJetChTTHighPt[i]=-1;
158 sprintf(fTrigClass,
"%s",
"");
164 fUseDefaultVertexCut(1),
166 fMyTrackContainerName(
""),
167 fMyParticleContainerName(
""),
168 fMyJetContainerName(
""),
169 fMyJetParticleContainerName(
""),
170 fTrkContainerDetLevel(0x0),
171 fParticleContainerPartLevel(0x0),
172 fJetContainerDetLevel(0x0),
173 fJetContainerPartLevel(0x0),
176 fCentralityTree(0x0),
196 fTrackEtaWindow(0.9),
199 fHelperClass(0), fInitializedLocal(0),
200 fHistEvtSelection(0x0),
202 fhTrackPhiIncl(0x0), fhTrackEtaIncl(0x0),
203 fhJetPhiIncl(0x0), fhJetEtaIncl(0x0),
213 for(
Int_t i=0; i<5; i++){
240 DefineOutput(1, TList::Class());
246 TString trigger = fInputEvent->GetFiredTriggerClasses();
247 bool passedGammaTrigger = kFALSE;
249 if(trigger.Contains(
"EG1") || trigger.Contains(
"EG2") || trigger.Contains(
"DG1") || trigger.Contains(
"DG2")){
250 passedGammaTrigger = kTRUE;
252 return passedGammaTrigger;
258 TString trigger = fInputEvent->GetFiredTriggerClasses();
259 bool passedTrigger = kFALSE;
260 if(trigger.Contains(
"INT7")){
261 passedTrigger = kTRUE;
263 return passedTrigger;
273 if(!rhoname.IsNull()){
274 rho =
dynamic_cast<AliRhoParameter*
>(InputEvent()->FindListObject(rhoname.Data()));
284 return rho->GetVal();
292 if(!event)
return kFALSE;
311 if(TMath::Abs(event->GetPrimaryVertex()->GetZ()) >
fZVertexCut){
318 fhVertexZ->Fill(event->GetPrimaryVertex()->GetZ());
327 if(!track)
return kFALSE;
331 if(!track->Charge())
return kFALSE;
333 if(!(static_cast<AliAODMCParticle*>(track))->IsPhysicalPrimary())
return kFALSE;
359 if(!cluster->IsEMCAL())
return kFALSE;
360 if(cluster->E()<0.7)
return kFALSE;
394 AliError(
"??? Event pointer == 0 ???");
433 TString triggerClass = InputEvent()->GetFiredTriggerClasses();
437 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
439 fCentralityV0A = fMultSelection->GetMultiplicityPercentile(
"V0A");
440 fCentralityV0C = fMultSelection->GetMultiplicityPercentile(
"V0C");
441 fCentralityCL1 = fMultSelection->GetMultiplicityPercentile(
"CL1");
442 fCentralityZNA = fMultSelection->GetMultiplicityPercentile(
"ZNA");
443 fCentralityZNC = fMultSelection->GetMultiplicityPercentile(
"ZNC");
452 const AliVVertex *vertex = InputEvent()->GetPrimaryVertexSPD();
456 if(vertex->IsFromVertexer3D())
fVertexer3d = kTRUE;
459 const AliVMultiplicity *mult = InputEvent()->GetMultiplicity();
462 for(
Int_t ilay=0; ilay<2; ilay++){
463 fNClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
466 AliVVZERO *vzeroAOD = InputEvent()->GetVZEROData();
474 for(
Int_t iRing = 0; iRing < 8; ++iRing){
475 for(
Int_t i = 0; i < 8; ++i){
476 fRingMultV0[iRing] += vzeroAOD->GetMultiplicity(8*iRing+i);
480 AliAODZDC *aodZDC =
dynamic_cast<AliAODZDC*
> (InputEvent()->GetZDCData());
485 const Double_t* towZNC = aodZDC->GetZNCTowerEnergy();
486 const Double_t* towZPC = aodZDC->GetZPCTowerEnergy();
487 const Double_t* towZNA = aodZDC->GetZNATowerEnergy();
488 const Double_t* towZPA = aodZDC->GetZPATowerEnergy();
490 const Double_t* towZNCLG = aodZDC->GetZNCTowerEnergyLR();
491 const Double_t* towZPCLG = aodZDC->GetZPCTowerEnergyLR();
492 const Double_t* towZNALG = aodZDC->GetZNATowerEnergyLR();
493 const Double_t* towZPALG = aodZDC->GetZPATowerEnergyLR();
495 for(
Int_t it=0; it<5; it++){
513 AliVParticle *track = NULL;
559 track = trackIterator.second;
586 jet = jetIterator.second;
671 printf(
"ERROR: Output list not available\n");
680 if(
fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
695 Bool_t oldStatus = TH1::AddDirectoryStatus();
696 TH1::AddDirectory(kFALSE);
716 fhVertexZ =
new TH1F(
"fhVertexZ",
"z vertex",40,-20,20);
721 fhTrackEtaIncl =
new TH2F(
"fhTrackEtaIncl",
"Eta dist inclusive track vs pTjet", 50,0, 100, 40,-0.9,0.9);
724 fhTrackPhiIncl =
new TH2F(
"fhTrackPhiIncl",
"Azim dist tracks vs pTjet", 50, 0, 100, 50,0,2*TMath::Pi());
727 fhJetEtaIncl =
new TH2F(
"fhJetEtaIncl",
"Eta dist inclusive jets vs pTjet", 50,0, 100, 40,-0.9,0.9);
730 fhJetPhiIncl =
new TH2F(
"fhJetPhiIncl",
"Azim dist jets vs pTjet", 50, 0, 100, 50,0,2*TMath::Pi());
797 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
802 TH1::AddDirectory(oldStatus);
AliAnalysisUtils * fHelperClass
Bool_t FillHistograms()
Function filling histograms.
Float_t fCentralityZNC
Centrality from ZNA.
Bool_t fVertexer3d
Z vertex from ITS.
TH2F * fhTrackEtaIncl
minimum bias phi inclusive
Int_t fJetChTTHighPt[fkTTbins]
AliJetContainer * GetJetContainer(Int_t i=0) const
Int_t fNClusters[2]
no. tracklets
Float_t fZPCtowerLG[5]
ZNC 5 tower signals.
Float_t fCentralityV0C
Centrality from V0A.
Container with name, TClonesArray and cuts for particles.
TString fMyParticleContainerName
Float_t fZNCtower[5]
ZEM2 Energy.
Bool_t fIsEmcalTrig
triggered by Min Bias Trig
TH2F * fhTrackPhiIncl
gc vertexZ inclusive
TH1I * fHistEvtSelection
gc trigger if tracks/jets are loaded initiates calling ExecOnce
TH1F * fhVertexZ
gc event statistics
Bool_t PreSelection(AliVCluster *cluster)
Bool_t RetrieveEventObjects()
Float_t fMultV0A
V0C decision.
TH2F * fhJetEtaIncl
minimum bias phi inclusive
Int_t fJetChTT[fkTTbins]
array which stores the number of triggers in given event
Int_t fHadronTTHighPt[fkTTbins]
Float_t fZPAtower[5]
ZNA 5 tower signals.
Float_t fMultV0C
mult. V0A
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Get particle container attached to this task.
Float_t fZPCtower[5]
ZNC 5 tower signals.
const AliJetIterableMomentumContainer accepted_momentum() const
TString fMyTrackContainerName
Int_t fNTracklets
Is vertex from 3d vertexer?
Bool_t PassedMinBiasTrigger()
AliParticleContainer * fParticleContainerPartLevel
detector level track container
Float_t fCentralityV0A
triggered by EMCAL
Double_t fxVertex
Centrality from ZNC.
Float_t fZPAtowerLG[5]
ZNA 5 tower signals.
Int_t fIsV0CTriggered
VOA decision.
Int_t fHadronTT[fkTTbins]
TString fMyJetParticleContainerName
Float_t fCentralityZNA
Centrality from Clusters in layer 1.
Bool_t fUseDefaultVertexCut
Bool_t fIsMinBiasTrig
fired trigger classes
char fTrigClass[1000]
object which handels centrality
Float_t fZNAtowerLG[5]
ZPC 5 tower signals.
Bool_t FinalClusterCuts(AliVCluster *cluster)
Float_t fZEM2Energy
ZEM1 Energy.
Double_t fTrackEtaWindow
ZPA 5 tower signals.
Float_t fZEM1Energy
V0 ring mult.
Double_t fZVertexCut
minimum bias eta inclusive
Bool_t RetrieveEventObjects()
Retrieve common objects from event.
TH2F * fhJetPhiIncl
minimum bias eta inclusive
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TString fMyJetContainerName
Enhanced TList-derived class that implements correct merging for pt_hard binned production.
AliEmcalList * fOutput
!output list
void Terminate(Option_t *)
Double_t fyVertex
X vertex from ITS.
AliTrackContainer * GetTrackContainer(Int_t i=0) const
Int_t fJetChTTLowPt[fkTTbins]
virtual ~AliAnalysisTaskEA()
void UserCreateOutputObjects()
Float_t fZNAtower[5]
ZPC 5 tower signals.
Base task in the EMCAL jet framework.
Double_t fzVertex
Y vertex from ITS.
Represent a jet reconstructed using the EMCal jet framework.
AliJetContainer * fJetContainerPartLevel
detector level jet container
const AliTrackIterableMomentumContainer accepted_momentum() const
Float_t fCentralityCL1
Centrality from V0C.
AliJetContainer * fJetContainerDetLevel
particle level container with particles
Bool_t IsTrackInAcceptance(AliVParticle *track, Bool_t isGen=0)
AliTrackContainer * fTrkContainerDetLevel
void UserCreateOutputObjects()
Main initialization function on the worker.
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Bool_t fInitializedLocal
gc Vertex selection helper
TString fRhoTaskName
particle level jet container
Int_t fHadronTTLowPt[fkTTbins]
Bool_t IsEventInAcceptance(AliVEvent *event)
Int_t fIsV0ATriggered
no. clusters on SPD layers
Float_t fZNCtowerLG[5]
ZPA 5 tower signals.
Container for jet within the EMCAL jet framework.
Double_t GetExternalRho(Bool_t isMC)
Float_t fRingMultV0[8]
mult. V0C
AliMultSelection * fMultSelection
output tree