#include <TFile.h>
#include <TDirectory.h>
#include <Riostream.h>
+#include <TParameter.h>
#include "AliTPCDigitizer.h"
#include "AliTPCParam.h"
#include "AliTPCParamSR.h"
#include "AliRun.h"
+#include "AliLoader.h"
#include "AliPDG.h"
#include "AliRunDigitizer.h"
#include "AliSimDigits.h"
AliTPC *pTPC = (AliTPC *) gAlice->GetModule("TPC");
AliTPCParam * param = pTPC->GetParam();
- sprintf(s,param->GetTitle());
- sprintf(ss,"75x40_100x60");
+ //sprintf(s,param->GetTitle());
+ snprintf(s,100,param->GetTitle());
+ //sprintf(ss,"75x40_100x60");
+ snprintf(ss,100,"75x40_100x60");
if(strcmp(s,ss)==0){
printf("2 pad-length geom hits with 3 pad-lenght geom digits...\n");
delete param;
param=new AliTPCParamSR();
}
else{
- sprintf(ss,"75x40_100x60_150x60");
+ //sprintf(ss,"75x40_100x60_150x60");
+ snprintf(ss,100,"75x40_100x60_150x60");
if(strcmp(s,ss)!=0) {
printf("No TPC parameters found...\n");
exit(2);
}
}
- pTPC->GenerNoise(500000); //create teble with noise
+ pTPC->GenerNoise(500000); //create table with noise
//
Int_t nInputs = fManager->GetNinputs();
Int_t * masks = new Int_t[nInputs];
for (Int_t i=0; i<nInputs;i++)
masks[i]= fManager->GetMask(i);
Short_t **pdig= new Short_t*[nInputs]; //pointers to the expanded digits array
- Int_t **ptr= new Int_t*[nInputs]; //pointers to teh expanded tracks array
+ Int_t **ptr= new Int_t*[nInputs]; //pointers to the expanded tracks array
Bool_t *active= new Bool_t[nInputs]; //flag for active input segments
-
+ Char_t phname[100];
//create digits array for given sectors
// make indexes
-
+ //
+ //create branch's in TPC treeD
+ orl = AliRunLoader::GetRunLoader(fManager->GetOutputFolderName());
+ ogime = orl->GetLoader("TPCLoader");
+ TTree * tree = ogime->TreeD();
+ AliSimDigits * digrow = new AliSimDigits;
+
+ if (tree == 0x0)
+ {
+ ogime->MakeTree("D");
+ tree = ogime->TreeD();
+ }
+ tree->Branch("Segment","AliSimDigits",&digrow);
+ //
AliSimDigits ** digarr = new AliSimDigits*[nInputs];
for (Int_t i1=0;i1<nInputs; i1++)
{
{
cerr<<"AliTPCDigitizer: Input tree with SDigits not found in"
<<" input "<< i1<<endl;
+ for (Int_t i2=0;i2<i1+1; i2++){
+
+ if(digarr[i2]) delete digarr[i2];
+ }
+ delete [] digarr;
+ delete [] active;
+ delete []masks;
+ delete []pdig;
+ delete []ptr;
return;
}
-
+
+ //sprintf(phname,"lhcphase%d",i1);
+ snprintf(phname,100,"lhcphase%d",i1);
+ TParameter<float> *ph = (TParameter<float>*)treear->GetUserInfo()
+ ->FindObject("lhcphase0");
+ if(!ph){
+ cerr<<"AliTPCDigitizer: LHC phase not found in"
+ <<" input "<< i1<<endl;
+ for (Int_t i2=0;i2<i1+1; i2++){
+ if(digarr[i2]) delete digarr[i2];
+ }
+ delete [] digarr;
+ delete [] active;
+ delete []masks;
+ delete []pdig;
+ delete []ptr;
+ return;
+ }
+ tree->GetUserInfo()->Add(new TParameter<float>(phname,ph->GetVal()));
+ //
if (treear->GetIndex()==0)
treear->BuildIndex("fSegmentID","fSegmentID");
treear->GetBranch("Segment")->SetAddress(&digarr[i1]);
}
- //create branch's in TPC treeD
- AliSimDigits * digrow = new AliSimDigits;
- orl = AliRunLoader::GetRunLoader(fManager->GetOutputFolderName());
- ogime = orl->GetLoader("TPCLoader");
-
- TTree * tree = ogime->TreeD();
- if (tree == 0x0)
- {
- ogime->MakeTree("D");
- tree = ogime->TreeD();
- }
- tree->Branch("Segment","AliSimDigits",&digrow);
+
//
param->SetZeroSup(2);
ogime = orl->GetLoader("TPCLoader");
rl = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(0));
- gime = rl->GetLoader("TPCLoader");
-
+ //gime = rl->GetLoader("TPCLoader");
+ rl->GetLoader("TPCLoader");
rl->LoadgAlice();
AliRun* alirun = rl->GetAliRun();
printf("noise %f \n", param->GetNoise()*param->GetNoiseNormFac());
//
Int_t nInputs = fManager->GetNinputs();
+ // stupid protection...
+ if (nInputs <= 0) return;
+ //
Int_t * masks = new Int_t[nInputs];
for (Int_t i=0; i<nInputs;i++)
masks[i]= fManager->GetMask(i);
AliSimDigits ** digarr = new AliSimDigits*[nInputs];
+ for(Int_t ii=0;ii<nInputs;ii++) digarr[ii]=0;
+
for (Int_t i1=0;i1<nInputs; i1++)
{
- digarr[i1]=0;
+ //digarr[i1]=0;
// intree[i1]
rl = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(i1));
gime = rl->GetLoader("TPCLoader");
TTree * treear = gime->TreeS();
- TBranch * br = treear->GetBranch("fSegmentID");
- if (br) br->GetFile()->cd();
+ //
if (!treear) {
- cerr<<" TPC - not existing input = \n"<<i1<<" ";
+ cerr<<" TPC - not existing input = \n"<<i1<<" ";
+ delete [] masks;
+ for(Int_t i=0; i<nInputs; i++) delete digarr[i];
+ delete [] digarr;
+ return;
}
+ //
+ TBranch * br = treear->GetBranch("fSegmentID");
+ if (br) br->GetFile()->cd();
treear->GetBranch("Segment")->SetAddress(&digarr[i1]);
- }
+ }
rl = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(0));
gime = rl->GetLoader("TPCLoader");
delete digrow;
for (Int_t i1=0;i1<nInputs; i1++) delete digarr[i1];
- delete []masks;
- delete digarr;
+ delete [] masks;
+ delete [] digarr;
}