#ifndef ALIJEFFCIENCYSCANNER_H
#define ALIJEFFCIENCYSCANNER_H
#include <TNamed.h>
#include "AliJRunHeader.h"
#include <iostream>
#include <TClonesArray.h>
#include <AliJConst.h>
#include <TVectorT.h>
#include "AliJMCTrack.h"
#include "AliJTrack.h"
#include <AliJTrackCut.h>
#include <TFile.h>
#include <TF1.h>
#ifndef AliJMaxDimBuffer
#define AliJMaxDimBuffer
const int kMaxDimBuffer = 300;
#endif
class AliJEventHeader;
class AliJRunHeader;
class AliJTrack;
class AliAnalysisTaskSE;
class TH1D;
class TH2D;
class AliJEfficiencyScanner : public TNamed {
public:
enum { kJPhysicsPrimary, kJFake, kNPrimaryStatus };
enum { kJMCTrack, kJGlobal, kJTPCOnly, kJGCG , kNTrackType };
enum { kNVtxBin=1 };
enum { kNCentBin=21};
AliJEfficiencyScanner();
AliJEfficiencyScanner(const char *name);
AliJEfficiencyScanner(const AliJEfficiencyScanner& ap);
AliJEfficiencyScanner& operator = (const AliJEfficiencyScanner& ap);
virtual ~AliJEfficiencyScanner();
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() { Init(); }
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t * opt = "");
void SetJTrackList( TClonesArray * l ) { fTrackList = l ; }
void SetJMCTrackList( TClonesArray * l ) { fMCTrackList = l ; }
void SetJEventHeader( AliJEventHeader * h ){ fEventHeader = h ; }
void SetJRunHeader( AliJRunHeader *h ){ fRunHeader = h; }
void SetMBTriggMask(int mask ){ fMBTriggMask = mask; }
bool IsSelected( AliJTrack * track, int itrigger )const { return AliJTrackCut::GetInstance().IsSelected(track, itrigger); }
AliJTrack * GetJTrack( int i ){ return (AliJTrack*) fTrackList->At(i); }
AliJMCTrack * GetJMCTrack( int i ){ return (AliJMCTrack*) fMCTrackList->At(i); }
TClonesArray * GetJMCTracks() { return fMCTrackList; }
TClonesArray * GetJTracks() { return fTrackList; }
AliJEventHeader * GetJEventHeader(){ return fEventHeader; }
AliJRunHeader * GetJRunHeader(){ return fRunHeader; }
TH1 * AddTH1(TString name, TH1*h ){
h->SetName(name);
h->SetTitle(name);
h->Sumw2();
h->SetDirectory(gDirectory);
return h;
}
TH1D * AddTH1D( TString name, TH1D*h){ return (TH1D*)AddTH1(name,h); }
TH2D * AddTH2D( TString name, TH2D*h){ return (TH2D*)AddTH1(name,h); }
private:
Int_t DebugLevel(){ return 5; }
inline void DEBUG(int level, int type, TString msg1, TString msg2=""){
if(DebugLevel()>level) std::cout<<msg1<<" : "<<msg2<<"\t"<<type<<std::endl;
}
void PrintOut() const;
int fMBTriggMask;
TClonesArray * fTrackList;
TClonesArray * fMCTrackList;
AliJEventHeader * fEventHeader;
AliJRunHeader* fRunHeader;
TH1D *fhChargedPtMC[kNVtxBin][kNCentBin];
TH2D *fh2DChargedPtTrigg[kNVtxBin][kNCentBin];
TH2D *fh2DChargedPtTriggVtx[kNVtxBin][kNCentBin];
TH2D *fh2DChargedPtRec[kNVtxBin][kNCentBin][AliJTrackCut::kJNTrackCuts];
TH2D *fh2DChargedPtAll[kNVtxBin][kNCentBin][AliJTrackCut::kJNTrackCuts];
TH2D* fhVertexZMC;
TH2D* fhVertexZTrigg;
TH2D* fhVertexZTriggVtx;
TH1D* fhVZRawMC;
TH1D* fhVZRecMC;
TH1D* fhVZRecAccMC;
TH1D * fhChargedPtMCTrigg[kNVtxBin][kNCentBin];
TH1D * fhChargedPtMCTriggVtx[kNVtxBin][kNCentBin];
TH1D * fhChargedPtMCRecoCentVtx[kNVtxBin][kNCentBin][AliJTrackCut::kJNTrackCuts][kNPrimaryStatus][kNTrackType];
TH2D * fh2VtxCent;
TH2D * fh2MultGenRawPrimary[AliJTrackCut::kJNTrackCuts];
TH2D * fh2MultGenRawAll[AliJTrackCut::kJNTrackCuts];
TH1D * fhDCA2VertexXY[kNVtxBin][kNCentBin][AliJTrackCut::kJNTrackCuts];
TH1D * fhDCA2VertexZ[kNVtxBin][kNCentBin][AliJTrackCut::kJNTrackCuts];
TH1D * fhL0Input;
TH1D * fhTriggerAlice;
TH1D * fhZVtxMCAll;
TH1D * fhZVtxMCTrigg;
TH1D * fhZVtxMCTriggVtx;
TH1D * fhZVtxRecAll;
TH1D * fhZVtxRecTrigg;
TH1D * fhZVtxRecTriggVtx;
TF1 * fVtxReFunc;
TF1 * fVtxMCFunc;
TF1 * fVtxRatioFunc;
double fVtxRatioMax;
ClassDef(AliJEfficiencyScanner, 1);
};
#endif // AliJEfficiencyScanner_H
AliJEfficiencyScanner.h:1 AliJEfficiencyScanner.h:2 AliJEfficiencyScanner.h:3 AliJEfficiencyScanner.h:4 AliJEfficiencyScanner.h:5 AliJEfficiencyScanner.h:6 AliJEfficiencyScanner.h:7 AliJEfficiencyScanner.h:8 AliJEfficiencyScanner.h:9 AliJEfficiencyScanner.h:10 AliJEfficiencyScanner.h:11 AliJEfficiencyScanner.h:12 AliJEfficiencyScanner.h:13 AliJEfficiencyScanner.h:14 AliJEfficiencyScanner.h:15 AliJEfficiencyScanner.h:16 AliJEfficiencyScanner.h:17 AliJEfficiencyScanner.h:18 AliJEfficiencyScanner.h:19 AliJEfficiencyScanner.h:20 AliJEfficiencyScanner.h:21 AliJEfficiencyScanner.h:22 AliJEfficiencyScanner.h:23 AliJEfficiencyScanner.h:24 AliJEfficiencyScanner.h:25 AliJEfficiencyScanner.h:26 AliJEfficiencyScanner.h:27 AliJEfficiencyScanner.h:28 AliJEfficiencyScanner.h:29 AliJEfficiencyScanner.h:30 AliJEfficiencyScanner.h:31 AliJEfficiencyScanner.h:32 AliJEfficiencyScanner.h:33 AliJEfficiencyScanner.h:34 AliJEfficiencyScanner.h:35 AliJEfficiencyScanner.h:36 AliJEfficiencyScanner.h:37 AliJEfficiencyScanner.h:38 AliJEfficiencyScanner.h:39 AliJEfficiencyScanner.h:40 AliJEfficiencyScanner.h:41 AliJEfficiencyScanner.h:42 AliJEfficiencyScanner.h:43 AliJEfficiencyScanner.h:44 AliJEfficiencyScanner.h:45 AliJEfficiencyScanner.h:46 AliJEfficiencyScanner.h:47 AliJEfficiencyScanner.h:48 AliJEfficiencyScanner.h:49 AliJEfficiencyScanner.h:50 AliJEfficiencyScanner.h:51 AliJEfficiencyScanner.h:52 AliJEfficiencyScanner.h:53 AliJEfficiencyScanner.h:54 AliJEfficiencyScanner.h:55 AliJEfficiencyScanner.h:56 AliJEfficiencyScanner.h:57 AliJEfficiencyScanner.h:58 AliJEfficiencyScanner.h:59 AliJEfficiencyScanner.h:60 AliJEfficiencyScanner.h:61 AliJEfficiencyScanner.h:62 AliJEfficiencyScanner.h:63 AliJEfficiencyScanner.h:64 AliJEfficiencyScanner.h:65 AliJEfficiencyScanner.h:66 AliJEfficiencyScanner.h:67 AliJEfficiencyScanner.h:68 AliJEfficiencyScanner.h:69 AliJEfficiencyScanner.h:70 AliJEfficiencyScanner.h:71 AliJEfficiencyScanner.h:72 AliJEfficiencyScanner.h:73 AliJEfficiencyScanner.h:74 AliJEfficiencyScanner.h:75 AliJEfficiencyScanner.h:76 AliJEfficiencyScanner.h:77 AliJEfficiencyScanner.h:78 AliJEfficiencyScanner.h:79 AliJEfficiencyScanner.h:80 AliJEfficiencyScanner.h:81 AliJEfficiencyScanner.h:82 AliJEfficiencyScanner.h:83 AliJEfficiencyScanner.h:84 AliJEfficiencyScanner.h:85 AliJEfficiencyScanner.h:86 AliJEfficiencyScanner.h:87 AliJEfficiencyScanner.h:88 AliJEfficiencyScanner.h:89 AliJEfficiencyScanner.h:90 AliJEfficiencyScanner.h:91 AliJEfficiencyScanner.h:92 AliJEfficiencyScanner.h:93 AliJEfficiencyScanner.h:94 AliJEfficiencyScanner.h:95 AliJEfficiencyScanner.h:96 AliJEfficiencyScanner.h:97 AliJEfficiencyScanner.h:98 AliJEfficiencyScanner.h:99 AliJEfficiencyScanner.h:100 AliJEfficiencyScanner.h:101 AliJEfficiencyScanner.h:102 AliJEfficiencyScanner.h:103 AliJEfficiencyScanner.h:104 AliJEfficiencyScanner.h:105 AliJEfficiencyScanner.h:106 AliJEfficiencyScanner.h:107 AliJEfficiencyScanner.h:108 AliJEfficiencyScanner.h:109 AliJEfficiencyScanner.h:110 AliJEfficiencyScanner.h:111 AliJEfficiencyScanner.h:112 AliJEfficiencyScanner.h:113 AliJEfficiencyScanner.h:114 AliJEfficiencyScanner.h:115 AliJEfficiencyScanner.h:116 AliJEfficiencyScanner.h:117 AliJEfficiencyScanner.h:118 AliJEfficiencyScanner.h:119 AliJEfficiencyScanner.h:120 AliJEfficiencyScanner.h:121 AliJEfficiencyScanner.h:122 AliJEfficiencyScanner.h:123 AliJEfficiencyScanner.h:124 AliJEfficiencyScanner.h:125 AliJEfficiencyScanner.h:126 AliJEfficiencyScanner.h:127 AliJEfficiencyScanner.h:128 AliJEfficiencyScanner.h:129 AliJEfficiencyScanner.h:130 AliJEfficiencyScanner.h:131 AliJEfficiencyScanner.h:132 AliJEfficiencyScanner.h:133 AliJEfficiencyScanner.h:134 AliJEfficiencyScanner.h:135 AliJEfficiencyScanner.h:136 AliJEfficiencyScanner.h:137 AliJEfficiencyScanner.h:138 AliJEfficiencyScanner.h:139 AliJEfficiencyScanner.h:140 AliJEfficiencyScanner.h:141 AliJEfficiencyScanner.h:142 AliJEfficiencyScanner.h:143 AliJEfficiencyScanner.h:144 AliJEfficiencyScanner.h:145 AliJEfficiencyScanner.h:146