About the Error "undefined symbol: __12BrTrigScalerPCcT1 ". You need to put "Trig" in the BratLoad.C file if you are using simple root. I am not sure it is loaded in bratroot. Hiro On Thu, 3 May 2001, Stephen J. Sanders wrote: > Hi, At the collaboration meeting last week we agreed that for the > multiplicity paper we would analyze the dN/deta > distributions for the different detector systems using common centrality > cuts: 0-5, 5-10, 10-20,20-30,30-40,40-50. It was also decided to use the > centrality derived from the Si+Tile multiplicities for this analysis. > Yesterday I made a few minor corrections to the mult routines so that > BrMultCent reports the same centrality as the earlier BrRdoModuleMult > module. The returned centrality is given in percent. In order to get the > correct results, however, you MUST set the OutlierMethod in > BrSiRdoModule and BrTileRdoModule to kNoCorrection. > This is NOT the default for the BrTileTdoModule, and a coding error > in BrSiRdoModule (now fixed) prevented it from being the default there. > The code that I used to compare the old and new centrality classes > is in brahms_app/sjs_app/mult/src/multReplay.cxx > > Now my question: Because several modules and corresponding calibrations > are needed to obtain the centrality value, I wanted to come up with a > minimal > root program that could be run interactively and which would illustrate > how to put the routines together to get the desired centrality results. > I'm having > considerable trouble with this, however. > > First, the BrMultCentModule segfaults when I attempt call the Init element > in the interactive environment. > > ...so I thought I would see if I could get the rest working by > commenting cout > statements referring to this module... > > However, I now can only read the first data event from the raw data > file. When > it tries to read the second event, I get the error: > > /home/sanders/cern/root_v3.00.06/bin/root.exe: error in loading shared > libraries: /home/sanders/Brahms/brat/lib/linux/libBrat_Raw.so: undefined > symbol: __12BrTrigScalerPCcT1 > > My last brat update was yesterday and I completely rebuilt the system at > that time. Does > anyone have any idea what might cause the undefined symbol error? > > I would like to get the stripped down interactive code working, but > otherwise things do seem > to work OK in a compiled program. > > The disfunctional code that I'm trying to get working follows: (It still > has a lot of stuff that isn't > really needed for just getting out a centrality) > > #include <Centrality.h> > > Centrality::Centrality(Int_t runno) > { > Int_t i,j; > fRunno = runno; > > //------------------------------------------------------------------ > // Create parameters database manager > BrParameterDbManager* fParamDBManager; > fParamDBManager = BrParameterDbManager::Instance(); > fParamDBManager->SetDbParameterFileName("DetectorParameters.txt"); > BrDetectorParamsTPC* tpm1_param = (BrDetectorParamsTPC*) > fParamDBManager->GetDetectorParameters("BrDetectorParamsTPC","TPM1"); > // Create and initialiaze a geometry manager > BrGeometryDbManager* geom = BrGeometryDbManager::Instance(); > geom->SetDbFileName("mrs_90.geo"); > // Tile Calibrations > fTileCalibration = BrTileTmpCalibration::Instance(); > fTileCalibration->SetDebugLevel(10); > cout<<"runno: "<<runno<<endl; > if(runno>0) fTileCalibration->ReadASCIIFile(runno); > cout<<" after fTileCalibration->ReadASCIIFILE"<<endl; > // Si Calibrations > fSiCalibration = BrSiTmpCalibration::Instance(); > fSiCalibration->SetDebugLevel(10); > if(runno>0) fSiCalibration->ReadASCIIFile(runno); > > // Centrality Calibrations > fCalibration = BrMultCentTmpCalibration::Instance(); > fCalibration->SetDebugLevel(10); > > > } > Centrality::~Centrality() > { > } > > int Centrality::GetEvent(BrRawDataInput* input, BrEvent*& event) > { > // Get next event > cout<<"GetEvent"<<endl; > BrEvent *e = new BrEvent("event", 0, 0); > cout<<"new BrEvent "<<e<<" input: "<<input<<endl; > do { > input->Event(e); > cout<<" input: "<<input<<endl;; > if (input->Eof()) { > delete e; > cout<<"Returning status -1 from GetEvent"<<endl; > return -1; > } > if (input->Error()) { > delete e; > cout<<"Returning status 0 from GetEvent"<<endl; > input->Close(); // BrRawDataInput doesn't close on Error (only on EoF) > return 0; > } > } while (!input->GetDataState()); > event = e; > cout<<"return event"<<event<<endl; > return 1; > } > > > > void Centrality::Replay( ) > { > Char_t fname[80]; > Int_t seqnum; > Int_t status; > Int_t i; > Int_t ncnt; > Int_t EventNo; > Float_t bbZ; > Float_t zdcZ; > Float_t tpmZ; > Float_t bbMult; > Float_t vertex; > > TString* tableName = new TString; > *tableName = BrDetectorList::GetDetectorName(kBrTPM1); > *tableName += " Cluster VtxData"; > > BrRdoModuleZDC * rdoZDC = new > BrRdoModuleZDC("BrRdoModuleZDC","BrRdoModuleZDC"); > rdoZDC->Init(); > BrRdoModuleBB * rdoBB = new > BrRdoModuleBB("BrRdoModuleBB","BrRdoModuleBB"); > BrTPCClusterFinder * cluster = new BrTPCClusterFinder("TPM1","TPM1"); > BrTPMClusterVertexModule * rdoVtx = new > BrTPMClusterVertexModule("VTX","VertexFinder","TPM1"); > BrTileRdoModule * rdoTile = new BrTileRdoModule("tile","tile"); > rdoTile->Init(); > rdoTile->SetDebugLevel(0); > BrTileRdoModule::EOutlierMethod fTileOutlier = > (BrTileRdoModule::EOutlierMethod) 3; > rdoTile->SetOutlierMethod( fTileOutlier); > cout<<" rdoTile defined"<<endl; > BrSiRdoModule * rdoSi = new BrSiRdoModule("si","si"); > rdoSi->Init(); > rdoSi->SetDebugLevel(0); > BrSiRdoModule::EOutlierMethod fSiOutlier = > (BrSiRdoModule::EOutlierMethod) 3; > rdoSi->SetOutlierMethod( fSiOutlier); > cout<<" rdoSi defined"<<endl; > //BrMultCentModule* centModule = new BrMultCentModule("cent","cent"); > //centModule->Init(); > //centModule->SetDebugLevel(0); > //cout<<" centModule defined"<<endl; > > rdoBB->SetDebugLevel(0); > rdoBB->Init(); > cluster->SetMaxPixelCutoff( 10.0 ); > cluster->Init(); > cluster->SetDebugLevel(0); > > rdoVtx->Init(); > BrTPCPreProcess *preProcessor = new BrTPCPreProcess( "TPM1", "TPM1 > Preprocessor" ); > preProcessor->Init(); > seqnum = 0; > > status=0; > ncnt=0; > seqnum = 0; > sprintf(fname,"data/run%6dseq%3d.dat",fRunno,seqnum); > for(i=0;i<(Int_t) strlen(fname);i++) > if(fname[i]==' ') fname[i]='0'; > > input = new BrRawDataInput("test"); > cout<<"Open Raw Data File: "<<fname<<endl; > if(!input->Open(fname,"DISKFILE")) > { > cout<< "Failed to open at A "<< fname<<endl; > return; > }; > //Get first event to extract run number > if ((status=GetEvent(input, nextevent)) != 1) > { > cout<< "Failed to get first event"<<endl; > return; > }; > > EventNo=nextevent->GetEventNumber(); > cout<<"EventNo: "<<EventNo<<endl; > > delete nextevent; > //Get first event to extract run number > if ((status=GetEvent(input, nextevent)) != 1) > { > cout<< "Failed to get first event"<<endl; > return; > }; > > EventNo=nextevent->GetEventNumber(); > cout<<"2nd EventNo: "<<EventNo<<endl; > > maxevnt = 100; > cout<<"maxevnt = "<<maxevnt<<endl; > while(status==1 && ncnt<maxevnt) > { > BrEventNode * outNode = new BrEventNode("mult","mult"); > cout<<"New BrEventNode"<<endl; > rdoZDC->Event(nextevent,outNode); > rdoBB->Event(nextevent,outNode); > BrRdoZDC * rdodataZDC = (BrRdoZDC *) outNode->GetObject("RdoZDC"); > BrRdoBB * rdodataBB = (BrRdoBB *) outNode->GetObject("BB"); > zdcZ = (Float_t) rdodataZDC->GetZ(); > bbZ = (Float_t) rdodataBB->GetZ0() ; > bbMult = (Float_t) rdodataBB->GetMult(); > vertex =(fabs(bbZ)>150.&&fabs(zdcZ)<100.)? zdcZ:bbZ; > cout<<"vertex: "<<vertex<<endl; > if(fabs(vertex)<110&&fabs(zdcZ)<200) > { > preProcessor->Event(nextevent); > cluster->Event(nextevent); > rdoVtx->SetDetectorHits(cluster->GetDetectorHits()); > rdoVtx->Event(nextevent,outNode); > rdoTile->Event(nextevent,outNode); > rdoSi->Event(nextevent,outNode); > BrTileRdo * rdoTileNBI = (BrTileRdo *) outNode->GetObject("RdoMultTile"); > BrSiRdo * rdoSiNBI = (BrSiRdo *) outNode->GetObject("RdoMultSi"); > BrVertex* vtxTpm1 = (BrVertex*)outNode->GetObject(tableName->Data()); > //centModule->Event(outNode,outNode); > //BrMultCent * cent = (BrMultCent *) outNode->GetObject("CentMult"); > //cout<<"vertex: "<<vertex<<" centrality: "<<cent->GetCent()<<endl; > > } > ncnt++; > delete outNode; > delete nextevent; > status=GetEvent(input,nextevent); > cout<<" status"<<status<<endl; > if(status==-1) > { > cout<<"Last EventNo: " <<EventNo<<endl; > goto FIN; > } > EventNo=nextevent->GetEventNumber(); > }; > FIN: cout<<"# of ntuple entries: "<<ncnt<<endl; > delete rdoZDC; > delete rdoBB; > } > > >
This archive was generated by hypermail 2b29 : Thu May 03 2001 - 13:24:22 EDT