00001 void SpinAnalysisTreeReaderPDSF(const long nevents = 20) {
00002 LoadSpinTreeLibs();
00003
00004
00005 StSpinTreeReader *reader = new StSpinTreeReader();
00006
00007
00008 reader->selectDataset("$STAR/StRoot/StSpinPool/StSpinTree/datasets/run6_pdsf.dataset");
00009
00010
00011
00012 reader->connectJets = true;
00013 reader->connectNeutralJets = false;
00014 reader->connectChargedPions = true;
00015 reader->connectBemcPions = true;
00016 reader->connectBemcElectrons = true;
00017 reader->connectEemcPions = false;
00018
00019
00020
00021 reader->selectRun(7143025);
00022
00023
00024 reader->selectTrigger(137221);
00025 reader->selectTrigger(137222);
00026 reader->selectTrigger(137611);
00027 reader->selectTrigger(137622);
00028 reader->selectTrigger(5);
00029
00030
00031 reader->requireDidFire = true;
00032 reader->requireShouldFire = true;
00033
00034 StJetSkimEvent *ev = reader->event();
00035
00036 long entries = reader->GetEntries();
00037 if(entries > nevents) entries = nevents;
00038 for(int i=0; i<entries; i++) {
00039 reader->GetEntry(i);
00040
00041
00042 int runId = ev->runId();
00043 int eventId = ev->eventId();
00044
00045 printf("----------------Reading Event %d of %d----------------\n",i+1,entries);
00046 printf("basics: Run = %d, Event = %d\n",runId,eventId);
00047
00048
00049 TClonesArray *trigs = ev->triggers();
00050 for(int j=0; j<trigs->GetEntries(); j++) {
00051 StJetSkimTrig* aTrig = (StJetSkimTrig*)trigs->At(j);
00052 int trigId = aTrig->trigId();
00053 bool didFire = aTrig->didFire();
00054 int shouldFire = aTrig->shouldFire();
00055
00056 StJetSkimTrigHeader *header = ev->trigHeader(trigId);
00057 if(!header) {
00058 printf("ERROR LOADING TRIGGER HEADER FOR %d\n",trigId);
00059 break;
00060 }
00061 float prescale = header->prescale;
00062
00063 printf("trigger = %6d prescale = %8.1f didFire = %d shouldFire =% d\n",trigId,prescale,didFire,shouldFire);
00064 }
00065
00066
00067 int nVertices = ev->vertices()->GetEntries();
00068 StJetSkimVert *bestVert = ev->bestVert();
00069 if(bestVert) {
00070 printf("nVertices = %d position of best = %f\n",nVertices,bestVert->position()[2]);
00071 }
00072 else if(nVertices == 0){
00073 printf("no vertices found in this event\n");
00074 }
00075 else {
00076 printf("ERROR LOADING BEST VERTEX IN THIS EVENT\n");
00077 }
00078
00079
00080
00081
00082 printf("nJets = %d\n",reader->nJets());
00083 for(int j=0; j<reader->nJets(); j++) {
00084 StJet* aJet = reader->jet(j);
00085 double R = aJet->btowEtSum/aJet->Et();
00086 if(bestVert) printf("jet pt=%7.4f jet eta=% 1.4f det eta=% 1.4f E_neu/E_tot=%1.4f\n",aJet->jetPt,aJet->jetEta,aJet->detEta(bestVert->position()[2]),R);
00087 else printf("jet pt=%7.4f jet eta=% 1.4f no vertex E_neu/E_tot=%1.4f\n",aJet->jetPt,aJet->jetEta,R);
00088 }
00089
00090
00091 printf("nChargedPions = %d\n",reader->nChargedPions());
00092 for(int j=0; j<reader->nChargedPions(); j++) {
00093 StChargedPionTrack* aPion = reader->chargedPion(j);
00094 printf("pt=%7.4f eta=% 1.4f nSigmaPion=% 1.4f\n",aPion->pt(),aPion->eta(),aPion->nSigmaPion());
00095 }
00096
00097
00098 printf("nNeutralPions = %d\n",reader->nBemcPions());
00099 for(int j=0; j<reader->nBemcPions(); j++) {
00100 TPi0Candidate* aPi0 = reader->bemcPion(j);
00101 printf("neutral pion mass=%f pt=%f eta=%f\n",aPi0->Mass(),aPi0->Pt(),aPi0->Eta());
00102 }
00103
00104 cout << "-----------------------------------------------------" << endl;
00105 }
00106
00107 delete reader;
00108 }
00109
00110 void LoadSpinTreeLibs() {
00111 gSystem->Load("libPhysics");
00112 gSystem->Load("St_base");
00113 gSystem->Load("StChain");
00114 gSystem->Load("St_Tables");
00115 gSystem->Load("StEvent");
00116 gSystem->Load("StDetectorDbMaker");
00117 gSystem->Load("StEmcUtil");
00118 gSystem->Load("StStrangeMuDstMaker");
00119 gSystem->Load("StMuDSTMaker");
00120 gSystem->Load("StSpinDbMaker");
00121 gSystem->Load("StEmcTriggerMaker");
00122 gSystem->Load("StJetFinder");
00123 gSystem->Load("StJetMaker");
00124 gSystem->Load("StMcEvent");
00125 gSystem->Load("StChargedPionAnalysisMaker");
00126 gSystem->Load("StSpinTree");
00127 }