9 #include "FairRootManager.h"
10 #include "FairRunAna.h"
11 #include "FairRuntimeDb.h"
12 #include "FairBaseParSet.h"
13 #include "FairTrackParam.h"
14 #include "FairRootManager.h"
19 #include "TClonesArray.h"
20 #include "TGeoManager.h"
34 : FairTask(
"GEM Digis Ana", 1),
46 : FairTask(
"GEM Digis Ana", iVerbose) ,
58 : FairTask(taskName, iVerbose) ,
75 FairRootManager* ioman = FairRootManager::Instance();
77 cout <<
"-E- "<< GetName() <<
"::Init: "
78 <<
"RootManager not instantised!" << endl;
83 FairRunAna* ana = FairRunAna::Instance();
85 cout <<
"-E- "<< GetName() <<
"::Init :"
86 <<
" no FairRunAna object!" << endl;
90 FairRuntimeDb*
rtdb = ana->GetRuntimeDb();
92 cout <<
"-E- "<< GetName() <<
"::Init :"
93 <<
" no runtime database!" << endl;
100 cout <<
"-E- " << GetName() <<
"::Init: No PndGemDigi array!" << endl;
107 cout <<
"-I- " << fName.Data() <<
"::Init(). There are " <<
fDigiPar->
GetNStations() <<
" GEM stations." << endl;
108 cout <<
"-I- " << fName.Data() <<
"::Init(). Initialization succesfull." << endl;
127 FairRunAna*
run = FairRunAna::Instance();
128 if ( ! run ) Fatal(
"SetParContainers",
"No analysis run");
130 FairRuntimeDb* db = run->GetRuntimeDb();
131 if ( ! db ) Fatal(
"SetParContainers",
"No runtime database");
145 cout <<
"IN EVENT GOT " <<
fGemDigiArray->GetEntries() <<
" hits." << endl;
146 cout <<
" - - - - - > " <<
fHistoArray->GetEntries() <<
" histograms" << endl;
153 for ( Int_t idigi = 0 ; idigi < nofGemDigis ; idigi++ ) {
161 if ( digiCode < 0 || digiCode > 11 )
162 cout <<
"oops, wrong digiCode " << digiCode
165 <<
" side " << gemDigi->
GetSide()
170 if ( lastTime > 0. ) {
203 for ( Int_t istat = 0 ; istat < nofStations ; istat++ ) {
207 std::cout <<
"will have problems with different numbers of sensors per station (" << station->
GetNSensors() <<
")" << std::endl;
210 for ( Int_t isens = 0 ; isens < station->
GetNSensors() ; isens++ ) {
213 for ( Int_t iside = 0 ; iside < 2 ; iside++ ) {
215 new ((*fHistoArray)[nofHists++]) TH1F(Form(
"fhLDTS_s%d_s%d_s%d",istat,isens,iside),
216 Form(
"Last digi time stamp, station %d, sensor %d, %s side",istat,isens,(iside?
"back":
"front")),
222 for ( Int_t istat = 0 ; istat < nofStations ; istat++ ) {
225 for ( Int_t isens = 0 ; isens < station->
GetNSensors() ; isens++ ) {
228 for ( Int_t iside = 0 ; iside < 2 ; iside++ ) {
230 new ((*fHistoArray)[nofHists++]) TH1F(Form(
"fhTimeBetweenDigis_s%d_s%d_s%d",istat,isens,iside),
231 Form(
"Time between digis, station %d, sensor %d, %s side",istat,isens,(iside?
"back":
"front")),
238 cout <<
"HM, seems that fHistoArray is filled with histograms, and there are " << nofHists <<
" of them" << endl;
253 cout <<
"-------------------- PndGemDigiAna : Summary ------------------" << endl;
254 cout <<
" Events: " << setw(10) <<
fNofEvents << endl;
255 cout <<
"---------------------------------------------------------------------" << endl;
260 FairRootManager* ioman = FairRootManager::Instance();
261 gFile = ioman->GetOutFile();
262 gDirectory = (TDirectory*)gFile;
264 gDirectory->mkdir(
"GemDigiAna");
265 gDirectory->cd(
"GemDigiAna");
267 for ( Int_t ihist = 0 ; ihist <
fHistoArray->GetEntries() ; ihist++ ) {
270 gDirectory->cd(
"..");
TClonesArray * fGemDigiArray
Int_t GetStationNr() const
virtual InitStatus ReInit()
Digitization Parameter Class for GEM part.
Int_t GetSideChannels(Int_t si) const
PndGemSensor * GetSensor(Int_t iSensor)
virtual InitStatus Init()
Int_t GetSensorNr() const
Int_t GetNSensors() const
Int_t fNofEvents
event counter
Double_t GetChannelNr() const
virtual void SetParContainers()
virtual void Exec(Option_t *opt)
TClonesArray * fHistoArray
PndGemStation * GetStation(Int_t iStation)