00001
00002
00003
00004
00006
00007
00008
00009
00011
00012
00013 #ifndef flow_pDST_h
00014 #define flow_pDST_h
00015
00016 #include <TROOT.h>
00017 #include <TChain.h>
00018 #include <TFile.h>
00019 const Int_t kMaxfTracks = 7000;
00020
00021 class flow_pDST {
00022 public :
00023 TTree *fChain;
00024 Int_t fCurrent;
00025
00026 UInt_t fUniqueID;
00027 UInt_t fBits;
00028 Int_t mVersion;
00029 Int_t mNtrack;
00030 Int_t mEventID;
00031 Int_t mRunID;
00032 Double_t mMagneticField;
00033 Double_t mCenterOfMassEnergy;
00034 Short_t mBeamMassNumberEast;
00035 Short_t mBeamMassNumberWest;
00036 UInt_t mOrigMult;
00037 UInt_t mL0TriggerWord;
00038 UInt_t mUncorrNegMult;
00039 UInt_t mUncorrPosMult;
00040 UInt_t mMultEta;
00041 UInt_t mCentrality;
00042 Float_t mVertexX;
00043 Float_t mVertexY;
00044 Float_t mVertexZ;
00045 Float_t mCTB;
00046 Float_t mZDCe;
00047 Float_t mZDCw;
00048 Int_t fTracks_;
00049 UInt_t fTracks_fUniqueID[kMaxfTracks];
00050 UInt_t fTracks_fBits[kMaxfTracks];
00051 Float_t fTracks_mPt[kMaxfTracks];
00052 Float_t fTracks_mPtGlobal[kMaxfTracks];
00053 Float_t fTracks_mEta[kMaxfTracks];
00054 Float_t fTracks_mEtaGlobal[kMaxfTracks];
00055 Float_t fTracks_mDedx[kMaxfTracks];
00056 Float_t fTracks_mPhi[kMaxfTracks];
00057 Float_t fTracks_mPhiGlobal[kMaxfTracks];
00058 Short_t fTracks_mCharge[kMaxfTracks];
00059 Float_t fTracks_mDca[kMaxfTracks];
00060 Float_t fTracks_mDcaSigned[kMaxfTracks];
00061 Float_t fTracks_mDcaGlobal[kMaxfTracks];
00062 Float_t fTracks_mChi2[kMaxfTracks];
00063 Int_t fTracks_mFitPts[kMaxfTracks];
00064 Int_t fTracks_mMaxPts[kMaxfTracks];
00065 Int_t fTracks_mNhits[kMaxfTracks];
00066 Int_t fTracks_mNdedxPts[kMaxfTracks];
00067 Float_t fTracks_mTrackLength[kMaxfTracks];
00068 Int_t fTracks_mPidPion[kMaxfTracks];
00069 Int_t fTracks_mPidProton[kMaxfTracks];
00070 Int_t fTracks_mPidKaon[kMaxfTracks];
00071 Int_t fTracks_mPidDeuteron[kMaxfTracks];
00072 Int_t fTracks_mPidElectron[kMaxfTracks];
00073 Int_t fTracks_mMostLikelihoodPID[kMaxfTracks];
00074 Float_t fTracks_mMostLikelihoodProb[kMaxfTracks];
00075 Int_t fTracks_mExtrapTag[kMaxfTracks];
00076 Float_t fTracks_mElectronPositronProb[kMaxfTracks];
00077 Float_t fTracks_mPionPlusMinusProb[kMaxfTracks];
00078 Float_t fTracks_mKaonPlusMinusProb[kMaxfTracks];
00079 Float_t fTracks_mProtonPbarProb[kMaxfTracks];
00080 Float_t fTracks_mDcaGlobalX[kMaxfTracks];
00081 Float_t fTracks_mDcaGlobalY[kMaxfTracks];
00082 Float_t fTracks_mDcaGlobalZ[kMaxfTracks];
00083 UInt_t fTracks_mTopologyMap0[kMaxfTracks];
00084 UInt_t fTracks_mTopologyMap1[kMaxfTracks];
00085
00086
00087 TBranch *b_fUniqueID;
00088 TBranch *b_fBits;
00089 TBranch *b_mVersion;
00090 TBranch *b_mNtrack;
00091 TBranch *b_mEventID;
00092 TBranch *b_mRunID;
00093 TBranch *b_mMagneticField;
00094 TBranch *b_mCenterOfMassEnergy;
00095 TBranch *b_mBeamMassNumberEast;
00096 TBranch *b_mBeamMassNumberWest;
00097 TBranch *b_mOrigMult;
00098 TBranch *b_mL0TriggerWord;
00099 TBranch *b_mUncorrNegMult;
00100 TBranch *b_mUncorrPosMult;
00101 TBranch *b_mMultEta;
00102 TBranch *b_mCentrality;
00103 TBranch *b_mVertexX;
00104 TBranch *b_mVertexY;
00105 TBranch *b_mVertexZ;
00106 TBranch *b_mCTB;
00107 TBranch *b_mZDCe;
00108 TBranch *b_mZDCw;
00109 TBranch *b_fTracks_;
00110 TBranch *b_fTracks_fUniqueID;
00111 TBranch *b_fTracks_fBits;
00112 TBranch *b_fTracks_mPt;
00113 TBranch *b_fTracks_mPtGlobal;
00114 TBranch *b_fTracks_mEta;
00115 TBranch *b_fTracks_mEtaGlobal;
00116 TBranch *b_fTracks_mDedx;
00117 TBranch *b_fTracks_mPhi;
00118 TBranch *b_fTracks_mPhiGlobal;
00119 TBranch *b_fTracks_mCharge;
00120 TBranch *b_fTracks_mDca;
00121 TBranch *b_fTracks_mDcaSigned;
00122 TBranch *b_fTracks_mDcaGlobal;
00123 TBranch *b_fTracks_mChi2;
00124 TBranch *b_fTracks_mFitPts;
00125 TBranch *b_fTracks_mMaxPts;
00126 TBranch *b_fTracks_mNhits;
00127 TBranch *b_fTracks_mNdedxPts;
00128 TBranch *b_fTracks_mTrackLength;
00129 TBranch *b_fTracks_mPidPion;
00130 TBranch *b_fTracks_mPidProton;
00131 TBranch *b_fTracks_mPidKaon;
00132 TBranch *b_fTracks_mPidDeuteron;
00133 TBranch *b_fTracks_mPidElectron;
00134 TBranch *b_fTracks_mMostLikelihoodPID;
00135 TBranch *b_fTracks_mMostLikelihoodProb;
00136 TBranch *b_fTracks_mExtrapTag;
00137 TBranch *b_fTracks_mElectronPositronProb;
00138 TBranch *b_fTracks_mPionPlusMinusProb;
00139 TBranch *b_fTracks_mKaonPlusMinusProb;
00140 TBranch *b_fTracks_mProtonPbarProb;
00141 TBranch *b_fTracks_mDcaGlobalX;
00142 TBranch *b_fTracks_mDcaGlobalY;
00143 TBranch *b_fTracks_mDcaGlobalZ;
00144 TBranch *b_fTracks_mTopologyMap0;
00145 TBranch *b_fTracks_mTopologyMap1;
00146
00147 flow_pDST(TTree *tree=0);
00148 ~flow_pDST();
00149 Int_t Cut(Int_t entry);
00150 Int_t GetEntry(Int_t entry);
00151 Int_t LoadTree(Int_t entry);
00152 void Init(TTree *tree);
00153 void Loop();
00154 Bool_t Notify();
00155 void Show(Int_t entry = -1);
00156 };
00157
00158 #endif
00159
00160 #ifdef flow_pDST_cxx
00161 flow_pDST::flow_pDST(TTree *tree)
00162 {
00163
00164
00165 if (tree == 0) {
00166 TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("/auto/stardata/starspec2/flow_pDST_production/reco/ProductionMinBias/FullField/P02gc/2001/2269018/st_physics_2269018_raw_0001.flowpicoevent.root");
00167 if (!f) {
00168 f = new TFile("/auto/stardata/starspec2/flow_pDST_production/reco/ProductionMinBias/FullField/P02gc/2001/2269018/st_physics_2269018_raw_0001.flowpicoevent.root");
00169 }
00170 tree = (TTree*)gDirectory->Get("FlowTree");
00171
00172 }
00173 Init(tree);
00174 }
00175
00176 flow_pDST::~flow_pDST()
00177 {
00178 if (!fChain) return;
00179 delete fChain->GetCurrentFile();
00180 }
00181
00182 Int_t flow_pDST::GetEntry(Int_t entry)
00183 {
00184
00185 if (!fChain) return 0;
00186 return fChain->GetEntry(entry);
00187 }
00188 Int_t flow_pDST::LoadTree(Int_t entry)
00189 {
00190
00191 if (!fChain) return -5;
00192 Int_t centry = fChain->LoadTree(entry);
00193 if (centry < 0) return centry;
00194 if (fChain->IsA() != TChain::Class()) return centry;
00195 TChain *chain = (TChain*)fChain;
00196 if (chain->GetTreeNumber() != fCurrent) {
00197 fCurrent = chain->GetTreeNumber();
00198 Notify();
00199 }
00200 return centry;
00201 }
00202
00203 void flow_pDST::Init(TTree *tree)
00204 {
00205
00206 if (tree == 0) return;
00207 fChain = tree;
00208 fCurrent = -1;
00209 fChain->SetMakeClass(1);
00210
00211 fChain->SetBranchAddress("fUniqueID",&fUniqueID);
00212 fChain->SetBranchAddress("fBits",&fBits);
00213 fChain->SetBranchAddress("mVersion",&mVersion);
00214 fChain->SetBranchAddress("mNtrack",&mNtrack);
00215 fChain->SetBranchAddress("mEventID",&mEventID);
00216 fChain->SetBranchAddress("mRunID",&mRunID);
00217 fChain->SetBranchAddress("mMagneticField",&mMagneticField);
00218 fChain->SetBranchAddress("mCenterOfMassEnergy",&mCenterOfMassEnergy);
00219 fChain->SetBranchAddress("mBeamMassNumberEast",&mBeamMassNumberEast);
00220 fChain->SetBranchAddress("mBeamMassNumberWest",&mBeamMassNumberWest);
00221 fChain->SetBranchAddress("mOrigMult",&mOrigMult);
00222 fChain->SetBranchAddress("mL0TriggerWord",&mL0TriggerWord);
00223 fChain->SetBranchAddress("mUncorrNegMult",&mUncorrNegMult);
00224 fChain->SetBranchAddress("mUncorrPosMult",&mUncorrPosMult);
00225 fChain->SetBranchAddress("mMultEta",&mMultEta);
00226 fChain->SetBranchAddress("mCentrality",&mCentrality);
00227 fChain->SetBranchAddress("mVertexX",&mVertexX);
00228 fChain->SetBranchAddress("mVertexY",&mVertexY);
00229 fChain->SetBranchAddress("mVertexZ",&mVertexZ);
00230 fChain->SetBranchAddress("mCTB",&mCTB);
00231 fChain->SetBranchAddress("mZDCe",&mZDCe);
00232 fChain->SetBranchAddress("mZDCw",&mZDCw);
00233 fChain->SetBranchAddress("fTracks",&fTracks_);
00234 fChain->SetBranchAddress("fTracks.fUniqueID",fTracks_fUniqueID);
00235 fChain->SetBranchAddress("fTracks.fBits",fTracks_fBits);
00236 fChain->SetBranchAddress("fTracks.mPt",fTracks_mPt);
00237 fChain->SetBranchAddress("fTracks.mPtGlobal",fTracks_mPtGlobal);
00238 fChain->SetBranchAddress("fTracks.mEta",fTracks_mEta);
00239 fChain->SetBranchAddress("fTracks.mEtaGlobal",fTracks_mEtaGlobal);
00240 fChain->SetBranchAddress("fTracks.mDedx",fTracks_mDedx);
00241 fChain->SetBranchAddress("fTracks.mPhi",fTracks_mPhi);
00242 fChain->SetBranchAddress("fTracks.mPhiGlobal",fTracks_mPhiGlobal);
00243 fChain->SetBranchAddress("fTracks.mCharge",fTracks_mCharge);
00244 fChain->SetBranchAddress("fTracks.mDca",fTracks_mDca);
00245 fChain->SetBranchAddress("fTracks.mDcaSigned",fTracks_mDcaSigned);
00246 fChain->SetBranchAddress("fTracks.mDcaGlobal",fTracks_mDcaGlobal);
00247 fChain->SetBranchAddress("fTracks.mChi2",fTracks_mChi2);
00248 fChain->SetBranchAddress("fTracks.mFitPts",fTracks_mFitPts);
00249 fChain->SetBranchAddress("fTracks.mMaxPts",fTracks_mMaxPts);
00250 fChain->SetBranchAddress("fTracks.mNhits",fTracks_mNhits);
00251 fChain->SetBranchAddress("fTracks.mNdedxPts",fTracks_mNdedxPts);
00252 fChain->SetBranchAddress("fTracks.mTrackLength",fTracks_mTrackLength);
00253 fChain->SetBranchAddress("fTracks.mPidPion",fTracks_mPidPion);
00254 fChain->SetBranchAddress("fTracks.mPidProton",fTracks_mPidProton);
00255 fChain->SetBranchAddress("fTracks.mPidKaon",fTracks_mPidKaon);
00256 fChain->SetBranchAddress("fTracks.mPidDeuteron",fTracks_mPidDeuteron);
00257 fChain->SetBranchAddress("fTracks.mPidElectron",fTracks_mPidElectron);
00258 fChain->SetBranchAddress("fTracks.mMostLikelihoodPID",fTracks_mMostLikelihoodPID);
00259 fChain->SetBranchAddress("fTracks.mMostLikelihoodProb",fTracks_mMostLikelihoodProb);
00260 fChain->SetBranchAddress("fTracks.mExtrapTag",fTracks_mExtrapTag);
00261 fChain->SetBranchAddress("fTracks.mElectronPositronProb",fTracks_mElectronPositronProb);
00262 fChain->SetBranchAddress("fTracks.mPionPlusMinusProb",fTracks_mPionPlusMinusProb);
00263 fChain->SetBranchAddress("fTracks.mKaonPlusMinusProb",fTracks_mKaonPlusMinusProb);
00264 fChain->SetBranchAddress("fTracks.mProtonPbarProb",fTracks_mProtonPbarProb);
00265 fChain->SetBranchAddress("fTracks.mDcaGlobalX",fTracks_mDcaGlobalX);
00266 fChain->SetBranchAddress("fTracks.mDcaGlobalY",fTracks_mDcaGlobalY);
00267 fChain->SetBranchAddress("fTracks.mDcaGlobalZ",fTracks_mDcaGlobalZ);
00268 fChain->SetBranchAddress("fTracks.mTopologyMap0",fTracks_mTopologyMap0);
00269 fChain->SetBranchAddress("fTracks.mTopologyMap1",fTracks_mTopologyMap1);
00270 Notify();
00271 }
00272
00273 Bool_t flow_pDST::Notify()
00274 {
00275
00276
00277 b_fUniqueID = fChain->GetBranch("fUniqueID");
00278 b_fBits = fChain->GetBranch("fBits");
00279 b_mVersion = fChain->GetBranch("mVersion");
00280 b_mNtrack = fChain->GetBranch("mNtrack");
00281 b_mEventID = fChain->GetBranch("mEventID");
00282 b_mRunID = fChain->GetBranch("mRunID");
00283 b_mMagneticField = fChain->GetBranch("mMagneticField");
00284 b_mCenterOfMassEnergy = fChain->GetBranch("mCenterOfMassEnergy");
00285 b_mBeamMassNumberEast = fChain->GetBranch("mBeamMassNumberEast");
00286 b_mBeamMassNumberWest = fChain->GetBranch("mBeamMassNumberWest");
00287 b_mOrigMult = fChain->GetBranch("mOrigMult");
00288 b_mL0TriggerWord = fChain->GetBranch("mL0TriggerWord");
00289 b_mUncorrNegMult = fChain->GetBranch("mUncorrNegMult");
00290 b_mUncorrPosMult = fChain->GetBranch("mUncorrPosMult");
00291 b_mMultEta = fChain->GetBranch("mMultEta");
00292 b_mCentrality = fChain->GetBranch("mCentrality");
00293 b_mVertexX = fChain->GetBranch("mVertexX");
00294 b_mVertexY = fChain->GetBranch("mVertexY");
00295 b_mVertexZ = fChain->GetBranch("mVertexZ");
00296 b_mCTB = fChain->GetBranch("mCTB");
00297 b_mZDCe = fChain->GetBranch("mZDCe");
00298 b_mZDCw = fChain->GetBranch("mZDCw");
00299 b_fTracks_ = fChain->GetBranch("fTracks");
00300 b_fTracks_fUniqueID = fChain->GetBranch("fTracks.fUniqueID");
00301 b_fTracks_fBits = fChain->GetBranch("fTracks.fBits");
00302 b_fTracks_mPt = fChain->GetBranch("fTracks.mPt");
00303 b_fTracks_mPtGlobal = fChain->GetBranch("fTracks.mPtGlobal");
00304 b_fTracks_mEta = fChain->GetBranch("fTracks.mEta");
00305 b_fTracks_mEtaGlobal = fChain->GetBranch("fTracks.mEtaGlobal");
00306 b_fTracks_mDedx = fChain->GetBranch("fTracks.mDedx");
00307 b_fTracks_mPhi = fChain->GetBranch("fTracks.mPhi");
00308 b_fTracks_mPhiGlobal = fChain->GetBranch("fTracks.mPhiGlobal");
00309 b_fTracks_mCharge = fChain->GetBranch("fTracks.mCharge");
00310 b_fTracks_mDca = fChain->GetBranch("fTracks.mDca");
00311 b_fTracks_mDcaSigned = fChain->GetBranch("fTracks.mDcaSigned");
00312 b_fTracks_mDcaGlobal = fChain->GetBranch("fTracks.mDcaGlobal");
00313 b_fTracks_mChi2 = fChain->GetBranch("fTracks.mChi2");
00314 b_fTracks_mFitPts = fChain->GetBranch("fTracks.mFitPts");
00315 b_fTracks_mMaxPts = fChain->GetBranch("fTracks.mMaxPts");
00316 b_fTracks_mNhits = fChain->GetBranch("fTracks.mNhits");
00317 b_fTracks_mNdedxPts = fChain->GetBranch("fTracks.mNdedxPts");
00318 b_fTracks_mTrackLength = fChain->GetBranch("fTracks.mTrackLength");
00319 b_fTracks_mPidPion = fChain->GetBranch("fTracks.mPidPion");
00320 b_fTracks_mPidProton = fChain->GetBranch("fTracks.mPidProton");
00321 b_fTracks_mPidKaon = fChain->GetBranch("fTracks.mPidKaon");
00322 b_fTracks_mPidDeuteron = fChain->GetBranch("fTracks.mPidDeuteron");
00323 b_fTracks_mPidElectron = fChain->GetBranch("fTracks.mPidElectron");
00324 b_fTracks_mMostLikelihoodPID = fChain->GetBranch("fTracks.mMostLikelihoodPID");
00325 b_fTracks_mMostLikelihoodProb = fChain->GetBranch("fTracks.mMostLikelihoodProb");
00326 b_fTracks_mExtrapTag = fChain->GetBranch("fTracks.mExtrapTag");
00327 b_fTracks_mElectronPositronProb = fChain->GetBranch("fTracks.mElectronPositronProb");
00328 b_fTracks_mPionPlusMinusProb = fChain->GetBranch("fTracks.mPionPlusMinusProb");
00329 b_fTracks_mKaonPlusMinusProb = fChain->GetBranch("fTracks.mKaonPlusMinusProb");
00330 b_fTracks_mProtonPbarProb = fChain->GetBranch("fTracks.mProtonPbarProb");
00331 b_fTracks_mDcaGlobalX = fChain->GetBranch("fTracks.mDcaGlobalX");
00332 b_fTracks_mDcaGlobalY = fChain->GetBranch("fTracks.mDcaGlobalY");
00333 b_fTracks_mDcaGlobalZ = fChain->GetBranch("fTracks.mDcaGlobalZ");
00334 b_fTracks_mTopologyMap0 = fChain->GetBranch("fTracks.mTopologyMap0");
00335 b_fTracks_mTopologyMap1 = fChain->GetBranch("fTracks.mTopologyMap1");
00336 return kTRUE;
00337 }
00338
00339 void flow_pDST::Show(Int_t entry)
00340 {
00341
00342
00343 if (!fChain) return;
00344 fChain->Show(entry);
00345 }
00346 Int_t flow_pDST::Cut(Int_t entry)
00347 {
00348
00349
00350
00351 return 1;
00352 }
00353 #endif // #ifdef flow_pDST_cxx
00354