]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliAnalysisTaskJetCore.h
Stupid bug fix in new superlight mode (from Zurich airport)
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetCore.h
index 4d5f3cb3fffc3b9489781b5d7188da1d0e8d7795..667020d5e325d7eddec8d24d1a5bc71d7605d4c0 100644 (file)
@@ -17,6 +17,7 @@ class TH1I;
 class TH2F;
 class TH3F;
 class THnSparse;
+class TRandom3;
 class AliESDEvent;
 class AliAODExtension;
 class AliAODEvent;
@@ -36,9 +37,11 @@ public:
    virtual void     Terminate(const Option_t*);
 
    virtual Int_t      GetNInputTracks();
-     
+     // Rongrong
+   virtual void     SetRunAzimuthalCorrelation(Bool_t run) {fRunAnaAzimuthalCorrelation=run;}  
    Double_t RelativePhi(Double_t angle1,Double_t angle2);     
-    virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries);
+   Int_t   GetPhiBin(Double_t phi);
+   virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries);
    virtual void       GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
    virtual AliVEvent::EOfflineTriggerTypes GetOfflineTrgMask() const { return fOfflineTrgMask; }
    virtual void     GetBranchNames(TString &branch1, TString &branch2) const { branch1 = fJetBranchName[0]; branch2 = fJetBranchName[1]; }
@@ -67,15 +70,37 @@ public:
    virtual void     SetEvtClassMin(Int_t evtClass) { fEvtClassMin = evtClass; }
    virtual void     SetEvtClassMax(Int_t evtClass) { fEvtClassMax = evtClass; }
    virtual void     SetFilterMask(UInt_t i){fFilterMask = i;}
+   virtual void     SetFilterMaskBestPt(UInt_t i){fFilterMaskBestPt = i;}
+   virtual void     SetFilterType(Int_t iType){fFilterType=iType;}
    virtual void     SetRadioFrac(Float_t radiofrac) { fRadioFrac = radiofrac; }
    virtual void     SetMinDist(Float_t minDist) { fMinDist = minDist; }
    virtual void     SetCentMin(Float_t cent) { fCentMin = cent; }
    virtual void     SetCentMax(Float_t cent) { fCentMax = cent; }
    virtual void     SetNInputTracksMin(Int_t nTr) { fNInputTracksMin = nTr; }
    virtual void     SetNInputTracksMax(Int_t nTr) { fNInputTracksMax = nTr; }
+   virtual void     SetRequireITSRefit(Int_t nref) {fRequireITSRefit=nref;}
+   virtual void     SetSharedClusterCut(Int_t docut){fApplySharedClusterCut=docut;}
    virtual void     SetAngStructCloseTracks(Int_t yesno){fAngStructCloseTracks=yesno;}
    virtual void     SetCheckMethods(Int_t yesno){fCheckMethods=yesno;}
    virtual void     SetEventMixing(Int_t yesno){fDoEventMixing=yesno;}
+   virtual void     SetFlagPhiBkg(Int_t yesno){fFlagPhiBkg=yesno;}
+   virtual void     SetFlagEtaBkg(Int_t yesno){fFlagEtaBkg=yesno;}
+   virtual void     SetFlagJetHadron(Int_t yesno){fFlagJetHadron=yesno;}
+   virtual void     SetFlagDodiHadron(Int_t yesno){fDodiHadron=yesno;}
+   virtual void     SetFlagFrac(Float_t fraction){fFrac=fraction;} 
+   virtual void     SetTTLowRef(Float_t ttlow){fTTLowRef=ttlow;}
+   virtual void     SetTTUpRef(Float_t ttup){fTTUpRef=ttup;}
+   virtual void     SetTTLowSig(Float_t ttlows){fTTLowSig=ttlows;}
+   virtual void     SetTTUpSig(Float_t ttups){fTTUpSig=ttups;}
+   virtual void     SetFlagHardest(Int_t yesno){fHardest=yesno;}
+   virtual void     SetFlagRandom(Int_t yesno){fFlagRandom=yesno;}
+   virtual void     SetFlagOnlyRecoil(Int_t yesno){fFlagOnlyRecoil=yesno;}
+   virtual void     SetFlagOnlyHardest(Int_t yesno){fFlagOnlyHardest=yesno;} 
+   virtual void     SetNRPBins(Int_t bins){fNRPBins=bins;}
+   virtual void     SetSemigoodCorrect(Int_t yesno){fSemigoodCorrect=yesno;}
+   virtual void     SetHolePos(Float_t poshole) { fHolePos = poshole; }
+   virtual void     SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
+   virtual void     SetTrackTypeRec(Int_t i){fTrackTypeRec = i;}
    virtual void     SetJetEtaMin(Float_t eta) { fJetEtaMin = eta; }
    virtual void     SetJetEtaMax(Float_t eta) { fJetEtaMax = eta; }
    virtual void     SetJetPtMin(Float_t pt) { fJetPtMin = pt; }
