//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Conversion of FOPI BAR hits ("BarrelTrack") to // planar Genfit hits // // Environment: // Software developed for the GEM-TPC in FOPI // // Author List: // Felix Boehmer, E18 TUM (original author) // //----------------------------------------------------------- // This Class' Header ------------------ #include "FopiBarInitTask.h" #include "TClonesArray.h" #include "TMath.h" #include "BarPixHit.h" #include "BarrelTrack.h" #include // Class Member definitions ----------- ClassImp(FopiBarInitTask) FopiBarInitTask::FopiBarInitTask() : fHitBranchName("BarrelTrack"), fOutBranchName("BarPixHit"), fVerbose(false), fHitArray(NULL), fOutArray(NULL), fPersistence(kFALSE), fHitArrID(-1), fConstSigPhi(4./TMath::Sqrt(12.)), fConstSigZ(10.) //_weightedPlaneConstruction(kFALSE), // _cutCov(kFALSE) { ; } FopiBarInitTask::~FopiBarInitTask() {;} InitStatus FopiBarInitTask::Init() { //Get ROOT Manager FairRootManager* ioman= FairRootManager::Instance(); if(ioman==NULL){ Error("FopiBarInitTask::Init","RootManager not instantiated!"); return kERROR; } // get input arrays fHitArray=(TClonesArray*) ioman->GetObject(fHitBranchName); if(fHitArray==NULL){ Error("FopiBarInitTask::Init","BAR Hit-Array not found!"); return kERROR; } // create and register output array fOutArray = new TClonesArray("BarPixHit"); ioman->Register(fOutBranchName,"GenFit",fOutArray,fPersistence); fHitArrID = FairRootManager::Instance()->GetBranchId(fOutBranchName); return kSUCCESS; } void FopiBarInitTask::Exec(Option_t* opt) { // Reset output Arrays if(fOutArray==NULL) Fatal("FopiBarInitTask::Exec()","No OutTrackArray"); fOutArray->Delete(); std::cout<<"FopiBarInitTask::Exec() ... \n"; //create recohits from CdcHits: int nBarHits = fHitArray->GetEntriesFast(); for(int ibar=0; ibarGetZs(); double phi = ir->GetPhi(); TVector3 pos(_panelRadius,0.,0.); pos.SetPhi(phi*TMath::Pi()/180.); pos.SetZ(zPos); TVector3 dir; dir.SetXYZ(0.,0.,1.); int nOut = fOutArray->GetEntriesFast(); bool valid = true; TVector3 norm; norm.SetXYZ(1.,0.,0.); norm.SetPhi(phi*TMath::Pi()/180.); BarPixHit* out = new((*fOutArray)[nOut]) BarPixHit(pos, dir, norm, fConstSigZ, fConstSigPhi); out->setValid(valid); out->setHitBranchID(fHitArrID); out->setHitID(nOut); } std::cout<<"FopiBarInitTask::Exec() Set up "<