18 #include <TClonesArray.h>
19 #include <TObjString.h>
26 #include "AliVCluster.h"
27 #include "AliAODEvent.h"
28 #include "AliESDEvent.h"
31 #include "AliEMCALGeometry.h"
42 fRejectTrackMatch(0), fNCellsCut(0),
43 fMinM02(0), fMaxM02(0),
46 fhE(0), fhESelected(0),
47 fhEtaPhi(0), fhEtaPhiSelected(0),
48 fhEtaPhiEMCALBC0(0), fhEtaPhiEMCALBC1(0), fhEtaPhiEMCALBCN(0),
49 fhTimeTriggerEMCALBCCluster(0),
50 fhTimeTriggerEMCALBCUMCluster(0),
51 fhEtaPhiTriggerEMCALBCClusterOverTh(0),
52 fhEtaPhiTriggerEMCALBCUMClusterOverTh(0),
53 fhEtaPhiTriggerEMCALBCClusterBelowTh1(0),
54 fhEtaPhiTriggerEMCALBCUMClusterBelowTh1(0),
55 fhEtaPhiTriggerEMCALBCClusterBelowTh2(0),
56 fhEtaPhiTriggerEMCALBCUMClusterBelowTh2(0),
57 fhEtaPhiTriggerEMCALBCExotic(0), fhTimeTriggerEMCALBCExotic(0),
58 fhEtaPhiTriggerEMCALBCUMExotic(0), fhTimeTriggerEMCALBCUMExotic(0),
59 fhEtaPhiTriggerEMCALBCBad(0), fhTimeTriggerEMCALBCBad(0),
60 fhEtaPhiTriggerEMCALBCUMBad(0), fhTimeTriggerEMCALBCUMBad(0),
61 fhEtaPhiTriggerEMCALBCBadExotic(0), fhTimeTriggerEMCALBCBadExotic(0),
62 fhEtaPhiTriggerEMCALBCUMBadExotic(0), fhTimeTriggerEMCALBCUMBadExotic(0),
63 fhEtaPhiTriggerEMCALBCExoticCluster(0), fhTimeTriggerEMCALBCExoticCluster(0),
64 fhEtaPhiTriggerEMCALBCUMExoticCluster(0), fhTimeTriggerEMCALBCUMExoticCluster(0),
65 fhEtaPhiTriggerEMCALBCBadCluster(0), fhTimeTriggerEMCALBCBadCluster(0),
66 fhEtaPhiTriggerEMCALBCUMBadCluster(0), fhTimeTriggerEMCALBCUMBadCluster(0),
67 fhEtaPhiTriggerEMCALBCBadExoticCluster(0), fhTimeTriggerEMCALBCBadExoticCluster(0),
68 fhEtaPhiTriggerEMCALBCUMBadExoticCluster(0), fhTimeTriggerEMCALBCUMBadExoticCluster(0),
69 fhTimeTriggerEMCALBCBadMaxCell(0), fhTimeTriggerEMCALBCUMBadMaxCell(0),
70 fhTimeTriggerEMCALBCBadMaxCellExotic(0), fhTimeTriggerEMCALBCUMBadMaxCellExotic(0),
71 fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster (0), fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster(0),
72 fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster(0),fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster(0),
73 fhEtaPhiTriggerEMCALBCUMReMatchBothCluster(0), fhTimeTriggerEMCALBCUMReMatchBothCluster(0),
74 fhTimeTriggerEMCALBC0UMReMatchOpenTime(0),
75 fhTimeTriggerEMCALBC0UMReMatchCheckNeigh(0),
76 fhTimeTriggerEMCALBC0UMReMatchBoth(0),
77 fhEtaPhiNoTrigger(0), fhTimeNoTrigger(0),
78 fhEtaPhiSelectedEMCALBC0(0), fhEtaPhiSelectedEMCALBC1(0), fhEtaPhiSelectedEMCALBCN(0),
79 fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime(0),
80 fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh(0),
81 fhTimeSelectedTriggerEMCALBC0UMReMatchBoth(0)
83 for(
Int_t i = 0; i < 11; i++)
85 fhEtaPhiTriggerEMCALBC [i] = 0 ;
86 fhTimeTriggerEMCALBC [i] = 0 ;
87 fhEtaPhiTriggerEMCALBCUM [i] = 0 ;
88 fhTimeTriggerEMCALBCUM [i] = 0 ;
90 fhEtaPhiSelectedTriggerEMCALBC [i] = 0 ;
91 fhTimeSelectedTriggerEMCALBC [i] = 0 ;
92 fhEtaPhiSelectedTriggerEMCALBCUM [i] = 0 ;
93 fhTimeSelectedTriggerEMCALBCUM [i] = 0 ;
95 fhTimeSelectedTriggerEMCALBCPileUpSPD[i] = 0 ;
96 fhTimeTriggerEMCALBCPileUpSPD [i] = 0 ;
98 fhEtaPhiTriggerEMCALBCCluster [i] = 0 ;
99 fhEtaPhiTriggerEMCALBCUMCluster [i] = 0 ;
115 if(( bad || exotic ) && idTrig >= 0 && !
GetReader()->AreBadTriggerEventsRemoved()) ok = kTRUE;
125 TClonesArray * clusterList = 0;
127 if (
GetReader()->GetInputEvent()->FindListObject(clusterListName))
128 clusterList =
dynamic_cast<TClonesArray*
> (
GetReader()->
GetInputEvent() ->FindListObject(clusterListName));
132 AliVCluster * badClusTrig = 0;
133 if(clusterList) badClusTrig = (AliVCluster*) clusterList->At(idTrig);
138 AliWarning(Form(
"No cluster (bad-exotic trigger) found with requested index %d \n",idTrig));
146 if( phiclusterBad < 0 ) phiclusterBad+=TMath::TwoPi();
147 Float_t tofclusterBad = badClusTrig->GetTOF()*1.e9;
148 Float_t eclusterBad = badClusTrig->E();
163 else if( bad && !exotic )
176 else if( !bad && exotic )
198 Float_t tofclusterUS = TMath::Abs(tofcluster);
211 Int_t histoBC = bc+5;
212 if(
GetReader()->AreBadTriggerEventsRemoved()) histoBC=0;
220 else if(TMath::Abs(bc) < 6)
234 if(idcalo ==
GetReader()->GetTriggerClusterId())
244 if(ecluster > threshold)
246 else if(ecluster > threshold-1)
267 if(idcalo ==
GetReader()->GetTriggerClusterId())
276 if(ecluster > threshold)
278 else if(ecluster > threshold-1)
283 if(
GetReader()->IsTriggerMatchedOpenCuts(0))
288 if(
GetReader()->IsTriggerMatchedOpenCuts(1))
293 if(
GetReader()->IsTriggerMatchedOpenCuts(2))
327 else if(
GetReader()->IsBadCellTriggerEvent() )
368 else if(TMath::Abs(bc) >= 6) AliWarning(Form(
"Trigger BC not expected = %d\n",bc));
377 const Int_t buffersize = 255;
378 char onePar[buffersize] ;
380 snprintf(onePar,buffersize,
"--- AliAnaEMCALTriggerClusters ---:") ;
384 snprintf(onePar,buffersize,
"fMinM02: %2.2f, fMaxM02: %2.2f;",
fMinM02,
fMaxM02) ;
386 snprintf(onePar,buffersize,
"fNCellsCut: %d;",
fNCellsCut) ;
392 return new TObjString(parList) ;
402 outputContainer->SetName(
"EMCALTriggerClusters") ;
411 if(!
GetReader()->AreBadTriggerEventsRemoved())
417 fhE =
new TH1F(
"hE",
"raw cluster #it{E}",nptbins,ptmin,ptmax);
418 fhE->SetYTitle(
"d#it{N}/d#it{E} ");
419 fhE->SetXTitle(
"#it{E} (GeV)");
420 outputContainer->Add(
fhE) ;
422 fhESelected =
new TH1F(
"hESelected",
"selected cluster #it{E}",nptbins,ptmin,ptmax);
428 (
"hEtaPhi",
"cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
434 (
"hEtaPhiSelected",
"selected cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
440 (
"hEtaPhiEMCALBC0",
"cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with |time| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
446 (
"hEtaPhiEMCALBC1",
"cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with 25 < |time| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
452 (
"hEtaPhiEMCALBCN",
"cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with |time| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
457 for(
Int_t i = 0; i < nTrigBC; i++)
460 (Form(
"hEtaPhiTriggerEMCALBC%d",i-iBCShift),
461 Form(
"cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=%d",i-iBCShift),
462 netabins,etamin,etamax,nphibins,phimin,phimax);
468 (Form(
"hTimeTriggerEMCALBC%d",i-iBCShift),
469 Form(
"cluster #it{time} vs #it{E} of clusters, Trigger EMCAL-BC=%d",i-iBCShift),
470 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
476 (Form(
"hTimeTriggerEMCALBC%dPileUpSPD",i-iBCShift),
477 Form(
"cluster #it{time} vs #it{E} of clusters, Trigger EMCAL-BC=%d",i-iBCShift),
478 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
484 (Form(
"hEtaPhiTriggerEMCALBC%d_UnMatch",i-iBCShift),
485 Form(
"cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
486 netabins,etamin,etamax,nphibins,phimin,phimax);
492 (Form(
"hTimeTriggerEMCALBC%d_UnMatch",i-iBCShift),
493 Form(
"cluster #it{time} vs #it{E} of clusters, unmatched trigger EMCAL-BC=%d",i-iBCShift),
494 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
500 (Form(
"hEtaPhiTriggerEMCALBC%d_OnlyTrigger",i-iBCShift),
501 Form(
"trigger cluster, #eta vs #phi, Trigger EMCAL-BC=%d",i-iBCShift),
502 netabins,etamin,etamax,nphibins,phimin,phimax);
508 (Form(
"hEtaPhiTriggerEMCALBC%d_OnlyTrigger_UnMatch",i-iBCShift),
509 Form(
"trigger cluster, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
510 netabins,etamin,etamax,nphibins,phimin,phimax);
517 "trigger cluster #it{time} vs #it{E} of clusters",
518 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
524 "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger",
525 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
531 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_OverThreshold",
532 "trigger cluster #it{E} > trigger threshold, #eta vs #phi, Trigger EMCAL-BC=0",
533 netabins,etamin,etamax,nphibins,phimin,phimax);
539 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_OverThreshold_UnMatch",
540 "trigger cluster #it{E} > trigger threshold, #eta vs #phi, unmatched trigger EMCAL-BC=0",
541 netabins,etamin,etamax,nphibins,phimin,phimax);
547 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold1",
548 "trigger cluster thresh-1 < #it{E} < thres, #eta vs #phi, Trigger EMCAL-BC=0",
549 netabins,etamin,etamax,nphibins,phimin,phimax);
555 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold1_UnMatch",
556 "trigger cluster thresh-1 < #it{E} < thres, #eta vs #phi, unmatched trigger EMCAL-BC=0",
557 netabins,etamin,etamax,nphibins,phimin,phimax);
563 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold2",
564 "trigger cluster thresh-2 < #it{E} < thres, #eta vs #phi, Trigger EMCAL-BC=0",
565 netabins,etamin,etamax,nphibins,phimin,phimax);
571 (
"hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold2_UnMatch",
572 "trigger cluster thresh-2 < #it{E} < thres, #eta vs #phi, unmatched trigger EMCAL-BC=0",
573 netabins,etamin,etamax,nphibins,phimin,phimax);
578 if(!
GetReader()->AreBadTriggerEventsRemoved())
581 (
"hEtaPhiTriggerExotic",
582 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Exotic",
583 netabins,etamin,etamax,nphibins,phimin,phimax);
589 (
"hTimeTriggerExotic",
590 "cluster #it{time} vs #it{E} of clusters, Trigger Exotic ",
591 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
597 (
"hEtaPhiTriggerExotic_UnMatch",
598 "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Exotic",
599 netabins,etamin,etamax,nphibins,phimin,phimax);
605 (
"hTimeTriggerExotic_UnMatch",
606 "cluster #it{time} vs #it{E} of clusters, unmatched trigger Exotic",
607 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
613 (
"hEtaPhiTriggerExotic_OnlyTrigger",
614 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Exotic",
615 netabins,etamin,etamax,nphibins,phimin,phimax);
621 (
"hTimeTriggerExotic_OnlyTrigger",
622 "trigger cluster #it{time} vs #it{E} of clusters, Trigger Exotic",
623 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
629 (
"hEtaPhiTriggerExotic_OnlyTrigger_UnMatch",
630 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Exotic",
631 netabins,etamin,etamax,nphibins,phimin,phimax);
637 (
"hTimeTriggerExotic_OnlyTrigger_UnMatch",
638 "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger Exotic",
639 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
645 (
"hEtaPhiTriggerBad",
646 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad",
647 netabins,etamin,etamax,nphibins,phimin,phimax);
654 "cluster #it{time} vs #it{E} of clusters, Trigger Bad ",
655 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
661 (
"hEtaPhiTriggerBad_UnMatch",
662 "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad",
663 netabins,etamin,etamax,nphibins,phimin,phimax);
669 (
"hTimeTriggerBad_UnMatch",
670 "cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad",
671 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
677 (
"hEtaPhiTriggerBad_OnlyTrigger",
678 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad",
679 netabins,etamin,etamax,nphibins,phimin,phimax);
685 (
"hTimeTriggerBad_OnlyTrigger",
686 "trigger cluster #it{time} vs #it{E} of clusters, Trigger Bad",
687 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
693 (
"hEtaPhiTriggerBad_OnlyTrigger_UnMatch",
694 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad",
695 netabins,etamin,etamax,nphibins,phimin,phimax);
701 (
"hTimeTriggerBad_OnlyTrigger_UnMatch",
702 "trigger cluster time vs #it{E} of clusters, unmatched trigger Bad",
703 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
709 (
"hEtaPhiTriggerBadExotic",
710 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
711 netabins,etamin,etamax,nphibins,phimin,phimax);
717 (
"hTimeTriggerBadExotic",
718 "cluster #it{time} vs #it{E} of clusters, Trigger Bad&Exotic ",
719 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
725 (
"hEtaPhiTriggerBadExotic_UnMatch",
726 "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
727 netabins,etamin,etamax,nphibins,phimin,phimax);
733 (
"hTimeTriggerBadExotic_UnMatch",
734 "cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad&Exotic",
735 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
741 (
"hEtaPhiTriggerBadExotic_OnlyTrigger",
742 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
743 netabins,etamin,etamax,nphibins,phimin,phimax);
749 (
"hTimeTriggerBadExotic_OnlyTrigger",
750 "trigger cluster #it{time} vs #it{E} of clusters, Trigger Bad&Exotic",
751 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
757 (
"hEtaPhiTriggerBadExotic_OnlyTrigger_UnMatch",
758 "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
759 netabins,etamin,etamax,nphibins,phimin,phimax);
765 (
"hTimeTriggerBadExotic_OnlyTrigger_UnMatch",
766 "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad&Exotic",
767 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
773 (
"hTimeTriggerBadMaxCell",
774 "cluster #it{time} vs #it{E} of clusters, Trigger BadMaxCell",
775 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
781 (
"hTimeTriggerBadMaxCell_UnMatch",
782 "cluster #it{time} vs #it{E} of clusters, unmatched trigger BadMaxCell",
783 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
790 (
"hTimeTriggerBadMaxCellExotic",
791 "cluster #it{time} vs #it{E} of clusters, Trigger BadMaxCell&Exotic",
792 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
798 (
"hTimeTriggerBadMaxCellExotic_UnMatch",
799 "cluster #it{time} vs #it{E} of clusters, unmatched trigger BadMaxCell&Exotic",
800 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
807 "events with no foundable trigger, time vs e of clusters",
808 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
815 "events with no foundable trigger, eta vs phi of clusters",
816 netabins,etamin,etamax,nphibins,phimin,phimax);
823 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch open time",
824 netabins,etamin,etamax,nphibins,phimin,phimax);
830 "cluster #it{time} vs #it{E} of clusters, no match, rematch open time",
831 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
838 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch with neighbour patches",
839 netabins,etamin,etamax,nphibins,phimin,phimax);
845 "cluster #it{time} vs #it{E} of clusters, no match, rematch with neigbour parches",
846 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
852 "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch open time and neighbour",
853 netabins,etamin,etamax,nphibins,phimin,phimax);
859 "cluster #it{time} vs #it{E} of clusters, no match, rematch open time and neigbour",
860 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
866 "cluster #it{time} vs #it{E} of clusters, no match, rematch open time",
867 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
874 "cluster #it{time} vs #it{E} of clusters, no match, rematch with neigbour parches",
875 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
881 "cluster #it{time} vs #it{E} of clusters, no match, rematch open time and neigbour",
882 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
888 (
"hEtaPhiSelectedEMCALBC0",
"Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with |time| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
894 (
"hEtaPhiSelectedEMCALBC1",
"Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with 25 < |time| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
900 (
"hEtaPhiSelectedEMCALBCN",
"Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with |time| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
905 for(
Int_t i = 0; i < nTrigBC; i++)
908 (Form(
"hEtaPhiSelectedTriggerEMCALBC%d",i-iBCShift),
909 Form(
"photon #it{E} > 2 GeV, #eta vs #phi, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
910 netabins,etamin,etamax,nphibins,phimin,phimax);
916 (Form(
"hTimeSelectedTriggerEMCALBC%d",i-iBCShift),
917 Form(
"photon #it{time} vs #it{E} of clusters, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
918 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
924 (Form(
"hTimeSelectedTriggerEMCALBC%dPileUpSPD",i-iBCShift),
925 Form(
"photon #it{time} vs #it{E}, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
926 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
932 (Form(
"hEtaPhiSelectedTriggerEMCALBC%d_UnMatch",i-iBCShift),
933 Form(
"photon #it{E} > 2 GeV, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
934 netabins,etamin,etamax,nphibins,phimin,phimax);
940 (Form(
"hTimeSelectedTriggerEMCALBC%d_UnMatch",i-iBCShift),
941 Form(
"photon #it{time} vs #it{E}, unmatched trigger EMCAL-BC=%d",i-iBCShift),
942 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
949 "cluster #it{time} vs #it{E} of photons, no match, rematch open time",
950 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
957 "cluster #it{time} vs #it{E} of photons, no match, rematch with neigbour parches",
958 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
964 "cluster #it{time} vs #it{E} of photons, no match, rematch open time and neigbour",
965 nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
970 return outputContainer ;
981 AliFatal(
"You want to use EMCAL real data in analysis but it is not read!! \n!!Check the configuration file!!\n");
1008 AliWarning(
"TObjArray with clusters is NULL!");
1016 Int_t nCaloClusters = pl->GetEntriesFast();
1019 AliDebug(1,Form(
"Input cluster entries %d", nCaloClusters));
1022 for(
Int_t icalo = 0; icalo < nCaloClusters; icalo++)
1024 AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
1029 Float_t tofcluster = calo->GetTOF()*1.e9;
1033 if(phicluster < 0) phicluster+=TMath::TwoPi();
1039 if(idTrig < 0)
continue;
1049 if(calo->GetNCells() <=
fNCellsCut)
continue;
1056 if(! in ) continue ;
1065 if(calo->GetM02() <
fMinM02 || calo->GetM02() >
fMaxM02)
continue;
1070 Float_t tofUS = TMath::Abs(tofcluster);
1080 Int_t histoBC = bc-5;
1081 if(
GetReader()->AreBadTriggerEventsRemoved()) histoBC = 0 ;
1083 if(TMath::Abs(bc) < 6 && !
GetReader()->IsBadCellTriggerEvent() && !
GetReader()->IsExoticEvent())
1104 else if(TMath::Abs(bc) >= 6)
1105 AliWarning(Form(
"Trigger BC not expected = %d",bc));
1109 AliDebug(1,
"End fill histograms");
1120 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
1124 printf(
"Number of cells in cluster is > %d \n" ,
fNCellsCut);
virtual Bool_t IsFiducialCutOn() const
Float_t GetHistoPtMax() const
Bool_t IsBadMaxCellTriggerEvent() const
TH2F * fhEtaPhiTriggerEMCALBCExoticCluster
! Pseudorapidity vs Phi of trigger exotic clusters
Float_t GetHistoPtMin() const
TH2F * fhTimeTriggerEMCALBC[11]
! Time distribution of clusters, when trigger is in a given BC
virtual void AddToHistogramsName(TString add)
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched with neigbour patchs
TH2F * fhTimeTriggerEMCALBCUM[11]
! Time distribution of clusters, when trigger is in a given BC, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
TH2F * fhTimeTriggerEMCALBCBadExotic
! Time distribution of clusters, when trigger exotic and bad cluster
TH2F * fhTimeTriggerEMCALBCUMBadCluster
! Time distribution of highest energy bad cluster in event, when trigger is in a given BC...
virtual void GetVertex(Double_t vertex[3]) const
TH2F * fhEtaPhiTriggerEMCALBCUM[11]
! Pseudorapidity vs Phi of clusters for E > 2, not matched to trigger
TH2F * fhTimeTriggerEMCALBCUMBadMaxCell
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found ...
virtual AliVEvent * GetInputEvent() const
TH2F * fhTimeTriggerEMCALBCUMBad
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open time trigger
TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCUMBadMaxCellExotic
! Time distribution of highest energy exotic with bad max cell cluster in event, when trigger is not ...
TH2F * fhEtaPhiTriggerEMCALBCUMExotic
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchBoth
! Time distribution of photons in event, when trigger is not found, rematched open both ...
virtual Bool_t IsTrackMatched(AliVCluster *cluster, AliVEvent *event)
TH2F * fhEtaPhiTriggerEMCALBCClusterOverTh
! Pseudorapidity vs Phi of trigger clusters, over nominal threshold
Int_t GetHistoPhiBins() const
TH2F * fhTimeTriggerEMCALBCBadMaxCell
! Time distribution of trigger clusters, when trigger bad max cell
TH2F * fhEtaPhiSelectedEMCALBCN
! Pseudorapidity vs Phi of identified photon for E > 0.5
Int_t fNCellsCut
Accept for the analysis clusters with more than fNCellsCut cells.
TH2F * fhEtaPhiTriggerEMCALBCUMBad
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCBadExoticCluster
! Time distribution of clusters, when trigger exotic and bad cluster
TH2F * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh
! Time distribution of clusters, not matched to trigger, rematched with neighbour patchs ...
TH2F * fhEtaPhiSelectedTriggerEMCALBCUM[11]
! Pseudorapidity vs Phi of photons for E > 2, not matched to trigger
Bool_t IsTriggerMatchedOpenCuts(Int_t i) const
TH2F * fhEtaPhiEMCALBC1
! Pseudorapidity vs Phi of clusters for E > 0.5
TH2F * fhTimeTriggerEMCALBCExoticCluster
! Time distribution of clusters, when trigger exotic cluster
Float_t GetHistoPhiMin() const
TH2F * fhTimeTriggerEMCALBCUMExotic
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime
! Time distribution of clusters, not matched to trigger, rematched open time trigger ...
Float_t fMaxM02
Remove clusters with small M02.
TH2F * fhTimeTriggerEMCALBCBadMaxCellExotic
! Time distribution of trigger clusters, when trigger exotic cluster with bad max cell ...
TH2F * fhTimeTriggerEMCALBCUMReMatchBothCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
virtual Float_t GetMinEnergy() const
TH2F * fhEtaPhiTriggerEMCALBCBadCluster
! Pseudorapidity vs Phi of trigger bad clusters
Base class for CaloTrackCorr analysis algorithms.
TH2F * fhEtaPhiSelectedEMCALBC0
! Pseudorapidity vs Phi of identified photon for E > 0.5
virtual AliFiducialCut * GetFiducialCut()
Float_t GetEventTriggerL0Threshold() const
virtual AliHistogramRanges * GetHistogramRanges()
void FillBadTriggerEventHistogram()
Fill Bad events histo, study bad/exotic trigger BC.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
TH2F * fhTimeSelectedTriggerEMCALBCPileUpSPD[11]
! Time distribution of photons, when trigger is in a given BC, tagged as pile-up SPD ...
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH1F * fhESelected
! Selected custers E
Bool_t IsInFiducialCut(Float_t eta, Float_t phi, Int_t det) const
TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster
! Pseudorapidity vs Phi of trigger exotic and bad clusters
virtual AliAODEvent * GetOutputEvent() const
TH2F * fhEtaPhiEMCALBCN
! Pseudorapidity vs Phi of clusters for E > 0.5
TList * GetCreateOutputObjects()
Int_t GetTriggerClusterBC() const
TH2F * fhEtaPhiTriggerEMCALBCBadExotic
! Pseudorapidity vs Phi of trigger exotic and bad clusters
TH2F * fhTimeTriggerEMCALBCBad
! Time distribution of clusters, when trigger exotic
TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2
! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
virtual Double_t GetEventWeight() const
TH2F * fhTimeTriggerEMCALBCPileUpSPD[11]
! Time distribution of clusters, when trigger is in a given BC, tagged as pile-up SPD ...
TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh1
! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
Class for study of EMCAL trigger behaviour.
TH2F * fhTimeTriggerEMCALBCCluster
! Time distribution of clusters, when trigger cluster is in a given BC
TH2F * fhEtaPhiNoTrigger
! Pseudorapidity vs Phi of highest E exotic cluster in event, no trigger at all
TH2F * fhTimeSelectedTriggerEMCALBCUM[11]
! Time distribution of photons, when trigger is in a given BC, not matched to trigger ...
Float_t GetHistoEtaMin() const
Int_t GetTriggerClusterIndex() const
TH2F * fhEtaPhiSelectedEMCALBC1
! Pseudorapidity vs Phi of identified photon for E > 0.5
TH2F * fhTimeTriggerEMCALBCUMCluster
! Time distribution of highest energy cluster in event, when trigger is in a given BC...
ClassImp(AliAnalysisTaskDeltaPt) AliAnalysisTaskDeltaPt
TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCBadCluster
! Time distribution of clusters, when trigger bad cluster is in a given BC
TH2F * fhEtaPhiTriggerEMCALBC[11]
! Pseudorapidity vs Phi of clusters for E > 2
Float_t GetHistoEtaMax() const
TH2F * fhEtaPhi
! Raw Pseudorapidity vs Phi of clusters for E > 0.5
TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth
! Time distribution of clusters, not matched to trigger, rematched open both
Int_t GetHistoPtBins() const
TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster
! Pseudorapidity vs Phi of highest E exotic and bad cluster in event, not matched to trigger ...
Float_t GetEventTriggerL1Threshold() const
TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchBothCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open both
Bool_t fRejectTrackMatch
Reject clusters which have an associated TPC track.
TH2F * fhEtaPhiTriggerEMCALBCBad
! Pseudorapidity vs Phi of trigger exotic clusters
Bool_t IsExoticEvent() const
TLorentzVector fMomentum
! Cluster momentum
void FillRawClusterTriggerBCHistograms(Int_t idcalo, Float_t ecluster, Float_t tofcluster, Float_t etacluster, Float_t phicluster)
Fill trigger related histograms.
virtual Float_t GetMaxEnergy() const
Int_t GetHistoTimeBins() const
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime
! Time distribution of photons in event, when trigger is not found, rematched open time trigger ...
Float_t GetHistoTimeMax() const
TString GetEMCALClusterListName() const
Float_t GetHistoTimeMin() const
TH2F * fhEtaPhiTriggerEMCALBCCluster[11]
! Pseudorapidity vs Phi of trigger clusters
TH2F * fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
Float_t fMinM02
Remove clusters with large M02.
Float_t GetHistoPhiMax() const
virtual AliCaloTrackReader * GetReader() const
TH2F * fhTimeTriggerEMCALBCExotic
! Time distribution of clusters, when trigger exotic cluster
Int_t GetHistoEtaBins() const
TH2F * fhEtaPhiTriggerEMCALBCUMCluster[11]
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger
TH2F * fhEtaPhiSelected
! Pseudorapidity vs Phi of clusters for E > 0.5
virtual TObjArray * GetEMCALClusters() const
TH2F * fhTimeTriggerEMCALBCUMBadExotic
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiEMCALBC0
! Pseudorapidity vs Phi of clusters for E > 0.5
Bool_t IsBadCellTriggerEvent() const
TH2F * fhTimeSelectedTriggerEMCALBC[11]
! Time distribution of photons, when trigger is in a given BC
TH1F * fhE
! Raw clusters E
void InitParameters()
Initialize the parameters of the analysis with default values.
TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster
! Time distribution of highest energy exotic and bad cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh1
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal th...
void MakeAnalysisFillHistograms()
TH2F * fhEtaPhiTriggerEMCALBCUMClusterOverTh
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, over nominal threshold...
TH2F * fhEtaPhiTriggerEMCALBCExotic
! Pseudorapidity vs Phi of trigger exotic clusters
TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal th...
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh
! Time distribution of photons in event, when trigger is not found, rematched with neigbour patchs ...
TH2F * fhEtaPhiSelectedTriggerEMCALBC[11]
! Pseudorapidity vs Phi of photons for E > 0.5
TH2F * fhTimeNoTrigger
! Time distribution of highest energy exotic cluster in event, no trigger at all
Int_t GetTriggerClusterId() const
TH2F * fhTimeTriggerEMCALBCUMExoticCluster
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...