ROOT logo
#ifndef ALIDNDPTANALYSISPPB_H
#define ALIDNDPTANALYSISPPB_H

//------------------------------------------------------------------------------
// AlidNdPtAnalysispPb class used for dNdPt analysis in p-Pb collisions 
// based on AlidNdPtAnalysis class
// 
// Author: J.Otwinowski 04/11/2008 
// last change: 2013-06-19 by M.Knichel
//------------------------------------------------------------------------------

class iostream;

class TFile;
class TCint;
class TProfile;
class TFolder;
class TObjArray;
class TString;
class THnSparse;

class AliESDtrackCuts;
class AliVertexerTracks;
class AliESD;
class AliESDfriend;
class AliESDfriendTrack;
class AlidNdPtHelper;
class AliAnalysisUtils;

#include "AlidNdPt.h"
#include "TObjString.h"

class AlidNdPtAnalysispPb : public AlidNdPt {
public :
  AlidNdPtAnalysispPb(); 
  AlidNdPtAnalysispPb(Char_t* name, Char_t* title);
  ~AlidNdPtAnalysispPb();

  // Init data members
  virtual void Init();

  // Process events
  virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0);

  // Merge output objects (needed by PROOF) 
  virtual Long64_t Merge(TCollection* const list);

  // Analyse output histograms 
  virtual void Analyse();

  // Export objects to folder
  virtual TFolder *ExportToFolder(TObjArray * const array=0);

  // Get analysis folder
  TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}

  // Fill control histograms
  void SetHistogramsOn(Bool_t histOn=kTRUE) {fHistogramsOn = histOn;}
  Bool_t IsHistogramsOn() const {return fHistogramsOn;}

  // Define 0-multiplicity bin for LHC
  // background calculation
  static Bool_t IsBinZeroSPDvtx(const AliESDEvent* esdEvent);
  static Bool_t IsBinZeroTrackSPDvtx(const AliESDEvent* esdEvent);
    
  // Create folder for analysed histograms
  TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms");
  
  // Set binning for Histograms (if not set default binning is used)
  void SetBinsMult(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fMultNbins = nbins; fBinsMult = CloneArray(fMultNedges = nbins+1,edges); } }
  void SetBinsMultTE(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fMultNbinsTE = nbins; fBinsMultTE = CloneArray(fMultNedgesTE = nbins+1,edges); } }
  void SetBinsPt(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fPtNbins = nbins; fBinsPt = CloneArray(fPtNedges = nbins+1,edges); } }
  void SetBinsPtCorr(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fPtCorrNbins = nbins; fBinsPtCorr = CloneArray(fPtCorrNedges = nbins+1,edges); } }
  void SetBinsEta(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fEtaNbins = nbins; fBinsEta = CloneArray(fEtaNedges = nbins+1,edges); } }
  void SetBinsZv(Int_t nbins, Double_t* edges) { if (CanChangeBins()) {  fZvNbins = nbins; fBinsZv = CloneArray(fZvNedges = nbins+1,edges); } }

  // Fill histograms
  void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB);
  void FillHistograms(AliStack *const stack, Int_t label, AlidNdPtHelper::TrackObject trackObj);
  void FillHistograms(TObjArray *const allChargedTracks,Int_t *const labelsAll,Int_t multAll,Int_t *const labelsAcc,Int_t multAcc,Int_t *const labelsRec,Int_t multRec);

  // Getters
  THnSparseF *GetEventMultCorrelationMatrix() const {return fEventMultCorrelationMatrix;}
  THnSparseF *GetTrackPtCorrelationMatrix()   const {return fTrackPtCorrelationMatrix;}
  

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
  //kNSD would have to be added to PWG0Helper, now kND is used to signal NSD!
  THnSparseF *GetGenEventMatrix() const {return fGenEventMatrix;}
  THnSparseF *GetGenSDEventMatrix() const {return fGenSDEventMatrix;}
  THnSparseF *GetGenDDEventMatrix() const {return fGenDDEventMatrix;}
  THnSparseF *GetGenNDEventMatrix() const {return fGenNDEventMatrix;}
  THnSparseF *GetGenNSDEventMatrix() const {return fGenNSDEventMatrix;}

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
  THnSparseF *GetTriggerEventMatrix() const {return fTriggerEventMatrix;}
  THnSparseF *GetTriggerSDEventMatrix() const {return fTriggerSDEventMatrix;}
  THnSparseF *GetTriggerDDEventMatrix() const {return fTriggerDDEventMatrix;}
  THnSparseF *GetTriggerNDEventMatrix() const {return fTriggerNDEventMatrix;}
  THnSparseF *GetTriggerNSDEventMatrix() const {return fTriggerNSDEventMatrix;}

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
  THnSparseF *GetRecEventMatrix() const {return fRecEventMatrix;}
  THnSparseF *GetRecSDEventMatrix() const {return fRecSDEventMatrix;}
  THnSparseF *GetRecDDEventMatrix() const {return fRecDDEventMatrix;}
  THnSparseF *GetRecNDEventMatrix() const {return fRecNDEventMatrix;}
  THnSparseF *GetRecNSDEventMatrix() const {return fRecNSDEventMatrix;}

  //
  THnSparseF *GetRecCandleEventMatrix() const {return fRecCandleEventMatrix;}

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!  
  THnSparseF *GetGenTrackEventMatrix() const {return fGenTrackEventMatrix;}
  THnSparseF *GetGenTrackSDEventMatrix() const {return fGenTrackSDEventMatrix;}
  THnSparseF *GetGenTrackDDEventMatrix() const {return fGenTrackDDEventMatrix;}
  THnSparseF *GetGenTrackNDEventMatrix() const {return fGenTrackNDEventMatrix;}
  THnSparseF *GetGenTrackNSDEventMatrix() const {return fGenTrackNSDEventMatrix;}

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
  THnSparseF *GetTriggerTrackEventMatrix() const {return fTriggerTrackEventMatrix;}
  THnSparseF *GetTriggerTrackSDEventMatrix() const {return fTriggerTrackSDEventMatrix;}
  THnSparseF *GetTriggerTrackDDEventMatrix() const {return fTriggerTrackDDEventMatrix;}
  THnSparseF *GetTriggerTrackNDEventMatrix() const {return fTriggerTrackNDEventMatrix;}
  THnSparseF *GetTriggerTrackNSDEventMatrix() const {return fTriggerTrackNSDEventMatrix;}

  //NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
  THnSparseF *GetRecTrackEventMatrix() const {return fRecTrackEventMatrix;}
  THnSparseF *GetRecTrackSDEventMatrix() const {return fRecTrackSDEventMatrix;}
  THnSparseF *GetRecTrackDDEventMatrix() const {return fRecTrackDDEventMatrix;}
  THnSparseF *GetRecTrackNDEventMatrix() const {return fRecTrackNDEventMatrix;}
  THnSparseF *GetRecTrackNSDEventMatrix() const {return fRecTrackNSDEventMatrix;}

  //
  THnSparseF *GetGenTrackMatrix() const {return fGenTrackMatrix;}
  THnSparseF *GetGenPrimTrackMatrix() const {return fGenPrimTrackMatrix;}
  THnSparseF *GetRecPrimTrackMatrix() const {return fRecPrimTrackMatrix;}

  THnSparseF *GetRecTrackMatrix() const {return fRecTrackMatrix;}
  THnSparseF *GetRecSecTrackMatrix() const {return fRecSecTrackMatrix;}
  THnSparseF *GetRecMultTrackMatrix() const {return fRecMultTrackMatrix;}

  //
  // control histograms
  //
  THnSparseF *GetMCEventHist1() const {return fMCEventHist1;}
  THnSparseF *GetRecEventHist1() const {return fRecEventHist1;}
  THnSparseF *GetRecEventHist2() const {return fRecEventHist2;}
  THnSparseF *GetRecMCEventHist1() const {return fRecMCEventHist1;}
  THnSparseF *GetRecMCEventHist2() const {return fRecMCEventHist2;}
  THnSparseF *GetRecMCEventHist3() const {return fRecMCEventHist3;}

  THnSparseF *GetMCTrackHist1(Int_t i) const {return fMCTrackHist1[i];}
  THnSparseF *GetMCPrimTrackHist1(Int_t i) const {return fMCPrimTrackHist1[i];}
  THnSparseF *GetMCPrimTrackHist2(Int_t i) const {return fMCPrimTrackHist2[i];}
  THnSparseF *GetMCSecTrackHist1(Int_t i) const {return fMCSecTrackHist1[i];}

  THnSparseF *GetRecTrackHist1(Int_t i) const {return fRecTrackHist1[i];}
  THnSparseF *GetRecTrackMultHist1(Int_t i) const {return fRecTrackMultHist1[i];}

  THnSparseF *GetRecMCTrackHist1() const {return fRecMCTrackHist1;}
  THnSparseF *GetMCMultRecTrackHist1() const {return fMCMultRecTrackHist1;}

  THnSparseF *GetRecTrackHist2() const {return fRecTrackHist2;}
  THnSparseF *GetEventCount() const {return fEventCount;}  

  //
  // Generic histograms to be corrected
  //
  THnSparseF* GetRecEventHist() const {return fRecEventHist;} 
  THnSparseF* GetRecTrackHist() const {return fRecTrackHist;}
  THnSparseF* GetEventMultHist() const {return fEventMultHist;} 
  THnSparseF* GetMCPrimTrackHist() const {return fMCPrimTrackHist;} 
    
  //
  // centrality histograms etc. getter+setter
  //
  THnSparseF* GetCentralityEventHist() const {return fCentralityEventHist;} 
  THnSparseF* GetCentralityTrackHist() const {return fCentralityTrackHist;} 
  const char* GetCentralityEstimator(Int_t i) {return ((i > 0) && (i <= fDimensionsCentralityEstimators)) ? ((TObjString*)fCentralityEstimatorsList->At(i-1))->GetName() : 0; }
  Int_t GetNCentralityEstimators() {return fDimensionsCentralityEstimators;}
  void SetBinsCentrality(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fCentralityNbins = nbins; fBinsCentrality = CloneArray(fCentralityNedges = nbins+1,edges); } }
  void SetCentralityEstimators(const char* estimators);
  
  //rapidity shift getter+setter
  void SetRapidityShift(Double_t yShift) { fRapidityShift = yShift;}
  Double_t GetRapidityShift() { return fRapidityShift; }
  
  void Set2013pA(Bool_t is2013 = kTRUE) { fIs2013pA = is2013; }
  Double_t Get2013pA() { return fIs2013pA; }  


