diff --git a/examples/dcdriftdist.C b/examples/dcdriftdist.C index fe67618e90a191c4e381d9b2a8e9dd7504cafcc9..ca6023ec9fee30e60634411b5f0813e6098bb1a2 100644 --- a/examples/dcdriftdist.C +++ b/examples/dcdriftdist.C @@ -22,7 +22,7 @@ for(Int_t ih=0;ih<12;ih++) { Int_t ipad = 2*(ih%6)+1 + ih/6; cout << ipad << endl; - TPad *pt = c1->cd(ipad); + c1->cd(ipad); h[ih]->SetFillColor(kBlue); h[ih]->SetFillStyle(3354); h[ih]->Draw(); diff --git a/examples/dchitmaps.C b/examples/dchitmaps.C index ce968cdd40c94219295fb1e60cfd25c285b5df53..c3285011bf6757949179aeef7fe5b88a34aedaa2 100644 --- a/examples/dchitmaps.C +++ b/examples/dchitmaps.C @@ -22,7 +22,7 @@ for(Int_t ih=0;ih<12;ih++) { Int_t ipad = 2*(ih%6)+1 + ih/6; cout << ipad << endl; - TPad *pt = c1->cd(ipad); + c1->cd(ipad); h[ih]->SetFillColor(kBlue); h[ih]->SetFillStyle(3354); h[ih]->Draw(); diff --git a/examples/hodtest_cuts_mkj.def b/examples/hodtest_cuts_mkj.def new file mode 100644 index 0000000000000000000000000000000000000000..8a9260d7f16e7e0e109e68eed3363652a5ae4908 --- /dev/null +++ b/examples/hodtest_cuts_mkj.def @@ -0,0 +1,21 @@ +# Demo cuts for hodtest +# + +Block: RawDecode + +Pedestal_event g.evtyp==4 +scalar_event g.evtyp==0 +HMS_event g.evtyp==1 +SOS_event g.evtyp==2 +coin_event g.evtyp==3 +misc_event g.evtyp>=5 +RawDecode_master 1 + +Block: Decode +Decode_master HMS_event + +Block: CoarseTracking +CoarseTracking_master !Pedestal_event + +Block: CoarseReconstruct +RawCoarseReconstruct !Pedestal_event diff --git a/examples/hodtest_mkj.C b/examples/hodtest_mkj.C new file mode 100644 index 0000000000000000000000000000000000000000..73c9458fecf3015416fde706beaca81bc835a00a --- /dev/null +++ b/examples/hodtest_mkj.C @@ -0,0 +1,83 @@ + +void hodtest_mkj(Int_t RunNumber=50017, Int_t MaxEventToReplay=5000) { + + // + // Steering script to test hodoscope decoding + // + + //Int_t RunNumber=52949; + if (RunNumber == 50017) { + char* RunFileNamePattern="daq04_%d.log.0"; + } else { + char* RunFileNamePattern="/cache/mss/hallc/daq04/raw/daq04_%d.log.0"; + } + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/test.database"); + + gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber); + + // g_ctp_parm_filename and g_decode_map_filename should now be defined + + gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename")); + + // Constants not in ENGINE PARAM files that we want to be + // configurable + gHcParms->Load("PARAM/hcana.param"); + + // Generate db_cratemap to correspond to map file contents + char command[100]; + sprintf(command,"./make_cratemap.pl < %s > db_cratemap.dat",gHcParms->GetString("g_decode_map_filename")); + system(command); + + // Load the Hall C style detector map + gHcDetectorMap=new THcDetectorMap(); + gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename")); + + // Set up the equipment to be analyzed. + + THaApparatus* HMS = new THcHallCSpectrometer("H","HMS"); + gHaApps->Add( HMS ); + + // Add hodoscope + HMS->AddDetector( new THcHodoscope("hod", "Hodoscope" )); + HMS->AddDetector( new THcShower("cal", "Shower" )); + HMS->AddDetector( new THcDC("dc", "Drift Chambers" )); + THcAerogel* aerogel = new THcAerogel("aero", "Aerogel Cerenkov" ); + HMS->AddDetector( aerogel ); + + // Set up the analyzer - we use the standard one, + // but this could be an experiment-specific one as well. + // The Analyzer controls the reading of the data, executes + // tests/cuts, loops over Acpparatus's and PhysicsModules, + // and executes the output routines. + THaAnalyzer* analyzer = new THcAnalyzer; + + + // A simple event class to be output to the resulting tree. + // Creating your own descendant of THaEvent is one way of + // defining and controlling the output. + THaEvent* event = new THaEvent; + + // Define the run(s) that we want to analyze. + // We just set up one, but this could be many. + char RunFileName[100]; + sprintf(RunFileName,RunFileNamePattern,RunNumber); + THaRun* run = new THaRun(RunFileName); + + // Eventually need to learn to skip over, or properly analyze + // the pedestal events + run->SetEventRange(1,MaxEventToReplay);// Physics Event number, does not + // include scaler or control events + + // Define the analysis parameters + analyzer->SetCountMode( 0 ); + analyzer->SetEvent( event ); + analyzer->SetOutFile(Form("hodtest_%05d.root",RunNumber)); + analyzer->SetOdefFile("output_mkj.def"); + analyzer->SetCutFile("hodtest_cuts_mkj.def"); // optional + + // File to record cuts accounting information + // analyzer->SetSummaryFile("summary_example.log"); // optional + + analyzer->Process(run); // start the actual analysis +} diff --git a/examples/output_mkj.def b/examples/output_mkj.def new file mode 100644 index 0000000000000000000000000000000000000000..0c8c6bc6067a9d4247747df65daa7bc0b9f2e6a2 --- /dev/null +++ b/examples/output_mkj.def @@ -0,0 +1,166 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block H.dc.* +block H.hod.* +block H.cal.* +block H.aero.* +block g.evtyp + +# TDC spectra +TH1F hfptime1x ' HMS s1x fptime' H.hod.1x.fptime 80 0. 80. +TH1F hfptime1y ' HMS s1y fptime' H.hod.1y.fptime 80 0. 80. +TH1F hfptime2x ' HMS s2x fptime' H.hod.2x.fptime 80 0. 80. +TH1F hfptime2y ' HMS s2y fptime' H.hod.2y.fptime 80 0. 80. +# TDC hits per paddle +TH1F hpostdc1 'HMS s1x+ TDC hits' H.hod.1x.postdchits 16 0.5 16.5 +TH1F hnegtdc1 'HMS s1x- TDC hits' H.hod.1x.negtdchits 16 0.5 16.5 +TH1F hpostdc2 'HMS s1y+ TDC hits' H.hod.1y.postdchits 10 0.5 10.5 +TH1F hnegtdc2 'HMS s1y- TDC hits' H.hod.1y.negtdchits 10 0.5 10.5 +TH1F hpostdc3 'HMS s2x+ TDC hits' H.hod.2x.postdchits 16 0.5 16.5 +TH1F hnegtdc3 'HMS s2x- TDC hits' H.hod.2x.negtdchits 16 0.5 16.5 +TH1F hpostdc4 'HMS s2y+ TDC hits' H.hod.2y.postdchits 10 0.5 10.5 +TH1F hnegtdc4 'HMS s2y- TDC hits' H.hod.2y.negtdchits 10 0.5 10.5 + +# ADC hits per paddle +TH1F hposadc1 'HMS s1x+ ADC hits' H.hod.1x.posadchits 16 0.5 16.5 +TH1F hnegadc1 'HMS s1x- ADC hits' H.hod.1x.negadchits 16 0.5 16.5 +TH1F hposadc2 'HMS s1y+ ADC hits' H.hod.1y.posadchits 10 0.5 10.5 +TH1F hnegadc2 'HMS s1y- ADC hits' H.hod.1y.negadchits 10 0.5 10.5 +TH1F hposadc3 'HMS s2x+ ADC hits' H.hod.2x.posadchits 16 0.5 16.5 +TH1F hnegadc3 'HMS s2x- ADC hits' H.hod.2x.negadchits 16 0.5 16.5 +TH1F hposadc4 'HMS s2y+ ADC hits' H.hod.2y.posadchits 10 0.5 10.5 +TH1F hnegadc4 'HMS s2y- ADC hits' H.hod.2y.negadchits 10 0.5 10.5 + +# ADC hits per Calorimeter layer +TH1F chposadc1 'HMS Cal A+ ADC hits' H.cal.1pr.posadchits 13 0.5 13.5 +TH1F chnegadc1 'HMS Cal A- ADC hits' H.cal.1pr.negadchits 13 0.5 13.5 +TH1F chposadc2 'HMS Cal B+ ADC hits' H.cal.2ta.posadchits 13 0.5 13.5 +TH1F chnegadc2 'HMS Cal B- ADC hits' H.cal.2ta.negadchits 13 0.5 13.5 +TH1F chposadc3 'HMS Cal C+ ADC hits' H.cal.3ta.posadchits 13 0.5 13.5 +TH1F chposadc4 'HMS Cal D+ ADC hits' H.cal.4ta.posadchits 13 0.5 13.5 + +#Calorimeter ADC channels +TH1F hcaladc_A1p 'HMS Cal ADC A1p - PED' H.cal.1pr.apos_p[0] 150 50 500 +TH1F hcaladc_A2p 'HMS Cal ADC A2p - PED' H.cal.1pr.apos_p[1] 150 50 500 +TH1F hcaladc_A3p 'HMS Cal ADC A3p - PED' H.cal.1pr.apos_p[2] 150 50 500 +TH1F hcaladc_A4p 'HMS Cal ADC A4p - PED' H.cal.1pr.apos_p[3] 150 50 500 +TH1F hcaladc_A5p 'HMS Cal ADC A5p - PED' H.cal.1pr.apos_p[4] 150 50 500 +TH1F hcaladc_A6p 'HMS Cal ADC A6p - PED' H.cal.1pr.apos_p[5] 150 50 500 +TH1F hcaladc_A7p 'HMS Cal ADC A7p - PED' H.cal.1pr.apos_p[6] 150 50 500 +TH1F hcaladc_A8p 'HMS Cal ADC A8p - PED' H.cal.1pr.apos_p[7] 150 50 500 +TH1F hcaladc_A9p 'HMS Cal ADC A9p - PED' H.cal.1pr.apos_p[8] 150 50 500 +TH1F hcaladc_A10p 'HMS Cal ADC A10p - PED' H.cal.1pr.apos_p[9] 150 50 500 +TH1F hcaladc_A11p 'HMS Cal ADC A11p - PED' H.cal.1pr.apos_p[10] 150 50 500 +TH1F hcaladc_A12p 'HMS Cal ADC A12p - PED' H.cal.1pr.apos_p[11] 150 50 500 +TH1F hcaladc_A13p 'HMS Cal ADC A13p - PED' H.cal.1pr.apos_p[12] 150 50 500 +TH1F hcaladc_B1p 'HMS Cal ADC B1p - PED' H.cal.2ta.apos_p[0] 150 50 500 +TH1F hcaladc_B2p 'HMS Cal ADC B2p - PED' H.cal.2ta.apos_p[1] 150 50 500 +TH1F hcaladc_B3p 'HMS Cal ADC B3p - PED' H.cal.2ta.apos_p[2] 150 50 500 +TH1F hcaladc_B4p 'HMS Cal ADC B4p - PED' H.cal.2ta.apos_p[3] 150 50 500 +TH1F hcaladc_B5p 'HMS Cal ADC B5p - PED' H.cal.2ta.apos_p[4] 150 50 500 +TH1F hcaladc_B6p 'HMS Cal ADC B6p - PED' H.cal.2ta.apos_p[5] 150 50 500 +TH1F hcaladc_B7p 'HMS Cal ADC B7p - PED' H.cal.2ta.apos_p[6] 150 50 500 +TH1F hcaladc_B8p 'HMS Cal ADC B8p - PED' H.cal.2ta.apos_p[7] 150 50 500 +TH1F hcaladc_B9p 'HMS Cal ADC B9p - PED' H.cal.2ta.apos_p[8] 150 50 500 +TH1F hcaladc_B10p 'HMS Cal ADC B10p - PED' H.cal.2ta.apos_p[9] 150 50 500 +TH1F hcaladc_B11p 'HMS Cal ADC B11p - PED' H.cal.2ta.apos_p[10] 150 50 500 +TH1F hcaladc_B12p 'HMS Cal ADC B12p - PED' H.cal.2ta.apos_p[11] 150 50 500 +TH1F hcaladc_B13p 'HMS Cal ADC B13p - PED' H.cal.2ta.apos_p[12] 150 50 500 + +TH1F hcaladc_C1p 'HMS Cal ADC C1p - PED' H.cal.3ta.apos_p[0] 150 50 500 +TH1F hcaladc_C2p 'HMS Cal ADC C2p - PED' H.cal.3ta.apos_p[1] 150 50 500 +TH1F hcaladc_C3p 'HMS Cal ADC C3p - PED' H.cal.3ta.apos_p[2] 150 50 500 +TH1F hcaladc_C4p 'HMS Cal ADC C4p - PED' H.cal.3ta.apos_p[3] 150 50 500 +TH1F hcaladc_C5p 'HMS Cal ADC C5p - PED' H.cal.3ta.apos_p[4] 150 50 500 +TH1F hcaladc_C6p 'HMS Cal ADC C6p - PED' H.cal.3ta.apos_p[5] 150 50 500 +TH1F hcaladc_C7p 'HMS Cal ADC C7p - PED' H.cal.3ta.apos_p[6] 150 50 500 +TH1F hcaladc_C8p 'HMS Cal ADC C8p - PED' H.cal.3ta.apos_p[7] 150 50 500 +TH1F hcaladc_C9p 'HMS Cal ADC C9p - PED' H.cal.3ta.apos_p[8] 150 50 500 +TH1F hcaladc_C10p 'HMS Cal ADC C10p - PED' H.cal.3ta.apos_p[9] 150 50 500 +TH1F hcaladc_C11p 'HMS Cal ADC C11p - PED' H.cal.3ta.apos_p[10] 150 50 500 +TH1F hcaladc_C12p 'HMS Cal ADC C12p - PED' H.cal.3ta.apos_p[11] 150 50 500 +TH1F hcaladc_C13p 'HMS Cal ADC C13p - PED' H.cal.3ta.apos_p[12] 150 50 500 + +TH1F hcaladc_D1p 'HMS Cal ADC D1p - PED' H.cal.4ta.apos_p[0] 150 50 500 +TH1F hcaladc_D2p 'HMS Cal ADC D2p - PED' H.cal.4ta.apos_p[1] 150 50 500 +TH1F hcaladc_D3p 'HMS Cal ADC D3p - PED' H.cal.4ta.apos_p[2] 150 50 500 +TH1F hcaladc_D4p 'HMS Cal ADC D4p - PED' H.cal.4ta.apos_p[3] 150 50 500 +TH1F hcaladc_D5p 'HMS Cal ADC D5p - PED' H.cal.4ta.apos_p[4] 150 50 500 +TH1F hcaladc_D6p 'HMS Cal ADC D6p - PED' H.cal.4ta.apos_p[5] 150 50 500 +TH1F hcaladc_D7p 'HMS Cal ADC D7p - PED' H.cal.4ta.apos_p[6] 150 50 500 +TH1F hcaladc_D8p 'HMS Cal ADC D8p - PED' H.cal.4ta.apos_p[7] 150 50 500 +TH1F hcaladc_D9p 'HMS Cal ADC D9p - PED' H.cal.4ta.apos_p[8] 150 50 500 +TH1F hcaladc_D10p 'HMS Cal ADC D10p - PED' H.cal.4ta.apos_p[9] 150 50 500 +TH1F hcaladc_D11p 'HMS Cal ADC D11p - PED' H.cal.4ta.apos_p[10] 150 50 500 +TH1F hcaladc_D12p 'HMS Cal ADC D12p - PED' H.cal.4ta.apos_p[11] 150 50 500 +TH1F hcaladc_D13p 'HMS Cal ADC D13p - PED' H.cal.4ta.apos_p[12] 150 50 500 + +TH1F hcaladc_A1n 'HMS Cal ADC A1n - PED' H.cal.1pr.aneg_p[0] 150 50 500 +TH1F hcaladc_A2n 'HMS Cal ADC A2n - PED' H.cal.1pr.aneg_p[1] 150 50 500 +TH1F hcaladc_A3n 'HMS Cal ADC A3n - PED' H.cal.1pr.aneg_p[2] 150 50 500 +TH1F hcaladc_A4n 'HMS Cal ADC A4n - PED' H.cal.1pr.aneg_p[3] 150 50 500 +TH1F hcaladc_A5n 'HMS Cal ADC A5n - PED' H.cal.1pr.aneg_p[4] 150 50 500 +TH1F hcaladc_A6n 'HMS Cal ADC A6n - PED' H.cal.1pr.aneg_p[5] 150 50 500 +TH1F hcaladc_A7n 'HMS Cal ADC A7n - PED' H.cal.1pr.aneg_p[6] 150 50 500 +TH1F hcaladc_A8n 'HMS Cal ADC A8n - PED' H.cal.1pr.aneg_p[7] 150 50 500 +TH1F hcaladc_A9n 'HMS Cal ADC A9n - PED' H.cal.1pr.aneg_p[8] 150 50 500 +TH1F hcaladc_A10n 'HMS Cal ADC A10n - PED' H.cal.1pr.aneg_p[9] 150 50 500 +TH1F hcaladc_A11n 'HMS Cal ADC A11n - PED' H.cal.1pr.aneg_p[10] 150 50 500 +TH1F hcaladc_A12n 'HMS Cal ADC A12n - PED' H.cal.1pr.aneg_p[11] 150 50 500 +TH1F hcaladc_A13n 'HMS Cal ADC A13n - PED' H.cal.1pr.aneg_p[12] 150 50 500 + +TH1F hcaladc_B1n 'HMS Cal ADC B1n - PED' H.cal.2ta.aneg_p[0] 150 50 500 +TH1F hcaladc_B2n 'HMS Cal ADC B2n - PED' H.cal.2ta.aneg_p[1] 150 50 500 +TH1F hcaladc_B3n 'HMS Cal ADC B3n - PED' H.cal.2ta.aneg_p[2] 150 50 500 +TH1F hcaladc_B4n 'HMS Cal ADC B4n - PED' H.cal.2ta.aneg_p[3] 150 50 500 +TH1F hcaladc_B5n 'HMS Cal ADC B5n - PED' H.cal.2ta.aneg_p[4] 150 50 500 +TH1F hcaladc_B6n 'HMS Cal ADC B6n - PED' H.cal.2ta.aneg_p[5] 150 50 500 +TH1F hcaladc_B7n 'HMS Cal ADC B7n - PED' H.cal.2ta.aneg_p[6] 150 50 500 +TH1F hcaladc_B8n 'HMS Cal ADC B8n - PED' H.cal.2ta.aneg_p[7] 150 50 500 +TH1F hcaladc_B9n 'HMS Cal ADC B9n - PED' H.cal.2ta.aneg_p[8] 150 50 500 +TH1F hcaladc_B10n 'HMS Cal ADC B10n - PED' H.cal.2ta.aneg_p[9] 150 50 500 +TH1F hcaladc_B11n 'HMS Cal ADC B11n - PED' H.cal.2ta.aneg_p[10] 150 50 500 +TH1F hcaladc_B12n 'HMS Cal ADC B12n - PED' H.cal.2ta.aneg_p[11] 150 50 500 +TH1F hcaladc_B13n 'HMS Cal ADC B13n - PED' H.cal.2ta.aneg_p[12] 150 50 500 + +# Can we use variables for the constants. In CTP we used hdc_nwire(i) +# +TH1F hdc1x1_wm 'HDC 1X1 Wiremap' H.dc.1x1.tdchits 113 0.5 113.5 +TH1F hdc1y1_wm 'HDC 1Y1 Wiremap' H.dc.1y1.tdchits 52 0.5 52.5 +TH1F hdc1u1_wm 'HDC 1U1 Wiremap' H.dc.1u1.tdchits 107 0.5 107.5 +TH1F hdc1v1_wm 'HDC 1V1 Wiremap' H.dc.1v1.tdchits 107 0.5 107.5 +TH1F hdc1y2_wm 'HDC 1Y2 Wiremap' H.dc.1y2.tdchits 52 0.5 52.5 +TH1F hdc1x2_wm 'HDC 1X2 Wiremap' H.dc.1x2.tdchits 113 0.5 113.5 +TH1F hdc2x1_wm 'HDC 2X1 Wiremap' H.dc.2x1.tdchits 113 0.5 113.5 +TH1F hdc2y1_wm 'HDC 2Y1 Wiremap' H.dc.2y1.tdchits 52 0.5 52.5 +TH1F hdc2u1_wm 'HDC 2U1 Wiremap' H.dc.2u1.tdchits 107 0.5 107.5 +TH1F hdc2v1_wm 'HDC 2V1 Wiremap' H.dc.2v1.tdchits 107 0.5 107.5 +TH1F hdc2y2_wm 'HDC 2Y2 Wiremap' H.dc.2y2.tdchits 52 0.5 52.5 +TH1F hdc2x2_wm 'HDC 2X2 Wiremap' H.dc.2x2.tdchits 113 0.5 113.5 +# +TH1F ddist_hdc1x1 'HDC 1X1 Drift Dis' H.dc.1x1.dist 30 -0.1 0.6 +TH1F ddist_hdc1y1 'HDC 1Y1 Drift Dis' H.dc.1y1.dist 30 -0.1 0.6 +TH1F ddist_hdc1u1 'HDC 1U1 Drift Dis' H.dc.1u1.dist 30 -0.1 0.6 +TH1F ddist_hdc1v1 'HDC 1V1 Drift Dis' H.dc.1v1.dist 30 -0.1 0.6 +TH1F ddist_hdc1y2 'HDC 1Y2 Drift Dis' H.dc.1y2.dist 30 -0.1 0.6 +TH1F ddist_hdc1x2 'HDC 1X2 Drift Dis' H.dc.1x2.dist 30 -0.1 0.6 +TH1F ddist_hdc2x1 'HDC 2X1 Drift Dis' H.dc.2x1.dist 30 -0.1 0.6 +TH1F ddist_hdc2y1 'HDC 2Y1 Drift Dis' H.dc.2y1.dist 30 -0.1 0.6 +TH1F ddist_hdc2u1 'HDC 2U1 Drift Dis' H.dc.2u1.dist 30 -0.1 0.6 +TH1F ddist_hdc2v1 'HDC 2V1 Drift Dis' H.dc.2v1.dist 30 -0.1 0.6 +TH1F ddist_hdc2y2 'HDC 2Y2 Drift Dis' H.dc.2y2.dist 30 -0.1 0.6 +TH1F ddist_hdc2x2 'HDC 2X2 Drift Dis' H.dc.2x2.dist 30 -0.1 0.6 +# +TH1F dtime_hdc1x1 'HDC 1X1 Drift Time' H.dc.1x1.time 200 -100 300 +TH1F dtime_hdc1y1 'HDC 1Y1 Drift Time' H.dc.1y1.time 200 -100 300 +TH1F dtime_hdc1u1 'HDC 1U1 Drift Time' H.dc.1u1.time 200 -100 300 +TH1F dtime_hdc1v1 'HDC 1V1 Drift Time' H.dc.1v1.time 200 -100 300 +TH1F dtime_hdc1y2 'HDC 1Y2 Drift Time' H.dc.1y2.time 200 -100 300 +TH1F dtime_hdc1x2 'HDC 1X2 Drift Time' H.dc.1x2.time 200 -100 300 +TH1F dtime_hdc2x1 'HDC 2X1 Drift Time' H.dc.2x1.time 200 -100 300 +TH1F dtime_hdc2y1 'HDC 2Y1 Drift Time' H.dc.2y1.time 200 -100 300 +TH1F dtime_hdc2u1 'HDC 2U1 Drift Time' H.dc.2u1.time 200 -100 300 +TH1F dtime_hdc2v1 'HDC 2V1 Drift Time' H.dc.2v1.time 200 -100 300 +TH1F dtime_hdc2y2 'HDC 2Y2 Drift Time' H.dc.2y2.time 200 -100 300 +TH1F dtime_hdc2x2 'HDC 2X2 Drift Time' H.dc.2x2.time 200 -100 300 + diff --git a/setup.csh b/setup.csh index 2b3f8f36da081329bdc5a5401781ee31cde494d4..d85dc0c84258aa4d1701582211ba660815733e9b 100644 --- a/setup.csh +++ b/setup.csh @@ -3,11 +3,12 @@ set called=($_) if ("$called" != "") then set scriptdir=$called[2] + set MYDIR=`dirname $scriptdir` + set MYDIR=`cd $MYDIR && pwd` # ensure absolute path else set scriptdir=$1 + set MYDIR=$scriptdir endif -set MYDIR=`dirname $scriptdir` -set MYDIR=`cd $MYDIR && pwd` # ensure absolute path setenv ANALYZER $MYDIR/podd setenv HCANALYZER $MYDIR # Check if LD_LIBRARY_PATH is defined diff --git a/src/THcDriftChamber.cxx b/src/THcDriftChamber.cxx index e72f567dec2b6c9b627b93f7c68fc1545b384d25..faf4110c6367a513c2b62fd8d89f939f9a1d5301 100644 --- a/src/THcDriftChamber.cxx +++ b/src/THcDriftChamber.cxx @@ -905,7 +905,7 @@ void THcDriftChamber::LeftRight() cout << "THcDriftChamber::LeftRight: numhits-2 = 0" << endl; } Int_t nplaneshit = Count1Bits(bitpat); - Int_t nplusminus = pow(2,nhits-2); + Int_t nplusminus = 1<<(nhits-2); // Use bit value of integer word to set + or - // Loop over all combinations of left right.