@@ -85,7 +110,7 @@ public:
    virtual void     SetFillEvent(Bool_t b) { fbEvent = b; }
    virtual void     SetKeepJets(Bool_t b = kTRUE) { fKeepJets = b; }
    virtual void     SetNonStdFile(char* c){fNonStdFile = c;} 
-
+    enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
 
 private:
    // ESD/AOD events
@@ -93,7 +118,8 @@ private:
    AliAODEvent *fAODIn;    //! AOD event for AOD input tracks
     AliAODEvent *fAODOut;    //! AOD event 
     AliAODExtension  *fAODExtension; //! where we take the jets from can be input or output AOD
-   Int_t   GetListOfTracks(TList *list);
+    Int_t   GetListOfTracks(TList *list);
+   Int_t   SelectTrigger(TList *list,Double_t minT,Double_t maxT,Int_t &number);
    Int_t   GetHardestTrackBackToJet(AliAODJet *jet);
    Int_t   GetListOfTracksCloseToJet(TList *list,AliAODJet *jet);
    // jets to compare
@@ -111,27 +137,51 @@ private:
    Int_t   fEvtClassMin;         // lower bound on event class
    Int_t   fEvtClassMax;         // upper bound on event class
    UInt_t  fFilterMask;            // filter bit for slecected tracks
+   UInt_t  fFilterMaskBestPt;      // filter bit for selected hig pt tracks (best quality)
+   UInt_t  fFilterType;           // type of slected tracks parrallel to filtermask
    Float_t fRadioFrac;                          //!size of the concentric cone
    Float_t fMinDist;   
    Float_t fCentMin;     // lower bound on centrality
    Float_t fCentMax;     // upper bound on centrality
    Int_t   fNInputTracksMin;  // lower bound of nb. of input tracks
    Int_t   fNInputTracksMax;  // upper bound of nb. of input tracks
+   Int_t   fRequireITSRefit;
+   Int_t   fApplySharedClusterCut; // flag to apply shared cluster cut (needed for some AODs where this cut was not applied in the filtering)
    Int_t   fAngStructCloseTracks;//only constituents or all tracks with R<0.8 for the angular structure
    Int_t   fCheckMethods;     //to look into more detail into the core
    Int_t   fDoEventMixing;
+   Int_t   fFlagPhiBkg;
+   Int_t   fFlagEtaBkg;
+   Int_t   fFlagJetHadron;
+   Int_t   fDodiHadron;
+   Float_t fFrac;               //fraction of events to evaluate signal
+   Float_t fTTLowRef;
+   Float_t fTTUpRef;
+   Float_t fTTLowSig;
+   Float_t fTTUpSig;
+   Int_t   fHardest;
+   Int_t   fFlagRandom;
+   Int_t   fFlagOnlyRecoil;
+   Int_t   fFlagOnlyHardest;
+   Int_t   fTrackTypeRec;
+   Float_t   fRPAngle;
+   Int_t   fNRPBins;
+   Int_t   fSemigoodCorrect;
+   Float_t fHolePos;
+   Float_t fHoleWidth; 
    Float_t fJetEtaMin;        // lower bound on eta for found jets
    Float_t fJetEtaMax;        // upper bound on eta for found jets
    Int_t   fNevents;          // number of events
    Int_t   fTindex;           // index reference
    Int_t   fTrigBufferIndex;  //index for the buffering
+   Int_t   fCountAgain;       //index for the buffering
    Float_t fJetPtMin;         // minimum jet pT
    UChar_t fJetTriggerExcludeMask; // mask for jet triggeres to exclude
    Float_t fJetPtFractionMin; // minimum fraction for positiv match of jets
    Int_t   fNMatchJets;       // maximal nb. of jets taken for matching
    Double_t fMatchMaxDist;     // maximal distance of matching jets
    Bool_t  fKeepJets;          // keep jets with negative pt after background subtraction
-  
+   Bool_t fRunAnaAzimuthalCorrelation;        // Flag to run azimuthal correlation between trigger track and recoil jets (Rongrong)  
 
    // output objects
    const Int_t fkNbranches;                   //! number of branches to be read
