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