AliAODEvent::GetHeader() returns AliVHeader
[u/mrichter/AliRoot.git] / PWG / DevNanoAOD / AliAnalysisNanoAODCuts.cxx
1 #include "AliAnalysisNanoAODCuts.h"
2 #include "AliAODTrack.h"
3 #include "AliAODEvent.h"
4 #include "AliNanoAODHeader.h"
5 #include "AliNanoAODTrack.h"
6 #include <iomanip>
7
8 ClassImp(AliAnalysisNanoAODTrackCuts)
9 ClassImp(AliAnalysisNanoAODEventCuts)
10 ClassImp(AliNanoAODSimpleSetter)
11
12
13 AliAnalysisNanoAODTrackCuts::AliAnalysisNanoAODTrackCuts():
14 AliAnalysisCuts(), fBitMask(1), fMinPt(0), fMaxEta(10)
15 {
16   // default ctor 
17 }
18
19 Bool_t AliAnalysisNanoAODTrackCuts::IsSelected(TObject* obj)
20 {
21   // Returns true if the track is good!
22   AliAODTrack* track = dynamic_cast<AliAODTrack*>(obj);
23   
24   
25   if (!track->TestFilterBit(fBitMask))    return kFALSE;
26   if (track->Pt() < fMinPt)               return kFALSE;
27   if (TMath::Abs(track->Eta()) > fMaxEta) return kFALSE; 
28   
29   return kTRUE;  
30
31 }
32
33 AliAnalysisNanoAODEventCuts::AliAnalysisNanoAODEventCuts():
34   AliAnalysisCuts(),  fVertexRange(10)
35 {
36   // default ctor   
37 }
38
39 Bool_t AliAnalysisNanoAODEventCuts::IsSelected(TObject* obj)
40 {
41   // Returns true if the object is a primary vertex
42   AliAODEvent * evt = dynamic_cast<AliAODEvent*>(obj);
43   
44   AliAODVertex * vertex = evt->GetPrimaryVertex();
45   if (!vertex) return kFALSE;
46   if (TMath::Abs(vertex->GetZ()) > fVertexRange) return kFALSE;
47   
48   return kTRUE;
49   
50 }
51
52
53 void AliNanoAODSimpleSetter::SetNanoAODHeader(const AliAODEvent * event   , AliNanoAODHeader * head  ) {
54
55   AliAODHeader * header = dynamic_cast<AliAODHeader*>(event->GetHeader());
56   if (!header) AliFatal("Not a standard AOD");
57   // Set custom nano aod vars
58   Double_t centr    = header->GetCentralityP()->GetCentralityPercentile("V0M");
59   Double_t magfield = header->GetMagneticField();
60   head->SetVar(0, centr);
61   head->SetVar(1, magfield);
62
63 }