private:

  // analysis folder 
  TFolder *fAnalysisFolder; // folder for analysed histograms
  Bool_t fHistogramsOn; // switch on/off filling of control histograms 

  // 
  // correlation matrices (histograms)
  //

  // event rec. track vs true track multiplicity correlation matrix 
  THnSparseF *fEventMultCorrelationMatrix; //-> multRecMult:multTrueMC:multMB

  // rec. track pt vs true track pt correlation matrix for given eta
  THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta

  //
  // event level correction 
  //

  // all genertated
  THnSparseF *fGenEventMatrix; //-> mcZv:multTrueMC (inelastic)
  THnSparseF *fGenSDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
  THnSparseF *fGenDDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
  THnSparseF *fGenNDEventMatrix; //-> mcZv:multTrueMC (non diffractive)
  THnSparseF *fGenNSDEventMatrix; //-> mcZv:multTrueMC (non single diffractive)

  // trigger bias corrections (fTriggerEventMatrix / fGenEventMatrix)
  THnSparseF *fTriggerEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multTrueMC

  // event vertex rec. eff correction (fRecEventMatrix / fTriggerEventMatrix)
  THnSparseF *fRecEventMatrix; //-> mcZv:multTrueMC:Centrality 
  THnSparseF *fRecSDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fRecDDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fRecNDEventMatrix; //-> mcZv:multTrueMC
  THnSparseF *fRecNSDEventMatrix; //-> mcZv:multTrueMC

  //
  // track-event level correction
  //

  THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC

  // trigger bias corrections (fTriggerTrackEventMatrix / fGenTrackEventMatrix)
  THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
  THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC

  // event vertex rec. corrections (fRecTrackEventMatrix / fTriggerTrackEventMatrix)
  THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
  THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
  THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
  THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
  THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC

  //
  // track level correction 
  //

  // track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix)
  THnSparseF *fGenTrackMatrix; //-> mcZv:mcPt:mcEta
  THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality 
  THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality 

  // secondary track contamination correction (fRecSecTrackMatrix / fRecTrackMatrix)
  THnSparseF *fRecTrackMatrix;    //-> mcZv:mcPt:mcEta:Centrality 
  THnSparseF *fRecSecTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality 

  // multiple rec. track corrections (fRecMultTrackMatrix / fRecTrackMatrix)
  THnSparseF *fRecMultTrackMatrix; //-> mcZv:Pt:mcEta

  //
  // ESD and MC control analysis histograms
  //

  // THnSparse event histograms
  THnSparseF *fMCEventHist1;  //-> mcXv:mcYv:mcZv
  THnSparseF *fRecEventHist1; //-> Xv:Yv:Zv
  THnSparseF *fRecEventHist2; //-> Zv:multMB:multRecMult
  THnSparseF *fRecMCEventHist1; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv
  THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:multMB
  THnSparseF *fRecMCEventHist3; //-> multRec:EventType (ND, DD, SD)

  // THnSparse track histograms
  // [0] - after charged track selection, [1] - after acceptance cuts, [2] - after esd track cuts

  THnSparseF *fMCTrackHist1[AlidNdPtHelper::kCutSteps];     //-> mcPt:mcEta:mcPhi
  THnSparseF *fMCPrimTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:pid:mech:mother
  THnSparseF *fMCPrimTrackHist2[AlidNdPtHelper::kCutSteps]; //-> pdg:mech:mother
  THnSparseF *fMCSecTrackHist1[AlidNdPtHelper::kCutSteps];  //-> mcPt:mcEta:pid:mech:mother

  THnSparseF *fRecTrackHist1[AlidNdPtHelper::kCutSteps];     //-> Pt:Eta:Phi
  THnSparseF *fRecTrackMultHist1[AlidNdPtHelper::kCutSteps]; //-> Pt:mult

  THnSparseF *fRecMCTrackHist1; //-> mcPt:mcEta:(Pt-mcPt)/mcPt:(Eta-mcEta)

  //multple reconstructed tracks
  THnSparseF *fMCMultRecTrackHist1; //-> mcPt:mcEta:pid

  // track control histograms
  THnSparseF *fRecTrackHist2;  //-> nclust:chi2:Pt:Eta:Phi

  //
  // Generic histograms to be corrected
  //
  THnSparseF *fRecEventHist;    //-> Zv:multMB  
  THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRecMult  
  THnSparseF *fEventCount; //-> trig, trig + vertex, selected event
  THnSparseF *fEventMultHist; // event multiplicities multMB:multRecMult:multRec
  THnSparseF *fMCPrimTrackHist; //-> Zv:mcpT:mceta:multTrueMC

  //
  // candle events track corrections
  //
  THnSparseF *fRecCandleEventMatrix; // Zv:multMB

  // centrality test histograms  
  THnSparseF *fCentralityEventHist; // rec event hist with centrality zv:multRecMult:multMB:cent:...
  THnSparseF *fCentralityTrackHist; // rec track hist with centrality zv:pt:eta:multRecMult:multMB:cent:...  
  TObjArray *fCentralityEstimatorsList; // TObjArray with TObjStrings containing cent. estimators
  Int_t fDimensionsCentralityEstimators;  // number of centrality estimators: if 0 hists are not filled
  Int_t fCentralityNbins;  // number of centrality bins (common for all estimators)
  Int_t fCentralityNedges; // fCentralityNbins+1 uses for streaming dynamic array
  Double_t *fBinsCentrality; //[fCentralityNedges]

  Int_t fNVCentralityEvent; //
  Int_t fNVCentralityTrack; //
  Double_t *fVCentralityEvent; //[fNVCentralityEvent]
  Double_t *fVCentralityTrack; //[fNVCentralityTrack]

  //binning for THNsparse
  Int_t fMultNbins;
  Int_t fMultNbinsTE;
  Int_t fPtNbins;
  Int_t fPtCorrNbins; 
  Int_t fEtaNbins;
  Int_t fZvNbins;
  Int_t fMultNedges;   // fMultNbins+1 uses for streaming dynamic array
  Int_t fMultNedgesTE; // fMultNbinsTE+1 uses for streaming dynamic array
  Int_t fPtNedges;     // fPtNbins+1 uses for streaming dynamic array  
  Int_t fPtCorrNedges; // fCentralityNbins+1 uses for streaming dynamic array  
  Int_t fEtaNedges;    // fEtaNbins+1 uses for streaming dynamic array
  Int_t fZvNedges;     // fZvNbins+1 uses for streaming dynamic array    
  Double_t *fBinsMult;   //[fMultNedges]
  Double_t *fBinsMultTE; //[fMultNedgesTE]
  Double_t *fBinsPt;     //[fPtNedges]
  Double_t *fBinsPtCorr; //[fPtCorrNedges]
  Double_t *fBinsEta;    //[fEtaNedges]
  Double_t *fBinsZv;     //[fZvNedges]
  
  Double_t fRapidityShift; //y shift CMS vs. LAB
  AliAnalysisUtils* fUtils;
  Bool_t fIs2013pA; 
  
  Bool_t fIsInit;
    
  // generic function to change binning
  Bool_t CanChangeBins();

  AlidNdPtAnalysispPb(const AlidNdPtAnalysispPb&); // not implemented
  AlidNdPtAnalysispPb& operator=(const AlidNdPtAnalysispPb&); // not implemented

  ClassDef(AlidNdPtAnalysispPb,6);
};

