13 #include <JANA/JApplication.h>
14 #include <JANA/JFactory.h>
46 TDirectory *
main = gDirectory;
47 gDirectory->mkdir(
"CDC_dedx")->cd();
49 dedx_p =
new TH2D(
"dedx_p",
"CDC dE/dx vs p, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
51 dedx_p_pos =
new TH2D(
"dedx_p_pos",
"CDC dE/dx vs p, q+, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
53 dedx_p_neg =
new TH2D(
"dedx_p_neg",
"CDC dE/dx vs p, q-, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
56 intdedx_p =
new TH2D(
"intdedx_p",
"CDC dE/dx (from integral) vs p, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
58 intdedx_p_pos =
new TH2D(
"intdedx_p_pos",
"CDC dE/dx (from integral) vs p, q+, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
60 intdedx_p_neg =
new TH2D(
"intdedx_p_neg",
"CDC dE/dx (from integral) vs p, q-, 4+ hits used;p (GeV/c);dE/dx (keV/cm)",250,0,10,400,0,25);
99 loop->GetSingle(locTrigger);
103 const DVertex* locVertex = NULL;
104 loop->GetSingle(locVertex);
106 if ((vertexz < 52.0) || (vertexz > 78.0))
return NOERROR;
109 vector<const DTrackTimeBased*> tracks;
111 if (tracks.size() ==0)
return NOERROR;
114 for (uint32_t i=0; i<tracks.size(); i++) {
116 int nhits = (int)tracks[i]->dNumHitsUsedFordEdx_CDC;
117 if (nhits < 4)
continue;
119 double charge = tracks[i]->charge();
120 DVector3 mom = tracks[i]->momentum();
121 double p = mom.Mag();
123 double dedx = 1.0e6*tracks[i]->ddEdx_CDC_amp;
127 japp->RootFillLock(
this);
129 dedx_p->Fill(p,dedx);
132 dedx_p_pos->Fill(p,dedx);
134 dedx_p_neg->Fill(p,dedx);
137 japp->RootFillUnLock(
this);
143 dedx = 1.0e6*tracks[i]->ddEdx_CDC;
147 japp->RootFillLock(
this);
149 intdedx_p->Fill(p,dedx);
152 intdedx_p_pos->Fill(p,dedx);
154 intdedx_p_neg->Fill(p,dedx);
157 japp->RootFillUnLock(
this);
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
jerror_t init(void)
Called once at program start.
uint32_t Get_L1FrontPanelTriggerBits(void) const
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
DLorentzVector dSpacetimeVertex
jerror_t fini(void)
Called after last event of last event source has been processed.
JEventProcessor_CDC_dedx()
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
~JEventProcessor_CDC_dedx()
int main(int argc, char *argv[])