@@ -152,8 +202,8 @@ private:
    TH2F      *fh2JetCoreMethod2C30;          //Energy fraction in the core C30 method 2
    TH2F      *fh2JetCoreMethod1C60;          //Energy fraction in the core C60 method 1
    TH2F      *fh2JetCoreMethod2C60;          //Energy fraction in the core C60 method 2
-     TH2F*      fh2JetTrackC10;         //C10 pt2
-     TH2F*      fh2JetTrackC20;         //C10 pt2
+     TH3F*      fh3JetTrackC3060;           //C3060 pt2
+     TH3F*      fh3JetTrackC20;             //C10 pt2
      TH2F*      fh2AngStructpt1C10;         //Average 
      TH2F*      fh2AngStructpt2C10;         //C10 pt2
      TH2F*      fh2AngStructpt3C10;         //C10 pt3
@@ -171,84 +221,30 @@ private:
      TH2F*      fh2AngStructpt3C60;         //C60 pt3
      TH2F*      fh2AngStructpt4C60;         //C60 pt4
   
-     TH2F*      fh2JetsumHT3R2a;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2ap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4a;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4ap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6a;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6ap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8a;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8ap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10a;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10ap;             //jet shape 12
-     TH2F*      fh2JetsumHT3R2aa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2aap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4aa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4aap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6aa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6aap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8aa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8aap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10aa;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10aap;             //jet shape 12
-     TH2F*      fh2JetsumHT3R2aaa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2aaap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4aaa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4aaap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6aaa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6aaap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8aaa;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8aaap;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10aaa;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10aaap;             //jet shape 12
-     TH2F*      fh2JetsumHT3R2b;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2bp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4b;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4bp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6b;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6bp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8b;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8bp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10b;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10bp;             //jet shape 12
-     TH2F*      fh2JetsumHT3R2bb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2bbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4bb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4bbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6bb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6bbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8bb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8bbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10bb;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10bbp;             //jet shape 12
-     TH2F*      fh2JetsumHT3R2bbb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R2bbbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4bbb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R4bbbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6bbb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R6bbbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8bbb;             //jet shape 02
-     TH2F*      fh2JetsumHT3R8bbbp;             //jet shape 02
-     TH2F*      fh2JetsumHT3R10bbb;             //jet shape 12
-     TH2F*      fh2JetsumHT3R10bbbp;             //jet shape 12
-    
+     TH1D*      fh1TrigRef;                 //ref multiple triggers
+     TH1D*      fh1TrigSig;                 //sig multiple triggers    
+     TH1D*      fh1TrackPhiDistance;   //distance between high pT triggers
+     TH1D*      fh1TrackRDistance;     //distance between high pT triggers
+     TH2F*      fh2Ntriggers;              //triggers
+     TH2F*      fh2Ntriggers2C10;             //centrality bias of triggers 
+     TH2F*      fh2Ntriggers2C20;             //centrality bias of triggers 
+     TH3F*      fh3JetDensity;             //jet density
+     TH3F*      fh3JetDensityA4;           //jet density
+     TH2F*      fh2RPJetsC10;                  //reaction plane Jets
+     TH2F*      fh2RPJetsC20;
+     TH2F*      fh2RPTC10;                     //reaction plane TT 
+     TH2F*      fh2RPTC20; 
+     THnSparse   *fHJetSpec;               //Recoil jet spectrum
 
-     TH2F*      fh2Ntriggers;
-     TH2F*      fh2JetDensity;
-     TH2F*      fh2JetDensityA4;
-     TH3F*      fh3spectriggeredC10;           //triggered spectra
-     TH3F*      fh3spectriggeredC20;           //triggered spectra
-     TH3F*      fh3spectriggeredC3060;           //triggered spectra
-     TH3F*      fh3specbiased;              //biased spectra
-     TH3F*      fh3spectot;                 //the two combined  
-     TH3F*      fh3spectotb;                 //the two combined    
-     
      Double_t            fTrigBuffer[10][7];      //!buffer for triggers   
+     TH2F        *fhTTPt;                     //! Trigger track pt for normalization (Rongrong)
+     THnSparse   *fHJetPhiCorr;               //! Azimuthal correlation between trigger track and recoil jets (Rongrong)
+       TRandom3*                   fRandom;          // TRandom3  
 
    AliAnalysisTaskJetCore(const AliAnalysisTaskJetCore&); // not implemented
    AliAnalysisTaskJetCore& operator=(const AliAnalysisTaskJetCore&); // not implemented
 
-   ClassDef(AliAnalysisTaskJetCore, 4);
+   ClassDef(AliAnalysisTaskJetCore, 6);
 };
 
 #endif