#endif
 AlidNdPtAnalysispPb.h:1
 AlidNdPtAnalysispPb.h:2
 AlidNdPtAnalysispPb.h:3
 AlidNdPtAnalysispPb.h:4
 AlidNdPtAnalysispPb.h:5
 AlidNdPtAnalysispPb.h:6
 AlidNdPtAnalysispPb.h:7
 AlidNdPtAnalysispPb.h:8
 AlidNdPtAnalysispPb.h:9
 AlidNdPtAnalysispPb.h:10
 AlidNdPtAnalysispPb.h:11
 AlidNdPtAnalysispPb.h:12
 AlidNdPtAnalysispPb.h:13
 AlidNdPtAnalysispPb.h:14
 AlidNdPtAnalysispPb.h:15
 AlidNdPtAnalysispPb.h:16
 AlidNdPtAnalysispPb.h:17
 AlidNdPtAnalysispPb.h:18
 AlidNdPtAnalysispPb.h:19
 AlidNdPtAnalysispPb.h:20
 AlidNdPtAnalysispPb.h:21
 AlidNdPtAnalysispPb.h:22
 AlidNdPtAnalysispPb.h:23
 AlidNdPtAnalysispPb.h:24
 AlidNdPtAnalysispPb.h:25
 AlidNdPtAnalysispPb.h:26
 AlidNdPtAnalysispPb.h:27
 AlidNdPtAnalysispPb.h:28
 AlidNdPtAnalysispPb.h:29
 AlidNdPtAnalysispPb.h:30
 AlidNdPtAnalysispPb.h:31
 AlidNdPtAnalysispPb.h:32
 AlidNdPtAnalysispPb.h:33
 AlidNdPtAnalysispPb.h:34
 AlidNdPtAnalysispPb.h:35
 AlidNdPtAnalysispPb.h:36
 AlidNdPtAnalysispPb.h:37
 AlidNdPtAnalysispPb.h:38
 AlidNdPtAnalysispPb.h:39
 AlidNdPtAnalysispPb.h:40
 AlidNdPtAnalysispPb.h:41
 AlidNdPtAnalysispPb.h:42
 AlidNdPtAnalysispPb.h:43
 AlidNdPtAnalysispPb.h:44
 AlidNdPtAnalysispPb.h:45
 AlidNdPtAnalysispPb.h:46
 AlidNdPtAnalysispPb.h:47
 AlidNdPtAnalysispPb.h:48
 AlidNdPtAnalysispPb.h:49
 AlidNdPtAnalysispPb.h:50
 AlidNdPtAnalysispPb.h:51
 AlidNdPtAnalysispPb.h:52
 AlidNdPtAnalysispPb.h:53
 AlidNdPtAnalysispPb.h:54
 AlidNdPtAnalysispPb.h:55
 AlidNdPtAnalysispPb.h:56
 AlidNdPtAnalysispPb.h:57
 AlidNdPtAnalysispPb.h:58
 AlidNdPtAnalysispPb.h:59
 AlidNdPtAnalysispPb.h:60
 AlidNdPtAnalysispPb.h:61
 AlidNdPtAnalysispPb.h:62
 AlidNdPtAnalysispPb.h:63
 AlidNdPtAnalysispPb.h:64
 AlidNdPtAnalysispPb.h:65
 AlidNdPtAnalysispPb.h:66
 AlidNdPtAnalysispPb.h:67
 AlidNdPtAnalysispPb.h:68
 AlidNdPtAnalysispPb.h:69
 AlidNdPtAnalysispPb.h:70
 AlidNdPtAnalysispPb.h:71
 AlidNdPtAnalysispPb.h:72
 AlidNdPtAnalysispPb.h:73
 AlidNdPtAnalysispPb.h:74
 AlidNdPtAnalysispPb.h:75
 AlidNdPtAnalysispPb.h:76
 AlidNdPtAnalysispPb.h:77
 AlidNdPtAnalysispPb.h:78
 AlidNdPtAnalysispPb.h:79
 AlidNdPtAnalysispPb.h:80
 AlidNdPtAnalysispPb.h:81
 AlidNdPtAnalysispPb.h:82
 AlidNdPtAnalysispPb.h:83
 AlidNdPtAnalysispPb.h:84
 AlidNdPtAnalysispPb.h:85
 AlidNdPtAnalysispPb.h:86
 AlidNdPtAnalysispPb.h:87
 AlidNdPtAnalysispPb.h:88
 AlidNdPtAnalysispPb.h:89
 AlidNdPtAnalysispPb.h:90
 AlidNdPtAnalysispPb.h:91
 AlidNdPtAnalysispPb.h:92
 AlidNdPtAnalysispPb.h:93
 AlidNdPtAnalysispPb.h:94
 AlidNdPtAnalysispPb.h:95
 AlidNdPtAnalysispPb.h:96
 AlidNdPtAnalysispPb.h:97
 AlidNdPtAnalysispPb.h:98
 AlidNdPtAnalysispPb.h:99
 AlidNdPtAnalysispPb.h:100
 AlidNdPtAnalysispPb.h:101
 AlidNdPtAnalysispPb.h:102
 AlidNdPtAnalysispPb.h:103
 AlidNdPtAnalysispPb.h:104
 AlidNdPtAnalysispPb.h:105
 AlidNdPtAnalysispPb.h:106
 AlidNdPtAnalysispPb.h:107
 AlidNdPtAnalysispPb.h:108
 AlidNdPtAnalysispPb.h:109
 AlidNdPtAnalysispPb.h:110
 AlidNdPtAnalysispPb.h:111
 AlidNdPtAnalysispPb.h:112
 AlidNdPtAnalysispPb.h:113
 AlidNdPtAnalysispPb.h:114
 AlidNdPtAnalysispPb.h:115
 AlidNdPtAnalysispPb.h:116
 AlidNdPtAnalysispPb.h:117
 AlidNdPtAnalysispPb.h:118
 AlidNdPtAnalysispPb.h:119
 AlidNdPtAnalysispPb.h:120
 AlidNdPtAnalysispPb.h:121
 AlidNdPtAnalysispPb.h:122
 AlidNdPtAnalysispPb.h:123
 AlidNdPtAnalysispPb.h:124
 AlidNdPtAnalysispPb.h:125
 AlidNdPtAnalysispPb.h:126
 AlidNdPtAnalysispPb.h:127
 AlidNdPtAnalysispPb.h:128
 AlidNdPtAnalysispPb.h:129
 AlidNdPtAnalysispPb.h:130
 AlidNdPtAnalysispPb.h:131
 AlidNdPtAnalysispPb.h:132
 AlidNdPtAnalysispPb.h:133
 AlidNdPtAnalysispPb.h:134
 AlidNdPtAnalysispPb.h:135
 AlidNdPtAnalysispPb.h:136
 AlidNdPtAnalysispPb.h:137
 AlidNdPtAnalysispPb.h:138
 AlidNdPtAnalysispPb.h:139
 AlidNdPtAnalysispPb.h:140
 AlidNdPtAnalysispPb.h:141
 AlidNdPtAnalysispPb.h:142
 AlidNdPtAnalysispPb.h:143
 AlidNdPtAnalysispPb.h:144
 AlidNdPtAnalysispPb.h:145
 AlidNdPtAnalysispPb.h:146
 AlidNdPtAnalysispPb.h:147
 AlidNdPtAnalysispPb.h:148
 AlidNdPtAnalysispPb.h:149
 AlidNdPtAnalysispPb.h:150
 AlidNdPtAnalysispPb.h:151
 AlidNdPtAnalysispPb.h:152
 AlidNdPtAnalysispPb.h:153
 AlidNdPtAnalysispPb.h:154
 AlidNdPtAnalysispPb.h:155
 AlidNdPtAnalysispPb.h:156
 AlidNdPtAnalysispPb.h:157
 AlidNdPtAnalysispPb.h:158
 AlidNdPtAnalysispPb.h:159
 AlidNdPtAnalysispPb.h:160
 AlidNdPtAnalysispPb.h:161
 AlidNdPtAnalysispPb.h:162
 AlidNdPtAnalysispPb.h:163
 AlidNdPtAnalysispPb.h:164
 AlidNdPtAnalysispPb.h:165
 AlidNdPtAnalysispPb.h:166
 AlidNdPtAnalysispPb.h:167
 AlidNdPtAnalysispPb.h:168
 AlidNdPtAnalysispPb.h:169
 AlidNdPtAnalysispPb.h:170
 AlidNdPtAnalysispPb.h:171
 AlidNdPtAnalysispPb.h:172
 AlidNdPtAnalysispPb.h:173
 AlidNdPtAnalysispPb.h:174
 AlidNdPtAnalysispPb.h:175
 AlidNdPtAnalysispPb.h:176
 AlidNdPtAnalysispPb.h:177
 AlidNdPtAnalysispPb.h:178
 AlidNdPtAnalysispPb.h:179
 AlidNdPtAnalysispPb.h:180
 AlidNdPtAnalysispPb.h:181
 AlidNdPtAnalysispPb.h:182
 AlidNdPtAnalysispPb.h:183
 AlidNdPtAnalysispPb.h:184
 AlidNdPtAnalysispPb.h:185
 AlidNdPtAnalysispPb.h:186
 AlidNdPtAnalysispPb.h:187
 AlidNdPtAnalysispPb.h:188
 AlidNdPtAnalysispPb.h:189
 AlidNdPtAnalysispPb.h:190
 AlidNdPtAnalysispPb.h:191
 AlidNdPtAnalysispPb.h:192
 AlidNdPtAnalysispPb.h:193
 AlidNdPtAnalysispPb.h:194
 AlidNdPtAnalysispPb.h:195
 AlidNdPtAnalysispPb.h:196
 AlidNdPtAnalysispPb.h:197
 AlidNdPtAnalysispPb.h:198
 AlidNdPtAnalysispPb.h:199
 AlidNdPtAnalysispPb.h:200
 AlidNdPtAnalysispPb.h:201
 AlidNdPtAnalysispPb.h:202
 AlidNdPtAnalysispPb.h:203
 AlidNdPtAnalysispPb.h:204
 AlidNdPtAnalysispPb.h:205
 AlidNdPtAnalysispPb.h:206
 AlidNdPtAnalysispPb.h:207
 AlidNdPtAnalysispPb.h:208
 AlidNdPtAnalysispPb.h:209
 AlidNdPtAnalysispPb.h:210
 AlidNdPtAnalysispPb.h:211
 AlidNdPtAnalysispPb.h:212
 AlidNdPtAnalysispPb.h:213
 AlidNdPtAnalysispPb.h:214
 AlidNdPtAnalysispPb.h:215
 AlidNdPtAnalysispPb.h:216
 AlidNdPtAnalysispPb.h:217
 AlidNdPtAnalysispPb.h:218
 AlidNdPtAnalysispPb.h:219
 AlidNdPtAnalysispPb.h:220
 AlidNdPtAnalysispPb.h:221
 AlidNdPtAnalysispPb.h:222
 AlidNdPtAnalysispPb.h:223
 AlidNdPtAnalysispPb.h:224
 AlidNdPtAnalysispPb.h:225
 AlidNdPtAnalysispPb.h:226
 AlidNdPtAnalysispPb.h:227
 AlidNdPtAnalysispPb.h:228
 AlidNdPtAnalysispPb.h:229
 AlidNdPtAnalysispPb.h:230
 AlidNdPtAnalysispPb.h:231
 AlidNdPtAnalysispPb.h:232
 AlidNdPtAnalysispPb.h:233
 AlidNdPtAnalysispPb.h:234
 AlidNdPtAnalysispPb.h:235
 AlidNdPtAnalysispPb.h:236
 AlidNdPtAnalysispPb.h:237
 AlidNdPtAnalysispPb.h:238
 AlidNdPtAnalysispPb.h:239
 AlidNdPtAnalysispPb.h:240
 AlidNdPtAnalysispPb.h:241
 AlidNdPtAnalysispPb.h:242
 AlidNdPtAnalysispPb.h:243
 AlidNdPtAnalysispPb.h:244
 AlidNdPtAnalysispPb.h:245
 AlidNdPtAnalysispPb.h:246
 AlidNdPtAnalysispPb.h:247
 AlidNdPtAnalysispPb.h:248
 AlidNdPtAnalysispPb.h:249
 AlidNdPtAnalysispPb.h:250
 AlidNdPtAnalysispPb.h:251
 AlidNdPtAnalysispPb.h:252
 AlidNdPtAnalysispPb.h:253
 AlidNdPtAnalysispPb.h:254
 AlidNdPtAnalysispPb.h:255
 AlidNdPtAnalysispPb.h:256
 AlidNdPtAnalysispPb.h:257
 AlidNdPtAnalysispPb.h:258
 AlidNdPtAnalysispPb.h:259
 AlidNdPtAnalysispPb.h:260
 AlidNdPtAnalysispPb.h:261
 AlidNdPtAnalysispPb.h:262
 AlidNdPtAnalysispPb.h:263
 AlidNdPtAnalysispPb.h:264
 AlidNdPtAnalysispPb.h:265
 AlidNdPtAnalysispPb.h:266
 AlidNdPtAnalysispPb.h:267
 AlidNdPtAnalysispPb.h:268
 AlidNdPtAnalysispPb.h:269
 AlidNdPtAnalysispPb.h:270
 AlidNdPtAnalysispPb.h:271
 AlidNdPtAnalysispPb.h:272
 AlidNdPtAnalysispPb.h:273
 AlidNdPtAnalysispPb.h:274
 AlidNdPtAnalysispPb.h:275
 AlidNdPtAnalysispPb.h:276
 AlidNdPtAnalysispPb.h:277
 AlidNdPtAnalysispPb.h:278
 AlidNdPtAnalysispPb.h:279
 AlidNdPtAnalysispPb.h:280
 AlidNdPtAnalysispPb.h:281
 AlidNdPtAnalysispPb.h:282
 AlidNdPtAnalysispPb.h:283
 AlidNdPtAnalysispPb.h:284
 AlidNdPtAnalysispPb.h:285
 AlidNdPtAnalysispPb.h:286
 AlidNdPtAnalysispPb.h:287
 AlidNdPtAnalysispPb.h:288
 AlidNdPtAnalysispPb.h:289
 AlidNdPtAnalysispPb.h:290
 AlidNdPtAnalysispPb.h:291
 AlidNdPtAnalysispPb.h:292
 AlidNdPtAnalysispPb.h:293
 AlidNdPtAnalysispPb.h:294
 AlidNdPtAnalysispPb.h:295
 AlidNdPtAnalysispPb.h:296
 AlidNdPtAnalysispPb.h:297
 AlidNdPtAnalysispPb.h:298
 AlidNdPtAnalysispPb.h:299
 AlidNdPtAnalysispPb.h:300
 AlidNdPtAnalysispPb.h:301
 AlidNdPtAnalysispPb.h:302
 AlidNdPtAnalysispPb.h:303
 AlidNdPtAnalysispPb.h:304
 AlidNdPtAnalysispPb.h:305
 AlidNdPtAnalysispPb.h:306
 AlidNdPtAnalysispPb.h:307
 AlidNdPtAnalysispPb.h:308
 AlidNdPtAnalysispPb.h:309
 AlidNdPtAnalysispPb.h:310
 AlidNdPtAnalysispPb.h:311
 AlidNdPtAnalysispPb.h:312
 AlidNdPtAnalysispPb.h:313
 AlidNdPtAnalysispPb.h:314
 AlidNdPtAnalysispPb.h:315
 AlidNdPtAnalysispPb.h:316
 AlidNdPtAnalysispPb.h:317
 AlidNdPtAnalysispPb.h:318
 AlidNdPtAnalysispPb.h:319
 AlidNdPtAnalysispPb.h:320
 AlidNdPtAnalysispPb.h:321
 AlidNdPtAnalysispPb.h:322
 AlidNdPtAnalysispPb.h:323
 AlidNdPtAnalysispPb.h:324
 AlidNdPtAnalysispPb.h:325
 AlidNdPtAnalysispPb.h:326
 AlidNdPtAnalysispPb.h:327
 AlidNdPtAnalysispPb.h:328
 AlidNdPtAnalysispPb.h:329
 AlidNdPtAnalysispPb.h:330
 AlidNdPtAnalysispPb.h:331
 AlidNdPtAnalysispPb.h:332
 AlidNdPtAnalysispPb.h:333
 AlidNdPtAnalysispPb.h:334
 AlidNdPtAnalysispPb.h:335
 AlidNdPtAnalysispPb.h:336
 AlidNdPtAnalysispPb.h:337
 AlidNdPtAnalysispPb.h:338
 AlidNdPtAnalysispPb.h:339
 AlidNdPtAnalysispPb.h:340
 AlidNdPtAnalysispPb.h:341
 AlidNdPtAnalysispPb.h:342
 AlidNdPtAnalysispPb.h:343
 AlidNdPtAnalysispPb.h:344
 AlidNdPtAnalysispPb.h:345
 AlidNdPtAnalysispPb.h:346
 AlidNdPtAnalysispPb.h:347
 AlidNdPtAnalysispPb.h:348
 AlidNdPtAnalysispPb.h:349
 AlidNdPtAnalysispPb.h:350
 AlidNdPtAnalysispPb.h:351
 AlidNdPtAnalysispPb.h:352
 AlidNdPtAnalysispPb.h:353
 AlidNdPtAnalysispPb.h:354
 AlidNdPtAnalysispPb.h:355
 AlidNdPtAnalysispPb.h:356
 AlidNdPtAnalysispPb.h:357
 AlidNdPtAnalysispPb.h:358
 AlidNdPtAnalysispPb.h:359
 AlidNdPtAnalysispPb.h:360
 AlidNdPtAnalysispPb.h:361
 AlidNdPtAnalysispPb.h:362
 AlidNdPtAnalysispPb.h:363
 AlidNdPtAnalysispPb.h:364
 AlidNdPtAnalysispPb.h:365
 AlidNdPtAnalysispPb.h:366
 AlidNdPtAnalysispPb.h:367