19 #include <TClonesArray.h>
23 #include <TGeoGlobalMagField.h>
26 #include "AliAnalysisManager.h"
27 #include "AliInputEventHandler.h"
28 #include "AliESDEvent.h"
29 #include "AliAODEvent.h"
33 #include "AliGenPythiaEventHeader.h"
45 fReader(0), fCaloUtils(0),
46 fOutputContainer(new
TList ), fAnalysisContainer(new
TList ),
47 fMakeHisto(kFALSE), fMakeAOD(kFALSE),
48 fAnaDebug(0), fCuts(new
TList),
50 fFillDataControlHisto(kTRUE), fSumw2(0),
53 fhNEventsIn(0), fhNEvents(0),
54 fhNExoticEvents(0), fhNEventsNoTriggerFound(0),
55 fhNPileUpEvents(0), fhNPileUpEventsTriggerBC0(0),
56 fhXVertex(0), fhYVertex(0), fhZVertex(0),
57 fhXVertexExotic(0), fhYVertexExotic(0), fhZVertexExotic(0),
58 fhPtHard(0), fhPtHardWeighted(0),
59 fhPileUpClusterMult(0), fhPileUpClusterMultAndSPDPileUp(0),
61 fhCentrality(0), fhEventPlaneAngle(0),
62 fhNEventsWeighted(0), fhTrackMultWeighted(0),
63 fhCentralityWeighted(0), fhEventPlaneAngleWeighted(0),
64 fhNMergedFiles(0), fhScaleFactor(0),
65 fhEMCalBCEvent(0), fhEMCalBCEventCut(0),
66 fhTrackBCEvent(0), fhTrackBCEventCut(0),
67 fhPrimaryVertexBC(0), fhTimeStampFraction(0),
68 fhNPileUpVertSPD(0), fhNPileUpVertTracks(0),
70 fhClusterTriggerBC(0), fhClusterTriggerBCExotic(0),
71 fhClusterTriggerBCBadCell(0), fhClusterTriggerBCBadCellExotic(0),
72 fhClusterTriggerBCBadCluster(0), fhClusterTriggerBCBadClusterExotic(0),
73 fhClusterTriggerBCUnMatch(0), fhClusterTriggerBCExoticUnMatch(0),
74 fhClusterTriggerBCBadCellUnMatch(0), fhClusterTriggerBCBadCellExoticUnMatch(0),
75 fhClusterTriggerBCBadClusterUnMatch(0), fhClusterTriggerBCBadClusterExoticUnMatch(0),
76 fhClusterTriggerBCEventBC(0), fhClusterTriggerBCEventBCUnMatch(0),
77 fhClusterTriggerBCExoticEventBC(0), fhClusterTriggerBCExoticEventBCUnMatch(0)
79 AliDebug(1,
"*** Analysis Maker Constructor ***");
81 for(
Int_t i = 0; i < 3; i++)
97 fOutputContainer(new
TList()), fAnalysisContainer(new
TList()),
98 fMakeHisto(maker.fMakeHisto), fMakeAOD(maker.fMakeAOD),
99 fAnaDebug(maker.fAnaDebug), fCuts(new
TList()),
100 fScaleFactor(maker.fScaleFactor),
101 fFillDataControlHisto(maker.fFillDataControlHisto),
102 fSumw2(maker.fSumw2),
103 fCheckPtHard(maker.fCheckPtHard),
104 fhNEventsIn(maker.fhNEventsIn),
105 fhNEvents(maker.fhNEvents),
106 fhNExoticEvents(maker.fhNExoticEvents),
107 fhNEventsNoTriggerFound(maker.fhNEventsNoTriggerFound),
108 fhNPileUpEvents(maker.fhNPileUpEvents),
109 fhNPileUpEventsTriggerBC0(maker.fhNPileUpEventsTriggerBC0),
110 fhXVertex(maker.fhXVertex),
111 fhYVertex(maker.fhYVertex),
112 fhZVertex(maker.fhZVertex),
113 fhXVertexExotic(maker.fhXVertexExotic),
114 fhYVertexExotic(maker.fhYVertexExotic),
115 fhZVertexExotic(maker.fhZVertexExotic),
116 fhPtHard(maker.fhPtHard),
117 fhPtHardWeighted(maker.fhPtHardWeighted),
118 fhPileUpClusterMult(maker.fhPileUpClusterMult),
119 fhPileUpClusterMultAndSPDPileUp(maker.fhPileUpClusterMultAndSPDPileUp),
120 fhTrackMult(maker.fhTrackMult),
121 fhCentrality(maker.fhCentrality),
122 fhEventPlaneAngle(maker.fhEventPlaneAngle),
123 fhNEventsWeighted(maker.fhNEventsWeighted),
124 fhTrackMultWeighted(maker.fhTrackMultWeighted),
125 fhCentralityWeighted(maker.fhCentralityWeighted),
126 fhEventPlaneAngleWeighted(maker.fhEventPlaneAngleWeighted),
127 fhNMergedFiles(maker.fhNMergedFiles),
128 fhScaleFactor(maker.fhScaleFactor),
129 fhEMCalBCEvent(maker.fhEMCalBCEvent),
130 fhEMCalBCEventCut(maker.fhEMCalBCEventCut),
131 fhTrackBCEvent(maker.fhTrackBCEvent),
132 fhTrackBCEventCut(maker.fhTrackBCEventCut),
133 fhPrimaryVertexBC(maker.fhPrimaryVertexBC),
134 fhTimeStampFraction(maker.fhTimeStampFraction),
135 fhNPileUpVertSPD(maker.fhNPileUpVertSPD),
136 fhNPileUpVertTracks(maker.fhNPileUpVertTracks),
137 fhClusterTriggerBC(maker.fhClusterTriggerBC),
138 fhClusterTriggerBCExotic(maker.fhClusterTriggerBCExotic),
139 fhClusterTriggerBCBadCell(maker.fhClusterTriggerBCBadCell),
140 fhClusterTriggerBCBadCellExotic(maker.fhClusterTriggerBCBadCellExotic),
141 fhClusterTriggerBCBadCluster(maker.fhClusterTriggerBCBadCluster),
142 fhClusterTriggerBCBadClusterExotic(maker.fhClusterTriggerBCBadClusterExotic),
143 fhClusterTriggerBCUnMatch(maker.fhClusterTriggerBCUnMatch),
144 fhClusterTriggerBCExoticUnMatch(maker.fhClusterTriggerBCExoticUnMatch),
145 fhClusterTriggerBCBadCellUnMatch(maker.fhClusterTriggerBCBadCellUnMatch),
146 fhClusterTriggerBCBadCellExoticUnMatch(maker.fhClusterTriggerBCBadCellExoticUnMatch),
147 fhClusterTriggerBCBadClusterUnMatch(maker.fhClusterTriggerBCBadClusterUnMatch),
148 fhClusterTriggerBCBadClusterExoticUnMatch(maker.fhClusterTriggerBCBadClusterExoticUnMatch),
149 fhClusterTriggerBCEventBC(maker.fhClusterTriggerBCEventBC),
150 fhClusterTriggerBCEventBCUnMatch(maker.fhClusterTriggerBCEventBCUnMatch),
151 fhClusterTriggerBCExoticEventBC(maker.fhClusterTriggerBCExoticEventBC),
152 fhClusterTriggerBCExoticEventBCUnMatch(maker.fhClusterTriggerBCExoticEventBCUnMatch)
154 for(
Int_t i = 0; i < 3; i++)
199 AliFatal(
"AnalysisContainer not initialized");
218 return aodBranchList ;
233 event->GetPrimaryVertex()->GetXYZ(v) ;
259 Float_t pTHard = pygeh->GetPtHard();
291 if( triggerBC == 0 &&
318 for(
Int_t i = 0; i < 19; i++)
333 Int_t nVerticesSPD = -1;
334 Int_t nVerticesTracks = -1;
338 nVerticesSPD = esdevent->GetNumberOfPileupVerticesSPD();
339 nVerticesTracks = esdevent->GetNumberOfPileupVerticesTracks();
344 nVerticesSPD = aodevent->GetNumberOfPileupVerticesSPD();
345 nVerticesTracks = aodevent->GetNumberOfPileupVerticesTracks();
354 Int_t timeStamp = esdevent->GetTimeStamp();
377 Bool_t triggerBCOK = kTRUE;
388 triggerBCOK = kFALSE;
402 if(!triggerBCOK)
return;
405 if(eventBC%4 < 0 || eventBC%4 > 3 )
406 AliWarning(Form(
"STRANGE: Trigger BC %d - Event BC %d, modulo4 %d",triggerBC,eventBC,eventBC%4));
411 else if( exotic && badCluster)
417 else if( badCluster && !exotic )
428 if (!exotic && !badCluster)
435 else if( exotic && badCluster)
440 else if( exotic && !badCluster)
447 else if( badCluster && !exotic )
466 fCuts->Add(objstring);
474 if ( objstring )
fCuts->Add(objstring);
489 fhNEventsIn =
new TH1F(
"hNEventsIn",
"Number of input events" , 1 , 0 , 1 ) ;
493 fhNEvents =
new TH1F(
"hNEvents",
"Number of analyzed events" , 1 , 0 , 1 ) ;
497 fhXVertex =
new TH1F(
"hXVertex",
" X vertex distribution" , 200 , -4 , 4 ) ;
501 fhYVertex =
new TH1F(
"hYVertex",
" Y vertex distribution" , 200 , -4 , 4 ) ;
505 fhZVertex =
new TH1F(
"hZVertex",
" Z vertex distribution" , 200 , -50 , 50 ) ;
509 fhCentrality =
new TH1F(
"hCentrality",
"Number of events in centrality bin", 100, 0., 100) ;
513 fhEventPlaneAngle =
new TH1F(
"hEventPlaneAngle",
"Number of events in event plane", 100, 0., TMath::Pi()) ;
517 fhTrackMult =
new TH1F(
"hTrackMult",
"Number of tracks per events", 2000 , 0 , 2000) ;
523 fhPtHard =
new TH1F(
"hPtHard",
" #it{p}_{T}-hard for selected triggers",300,0,300);
524 fhPtHard->SetXTitle(
"#it{p}_{T}^{hard} (GeV/#it{c})");
530 fhPtHardWeighted =
new TH1F(
"hPtHardWeighted",
" #it{p}_{T}-hard for selected triggers, weighted by cross section",300,0,300);
536 if (
GetReader()->GetWeightUtils()->IsCentralityWeightOn() )
538 fhNEventsWeighted =
new TH1F(
"hNEventsWeighted",
"Number of analyzed events weighted by centrality", 1 , 0 , 1 ) ;
542 fhCentralityWeighted =
new TH1F(
"hCentralityWeighted",
"Number of events in centrality bin weighted by centrality", 100, 0.,100) ;
546 fhEventPlaneAngleWeighted =
new TH1F(
"hEventPlaneAngleWeighted",
"Number of events in event plane weighted by centrality",100, 0., TMath::Pi()) ;
550 fhTrackMultWeighted =
new TH1F(
"hTrackMultWeighted",
"Number of tracks per events weighted by centrality", 2000 , 0 , 2000) ;
557 fhNExoticEvents =
new TH1F(
"hNExoticEvents",
"Number of analyzed events triggered by exotic cluster" , 1 , 0 , 1 ) ;
561 fhNEventsNoTriggerFound =
new TH1F(
"hNEventsNoTriggerFound",
"Number of analyzed events triggered but no trigger found" , 1 , 0 , 1 ) ;
569 Int_t labelshift = 6;
572 nbin , minbin ,maxbin,4,0, 4) ;
574 for(
Int_t i = 0; i < 4; i++)
577 for(
Int_t i = 1; i < 12; i++)
583 nbin , minbin ,maxbin,4,1, 4) ;
584 for(
Int_t i = 0; i < 4; i++)
587 for(
Int_t i = 1; i < 12; i++)
593 nbin , minbin ,maxbin,4,1, 4) ;
594 for(
Int_t i = 0; i < 4; i++)
597 for(
Int_t i = 1; i < 12; i++)
603 nbin , minbin ,maxbin,4,1, 4) ;
604 for(
Int_t i = 0; i < 4; i++)
607 for(
Int_t i = 1; i < 12; i++)
613 "Number of analyzed events triggered by a cluster in a given BC",
614 nbin , minbin ,maxbin) ;
616 for(
Int_t i = 1; i < 12; i++)
621 "Number of analyzed events triggered by a exotic cluster in a given BC",
622 nbin , minbin ,maxbin) ;
624 for(
Int_t i = 1; i < 12; i++)
630 "Number of analyzed events triggered by a bad cell in a given BC",
631 nbin , minbin ,maxbin) ;
634 for(
Int_t i = 1; i < 12; i++)
639 "Number of analyzed events triggered by a bad cell & exotic cluster in a given BC",
640 nbin , minbin ,maxbin) ;
642 for(
Int_t i = 1; i < 12; i++)
647 "Number of analyzed events triggered by a bad cluster in a given BC",
648 nbin , minbin ,maxbin) ;
651 for(
Int_t i = 1; i < 12; i++)
657 "Number of analyzed events triggered by a bad cluster & exotic cluster in a given BC",
658 nbin , minbin ,maxbin) ;
661 for(
Int_t i = 1; i < 12; i++)
666 "Number of analyzed events triggered by a cluster (no trigger patch match) in a given BC",
667 nbin , minbin ,maxbin) ;
669 for(
Int_t i = 1; i < 12; i++)
674 "Number of analyzed events triggered by a exotic cluster (no trigger patch match) in a given BC",
675 nbin , minbin ,maxbin) ;
677 for(
Int_t i = 1; i < 12; i++)
683 "Number of analyzed events triggered by a bad cluster (no trigger patch match) in a given BC",
684 nbin , minbin ,maxbin) ;
686 for(
Int_t i = 1; i < 12; i++)
692 "Number of analyzed events triggered by a bad&exotic cluster (no trigger patch match) in a given BC",
693 nbin , minbin ,maxbin) ;
695 for(
Int_t i = 1; i < 12; i++)
701 "Number of analyzed events triggered by a bad cluster (no trigger patch match) in a given BC",
702 nbin , minbin ,maxbin) ;
704 for(
Int_t i = 1; i < 12; i++)
710 "Number of analyzed events triggered by a bad&exotic cluster (no trigger patch match) in a given BC",
711 nbin , minbin ,maxbin) ;
713 for(
Int_t i = 1; i < 12; i++)
717 TString rematch[] = {
"OpenTime",
"CheckNeighbours",
"Both"};
718 for(
Int_t j = 0; j < 3; j++)
721 Form(
"Number of analyzed events triggered by a cluster (no trigger patch match) in a given BC, re-match %s",rematch[j].
Data()),
722 nbin , minbin ,maxbin) ;
724 for(
Int_t i = 1; i < 12; i++)
729 Form(
"Number of analyzed events triggered by a exotic cluster (no trigger patch match) in a given BC, re-match %s",rematch[j].
Data()),
730 nbin , minbin ,maxbin) ;
732 for(
Int_t i = 1; i < 12; i++)
737 fhNPileUpEvents =
new TH1F(
"hNPileUpEvents",
"Number of events considered as pile-up", 8 , 0 , 8 ) ;
749 fhNPileUpEventsTriggerBC0 =
new TH1F(
"hNPileUpEventsTriggerBC0",
"Number of events considered as pile-up, trigger cluster in BC=0", 8 , 0 , 8 ) ;
763 fhTrackBCEvent =
new TH1F(
"hTrackBCEvent",
"Number of events with at least 1 track in a bunch crossing ", 19 , 0 , 19 ) ;
766 for(
Int_t i = 1; i < 20; i++)
770 fhTrackBCEventCut =
new TH1F(
"hTrackBCEventCut",
"Number of events with at least 1 track in a bunch crossing ", 19 , 0 , 19 ) ;
773 for(
Int_t i = 1; i < 20; i++)
778 fhPrimaryVertexBC =
new TH1F(
"hPrimaryVertexBC",
"Number of primary vertex per bunch crossing ", 41 , -20 , 20 ) ;
783 fhEMCalBCEvent =
new TH1F(
"hEMCalBCEvent",
"Number of events with at least 1 cluster in a bunch crossing ", 19 , 0 , 19 ) ;
786 for(
Int_t i = 1; i < 20; i++)
790 fhEMCalBCEventCut =
new TH1F(
"hEMCalBCEventCut",
"Number of events with at least 1 cluster in a bunch crossing", 19 , 0 , 19 ) ;
793 for(
Int_t i = 1; i < 20; i++)
797 fhXVertexExotic =
new TH1F(
"hXVertexExotic",
" X vertex distribution in exotic events" , 200 , -4 , 4 ) ;
801 fhYVertexExotic =
new TH1F(
"hYVertexExotic",
" Y vertex distribution in exotic events" , 200 , -4 , 4 ) ;
805 fhZVertexExotic =
new TH1F(
"hZVertexExotic",
" Z vertex distribution in exotic events" , 200 , -50 , 50 ) ;
809 fhPileUpClusterMult =
new TH1F(
"hPileUpClusterMult",
"Number of clusters per event with large time (|t| > 20 ns)" , 100 , 0 , 100 ) ;
813 fhPileUpClusterMultAndSPDPileUp =
new TH1F(
"hPileUpClusterMultAndSPDPileUp",
"Number of clusters per event with large time (|t| > 20 ns, events tagged as pile-up by SPD)" , 100 , 0 , 100 ) ;
817 fhNPileUpVertSPD =
new TH1F (
"hNPileUpVertSPD",
"N pile-up SPD vertex", 50,0,50);
827 fhTimeStampFraction =
new TH1F(
"hTimeStampFraction",
"Fraction of events within a given time stamp range",150, -1, 2) ;
833 fhNMergedFiles =
new TH1F(
"hNMergedFiles",
"Number of merged output files" , 1 , 0 , 1 ) ;
840 fhScaleFactor =
new TH1F(
"hScaleFactor",
"Number of merged output files" , 1 , 0 , 1 ) ;
848 if(
GetReader()->GetWeightUtils()->IsMCCrossSectionCalculationOn())
852 if ( templist && templist->GetEntries() == 2 )
854 templist->SetOwner(kFALSE);
866 templist->SetOwner(kFALSE);
868 for(
Int_t ih = 0; ih < templist->GetEntries() ; ih++)
886 AliWarning(
"Analysis job list not initialized!!!");
890 const Int_t buffersize = 255;
891 char newname[buffersize];
901 templist->SetOwner(kFALSE);
903 for(
Int_t i = 0; i < templist->GetEntries(); i++)
906 if( strcmp((templist->At(i))->ClassName(),
"TObjString") )
911 ((
TH1*) templist->At(i))->SetName(newname);
913 if (
fSumw2 ) ((
TH1*) templist->At(i))->Sumw2();
943 (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(this->ClassName(),
fAnaDebug);
959 AliWarning(
"Analysis job list not initialized");
993 printf(
"***** Print: %s %s ******\n", GetName(), GetTitle() ) ;
994 printf(
"Debug level = %d\n",
fAnaDebug ) ;
996 printf(
"Produce AOD = %d\n",
fMakeAOD ) ;
999 if(!strcmp(
"all",opt))
1001 printf(
"Print analysis Tasks settings :\n") ;
1007 printf(
"Print analysis Reader settings :\n") ;
1009 printf(
"Print analysis Calorimeter Utils settings :\n") ;
1028 AliFatal(
"Histograms not initialized");
1030 AliDebug(1,Form(
"*** AliAnaCaloTrackCorrMaker::ProcessEvent() Event %d ***",iEntry));
1031 AliDebug(2,Form(
"Current File Name : %s", currentFileName));
1036 Int_t nAODBranches = aodList->GetEntries();
1037 for(
Int_t iaod = 0; iaod < nAODBranches; iaod++)
1039 TClonesArray *tca =
dynamic_cast<TClonesArray*
> (aodList->At(iaod));
1040 if(tca) tca->Clear(
"C");
1054 AliInputEventHandler *inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1056 UInt_t isMBTrigger = kFALSE;
1057 UInt_t isTrigger = kFALSE;
1074 AliDebug(1,Form(
"*** Skip event *** %d",iEntry));
1091 AliDebug(1,
"*** Begin analysis ***");
1094 for(
Int_t iana = 0; iana < nana; iana++)
1104 if(!isTrigger)
continue;
1121 AliDebug(1,
"*** End analysis, MB for mixing ***");
1130 AliDebug(1,
"*** End analysis ***");
1141 AliError(
"No output list");
TH2F * fhClusterTriggerBCExoticEventBCUnMatch
! Correlate the found BC in the exotic trigger and the event BC, when there was no match with the tri...
Bool_t IsPileUpFromSPD() const
TH1F * fhTimeStampFraction
! event fraction depending on Time Stamp, only if activated on reader.
TH1F * fhNEvents
! Number of acepted events counter histogram.
virtual void SetCaloUtils(AliCalorimeterUtils *caloutils)
virtual Int_t GetDebug() const
Bool_t IsBadMaxCellTriggerEvent() const
TH2F * fhClusterTriggerBCEventBC
! Correlate the found BC in the trigger and the event BC.
TH1F * fhEMCalBCEventCut
! N events depending on the existence of a cluster above acceptance and E cut in a given bunch crossi...
Int_t GetNPileUpClusters()
void ana(Int_t mode=mGRID)
TH1F * fhClusterTriggerBCUnMatchReMatch[3]
! Number of events triggered, depending on BC of the cluster, not matched, open cuts and rematch...
TList * GetCreateOutputHistograms()
TH2F * fhClusterTriggerBCExoticEventBC
! Correlate the found BC in the exotic trigger and the event BC.
TList * fCuts
! List with analysis cuts.
TH1F * fhClusterTriggerBCBadClusterUnMatch
! Number of events triggered, depending on BC of the cluster.
TH1F * fhPtHardWeighted
! pt of parton, only for MC generation (pythia jet-jet/gamma-jet), weighted by cross section ...
TH1F * fhZVertexExotic
! Z Vertex distribution of exotic event.
TH1F * fhNPileUpVertTracks
! Number of pile-up vertices from tracks.
TH1F * fhClusterTriggerBCBadCell
! Number of events triggered, depending on BC of the cluster.
TH1F * fhNEventsIn
! Number of input events counter histogram.
virtual TObjString * GetAnalysisCuts()
void InitParameters()
Init data members.
TH1F * fhClusterTriggerBCBadCluster
! Number of events triggered, depending on BC of the cluster.
AliCalorimeterUtils * fCaloUtils
Pointer to AliCalorimeterUtils.
Bool_t WriteDeltaAODToFile() const
Int_t GetVertexBC(const AliVVertex *vtx)
TH1F * fhScaleFactor
! Factor to scale histograms.
virtual AliVEvent * GetInputEvent() const
TH1F * fhTrackBCEventCut
! N events depending on the existence of a track above acceptance and pt cut in a given bunch crossin...
Bool_t IsPileUpFromSPDAndNotEMCal() const
Check if event is from pile-up determined by SPD and not by EMCal.
virtual Bool_t MakePlotsOn() const
virtual void MakeAnalysisFillHistograms()
void AddAnalysis(TObject *ana, Int_t n)
Add analysis depending on AliAnaCaloTrackCorrBaseClass to list.
TH1F * fhClusterTriggerBCBadCellExoticUnMatch
! Number of events triggered, depending on BC of the cluster.
TH1F * fhNEventsWeighted
! Number of acepted events counter histogram. After centrality weight.
TH1F * fhEMCalBCEvent
! N events depending on the existence of a cluster in a given bunch crossing.
virtual void Terminate(TList *)
Double_t GetRunTimeStampMin() const
Double_t fScaleFactor
Scaling factor needed for normalization.
TList * GetOutputContainer()
TH1F * fhXVertexExotic
! X Vertex distribution of exotic event.
TH2F * fhClusterTriggerBCEventBCUnMatch
! Correlate the found BC in the trigger and the event BC, when there was no match with the trigger BC...
virtual Int_t GetEventCentrality() const
virtual TList * GetCreateOutputObjects()
Bool_t IsCentralityWeightOn() const
Int_t fAnaDebug
Debugging info.
Bool_t IsTriggerMatchedOpenCuts(Int_t i) const
Bool_t IsPileUpFromNotSPDAndNotEMCal() const
Check if event not from pile-up determined neither by SPD nor by EMCal.
void FillTriggerControlHistograms()
Fill here EMCal triggered events control histograms.
TH1F * fhTrackBCEvent
! N events depending on the existence of a track in a given bunch crossing.
TH1F * fhNPileUpEventsTriggerBC0
! N events pasing pile up cut.
TH1F * fhNMergedFiles
! Number of files merged.
void Terminate(TList *outputList)
virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH1F * fhXVertex
! X Vertex distribution of accepted event.
Bool_t IsPileUpFromSPDOrEMCal() const
Check if event is from pile-up determined by SPD or EMCal.
Bool_t IsPileUpFromEMCalAndNotSPD() const
Check if event is from pile-up determined by EMCal, not by SPD.
Double_t GetRunTimeStampMax() const
TH1F * fhClusterTriggerBC
! Number of events triggered, depending on BC of the cluster.
Base class for CaloTrackCorr analysis algorithms.
TH1F * fhClusterTriggerBCBadClusterExoticUnMatch
! Number of events triggered, depending on BC of the cluster.
virtual AliGenEventHeader * GetGenEventHeader(TString name="") const
virtual TList * GetAODBranchList() const
Bool_t IsTriggerMatched() const
AliAnaCaloTrackCorrMaker()
virtual Int_t GetDebug() const
Bool_t IsMCCrossSectionJustHistoFillOn() const
TH1F * fhTrackMultWeighted
! Number of tracks per event histogram. After centrality weight.
virtual TObjString * GetListOfParameters()
Save parameters used for analysis in a string.
Bool_t fMakeHisto
If true makes final analysis with histograms as output.
virtual Bool_t NewOutputAOD() const
Bool_t fSumw2
Call the histograms method Sumw2() after initialization, off by default, too large memory booking...
TH1F * fhNExoticEvents
! Number of events triggered by exotic, counter histogram.
TH1F * fhClusterTriggerBCExoticUnMatch
! Number of events triggered, depending on BC of the cluster.
Int_t GetTriggerClusterBC() const
Double_t GetEventWeight() const
UInt_t GetEventTriggerMask() const
Bool_t fFillDataControlHisto
Fill histograms only interesting with data.
TH1F * fhYVertex
! Y Vertex distribution of accepted event.
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual TString GetAddedHistogramsStringToName() const
Bool_t IsMCCrossSectionCalculationOn() const
TH1F * fhPileUpClusterMult
! N clusters with high time.
TH1F * fhTrackMult
! Number of tracks per event histogram.
Int_t GetEMCalEventBC(Int_t bc) const
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)
void ProcessEvent(Int_t iEntry, const char *currentFileName)
TH1F * fhClusterTriggerBCBadCellExotic
! Number of events triggered, depending on BC of the cluster.
TH1F * fhNPileUpEvents
! N events pasing pile up cut.
void SetCaloUtils(AliCalorimeterUtils *caloutils)
Bool_t fCheckPtHard
For MC done in pT-Hard bins, plot specific histogram.
Bool_t IsAccessToTrackTimeOn() const
Bool_t IsSelectEventTimeStampOn()
TH1F * fhClusterTriggerBCBadCellUnMatch
! Number of events triggered, depending on BC of the cluster.
virtual void FillEventMixPool()
TH1F * fhNEventsNoTriggerFound
! Number of events where whatever was done, no trigger is found.
virtual ~AliAnaCaloTrackCorrMaker()
Destructor. Remove only owned pointers.
TH1F * fhEventPlaneAngle
! Histogram with Event plane angle.
virtual void SetReader(AliCaloTrackReader *reader)
UInt_t GetMixEventTriggerMask() const
virtual void ResetLists()
Reset lists, called in AliAnaCaloTrackCorrMaker.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Bool_t IsExoticEvent() const
TH1F * fhClusterTriggerBCExotic
! Number of events triggered, depending on BC of the cluster.
virtual TClonesArray * GetCreateOutputAODBranch()
Create AOD branch filled in the analysis.
Bool_t IsEventTriggerAtSEOn() const
TList * GetListOfAnalysisCuts()
TH1F * fhCentrality
! Histogram with centrality bins.
TH1F * fhZVertex
! Z Vertex distribution of accepted event.
virtual Double_t GetEventPlaneAngle() const
TH1F * fhClusterTriggerBCExoticUnMatchReMatch[3]
! Number of events triggered by exotic, depending on BC of the clusterm not matched, open cuts and rematch.
Int_t GetTrackEventBC(Int_t bc) const
Bool_t IsPileUpFromEMCal() const
Check if event is from pile-up determined by EMCal.
TH1F * fhClusterTriggerBCBadClusterExotic
! Number of events triggered, depending on BC of the cluster.
TList * FillAndGetAODBranchList()
void FillControlHistograms()
Fill here event control histograms.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH1F * fhYVertexExotic
! Y Vertex distribution of exotic event.
TH1F * fhPtHard
! pt of parton, only for MC generation (pythia jet-jet/gamma-jet)
AliCaloTrackReader * GetReader()
void AccessGeometry(AliVEvent *inputEvent)
Int_t GetTrackMultiplicity() const
virtual TList * GetCreateControlHistograms()
AliCalorimeterUtils * GetCaloUtils()
AliAnaWeights * GetWeightUtils()
TH1F * fhCentralityWeighted
! Histogram with centrality bins. After centrality weight.
Bool_t fMakeAOD
If true makes analysis generating AODs.
void AccessOADB(AliVEvent *event)
TH1F * fhPrimaryVertexBC
! Primary vertex BC.
TList * fOutputContainer
! Output histograms container.
Int_t GetEMCalEventBCcut(Int_t bc) const
TH1F * fhPileUpClusterMultAndSPDPileUp
! N clusters with high time in events tagged as pile-up by SPD.
Bool_t IsBadCellTriggerEvent() const
virtual void MakeAnalysisFillAOD()
AliCaloTrackReader * fReader
Pointer to AliCaloTrackReader.
virtual void ConnectInputOutputAODBranches()
TList * fAnalysisContainer
List with analysis pointers.
TH1F * fhNPileUpVertSPD
! Number of pile-up vertices from SPD.
Int_t GetTrackEventBCcut(Int_t bc) const
Bool_t IsPileUpFromSPDAndEMCal() const
Check if event is from pile-up determined by SPD and EMCal.
TH1F * fhClusterTriggerBCUnMatch
! Number of events triggered, depending on BC of the cluster.
Int_t GetTriggerClusterId() const
TH1F * fhEventPlaneAngleWeighted
! Histogram with Event plane angle. After centrality weight.
Steering class of package CaloTrackCorrelartions.