////////////////////////////////////////////////////////// // This class has been automatically generated on // Fri Nov 27 20:26:38 2015 by ROOT version 5.34/30 // from TTree DstTree/Reduced ESD information // found on file: 211.tree ////////////////////////////////////////////////////////// #ifndef ClassArbore_h #define ClassArbore_h #include #include #include #include #include // Header file for the classes stored in the TTree if any. #include // Header for TMVA reader to compute the MVA response #include "TMVA/Reader.h" #include "TMVA/Tools.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedEventInfo.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedBaseEvent.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedBaseTrack.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedTrackInfo.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedPairInfo.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedCaloClusterInfo.h" //#include "/opt/alicesw/aliphysics/master/src/PWGDQ/reducedTree/AliReducedFMDInfo.h" // Fixed size dimensions of array or collections stored in the TTree if any. const Int_t kMaxfTracks = 9200; // 10 for pp // 500 for PbPb //const Int_t kMaxfCandidates = 1; //std const Int_t kMaxfCandidates = 200; //for v0 const Int_t kMaxfCaloClusters = 1; const Int_t kMaxfFMD = 1; const Int_t nHistCentr=4; // all centralities, central events, peripheral events, non-selected class ClassArbore { public : TTree *fChain; //!pointer to the analyzed TTree or TChain Int_t fCurrent; //!current Tree number in a TChain Bool_t fOwnerOfChain; //tmva Float_t *fmvavar; TMVA::Reader *freader; // Declaration of leaf types //AliReducedEventInfo *Event; ClassArbore(TChain *chain=0); UInt_t fUniqueID; UInt_t fBits; Int_t fRunNo; Float_t fVtx[3]; Float_t fCentrality[7]; Int_t fNtracks[2]; Int_t fTracks_; UInt_t fTracks_fUniqueID[kMaxfTracks]; //[fTracks_] UInt_t fTracks_fBits[kMaxfTracks]; //[fTracks_] Float_t fTracks_fP[kMaxfTracks][3]; //[fTracks_] Bool_t fTracks_fIsCartesian[kMaxfTracks]; //[fTracks_] Char_t fTracks_fCharge[kMaxfTracks]; //[fTracks_] ULong_t fTracks_fFlags[kMaxfTracks]; //[fTracks_] ULong_t fTracks_fQualityFlags[kMaxfTracks]; //[fTracks_] UShort_t fTracks_fTrackId[kMaxfTracks]; //[fTracks_] ULong_t fTracks_fStatus[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCPhi[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCPt[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCEta[kMaxfTracks]; //[fTracks_] Float_t fTracks_fMomentumInner[kMaxfTracks]; //[fTracks_] Float_t fTracks_fDCA[kMaxfTracks][2]; //[fTracks_] Float_t fTracks_fTPCDCA[kMaxfTracks][2]; //[fTracks_] Float_t fTracks_fTrackLength[kMaxfTracks]; //[fTracks_] Float_t fTracks_fMassForTracking[kMaxfTracks]; //[fTracks_] Float_t fTracks_fChi2TPCConstrainedVsGlobal[kMaxfTracks]; //[fTracks_] Float_t fTracks_fHelixCenter[kMaxfTracks][2]; //[fTracks_] Float_t fTracks_fHelixRadius[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fITSclusterMap[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fITSSharedClusterMap[kMaxfTracks]; //[fTracks_] Float_t fTracks_fITSsignal[kMaxfTracks]; //[fTracks_] Float_t fTracks_fITSnSig[kMaxfTracks][4]; //[fTracks_] Float_t fTracks_fITSchi2[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCNcls[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCCrossedRows[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCNclsF[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCNclsShared[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCClusterMap[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCsignal[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTPCsignalN[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCnSig[kMaxfTracks][4]; //[fTracks_] Float_t fTracks_fTPCchi2[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCActiveLength[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTPCGeomLength[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFbeta[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFtime[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFdx[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFdz[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFmismatchProbab[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFchi2[kMaxfTracks]; //[fTracks_] Float_t fTracks_fTOFnSig[kMaxfTracks][4]; //[fTracks_] Short_t fTracks_fTOFdeltaBC[kMaxfTracks]; //[fTracks_] UChar_t fTracks_fTRDntracklets[kMaxfTracks][2]; //[fTracks_] Float_t fTracks_fTRDpid[kMaxfTracks][2]; //[fTracks_] Float_t fTracks_fTRDpidLQ2D[kMaxfTracks][2]; //[fTracks_] Int_t fTracks_fCaloClusterId[kMaxfTracks]; //[fTracks_] Float_t fTracks_fMCMom[kMaxfTracks][3]; //[fTracks_] Float_t fTracks_fMCFreezeout[kMaxfTracks][3]; //[fTracks_] Int_t fTracks_fMCLabels[kMaxfTracks][4]; //[fTracks_] Int_t fTracks_fMCPdg[kMaxfTracks][4]; //[fTracks_] Short_t fTracks_fMCGeneratorIndex[kMaxfTracks]; //[fTracks_] Bool_t fIsPhysicsSelection; Int_t fCaloClusters_; UInt_t fCaloClusters_fUniqueID[kMaxfCaloClusters]; //[fCaloClusters_] UInt_t fCaloClusters_fBits[kMaxfCaloClusters]; //[fCaloClusters_] Char_t fCaloClusters_fType[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fEnergy[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fTrackDx[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fTrackDz[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fM20[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fM02[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fDispersion[kMaxfCaloClusters]; //[fCaloClusters_] Float_t fCaloClusters_fPosition[kMaxfCaloClusters][3]; //[fCaloClusters_] Float_t fCaloClusters_fTOF[kMaxfCaloClusters]; //[fCaloClusters_] Short_t fCaloClusters_fNCells[kMaxfCaloClusters]; //[fCaloClusters_] Int_t fFMD_; Float_t fFMD_fMultiplicity[kMaxfFMD]; //[fFMD_] Short_t fFMD_fId[kMaxfFMD]; //[fFMD_] UInt_t fEventPlane_fUniqueID; UInt_t fEventPlane_fBits; // List of branches TBranch *b_Event_fUniqueID; //! TBranch *b_Event_fBits; //! TBranch *b_Event_fRunNo; //! TBranch *b_Event_fVtx; //! TBranch *b_Event_fCentrality; //! TBranch *b_Event_fNtracks; //! TBranch *b_Event_fTracks_; //! TBranch *b_fTracks_fUniqueID; //! TBranch *b_fTracks_fBits; //! TBranch *b_fTracks_fP; //! TBranch *b_fTracks_fIsCartesian; //! TBranch *b_fTracks_fCharge; //! TBranch *b_fTracks_fFlags; //! TBranch *b_fTracks_fQualityFlags; //! TBranch *b_fTracks_fTrackId; //! TBranch *b_fTracks_fStatus; //! TBranch *b_fTracks_fTPCPhi; //! TBranch *b_fTracks_fTPCPt; //! TBranch *b_fTracks_fTPCEta; //! TBranch *b_fTracks_fMomentumInner; //! TBranch *b_fTracks_fDCA; //! TBranch *b_fTracks_fTPCDCA; //! TBranch *b_fTracks_fTrackLength; //! TBranch *b_fTracks_fMassForTracking; //! TBranch *b_fTracks_fChi2TPCConstrainedVsGlobal; //! TBranch *b_fTracks_fHelixCenter; //! TBranch *b_fTracks_fHelixRadius; //! TBranch *b_fTracks_fITSclusterMap; //! TBranch *b_fTracks_fITSSharedClusterMap; //! TBranch *b_fTracks_fITSsignal; //! TBranch *b_fTracks_fITSnSig; //! TBranch *b_fTracks_fITSchi2; //! TBranch *b_fTracks_fTPCNcls; //! TBranch *b_fTracks_fTPCCrossedRows; //! TBranch *b_fTracks_fTPCNclsF; //! TBranch *b_fTracks_fTPCNclsShared; //! TBranch *b_fTracks_fTPCClusterMap; //! TBranch *b_fTracks_fTPCsignal; //! TBranch *b_fTracks_fTPCsignalN; //! TBranch *b_fTracks_fTPCnSig; //! TBranch *b_fTracks_fTPCchi2; //! TBranch *b_fTracks_fTPCActiveLength; //! TBranch *b_fTracks_fTPCGeomLength; //! TBranch *b_fTracks_fTOFbeta; //! TBranch *b_fTracks_fTOFtime; //! TBranch *b_fTracks_fTOFdx; //! TBranch *b_fTracks_fTOFdz; //! TBranch *b_fTracks_fTOFmismatchProbab; //! TBranch *b_fTracks_fTOFchi2; //! TBranch *b_fTracks_fTOFnSig; //! TBranch *b_fTracks_fTOFdeltaBC; //! TBranch *b_fTracks_fTRDntracklets; //! TBranch *b_fTracks_fTRDpid; //! TBranch *b_fTracks_fTRDpidLQ2D; //! TBranch *b_fTracks_fCaloClusterId; //! TBranch *b_fTracks_fMCMom; //! TBranch *b_fTracks_fMCFreezeout; //! TBranch *b_fTracks_fMCLabels; //! TBranch *b_fTracks_fMCPdg; //! TBranch *b_fTracks_fMCGeneratorIndex; //! TBranch *b_Event_fIsPhysicsSelection; //! TBranch *b_Event_fCaloClusters_; //! TBranch *b_fCaloClusters_fUniqueID; //! TBranch *b_fCaloClusters_fBits; //! TBranch *b_fCaloClusters_fType; //! TBranch *b_fCaloClusters_fEnergy; //! TBranch *b_fCaloClusters_fTrackDx; //! TBranch *b_fCaloClusters_fTrackDz; //! TBranch *b_fCaloClusters_fM20; //! TBranch *b_fCaloClusters_fM02; //! TBranch *b_fCaloClusters_fDispersion; //! TBranch *b_fCaloClusters_fPosition; //! TBranch *b_fCaloClusters_fTOF; //! TBranch *b_fCaloClusters_fNCells; //! TBranch *b_Event_fFMD_; //! TBranch *b_fFMD_fMultiplicity; //! TBranch *b_fFMD_fId; //! TBranch *b_Event_fEventPlane_fUniqueID; //! TBranch *b_Event_fEventPlane_fBits; //! //ClassArbore(TChain *chain); virtual ~ClassArbore(); Int_t Cut(Long64_t entry); Int_t GetEntry(Long64_t entry); Long64_t LoadTree(Long64_t entry); //virtual void Init(TTree *tree); void Init(TChain *chain); //virtual void Loop(); void Loop(); Bool_t Notify(); void Show(Long64_t entry = -1); //from analyzekin void OpenOutputFile(); void CloseOutputFile(); void SetInputFile(TString name); void SetOptions(); void SetOutputFile(); //virtual void SetPath(TTree *tree=0); void SetPath(TChain *chain=0); void BookHistograms(); void SaveHistograms(); private: // Functions: //Float_t PhiV(TLorentzVector l1, TLorentzVector l2); Double_t PhiV(TLorentzVector l1, Char_t l1ch, TLorentzVector l2, Char_t l2ch, Bool_t thepolarity); //tmva Float_t DeltaCot(TLorentzVector e1, TLorentzVector e2); Float_t OpeningAngle(TLorentzVector e1,TLorentzVector e2); Float_t ComputeMVA(TLorentzVector e1,TLorentzVector e2, Int_t e1c, Int_t e2c, Float_t e1DCAxy, Float_t e2DCAxy, Float_t e1DCAz, Float_t e2DCAz, Bool_t polarity); // Variables: TFile *outfile; TFile *outfilee; TFile *outfilmix; TString outfileS; TString outfileeS; TString outfilmixS; TString infileS; TString OutSuffix; Bool_t pairs; Bool_t mixing; Bool_t pairsTree; Bool_t mixingTree; //Bool_t hasMC=kFALSE; Bool_t hasMC; //output TTree definitions // TRACK TTREE: //------------- TTree *e3; Int_t CentrBin; // even related, common for all trees Int_t npart; // even related, common for all trees Int_t zBin; // even related, common for all trees Int_t run; // even related, common for all trees UInt_t ntr0; UInt_t ntr1; UInt_t ntr2; Int_t ITSncl; Bool_t ITSLayerHit[6]; Int_t TPCncl; Int_t TPCcr; Int_t TPCf; Bool_t phys; Char_t ech; Char_t pol; TLorentzVector e; Float_t epT; Float_t ep; Float_t ePhi; Float_t eEta; Float_t eTheta; Float_t eRapidity; Bool_t electron; Bool_t electronif; Bool_t kaon; Bool_t proton; Float_t VtxZ; Float_t ITSs[4]; Float_t ITSdedx; Float_t ITSchi2; Float_t TPCs[4]; Float_t TOFb; Float_t TPCeta; Float_t TPCpT; Float_t TPCdedx; Float_t TPCchi2; Float_t TPCphi; Float_t TOFs[4]; Float_t p_inner; Float_t etrackLength; Float_t DCA[2]; Bool_t ITS; Bool_t TPC; Bool_t TOF; Bool_t TOFif; Int_t gammaleg; //MC Int_t MCpdg; Float_t MCz; Float_t MCr; Float_t MCpT; Float_t MCp; // PAIRS TTREE: //------------- TTree *ee3; TLorentzVector ee; Char_t eech; Float_t eepT; Float_t eeM; Float_t eePhiV; Float_t eePhiB; Float_t eeThetaB; Float_t eeEta; Bool_t eeITS; Bool_t eeTPC; Bool_t eelectron; Float_t e1pT; Float_t e2pT; Float_t e1p; Float_t e2p; Float_t e1Eta; Float_t e2Eta; //tmva Float_t eePhi; Float_t eeDeltaCot; Float_t eeOpenAng; Float_t eeDMA; Float_t eeMVA; //MIX TTREE //-------- TTree *mix3; TLorentzVector eemix; Char_t mixch; Bool_t mixelectron; Float_t mixpT; Float_t mixM; Float_t mixEta; Float_t mixPhi; Float_t mixEta1; Float_t mixPhi1; Float_t mixEta2; Float_t mixPhi2; Float_t mixeplus; Float_t mixeminus; Float_t mixthetaz; //Histograms: TH1D *hNparts; TH1D *heMult; TH1D *heeMult; TH2F *hITS; TH2F *hTPC; TH2F *hTPCpi; TH2F *hTOF; TH2F *heITS; TH2F *heTPC; TH2F *heTPCpi; TH2F *heTOF; TH2F *hpcal; TH2F *hepcal; TH1D *hCentrBin; TH1D *hCentrBine; TH2F *hPhiV; TH2F *hPhiVe; TH2F *heepm[nHistCentr][2]; // 0-> All, 1-> Central, 2->Peripheral 3->Non-selected // 1-> ++, 0-> -- TH2F *heepp[nHistCentr][2]; TH2F *heemm[nHistCentr][2]; TH2F *heeepm[nHistCentr][2]; TH2F *heeepp[nHistCentr][2]; TH2F *heeemm[nHistCentr][2]; TH2F *hmixpm[nHistCentr][2]; TH2F *hmixpp[nHistCentr][2]; TH2F *hmixmm[nHistCentr][2]; TH2F *hmixepm[nHistCentr][2]; TH2F *hmixepp[nHistCentr][2]; TH2F *hmixemm[nHistCentr][2]; //1D rfactor TH1D *h1eepm[nHistCentr][2]; // 0-> All, 1-> Central, 2->Peripheral 3->Non-selected // 1-> ++, 0-> -- TH1D *h1eepp[nHistCentr][2]; TH1D *h1eemm[nHistCentr][2]; TH1D *h1eeepm[nHistCentr][2]; TH1D *h1eeepp[nHistCentr][2]; TH1D *h1eeemm[nHistCentr][2]; TH1D *h1mixpm[nHistCentr][2]; TH1D *h1mixpp[nHistCentr][2]; TH1D *h1mixmm[nHistCentr][2]; TH1D *h1mixepm[nHistCentr][2]; TH1D *h1mixepp[nHistCentr][2]; TH1D *h1mixemm[nHistCentr][2]; //new histos for R-factor electrons: 1->peplus-mass, 2->peminus-mass, 3->thetaz-mass. Polarity integrated, centrality integrated, pTee integrated. TH2F *hmix1epm; TH2F *hmix1epp; TH2F *hmix1emm; TH2F *hmix2epm; TH2F *hmix2epp; TH2F *hmix2emm; TH2F *hmix3epm; TH2F *hmix3epp; TH2F *hmix3emm; }; #endif